From b37084e6698ba2a9de1bba9d2db85182c6fa387f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 22:39:42 +0000 Subject: [PATCH] Automatic compilation --- .eslintignore | 3 - .eslintrc | 46 - .github/pull_request_template.md | 11 - .github/workflows/publish-action.yml | 18 - .github/workflows/publish-cli.yml | 41 - .github/workflows/pull_request.yml | 54 - .github/workflows/report.yml | 36 - .gitignore | 13 - .husky/pre-commit | 4 - .husky/pre-push | 4 - CHANGELOG.md | 175 - README.md | 888 -- dist/index.js | 6 +- docs/archive-artifacts-github.png | Bin 11987 -> 0 bytes docs/project-hierarchy.png | Bin 11366 -> 0 bytes jest.config.ts | 16 - package-lock.json | 13295 ---------------- package.json | 73 - src/bin/entry-point/cli.ts | 5 - src/bin/entry-point/github-action.ts | 3 - src/bin/runners/cli-runner.ts | 41 - src/bin/runners/github-action-runner.ts | 55 - src/bin/runners/runner.ts | 110 - src/domain/checkout.ts | 17 - src/domain/cli.ts | 10 - src/domain/configuration.ts | 22 - src/domain/constants.ts | 8 - src/domain/entry-point.ts | 4 - src/domain/errors.ts | 2 - src/domain/execute-command-result.ts | 14 - src/domain/execute-node-result.ts | 7 - src/domain/execution-phase.ts | 5 - src/domain/flow.ts | 22 - src/domain/inputs.ts | 54 - src/domain/node-execution.ts | 12 - src/domain/node.ts | 7 - src/domain/treatment-options.ts | 4 - .../arguments/action/action-arguments.ts | 117 - .../cli/build/abstract-pr-command.ts | 24 - .../arguments/cli/build/branch-command.ts | 22 - .../cli/build/build-subcommand-factory.ts | 68 - .../arguments/cli/build/cross-pr-command.ts | 14 - src/service/arguments/cli/build/fd-command.ts | 14 - .../arguments/cli/build/single-pr-command.ts | 14 - src/service/arguments/cli/cli-arguments.ts | 54 - .../arguments/cli/command-constructor.ts | 9 - .../arguments/cli/tools/project-list.ts | 17 - .../cli/tools/tool-subcommand-factory.ts | 50 - src/service/artifacts/artifact-service.ts | 66 - src/service/artifacts/upload-service.ts | 168 - src/service/checkout/checkout-service.ts | 252 - .../command/execute-command-service.ts | 68 - src/service/command/executor/bash-executor.ts | 10 - .../executor/command-executor-delegator.ts | 42 - .../command/executor/export-executor.ts | 61 - .../command/treatment/command-builder.ts | 22 - .../treatment/command-treatment-delegator.ts | 23 - .../command/treatment/command-treatment.ts | 5 - .../environment-command-treatment.ts | 21 - .../treatment/maven-command-treatment.ts | 17 - .../treatment/regex-command-treatment.ts | 65 - src/service/config/action-configuration.ts | 85 - src/service/config/base-configuration.ts | 109 - src/service/config/cli-configuration.ts | 107 - src/service/config/configuration-service.ts | 216 - src/service/config/definition-file-reader.ts | 137 - src/service/flow/flow-service.ts | 193 - src/service/git/git-cli.ts | 165 - src/service/git/github-api.ts | 113 - src/service/git/octokit.ts | 31 - src/service/inputs/input-service.ts | 24 - .../job-summary/job-summary-service.ts | 148 - src/service/logger/base-logger-service.ts | 47 - src/service/logger/cli-logger-service.ts | 16 - .../logger/github-action-logger-service.ts | 17 - src/service/logger/logger-service.ts | 29 - src/service/logger/logger.ts | 11 - src/service/pre-post/post.ts | 37 - src/service/pre-post/pre-post.ts | 30 - src/service/pre-post/pre.ts | 17 - src/utils/date.ts | 14 - src/utils/log.ts | 7 - test/e2e/branch/branch.test.ts | 353 - test/e2e/branch/branch.yaml | 18 - test/e2e/cross-pr/cross-pr.test.ts | 474 - test/e2e/cross-pr/cross-pr.yaml | 17 - .../full-downstream/full-downstream.test.ts | 511 - test/e2e/full-downstream/full-downstream.yaml | 17 - test/e2e/helper/logger.ts | 4 - test/e2e/resources/definition-file.yaml | 45 - test/e2e/resources/dependencies.yaml | 36 - test/e2e/single-pr/single-pr.test.ts | 516 - test/e2e/single-pr/single-pr.yaml | 17 - test/unitary/bin/cli-runner.test.ts | 169 - test/unitary/bin/github-action-runner.test.ts | 196 - test/unitary/bin/runner.test.ts | 180 - .../arguments/action/action-argument.test.ts | 107 - .../arguments/cli/build-branch.test.ts | 125 - .../arguments/cli/build-cross_pr.test.ts | 112 - .../service/arguments/cli/build-fd.test.ts | 112 - .../arguments/cli/build-single.test.ts | 112 - .../arguments/cli/tool-project_list.test.ts | 65 - .../artifacts/artifact-service.test.ts | 70 - .../service/artifacts/upload-service.test.ts | 266 - .../service/checkout/checkout-service.test.ts | 700 - test/unitary/service/checkout/helpers.ts | 81 - .../command/execute-command-service.test.ts | 239 - .../command/executor/bash-executor.test.ts | 34 - .../command-executor-delegator.test.ts | 221 - .../command/executor/export-executor.test.ts | 118 - .../command/treatment/command-builder.test.ts | 36 - .../command-treatment-delegator.test.ts | 32 - .../environment-command-treatment.test.ts | 33 - .../treatment/maven-command-treatment.test.ts | 18 - .../treatment/regex-command-treatment.test.ts | 35 - .../config/action-configuration.test.ts | 238 - .../service/config/cli-configuration.test.ts | 343 - .../config/configuration-service.test.ts | 368 - .../config/definition-file-reader.test.ts | 199 - test/unitary/service/config/projectNodes.json | 127 - .../unitary/service/flow/flow-service.test.ts | 227 - test/unitary/service/git/git-cli.test.ts | 257 - test/unitary/service/git/github-api.test.ts | 169 - test/unitary/service/git/octokit.test.ts | 19 - .../service/job-summary/expected-summary | 53 - .../job-summary/job-summary-service.test.ts | 226 - .../service/logger/cli-logger-service.test.ts | 106 - .../github-action-logger-service.test.ts | 112 - .../logger/logger-service-factory.test.ts | 48 - test/unitary/service/logger/logger.test.ts | 51 - test/unitary/service/pre-post/post.test.ts | 155 - test/unitary/service/pre-post/pre.test.ts | 49 - test/unitary/util/date.test.ts | 28 - test/unitary/util/log.test.ts | 20 - tsconfig.json | 115 - 135 files changed, 3 insertions(+), 25837 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc delete mode 100644 .github/pull_request_template.md delete mode 100644 .github/workflows/publish-action.yml delete mode 100644 .github/workflows/publish-cli.yml delete mode 100644 .github/workflows/pull_request.yml delete mode 100644 .github/workflows/report.yml delete mode 100644 .gitignore delete mode 100755 .husky/pre-commit delete mode 100755 .husky/pre-push delete mode 100644 CHANGELOG.md delete mode 100644 README.md delete mode 100644 docs/archive-artifacts-github.png delete mode 100644 docs/project-hierarchy.png delete mode 100644 jest.config.ts delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 src/bin/entry-point/cli.ts delete mode 100644 src/bin/entry-point/github-action.ts delete mode 100644 src/bin/runners/cli-runner.ts delete mode 100644 src/bin/runners/github-action-runner.ts delete mode 100644 src/bin/runners/runner.ts delete mode 100644 src/domain/checkout.ts delete mode 100644 src/domain/cli.ts delete mode 100644 src/domain/configuration.ts delete mode 100644 src/domain/constants.ts delete mode 100644 src/domain/entry-point.ts delete mode 100644 src/domain/errors.ts delete mode 100644 src/domain/execute-command-result.ts delete mode 100644 src/domain/execute-node-result.ts delete mode 100644 src/domain/execution-phase.ts delete mode 100644 src/domain/flow.ts delete mode 100644 src/domain/inputs.ts delete mode 100644 src/domain/node-execution.ts delete mode 100644 src/domain/node.ts delete mode 100644 src/domain/treatment-options.ts delete mode 100644 src/service/arguments/action/action-arguments.ts delete mode 100644 src/service/arguments/cli/build/abstract-pr-command.ts delete mode 100644 src/service/arguments/cli/build/branch-command.ts delete mode 100644 src/service/arguments/cli/build/build-subcommand-factory.ts delete mode 100644 src/service/arguments/cli/build/cross-pr-command.ts delete mode 100644 src/service/arguments/cli/build/fd-command.ts delete mode 100644 src/service/arguments/cli/build/single-pr-command.ts delete mode 100644 src/service/arguments/cli/cli-arguments.ts delete mode 100644 src/service/arguments/cli/command-constructor.ts delete mode 100644 src/service/arguments/cli/tools/project-list.ts delete mode 100644 src/service/arguments/cli/tools/tool-subcommand-factory.ts delete mode 100644 src/service/artifacts/artifact-service.ts delete mode 100644 src/service/artifacts/upload-service.ts delete mode 100644 src/service/checkout/checkout-service.ts delete mode 100644 src/service/command/execute-command-service.ts delete mode 100644 src/service/command/executor/bash-executor.ts delete mode 100644 src/service/command/executor/command-executor-delegator.ts delete mode 100644 src/service/command/executor/export-executor.ts delete mode 100644 src/service/command/treatment/command-builder.ts delete mode 100644 src/service/command/treatment/command-treatment-delegator.ts delete mode 100644 src/service/command/treatment/command-treatment.ts delete mode 100644 src/service/command/treatment/environment-command-treatment.ts delete mode 100644 src/service/command/treatment/maven-command-treatment.ts delete mode 100644 src/service/command/treatment/regex-command-treatment.ts delete mode 100644 src/service/config/action-configuration.ts delete mode 100644 src/service/config/base-configuration.ts delete mode 100644 src/service/config/cli-configuration.ts delete mode 100644 src/service/config/configuration-service.ts delete mode 100644 src/service/config/definition-file-reader.ts delete mode 100644 src/service/flow/flow-service.ts delete mode 100644 src/service/git/git-cli.ts delete mode 100644 src/service/git/github-api.ts delete mode 100644 src/service/git/octokit.ts delete mode 100644 src/service/inputs/input-service.ts delete mode 100644 src/service/job-summary/job-summary-service.ts delete mode 100644 src/service/logger/base-logger-service.ts delete mode 100644 src/service/logger/cli-logger-service.ts delete mode 100644 src/service/logger/github-action-logger-service.ts delete mode 100644 src/service/logger/logger-service.ts delete mode 100644 src/service/logger/logger.ts delete mode 100644 src/service/pre-post/post.ts delete mode 100644 src/service/pre-post/pre-post.ts delete mode 100644 src/service/pre-post/pre.ts delete mode 100644 src/utils/date.ts delete mode 100644 src/utils/log.ts delete mode 100644 test/e2e/branch/branch.test.ts delete mode 100644 test/e2e/branch/branch.yaml delete mode 100644 test/e2e/cross-pr/cross-pr.test.ts delete mode 100644 test/e2e/cross-pr/cross-pr.yaml delete mode 100644 test/e2e/full-downstream/full-downstream.test.ts delete mode 100644 test/e2e/full-downstream/full-downstream.yaml delete mode 100644 test/e2e/helper/logger.ts delete mode 100644 test/e2e/resources/definition-file.yaml delete mode 100644 test/e2e/resources/dependencies.yaml delete mode 100644 test/e2e/single-pr/single-pr.test.ts delete mode 100644 test/e2e/single-pr/single-pr.yaml delete mode 100644 test/unitary/bin/cli-runner.test.ts delete mode 100644 test/unitary/bin/github-action-runner.test.ts delete mode 100644 test/unitary/bin/runner.test.ts delete mode 100644 test/unitary/service/arguments/action/action-argument.test.ts delete mode 100644 test/unitary/service/arguments/cli/build-branch.test.ts delete mode 100644 test/unitary/service/arguments/cli/build-cross_pr.test.ts delete mode 100644 test/unitary/service/arguments/cli/build-fd.test.ts delete mode 100644 test/unitary/service/arguments/cli/build-single.test.ts delete mode 100644 test/unitary/service/arguments/cli/tool-project_list.test.ts delete mode 100644 test/unitary/service/artifacts/artifact-service.test.ts delete mode 100644 test/unitary/service/artifacts/upload-service.test.ts delete mode 100644 test/unitary/service/checkout/checkout-service.test.ts delete mode 100644 test/unitary/service/checkout/helpers.ts delete mode 100644 test/unitary/service/command/execute-command-service.test.ts delete mode 100644 test/unitary/service/command/executor/bash-executor.test.ts delete mode 100644 test/unitary/service/command/executor/command-executor-delegator.test.ts delete mode 100644 test/unitary/service/command/executor/export-executor.test.ts delete mode 100644 test/unitary/service/command/treatment/command-builder.test.ts delete mode 100644 test/unitary/service/command/treatment/command-treatment-delegator.test.ts delete mode 100644 test/unitary/service/command/treatment/environment-command-treatment.test.ts delete mode 100644 test/unitary/service/command/treatment/maven-command-treatment.test.ts delete mode 100644 test/unitary/service/command/treatment/regex-command-treatment.test.ts delete mode 100644 test/unitary/service/config/action-configuration.test.ts delete mode 100644 test/unitary/service/config/cli-configuration.test.ts delete mode 100644 test/unitary/service/config/configuration-service.test.ts delete mode 100644 test/unitary/service/config/definition-file-reader.test.ts delete mode 100644 test/unitary/service/config/projectNodes.json delete mode 100644 test/unitary/service/flow/flow-service.test.ts delete mode 100644 test/unitary/service/git/git-cli.test.ts delete mode 100644 test/unitary/service/git/github-api.test.ts delete mode 100644 test/unitary/service/git/octokit.test.ts delete mode 100644 test/unitary/service/job-summary/expected-summary delete mode 100644 test/unitary/service/job-summary/job-summary-service.test.ts delete mode 100644 test/unitary/service/logger/cli-logger-service.test.ts delete mode 100644 test/unitary/service/logger/github-action-logger-service.test.ts delete mode 100644 test/unitary/service/logger/logger-service-factory.test.ts delete mode 100644 test/unitary/service/logger/logger.test.ts delete mode 100644 test/unitary/service/pre-post/post.test.ts delete mode 100644 test/unitary/service/pre-post/pre.test.ts delete mode 100644 test/unitary/util/date.test.ts delete mode 100644 test/unitary/util/log.test.ts delete mode 100644 tsconfig.json diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index c60574ed..00000000 --- a/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/ -build/ -./jest.config.ts \ No newline at end of file diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 8e3a467d..00000000 --- a/.eslintrc +++ /dev/null @@ -1,46 +0,0 @@ -{ - "root": true, - "parser": "@typescript-eslint/parser", - "plugins": [ - "@typescript-eslint" - ], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended" - ], - "rules": { - "quotes": [ - "error", - "double" - ], - "semi": [ - "error", - "always" - ], - "@typescript-eslint/no-explicit-any": [ - "error", - { - "fixToUnknown": true - } - ], - "curly": "error", - "no-empty": "error", - "no-console": "error", - "no-alert": "error", - "@typescript-eslint/no-non-null-assertion": "off", - "no-unused-vars": "off", - "@typescript-eslint/no-unused-vars": [ - "warn", - { - "varsIgnorePattern": "^_", - "argsIgnorePattern": "^_" - } - ], - "no-fallthrough": "off", - "arrow-parens": [ - "error", - "as-needed" - ] - } -} \ No newline at end of file diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index 6ab85eef..00000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,11 +0,0 @@ -**Thank you for submitting this pull request** - -fix _(please add the issue ID if it exists)_ - -**referenced Pull Requests**: _(please edit the URLs of referenced pullrequests if they exist)_ - -- paste the link(s) from GitHub here -- link 2 -- link 3 etc. - -> **_Note:_** Please, do not check `dist/index.js` changes. It is automatically generated. diff --git a/.github/workflows/publish-action.yml b/.github/workflows/publish-action.yml deleted file mode 100644 index 99d8d597..00000000 --- a/.github/workflows/publish-action.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Publish Action - -on: - release: - types: [published, edited] - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.event.release.tag_name }} - - run: npm ci - - run: npm run build:action - - uses: JasonEtco/build-and-tag-action@v2 - env: - GITHUB_TOKEN: ${{ github.token }} \ No newline at end of file diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml deleted file mode 100644 index 5f168f17..00000000 --- a/.github/workflows/publish-cli.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Publish CLI - -on: - push: - branches: - - main - paths: - - "package.json" - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - uses: actions/setup-node@v3 - with: - node-version: 16 - registry-url: https://registry.npmjs.org/ - - - name: check for version change - id: version-check - uses: EndBug/version-check@v2 - with: - file-url: https://unpkg.com/@kie/build-chain-action@latest/package.json - static-checking: localIsNew - - - run: npm install - if: steps.version-check.outputs.changed == 'true' - - - run: npm run build:cli - if: steps.version-check.outputs.changed == 'true' - - - run: npm publish --access public - if: steps.version-check.outputs.changed == 'true' - env: - NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - - - run: echo "No change detected in package.json. Won't publish" - if: steps.version-check.outputs.changed == 'false' - diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml deleted file mode 100644 index d2a84019..00000000 --- a/.github/workflows/pull_request.yml +++ /dev/null @@ -1,54 +0,0 @@ -# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions - -name: Pull Request Checks - -on: pull_request - -jobs: - unit: - strategy: - matrix: - node-version: [14.x, 16.x] - os: [ubuntu-latest] - fail-fast: false - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - run: npm ci - - run: npm run test:report - - e2e: - strategy: - matrix: - node-version: [14.x, 16.x] - os: [ubuntu-latest] - fail-fast: false - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - run: npm ci - - run: npm run test:e2e - - package-lock-check: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v3 - with: - node-version: 16 - - run: npm install - - name: Check if package-lock.json was updated - # Check that Git working tree is clean after running `npm install` - # The `git` command exits with 1 and fails the build if there are any uncommitted changes. - run: git diff HEAD --exit-code diff --git a/.github/workflows/report.yml b/.github/workflows/report.yml deleted file mode 100644 index 8a9a4dee..00000000 --- a/.github/workflows/report.yml +++ /dev/null @@ -1,36 +0,0 @@ -on: - push: - branches: - - main - - typescript/main - -name: coverage report - -jobs: - test-coverage: - name: Publish coverage report - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Setup sonarqube - uses: warchant/setup-sonar-scanner@v3 - - name: coverage report - uses: actions/setup-node@v1 - with: - # node 12 support is deprecated in sonar - node-version: 14 - - run: npm ci - - run: npm run test:report - - run: sonar-scanner - -Dsonar.organization=kiegroup - -Dsonar.projectKey=github-action-build-chain - -Dsonar.projectName="Build Chain" - -Dsonar.sources=$GITHUB_WORKSPACE - -Dsonar.host.url=${{ secrets.SONAR_URL }} - -Dsonar.login=${{ secrets.SONAR_TOKEN }} - -Dsonar.tests=test - -Dsonar.testExecutionReportPaths=test-report.xml - -Dsonar.javascript.lcov.reportPaths=coverage/lcov.info - -Dsonar.exclusions=test/**,**/__mocks__/** - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 232207f1..00000000 --- a/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -.env -node_modules/ -*.code-workspace -locally_execution/**/* -test/**/_temp/**/* -build_chain_20*/**/* -coverage/ -test-report.xml -.idea/ -.vscode/ -build/ -*.log -dist-e2e/ \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index 75fac8e1..00000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -npm run lint diff --git a/.husky/pre-push b/.husky/pre-push deleted file mode 100755 index 5f9ec673..00000000 --- a/.husky/pre-push +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -npm run lint && npm test diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index f8473ddb..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,175 +0,0 @@ -# Changelog - -# V3.0.3 - -## Bugs: -- [ISSUE 338] Fixed `${{ env.VAR }}` not being substituted correctly - -# V3.0.2 - -## Bugs: -- [ISSUE 333] Fixed CLI ignoring the `--token` flag - -# V3.0.1 - -## Bugs: -- [ISSUE 331] Typo in `definitionFile` option for CLI which lead an invalid definition file location - -# V3.0.0 - -## Enhancements: -- Complete refactor to typescript -- implemented end to end tests - -# V2.6.1 - -## Enhancements: - -- Prints system git version -- [issue 203] Prints execution summary -- additional-flags input -- [ISSUE 103] be able to access definition file from private repositories -- [ISSUE 216] remove -project flag from build branch command -- [ISSUE 217] add skip project execution (spe) feature -- [ISSUE 225] add secrets information for forked projects -- [ISSUE 315] improve message when token is wrong - -## Bugs - -- printLocalCommand definition-file wrong quotes -- the choosen definition file is not printed in case of all placeholders have default values -- [ISSUE 221] `hasForkPullRequest` head from `${fromAuthor}:${branch}` to `${sourceOwner}/${sourceRepo}:${sourceBranch}` - -# V2.6 - -## Enhancements: - -- `@kie/build-chain-configuration-reader` upgraded to `2.2.3` -- definition version moved to 2.1 -- targetExpression mapping -- branch flow from GA -- getForkedProjectName improved -- print execution plan -- --skipExecution flag to skip the command execution and artifacts archiving for all the flow types -- --skipCheckout to skip project checkout. Checkout information will be printed anyway -- print command: the tool will print the command to be copy pasted in order to execute in any environment -- `logger-level` input added. -- debug log improved -- default value for placeholders -- important information posted to Annotations section -- annotations-prefix input to identify the annotations per job - -## Bugs: - -- [issue 153] windows error on joining folder. -- [issue 158] definition file URL improvements GROUP/BRANCH placeholders. -- add starting-project CLI argument to single flow type option. -- starting-project argument missing documentation. -- [issue 176] look up both current and project triggering mappings. -- [issue 137] To avoid getting branches for already closed PRs. -- rename merging base branch to source branch name to avoid Sonar zero issues. - -# V2.5 - -## Enhancements: - -- `custom-command-treatment` CLI option -- `@kie/build-chain-configuration-reader` upgraded to `2.0.4` -- error mapping branches solved -- allow to read definition files from private repositories -- pre/post sections - -# V2.4 - -## Enhancements: - -- `starting-project` input added -- env variables treated from commands -- export command treated -- token not mandatory - -## Bugs: - -- Error treating export commands like `export DROOLS_VERSION=mvn org.apache.maven.plugins:maven-help-plugin:evaluate -Dexpression=project.version | grep ^7` will execute `export DROOLS_VERSION=mvn org.apache.maven.plugins:maven-help-plugin:evaluate -Dexpression=project.version | grep ^7 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B`. Fixed. - -# V2.3 - -## Enhancements: - -- token added to git commands to avoid private repositories problem from CLI execution -- clone option added - -# V2.2 - -## Enhancements: - -- command line ready -- full downstream flow added either for CLI and github action -- single flow added either for CLI and github action -- @kie/build-chain-configuration-reader dependency upgraded to ^2.0.2 -- branch flow added for CLI -- skip build mechanism -- configuration file version <2.0 is no longer supported -- checkout mechanism improved - -# V2.1 - -[Link](https://github.com/kiegroup/github-action-build-chain/releases/tag/v2.1) - -## Enhancements: - -- @kie/build-chain-configuration-reader dependency upgraded to ^0.0.6 - -# V2.0 - -[Link](https://github.com/kiegroup/github-action-build-chain/releases/tag/v2.0) - -## Enhancements: - -- artifacts in case of failure -- centralized flow definition file -- definition-file input added -- rest of inputs removed since they are not needed anymore -- default configuration for every project -- before and after commands added - -# V1.4 - -[Link](https://github.com/kiegroup/github-action-build-chain/releases/tag/v1.4) - -## Enhancements: - -- archive-artifacts-dependencies -- checkout info summary - -# V1.3 - -[Link](https://github.com/kiegroup/github-action-build-chain/releases/tag/v1.3) - -## Bugs: - -- `Cannot read property 'artifactItems' of undefined` error fixed - -# V1.2 - -[Link](https://github.com/kiegroup/github-action-build-chain/releases/tag/v1.2) - -## Bugs: - -- Mapping error solved - -# V1.1 - -[Link](https://github.com/kiegroup/github-action-build-chain/releases/tag/v1.1) - -- Just contributors added - -# V1.0 - -[Link](https://github.com/kiegroup/github-action-build-chain/releases/tag/v1.0) - -Github action build chain is a tool for github actions to build multiple projects from different repositories in a single action. This tool is trying to solve the problem when a project depends on another project (most probably from the same organization) and one change can/should be performed in different repositories. How can we assure one specific pull request will work with the latest changes from/in the dependant/dependency projects and it won't break something? This is what we call cross-repo pull requests and build-chain is the way we have to solve it. - -- archive artifacts mechanism -- pull request flow -- cross-repo checkout diff --git a/README.md b/README.md deleted file mode 100644 index 795eb497..00000000 --- a/README.md +++ /dev/null @@ -1,888 +0,0 @@ -# Github Action Build Chain - -Github action build chain is a tool for github actions to build multiple projects from different repositories in a single action. -This tool is trying to solve the problem when a project depends on another project (most probably from the same organization) and one change can/should be performed in different repositories. How can we assure one specific pull request will work with the latest changes from/in the dependant/dependency projects and it won't break something? This is what we call **cross-repo pull requests** and **build-chain** is the way we have to solve it. - -Let's consider you have a project hierarchy like: - -![Project hierarchy](/docs/project-hierarchy.png) - -and you want to upstream/downstream build whatever project from this hierarchy, **Github Action Build Chain** provides you the mechanism to easily do it. -You can check [Usage example](#usage-example). - -Just defining the **build chain** flow in every project you want to trigger, the tool will get build information from `dependency-file` input and will execute every command from every project in a single github action. - -Table of content ----------------- - -* **[Github Action Build Chain](#github-action-build-chain)** -* **[Build Chain Flows](#build-chain-flows)** -* **[How to add it to your project(s)](#how-to-add-it-to-your-projects)** -* **[Input Fields](#input-fields)** -* **[Pre/Post sections](#prepost-sections)** -* **[Archiving Artifacts](#archiving-artifacts)** -* **[How to clone project in more than one folder](#how-to-clone-project-in-more-than-one-folder)** -* **[Execution environment](#execution-environment)** -* **[Usage example](#usage-example)** -* **[Local Execution](#local-execution)** -* **[About Commands to Execute](#about-commands-to-execute)** -* **[Limitations](#limitations)** -* **[Development](#development)** -* **[System Requirements](#system-requirements)** - - -## Allowed configuration files versions - -- 2.1 -- 2.2 - -## Build Chain Flows - -### Cross Pull request flow - -- It checks out the current project and reads the workflow information from the YAML file triggering the job. - - - It merges the TARGET_GROUP:PROJECT:TARGET_BRANCH into the SOURCE_GROUP:PROJECT:SOURCE_BRANCH from the pull request triggering the job. - > **_Warning:_** It will fail in case it can't be done automatically, properly informing to please resolve conflicts. - -- It recursively checks out the rest of the dependant projects defined in `definition-file`. - - - For each parent dependency: - - It will look for forked project belonging same github group as the one triggering the job. - - It will try to checkout SOURCE_GROUP:PROJECT:SOURCE_BRANCH. In case the it exists and it has a pull request over the TARGET_GROUP:PROJECT:TARGET_BRANCH it will check it out and will merge it with target branch. - - If previous checkout fails, it will try the same with TARGET_GROUP:PROJECT:SOURCE_BRANCH this time. - - If previous checkout fails, it will checkout TARGET_GROUP:PROJECT:TARGET_BRANCH. - > **_Warning:_** It will fail in case it can't be done automatically, properly informing to please resolve conflicts. - -- Once all the projects are checked out, it will run as many commands are defined in `before`, `after` or root level properties from `build` section for every parent dependency starting from the highest level of the hierarchy to the lowest one. - -- It will archive artifacts in case `archive-artifacts-path` input is defined. - -### Full Downstream flow - -- It checks out the current project and reads the workflow information from the YAML file triggering the job. - - - It merges the TARGET_GROUP:PROJECT:TARGET_BRANCH into the SOURCE_GROUP:PROJECT:SOURCE_BRANCH from the pull request triggering the job. - > **_Warning:_** It will fail in case it can't be done automatically, properly informing to please resolve conflicts. - -- It gets the full downstream project chain (the parents projects plus its children and their dependencies. At the end the whole chain) based on configuration file. -- It recursively checks out the rest of the dependant projects defined in `definition-file`. - - - For each parent dependency: - - It will look for forked project belonging same github group as the one triggering the job. - - It will try to checkout SOURCE_GROUP:PROJECT:SOURCE_BRANCH. In case the it exists and it has a pull request over the TARGET_GROUP:PROJECT:TARGET_BRANCH it will check it out and will merge it with target branch. - - If previous checkout fails, it will try the same with TARGET_GROUP:PROJECT:SOURCE_BRANCH this time. - - If previous checkout fails, it will checkout TARGET_GROUP:PROJECT:TARGET_BRANCH. - > **_Warning:_** It will fail in case it can't be done automatically, properly informing to please resolve conflicts. - -- Once all the projects are checked out, it will run as many commands are defined in `before`, `after` or root level properties from `build` section for every parent dependency starting from the highest level of the hierarchy to the lowest one. - -- It will archive artifacts in case `archive-artifacts-path` input is defined. - -### Single Pull Request flow - -- It checks out the current project and reads the workflow information from the YAML file triggering the job. - - - It merges the TARGET_GROUP:PROJECT:TARGET_BRANCH into the SOURCE_GROUP:PROJECT:SOURCE_BRANCH from the pull request triggering the job. - > **_Warning:_** It will fail in case it can't be done automatically, properly informing to please resolve conflicts. - -- Once the project from the event is checked out, it will run as many commands are defined in `before`, `after` or root level properties from `build` section. - -- It will archive artifacts in case `archive-artifacts-path` input is defined. - -### Branch flow - -- It checks out the whole tree from the `starting-project` project input and reads the workflow information from the YAML file triggering the job. - -- Once the projects from the branch are checked out, it will run as many commands are defined in `before`, `after` or root level properties from `build` section. - -- The flow will archive (in case the archiving is not skipped) a spreadsheet with the execution summary. - -## How to add it to your project(s) - -It is just to add the step (replacing dependencies and commands): - -``` -- name: Build Chain ${{ matrix.java-version }} - id: build-chain - uses: ginxo/github-action-build-chain@BXMSPROD-1025 - with: - definition-file: https://raw.githubusercontent.com/${GROUP}/droolsjbpm-build-bootstrap/${BRANCH}/.ci/pull-request-config.yaml - env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" -``` - -to your existing yaml flow definition or to create a new one. Do the same for the rest of the projects you need. - -> **_Note:_** The `@actions/checkout` step is not needed since is the tool the one which is going to handle what to checkout for every project in the chain. - -## Input Fields - -See [action.yml](action.yml) - -- **definition-file** (mandatory): `path to the file in filesystem | URL to the file`. [See more details](https://github.com/kiegroup/build-chain-configuration-reader#url-format) - - > Example: - > - > ``` - > definition-file: './folder/whatever_definition_file.yaml' - > definition-file: 'http://yourdomain.com/definition-file.yaml' - > definition-file: 'https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/main/.ci/pull-request-config.yaml' - > definition-file: 'https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/${BRANCH}/.ci/pull-request-config.yaml' - > definition-file: 'https://raw.githubusercontent.com/${GROUP}/droolsjbpm-build-bootstrap/${BRANCH}/.ci/pull-request-config.yaml' - > definition-file: 'https://raw.githubusercontent.com/${GROUP}/${PROJECT_NAME}/${BRANCH}/.ci/pull-request-config.yaml' - > ``` - -> **_Note:_** In case you use URL way, remember you should point the file content itself, so in case you want to use https://github.com/kiegroup/droolsjbpm-build-bootstrap/blob/a1efb55f17fd0fd9001b073c999e3fd2a80600a6/.ci/pull-request-config.yaml, `definition-file` value should be https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/a1efb55f17fd0fd9001b073c999e3fd2a80600a6/.ci/pull-request-config.yaml (Raw one for this case) or (using dynamic placeholders) https://raw.githubusercontent.com/${GROUP}/${PROJECT_NAME}/${BRANCH}/.ci/pull-request-config.yaml. - -- **flow-type** (optional. 'cross_pr' by default): The flow you want to execute. Possible values - - - cross_pr: executes the cross pull request flow - - full_downstream: executes the full downstream flow - - branch: executes the branch flow - - single_pr: executes the single pull request flow - -- **starting-project** (optional. the project triggering the job by default): The project you want start building from. It's not the same as the project triggering the job (which will remain the same), but the project to take tree from. For instance - - > ``` - > starting-project: 'groupX/projectX' // it will get project dependencies tree from 'groupX/projectX' - > starting-project: 'kiegroup/drools' // it will get project dependencies tree from 'kiegroup/drools' - > ``` - - > **_Note:_** You have to be sure the project tree to start building from, contains the project triggering the job. - -- **logger-level** (optional. 'info' by default): The log level. Possible values - - - info - - trace - - debug - - > ``` - > logger-level: 'info' - > logger-level: 'debug' - > ``` - -- **annotations-prefix** (optional. '' by default): The prefix to be shown on the Github Actions' Annotations title. - - > ``` - > annotations-prefix: "${{ matrix.java-version }}/${{ matrix.maven-version }}" - > annotations-prefix: "My Job Prefix" - > annotations-prefix: "Gradle Version ${{ matrix.gradle-version }}" - > annotations-prefix: "OS ${{ matrix.os }}" - > ``` - -- **additional-flags** (optional. '' by default): The chance to define additional flags for the execution, as it is done on the CLI side. Just semicolon (;) separated, like '--skipParallelCheckout;--skipExecution;-cct (mvn .\*)||\$1 -s settings.xml'. - - > ``` - > additional-flags: "--fullProjectDependencyTree" - > additional-flags: "--fullProjectDependencyTree;--skipParallelCheckout" - > additional-flags: "--skipParallelCheckout; --fullProjectDependencyTree" - > additional-flags: "--skipParallelCheckout; -cct (mvn .*)||$1 -s settings.xml" - > ``` - - > **_Note:_** It has a limitation, the flag values can't contain semicolons (;), otherwise it will be treated as a new flag. - -## Pre/Post sections - -It is possible to define pre and post sections in the definition-file. The idea is to have the chance to execute something before (`pre`) or after (`post`) project checkout and build command execution. - -### PRE - -``` -pre: string | multiline string -``` - -It will be executed even before checking out projects. - -#### Examples - -``` -pre: export VARIABLE_NAME=value -``` - -``` -pre: | - export VARIABLE_NAME=value - echo $VARIABLE_NAME -``` - -### POST - -``` -post: - success: string | multiline string - failure: string | multiline string - always: string | multiline string -``` - -It will be executed after executing all commands for every project and after archiving artifacts. The options are: - -- `success`: it will be executed in case there's no error during build execution. -- `failure`: it will be executed in case there's any error during build execution. -- `always`: it will be always executed. - -#### Examples - -``` -post: - success: echo 'final message in case of no errors' - failure: echo 'final message in case of any error' - always: echo 'final message always printed' -``` - -``` -post: - success: | - echo 'final message in case of no errors 1' - echo 'final message in case of no errors 2' - failure: | - echo 'final message in case of any error' - echo 'final message in case of any error 2' - always: | - echo 'final message always printed' - echo 'final message always printed 2' -``` - -## Archiving Artifacts - -The archive artifacts algorithm is basically copied from [actions/upload-artifact project](https://github.com/actions/upload-artifact) and (manually) transpiled to javascript. The usage is basically the same (the inputs are different named adding `archive-artifacts` prefix and the [Conditional Artifact Upload](https://github.com/actions/upload-artifact#conditional-artifact-upload) is not enabled), so why do we include this `archive artifacts` mechanism in this tool if it's already implemented by another tool? well, because this treats the archive artifacts mechanism for the whole build chain, so in case you define an `archive-artifacts-path` in a different project from the chain, all of them will be uploaded. If you are wondering if you are able to use `actions/upload-artifact` instead of the one we propose, the answer is 'yes', just take into consideration the artifacts will be archived based on the definition from the project triggering the job. - -The `archive-artifacts-path` input brings you the chance to specify if the path will be uploaded in case of build success (default), in case of failure or always for every single path. For example specifying something like `path/to/artifact/world.txt@failure` will archive `path/to/artifact/world.txt` in case of execution failure. You can check [Upload for different execution results](https://github.com/actions/upload-artifact#upload-for-different-execution-results). - -### Upload an Individual File - -```yaml -archive-artifacts: - path: **/dashbuilder-runtime.war -``` - -### Upload an Entire Directory - -```yaml -archive-artifacts: - path: path/to/artifact-folder/ -``` - -### Upload using a Wildcard Pattern - -```yaml -archive-artifacts: - path: path/**/[abc]rtifac?/* -``` - -### Upload using Multiple Paths and Exclusions - -```yaml -archive-artifacts: - path: | - path/output/bin/ - path/output/test-results - !path/**/*.tmp -``` - -### Upload for different execution results - -This is something additional to [@actions/glob](https://github.com/actions/toolkit/tree/main/packages/glob) - -```yaml -archive-artifacts: - path: | - path/output/bin/ - path2/output2/bin2/@success - path/output/test-results@failure - !path/**/*.tmp@always -``` - -- will upload `path/output/bin/` just in case of `success` -- will upload `path2/output2/bin2/` just in case of `success` -- will upload `path/output/test-results` just in case of `failure` -- will upload `!path/**/*.tmp` in every case - -### Path Wildcards - -For supported wildcards along with behavior and documentation, see [@actions/glob](https://github.com/actions/toolkit/tree/main/packages/glob) which is used internally to search for files. - -If a wildcard pattern is used, the path hierarchy will be preserved after the first wildcard pattern. - -``` - path/to/*/directory/foo?.txt => - ∟ path/to/some/directory/foo1.txt - ∟ path/to/some/directory/foo2.txt - ∟ path/to/other/directory/foo1.txt - - would be flattened and uploaded as => - ∟ some/directory/foo1.txt - ∟ some/directory/foo2.txt - ∟ other/directory/foo1.txt -``` - -If multiple paths are provided as input, the least common ancestor of all the search paths will be used as the root directory of the artifact. Exclude paths do not effect the directory structure. - -Relative and absolute file paths are both allowed. Relative paths are rooted against the current working directory. Paths that begin with a wildcard character should be quoted to avoid being interpreted as YAML aliases. - -The [@actions/artifact](https://github.com/actions/toolkit/tree/main/packages/artifact) package is used internally to handle most of the logic around uploading an artifact. There is extra documentation around upload limitations and behavior in the toolkit repository that is worth checking out. - -### Customization if no files are found - -If a path (or paths), result in no files being found for the artifact, the action will succeed but print out a warning. In certain scenarios it may be desirable to fail the action or suppress the warning. The `if-no-files-found` option allows you to customize the behavior of the action if no files are found. - -```yaml -archive-artifacts: - path: path/to/artifact/ - if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` -``` - -### Conditional Artifact Upload - -not supported (yet) - -### Uploading without artifact name - -You can upload an artifact with or without specifying a name - -```yaml -archive-artifacts: - name: my-artifacts - path: **/dashbuilder-runtime.war -``` - -If not provided, `artifact` will be used as the default name which will manifest itself in the UI after upload. - -### Uploading to the same artifact - -Each artifact behaves as a file share. Uploading to the same artifact multiple times in the same workflow can overwrite and append already uploaded files - -```yaml -# Project A -archive-artifacts: - path: world.txt -``` - -```yaml -# Project B -archive-artifacts: - path: extra-file.txt -``` - -```yaml -# Project C -archive-artifacts: - path: world.txt -``` - -With the following example, the available artifact (named `artifact` which is the default if no name is provided) would contain both `world.txt` and `extra-file.txt`. - -### Environment Variables and Tilde Expansion - -You can use `~` in the path input as a substitute for `$HOME`. Basic tilde expansion is supported. - -```yaml -archive-artifacts: - path: "~/new/**/*" -``` - -### archive-artifacts dependencies usage - -The idea of the property `dependencies` is to allow to define from the project triggering the job which artifacts you want to archive from the whole chain. Possible values: - -- `none` no artifact from its dependencies will be uploaded, no matter what the dependencies projects define. -- `all` all artifacts from its dependencies will be uploaded, depending on what the dependencies define. -- `list of projects` define which of the projects in the chain will be treated to upload artifacts, depending on what the dependencies define. - -```yaml -archive-artifacts: - path: "~/new/**/*" - dependencies: "none" -``` - -```yaml -archive-artifacts: - path: "~/new/**/*" - dependencies: "all" -``` - -```yaml -archive-artifacts: - path: "~/new/**/*" - dependencies: | - projectX - projectY -``` - -## Where does the upload go? - -In the top right corner of a workflow run, once the run is over, if you used this action, there will be a `Artifacts` dropdown which you can download items from. Here's a screenshot of what it looks like
- - -There is a trashcan icon that can be used to delete the artifact. This icon will only appear for users who have write permissions to the repository. - -## How to clone project in more than one folder - -It is possible to clone project in more than one folder specifying `clone` field. For example: - -``` - - project: kiegroup/appformer - clone: - - appformer-integration-test - - folderx/appformer-unit-test -``` - -will clone the `kiegroup/appformer` in the `ROOT_FOLDER/PROJECT_FOLDER` and additionally will clone the project folder to `ROOT_FOLDER/PROJECT_FOLDER/appformer-integration-test` and `ROOT_FOLDER/PROJECT_FOLDER/folderx/appformer-unit-test` - -Another example would be: - -``` - - project: group/projectx - clone: another-folder -``` - -will clone the `group/projectx` in the `ROOT_FOLDER/PROJECT_FOLDER` and additionally will clone the project folder to `ROOT_FOLDER/PROJECT_FOLDER/another-folder` - - -## Execution environment - -The environment execution definition is part of the workflow (the `.yml` file) and it depends on the commands you require to execute. If you require to execute maven commands you will have to add the `actions/setup-java@v1` with its java version, or in case you need python commands `actions/setup-python` is the one. You can find different examples in https://github.com/YOURGROUP/YOURPROJECT/actions/new. - -It could be the case where you require a very specific environment to execute your stuff as it is the case for [python3-cekit](https://github.com/kiegroup/github-action-build-chain/tree/python3-cekit). Feel free to propose the environment you need as a pull request to this project: - -- Create a branch based on `python3-cekit` one -- Modify [the Dockerfile from there](https://github.com/kiegroup/github-action-build-chain/blob/python3-cekit/Dockerfile) - -Current environments: - -- **python3-cekit**: python3 + python cekit library + docker + nodejs + yarn latest stable release [Dockerfile](https://github.com/kiegroup/github-action-build-chain/blob/python3-cekit/Dockerfile) - -## Usage example - -Considering the projects hierarchy: - -![Project hierarchy](/docs/project-hierarchy.png) - -You can check how to define build definition files from [Build Chain Configuration Reader documentation](https://github.com/kiegroup/build-chain-configuration-reader) - -### Mapping - -Let's suppose - -``` -- project: E - dependencies: - - project: D - mapping: - dependencies: - default: - - source: 7.x - target: main - C: - - source: main - target: 7.x - - source: 7.x - target: 7.x - D: - - source: main - target: 7.x - - source: 7.x - target: 7.x - dependant: - default: - - source: main - target: 7.x - exclude: - - A - - B -``` - -#### mapping.dependencies - -It is used to define branch mapping between E and its dependencies in case `E` is `startingProject`/`projectTriggeringTheJob`. - -In case the `E:7.x` branch build or PR is triggered for this `7.x` target branch: - -- A: no mapping at all, so `7.x` (straight mapping) (since it is excluded) -- B: no mapping at all, so `7.x` (straight mapping) (since it is excluded) -- C:`7.x` (due to `mapping.dependencies.C` source `7.x` mapping) -- D:`7.x` (due to `mapping.dependencies.D` source `7.x` mapping) -- The rest (F,G,H,...): `main` (since `mapping.dependencies.default` mapping defined for source: `7.x`) - -In case the `E:main` branch build or PR is triggered for this `main` target branch: - -- A: no mapping at all, so `main` (straight mapping) (since it is excluded) -- B: no mapping at all, so `main` (straight mapping) (since it is excluded) -- C:`7.x` (due to `mapping.dependencies.C` source `main` mapping) -- D:`7.x` (due to `mapping.dependencies.C` source `main` mapping) -- The rest (F,G,H,...): `main` (since there's no mapping defined for default main branch) - -In case the `E:anyotherbranch` branch build or PR is triggered for this `anyotherbranch` target branch (being `anyotherbranch` whatever the branch name, except `7.x` or `main`): - -- No mapping at all, just straight mapping to `anyotherbranch`. - -#### mapping.dependant - -It is used to define branch mapping between the rest of the projects and project A in case `E` is NOT `startingProject`/`projectTriggeringTheJob`. - -In case the `A:7.x` or any other (except `main`) branch build or PR is triggered -> `E:7.x` will be taken (since there's not `mapping.dependant` for `7.x` source) -In case the `A:main` branch build or PR is triggered -> `E:7.x` (due to `mapping.dependant.default` mapping) - -## Docker build - -You can build the `github-action-build-chain` image locally with just executing docker command: - -``` -docker build . -``` - -In case you want to build it for a different openjdk version you just specify a `--build-arg OPENJDK_VERSION` argument: - -``` -docker build --build-arg OPENJDK_VERSION=11 . -``` - -## Local execution - -It's possible to use this tool locally, just follow this steps - -``` -$ npm install -g @kie/build-chain-action -$ build-chain help -Usage: build-chain [options] [command] - -A CLI tool to perform the build chain github actions - -Options: - -h, --help display help for command - -Commands: - build Execute different flows - tools A bunch of utility tools - help [command] display help for command -``` - -either `sudo` and `env GITHUB_TOKEN=...` are optional depending on your local setup. - -> Keep in mind: Whenever the tool is executed from a github check run, the `Printing local execution command` section is printed with the exact command you could copy/paste in order to reproduce it locally. - -### build command - -The build command is used to execute the different flows locally - -```shell -$ build-chain build help -Usage: build-chain build [options] [command] - -Execute different flows - -Options: - -h, --help display help for command - -Commands: - cross_pr [options] Execute cross pull request build chain workflow - full_downstream [options] Execute full downstream build chain workflow - single_pr [options] Execute single pull request build chain workflow - branch [options] Execute branch build chain workflow - help [command] display help for command -``` - -### build command: cross_pr - -Execute pull-request flow - -```shell -$ build-chain build cross_pr --help -Usage: build-chain build cross_pr [options] - -Execute cross pull request build chain workflow - -Options: - -u, --url pull request event url - -p, --startProject The project to start the build from - -f, --defintionFile The definition file, either a path to the filesystem or a URL to it - -o, --outputFolder The folder path to store projects. Default is of the format 'build_chain_yyyymmddHHMMss' (default: - "build_chain_202211229567") - --token The GITHUB_TOKEN. It can be set as an environment variable instead - -d, --debug Set debugging mode to true (default: false) - --skipExecution A flag to skip execution and artifacts archiving for all projects. Overrides skipProjectExecution (default: - false) - --skipProjectExecution A flag to skip execution and artifacts archiving for certain projects only - --skipParallelCheckout Checkout the project sequentially (default: false) - -t, --customCommandTreatment Each exp must be of the form . Regex defines the regular expression for what you want - to replace with the ReplacementEx - --skipProjectCheckout A list of projects to skip checkout. - --skipCheckout skip checkout for all projects. Overrides skipProjectCheckout (default: false) - -h, --help display help for command -``` - -Example: - -```shell -$ build-chain build cross_pr -f https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/main/.ci/pull-request-config.yaml -u https://github.com/kiegroup/kie-wb-distributions/pull/1068 -``` - -### build command: full_downstream - -Execute full downstream (fdb) flow - -```shell -$ build-chain build full_downstream --help -Usage: build-chain build full_downstream [options] - -Execute full downstream build chain workflow - -Options: - -u, --url pull request event url - -p, --startProject The project to start the build from - -f, --defintionFile The definition file, either a path to the filesystem or a URL to it - -o, --outputFolder The folder path to store projects. Default is of the format 'build_chain_yyyymmddHHMMss' (default: - "build_chain_2022112295741") - --token The GITHUB_TOKEN. It can be set as an environment variable instead - -d, --debug Set debugging mode to true (default: false) - --skipExecution A flag to skip execution and artifacts archiving for all projects. Overrides skipProjectExecution (default: - false) - --skipProjectExecution A flag to skip execution and artifacts archiving for certain projects only - --skipParallelCheckout Checkout the project sequentially (default: false) - -t, --customCommandTreatment Each exp must be of the form . Regex defines the regular expression for what you want - to replace with the ReplacementEx - --skipProjectCheckout A list of projects to skip checkout. - --skipCheckout skip checkout for all projects. Overrides skipProjectCheckout (default: false) - -h, --help display help for command -``` - -Example: - -```shell -$ build-chain build full_downstream -f https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/main/.ci/pull-request-config.yaml -u https://github.com/kiegroup/kie-wb-distributions/pull/1068 -``` - -### build command: single_pr - -Execute single pr flow - -```shell -$ build-chain build single_pr --help -Usage: build-chain build single_pr [options] - -Execute single pull request build chain workflow - -Options: - -u, --url pull request event url - -p, --startProject The project to start the build from - -f, --defintionFile The definition file, either a path to the filesystem or a URL to it - -o, --outputFolder The folder path to store projects. Default is of the format 'build_chain_yyyymmddHHMMss' (default: - "build_chain_2022112295912") - --token The GITHUB_TOKEN. It can be set as an environment variable instead - -d, --debug Set debugging mode to true (default: false) - --skipExecution A flag to skip execution and artifacts archiving for all projects. Overrides skipProjectExecution (default: - false) - --skipProjectExecution A flag to skip execution and artifacts archiving for certain projects only - --skipParallelCheckout Checkout the project sequentially (default: false) - -t, --customCommandTreatment Each exp must be of the form . Regex defines the regular expression for what you want - to replace with the ReplacementEx - --skipProjectCheckout A list of projects to skip checkout. - --skipCheckout skip checkout for all projects. Overrides skipProjectCheckout (default: false) - -h, --help display help for command -``` - -Example: - -```shell -$ build-chain build single_pr -f https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/main/.ci/pull-request-config.yaml -u https://github.com/kiegroup/kie-wb-distributions/pull/1068 -``` - -### build command: branch - -Execute branch flow - -```shell -$ build-chain build branch --help -Usage: build-chain build branch [options] - -Execute branch build chain workflow - -Options: - -p, --startProject The project to start the build from - -b, --branch The branch to get the project from - --fullProjectDependencyTree Checks out and execute the whole tree instead of the upstream build (default: false) - -c, --command The command(s) to execute for every project. This will override definition file configuration (just - dependency tree will be taken into account) - -g, --group The group to execute flow. It will take it from project argument in case it's not specified - -f, --defintionFile The definition file, either a path to the filesystem or a URL to it - -o, --outputFolder The folder path to store projects. Default is of the format 'build_chain_yyyymmddHHMMss' (default: - "build_chain_202211221013") - --token The GITHUB_TOKEN. It can be set as an environment variable instead - -d, --debug Set debugging mode to true (default: false) - --skipExecution A flag to skip execution and artifacts archiving for all projects. Overrides skipProjectExecution (default: - false) - --skipProjectExecution A flag to skip execution and artifacts archiving for certain projects only - --skipParallelCheckout Checkout the project sequentially (default: false) - -t, --customCommandTreatment Each exp must be of the form . Regex defines the regular expression for what you want - to replace with the ReplacementEx - --skipProjectCheckout A list of projects to skip checkout. - --skipCheckout skip checkout for all projects. Overrides skipProjectCheckout (default: false) - -h, --help display help for command -``` - -Example: - -```shell -$ build-chain build branch -f https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/main/.ci/pull-request-config.yaml -p=kiegroup/lienzo-tests -b=main -``` - -#### Custom Command Replacement - -It is possible to define custom expression to replace commands. The expression structure is `RegEx||ReplacementEx` where: - -- `RegEx`: you can define regular expression with or without literals. See [Javascript RegExp](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) -- `||` just split `RegEx` from `ReplacementEx` -- `ReplacementEx`: See [Javascript String replacement](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace) - -So basically at left side of `||` you define the regular expression where you want to apply string replacement from right side. For example, considering command `mvn clean install` in case we apply `(^mvn .*)||$1 -s ~/.m2/settings.xml` the final command will be `mvn clean install -s ~/.m2/settings.xml` - -### tool command - -There are some utility tools as well - -```shell -$ build-chain tools help -Usage: build-chain tools [options] [command] - -A bunch of utility tools - -Options: - -h, --help display help for command - -Commands: - project-list [options] Prints a ordered by precendence list of projects - help [command] display help for command -``` - -## About Commands to Execute - -Just consider the library used behind the scenes in order to execute commands is [@actions/exec](https://github.com/actions/toolkit/tree/main/packages/exec), this library has a limitation at https://github.com/actions/toolkit/blob/b5f31bb5a25d129441c294fc81ba7f92f3e978ba/packages/exec/src/exec.ts#L27 where it tries to decide the "tool" to be executed, so in case you need to execute bash or windows commands like conditionals you should use it like this - -### Bash -`bash -c "my command"` -`bash -c "if true; then echo 'it's TRUE'; else echo 'it's FALSE'; fi"` - -### Windows -`cmd /c "my command"` - -> **_Note:_** thanks to https://github.com/actions/toolkit/issues/461#issuecomment-743750804 - -# Limitations - -### Zipped Artifact Downloads - -During a workflow run, files are uploaded and downloaded individually using the `upload-artifact` and `download-artifact` actions. However, when a workflow run finishes and an artifact is downloaded from either the UI or through the [download api](https://developer.github.com/v3/actions/artifacts/#download-an-artifact), a zip is dynamically created with all the file contents that were uploaded. There is currently no way to download artifacts after a workflow run finishes in a format other than a zip or to download artifact contents individually. One of the consequences of this limitation is that if a zip is uploaded during a workflow run and then downloaded from the UI, there will be a double zip created. - -### Permission Loss - -:exclamation: File permissions are not maintained during artifact upload :exclamation: For example, if you make a file executable using `chmod` and then upload that file, post-download the file is no longer guaranteed to be set as an executable. - -### Case Insensitive Uploads - -:exclamation: File uploads are case insensitive :exclamation: If you upload `A.txt` and `a.txt` with the same root path, only a single file will be saved and available during download. - -## About Commands to Execute - -Just consider the library used behind the scenes in order to execute commands is [@actions/exec](https://github.com/actions/toolkit/tree/main/packages/exec), this library has a limitation at https://github.com/actions/toolkit/blob/b5f31bb5a25d129441c294fc81ba7f92f3e978ba/packages/exec/src/exec.ts#L27 where it tries to decide the "tool" to be executed, so in case you need to execute bash or windows commands like conditionals you should use it like this - -### Bash -`bash -c "my command"` -`bash -c "if true; then echo 'it's TRUE'; else echo 'it's FALSE'; fi"` - -### Windows -`cmd /c "my command"` - -> **_Note:_** thanks to https://github.com/actions/toolkit/issues/461#issuecomment-743750804 - -# Limitations - -### Zipped Artifact Downloads - -During a workflow run, files are uploaded and downloaded individually using the `upload-artifact` and `download-artifact` actions. However, when a workflow run finishes and an artifact is downloaded from either the UI or through the [download api](https://developer.github.com/v3/actions/artifacts/#download-an-artifact), a zip is dynamically created with all the file contents that were uploaded. There is currently no way to download artifacts after a workflow run finishes in a format other than a zip or to download artifact contents individually. One of the consequences of this limitation is that if a zip is uploaded during a workflow run and then downloaded from the UI, there will be a double zip created. - -### Permission Loss - -:exclamation: File permissions are not maintained during artifact upload :exclamation: For example, if you make a file executable using `chmod` and then upload that file, post-download the file is no longer guaranteed to be set as an executable. - -### Case Insensitive Uploads - -:exclamation: File uploads are case insensitive :exclamation: If you upload `A.txt` and `a.txt` with the same root path, only a single file will be saved and available during download. - -## Github limitations - -### Using secrets on a forked project Github Action - -According to documentation, see [Workflows in forked repositories](https://docs.github.com/en/github-ae@latest/actions/using-workflows/events-that-trigger-workflows#workflows-in-forked-repositories) - -> **_Note:_** With the exception of GITHUB_TOKEN, secrets are not passed to the runner when a workflow is triggered from a forked repository. The GITHUB_TOKEN has read-only permissions in forked repositories. - -Nothing but `GITHUB_TOKEN` secret can be used from a forked project Github Action workflow. So cases like this will store nothing on `${{ env.GITHUB_TOKEN_GOOD_BAD }}`, `${{ env.CIFS_ZID_USER }}` or `${{ env.CIFS_ZID_KEY }}` but it will properly store `GITHUB_TOKEN` on `${{ env.GITHUB_TOKEN_GOOD}}` - -``` - - name: "Run build-chain" - id: build-chain - uses: kiegroup/github-action-build-chain@main - with: - definition-file: whatever-the-file-url/path - env: - GITHUB_TOKEN_GOOD_BAD: "${{ secrets.MY_GH_TOKEN }}" - GITHUB_TOKEN_GOOD: "${{ secrets.GITHUB_TOKEN }}" - CIFS_ZID_USER: "${{ secrets.CIFS_ZID_USER }}" - CIFS_ZID_KEY: "${{ secrets.CIFS_ZID_KEY }}" -``` - -> **_Note:_** Just remember this is not a problem from the tool itself but a limitation from Github Actions in order to avoid exposing sensitive information. - -### inputs usage in runs.image from action.yml - -> Just in case you are interested in adapting this code or in case you want to create your own tool. - -It's not possible to use expressions like `image: "docker://kie-group:github-action-build-chain:{{ inputs.build-chain-build-system }}"`. This way it would be easy to dynamically select image to run with a simple `with` input from flow yml file and we could skip errors like [matrix in uses](#matrix-in-uses). -Just because of this we have to maintain different Dockerfile definitions in different branches and to tag every branch for every version we release like `python3-cekit-v1`. - -## Development - -### Execute CLI - -``` -npm run install -npm run build:cli -./build/index.js build ... -``` - -### build-chain-configuration-reader dependency - -The definition files are read thanks to [build-chain-configuration-reader](https://github.com/kiegroup/build-chain-configuration-reader) library so in case you want to modify something from there it's easier if you just [npm link](https://docs.npmjs.com/cli/link) it: - -- clone repository and browse to the folder -- `npm install` it -- (`sudo`) `npm link` -- and then from this project folder execute `npm link @kie/build-chain-configuration-reader` - -### Testing - -#### unit tests -To test your changes you can run -``` -npm test -``` -And to test with coverage report you can run -``` -npm run test:report -``` -#### e2e tests - -To run e2e tests you need [Docker](https://docs.docker.com/get-docker/). Once you have setup docker you can run -``` -npm run test:e2e -``` -To generate log files containing the raw output of the worflows executed during e2e tests you can run -``` -ACT_LOG=true npm run test:e2e -``` - -# System Requirements - -* **Git** >=2.28 -* **NodeJS** >= 14 - diff --git a/dist/index.js b/dist/index.js index 9c4dfeab..8275584e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,4 +1,4 @@ -(()=>{var __webpack_modules__={2605:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.create=void 0;const a=r(8802);function create(){return a.DefaultArtifactClient.create()}t.create=create},8802:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.DefaultArtifactClient=void 0;const o=n(r(2186));const p=r(183);const c=r(4354);const l=r(6327);const d=r(7398);const u=r(8538);const m=r(5686);const h=r(2222);const g=r(1017);class DefaultArtifactClient{static create(){return new DefaultArtifactClient}uploadArtifact(e,t,r,a){return s(this,void 0,void 0,(function*(){o.info(`Starting artifact upload\nFor more detailed logs during the artifact upload process, enable step-debugging: https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging`);d.checkArtifactName(e);const i=p.getUploadSpecification(e,r,t);const n={artifactName:e,artifactItems:[],size:0,failedItems:[]};const s=new c.UploadHttpClient;if(i.length===0){o.warning(`No files found that can be uploaded`)}else{const t=yield s.createArtifactInFileContainer(e,a);if(!t.fileContainerResourceUrl){o.debug(t.toString());throw new Error("No URL provided by the Artifact Service to upload an artifact to")}o.debug(`Upload Resource URL: ${t.fileContainerResourceUrl}`);o.info(`Container for artifact "${e}" successfully created. Starting upload of file(s)`);const r=yield s.uploadArtifactToFileContainer(t.fileContainerResourceUrl,i,a);o.info(`File upload process has finished. Finalizing the artifact upload`);yield s.patchArtifactSize(r.totalSize,e);if(r.failedItems.length>0){o.info(`Upload finished. There were ${r.failedItems.length} items that failed to upload`)}else{o.info(`Artifact has been finalized. All files have been successfully uploaded!`)}o.info(`\nThe raw size of all the files that were specified for upload is ${r.totalSize} bytes\nThe size of all the files that were uploaded is ${r.uploadSize} bytes. This takes into account any gzip compression used to reduce the upload size, time and storage\n\nNote: The size of downloaded zips can differ significantly from the reported size. For more information see: https://github.com/actions/upload-artifact#zipped-artifact-downloads \r\n`);n.artifactItems=i.map((e=>e.absoluteFilePath));n.size=r.uploadSize;n.failedItems=r.failedItems}return n}))}downloadArtifact(e,t,r){return s(this,void 0,void 0,(function*(){const a=new u.DownloadHttpClient;const i=yield a.listArtifacts();if(i.count===0){throw new Error(`Unable to find any artifacts for the associated workflow`)}const n=i.value.find((t=>t.name===e));if(!n){throw new Error(`Unable to find an artifact with the name: ${e}`)}const s=yield a.getContainerItems(n.name,n.fileContainerResourceUrl);if(!t){t=h.getWorkSpaceDirectory()}t=g.normalize(t);t=g.resolve(t);const p=m.getDownloadSpecification(e,s.value,t,(r===null||r===void 0?void 0:r.createArtifactFolder)||false);if(p.filesToDownload.length===0){o.info(`No downloadable files were found for the artifact: ${n.name}`)}else{yield l.createDirectoriesForArtifact(p.directoryStructure);o.info("Directory structure has been setup for the artifact");yield l.createEmptyFilesForArtifact(p.emptyFilesToCreate);yield a.downloadSingleArtifact(p.filesToDownload)}return{artifactName:e,downloadPath:p.rootDownloadLocation}}))}downloadAllArtifacts(e){return s(this,void 0,void 0,(function*(){const t=new u.DownloadHttpClient;const r=[];const a=yield t.listArtifacts();if(a.count===0){o.info("Unable to find any artifacts for the associated workflow");return r}if(!e){e=h.getWorkSpaceDirectory()}e=g.normalize(e);e=g.resolve(e);let i=0;while(i{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getRetentionDays=t.getWorkSpaceDirectory=t.getWorkFlowRunId=t.getRuntimeUrl=t.getRuntimeToken=t.getDownloadFileConcurrency=t.getInitialRetryIntervalInMilliseconds=t.getRetryMultiplier=t.getRetryLimit=t.getUploadChunkSize=t.getUploadFileConcurrency=void 0;function getUploadFileConcurrency(){return 2}t.getUploadFileConcurrency=getUploadFileConcurrency;function getUploadChunkSize(){return 8*1024*1024}t.getUploadChunkSize=getUploadChunkSize;function getRetryLimit(){return 5}t.getRetryLimit=getRetryLimit;function getRetryMultiplier(){return 1.5}t.getRetryMultiplier=getRetryMultiplier;function getInitialRetryIntervalInMilliseconds(){return 3e3}t.getInitialRetryIntervalInMilliseconds=getInitialRetryIntervalInMilliseconds;function getDownloadFileConcurrency(){return 2}t.getDownloadFileConcurrency=getDownloadFileConcurrency;function getRuntimeToken(){const e=process.env["ACTIONS_RUNTIME_TOKEN"];if(!e){throw new Error("Unable to get ACTIONS_RUNTIME_TOKEN env variable")}return e}t.getRuntimeToken=getRuntimeToken;function getRuntimeUrl(){const e=process.env["ACTIONS_RUNTIME_URL"];if(!e){throw new Error("Unable to get ACTIONS_RUNTIME_URL env variable")}return e}t.getRuntimeUrl=getRuntimeUrl;function getWorkFlowRunId(){const e=process.env["GITHUB_RUN_ID"];if(!e){throw new Error("Unable to get GITHUB_RUN_ID env variable")}return e}t.getWorkFlowRunId=getWorkFlowRunId;function getWorkSpaceDirectory(){const e=process.env["GITHUB_WORKSPACE"];if(!e){throw new Error("Unable to get GITHUB_WORKSPACE env variable")}return e}t.getWorkSpaceDirectory=getWorkSpaceDirectory;function getRetentionDays(){return process.env["GITHUB_RETENTION_DAYS"]}t.getRetentionDays=getRetentionDays},3549:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const r=[BigInt("0x0000000000000000"),BigInt("0x7F6EF0C830358979"),BigInt("0xFEDDE190606B12F2"),BigInt("0x81B31158505E9B8B"),BigInt("0xC962E5739841B68F"),BigInt("0xB60C15BBA8743FF6"),BigInt("0x37BF04E3F82AA47D"),BigInt("0x48D1F42BC81F2D04"),BigInt("0xA61CECB46814FE75"),BigInt("0xD9721C7C5821770C"),BigInt("0x58C10D24087FEC87"),BigInt("0x27AFFDEC384A65FE"),BigInt("0x6F7E09C7F05548FA"),BigInt("0x1010F90FC060C183"),BigInt("0x91A3E857903E5A08"),BigInt("0xEECD189FA00BD371"),BigInt("0x78E0FF3B88BE6F81"),BigInt("0x078E0FF3B88BE6F8"),BigInt("0x863D1EABE8D57D73"),BigInt("0xF953EE63D8E0F40A"),BigInt("0xB1821A4810FFD90E"),BigInt("0xCEECEA8020CA5077"),BigInt("0x4F5FFBD87094CBFC"),BigInt("0x30310B1040A14285"),BigInt("0xDEFC138FE0AA91F4"),BigInt("0xA192E347D09F188D"),BigInt("0x2021F21F80C18306"),BigInt("0x5F4F02D7B0F40A7F"),BigInt("0x179EF6FC78EB277B"),BigInt("0x68F0063448DEAE02"),BigInt("0xE943176C18803589"),BigInt("0x962DE7A428B5BCF0"),BigInt("0xF1C1FE77117CDF02"),BigInt("0x8EAF0EBF2149567B"),BigInt("0x0F1C1FE77117CDF0"),BigInt("0x7072EF2F41224489"),BigInt("0x38A31B04893D698D"),BigInt("0x47CDEBCCB908E0F4"),BigInt("0xC67EFA94E9567B7F"),BigInt("0xB9100A5CD963F206"),BigInt("0x57DD12C379682177"),BigInt("0x28B3E20B495DA80E"),BigInt("0xA900F35319033385"),BigInt("0xD66E039B2936BAFC"),BigInt("0x9EBFF7B0E12997F8"),BigInt("0xE1D10778D11C1E81"),BigInt("0x606216208142850A"),BigInt("0x1F0CE6E8B1770C73"),BigInt("0x8921014C99C2B083"),BigInt("0xF64FF184A9F739FA"),BigInt("0x77FCE0DCF9A9A271"),BigInt("0x08921014C99C2B08"),BigInt("0x4043E43F0183060C"),BigInt("0x3F2D14F731B68F75"),BigInt("0xBE9E05AF61E814FE"),BigInt("0xC1F0F56751DD9D87"),BigInt("0x2F3DEDF8F1D64EF6"),BigInt("0x50531D30C1E3C78F"),BigInt("0xD1E00C6891BD5C04"),BigInt("0xAE8EFCA0A188D57D"),BigInt("0xE65F088B6997F879"),BigInt("0x9931F84359A27100"),BigInt("0x1882E91B09FCEA8B"),BigInt("0x67EC19D339C963F2"),BigInt("0xD75ADABD7A6E2D6F"),BigInt("0xA8342A754A5BA416"),BigInt("0x29873B2D1A053F9D"),BigInt("0x56E9CBE52A30B6E4"),BigInt("0x1E383FCEE22F9BE0"),BigInt("0x6156CF06D21A1299"),BigInt("0xE0E5DE5E82448912"),BigInt("0x9F8B2E96B271006B"),BigInt("0x71463609127AD31A"),BigInt("0x0E28C6C1224F5A63"),BigInt("0x8F9BD7997211C1E8"),BigInt("0xF0F5275142244891"),BigInt("0xB824D37A8A3B6595"),BigInt("0xC74A23B2BA0EECEC"),BigInt("0x46F932EAEA507767"),BigInt("0x3997C222DA65FE1E"),BigInt("0xAFBA2586F2D042EE"),BigInt("0xD0D4D54EC2E5CB97"),BigInt("0x5167C41692BB501C"),BigInt("0x2E0934DEA28ED965"),BigInt("0x66D8C0F56A91F461"),BigInt("0x19B6303D5AA47D18"),BigInt("0x980521650AFAE693"),BigInt("0xE76BD1AD3ACF6FEA"),BigInt("0x09A6C9329AC4BC9B"),BigInt("0x76C839FAAAF135E2"),BigInt("0xF77B28A2FAAFAE69"),BigInt("0x8815D86ACA9A2710"),BigInt("0xC0C42C4102850A14"),BigInt("0xBFAADC8932B0836D"),BigInt("0x3E19CDD162EE18E6"),BigInt("0x41773D1952DB919F"),BigInt("0x269B24CA6B12F26D"),BigInt("0x59F5D4025B277B14"),BigInt("0xD846C55A0B79E09F"),BigInt("0xA72835923B4C69E6"),BigInt("0xEFF9C1B9F35344E2"),BigInt("0x90973171C366CD9B"),BigInt("0x1124202993385610"),BigInt("0x6E4AD0E1A30DDF69"),BigInt("0x8087C87E03060C18"),BigInt("0xFFE938B633338561"),BigInt("0x7E5A29EE636D1EEA"),BigInt("0x0134D92653589793"),BigInt("0x49E52D0D9B47BA97"),BigInt("0x368BDDC5AB7233EE"),BigInt("0xB738CC9DFB2CA865"),BigInt("0xC8563C55CB19211C"),BigInt("0x5E7BDBF1E3AC9DEC"),BigInt("0x21152B39D3991495"),BigInt("0xA0A63A6183C78F1E"),BigInt("0xDFC8CAA9B3F20667"),BigInt("0x97193E827BED2B63"),BigInt("0xE877CE4A4BD8A21A"),BigInt("0x69C4DF121B863991"),BigInt("0x16AA2FDA2BB3B0E8"),BigInt("0xF86737458BB86399"),BigInt("0x8709C78DBB8DEAE0"),BigInt("0x06BAD6D5EBD3716B"),BigInt("0x79D4261DDBE6F812"),BigInt("0x3105D23613F9D516"),BigInt("0x4E6B22FE23CC5C6F"),BigInt("0xCFD833A67392C7E4"),BigInt("0xB0B6C36E43A74E9D"),BigInt("0x9A6C9329AC4BC9B5"),BigInt("0xE50263E19C7E40CC"),BigInt("0x64B172B9CC20DB47"),BigInt("0x1BDF8271FC15523E"),BigInt("0x530E765A340A7F3A"),BigInt("0x2C608692043FF643"),BigInt("0xADD397CA54616DC8"),BigInt("0xD2BD67026454E4B1"),BigInt("0x3C707F9DC45F37C0"),BigInt("0x431E8F55F46ABEB9"),BigInt("0xC2AD9E0DA4342532"),BigInt("0xBDC36EC59401AC4B"),BigInt("0xF5129AEE5C1E814F"),BigInt("0x8A7C6A266C2B0836"),BigInt("0x0BCF7B7E3C7593BD"),BigInt("0x74A18BB60C401AC4"),BigInt("0xE28C6C1224F5A634"),BigInt("0x9DE29CDA14C02F4D"),BigInt("0x1C518D82449EB4C6"),BigInt("0x633F7D4A74AB3DBF"),BigInt("0x2BEE8961BCB410BB"),BigInt("0x548079A98C8199C2"),BigInt("0xD53368F1DCDF0249"),BigInt("0xAA5D9839ECEA8B30"),BigInt("0x449080A64CE15841"),BigInt("0x3BFE706E7CD4D138"),BigInt("0xBA4D61362C8A4AB3"),BigInt("0xC52391FE1CBFC3CA"),BigInt("0x8DF265D5D4A0EECE"),BigInt("0xF29C951DE49567B7"),BigInt("0x732F8445B4CBFC3C"),BigInt("0x0C41748D84FE7545"),BigInt("0x6BAD6D5EBD3716B7"),BigInt("0x14C39D968D029FCE"),BigInt("0x95708CCEDD5C0445"),BigInt("0xEA1E7C06ED698D3C"),BigInt("0xA2CF882D2576A038"),BigInt("0xDDA178E515432941"),BigInt("0x5C1269BD451DB2CA"),BigInt("0x237C997575283BB3"),BigInt("0xCDB181EAD523E8C2"),BigInt("0xB2DF7122E51661BB"),BigInt("0x336C607AB548FA30"),BigInt("0x4C0290B2857D7349"),BigInt("0x04D364994D625E4D"),BigInt("0x7BBD94517D57D734"),BigInt("0xFA0E85092D094CBF"),BigInt("0x856075C11D3CC5C6"),BigInt("0x134D926535897936"),BigInt("0x6C2362AD05BCF04F"),BigInt("0xED9073F555E26BC4"),BigInt("0x92FE833D65D7E2BD"),BigInt("0xDA2F7716ADC8CFB9"),BigInt("0xA54187DE9DFD46C0"),BigInt("0x24F29686CDA3DD4B"),BigInt("0x5B9C664EFD965432"),BigInt("0xB5517ED15D9D8743"),BigInt("0xCA3F8E196DA80E3A"),BigInt("0x4B8C9F413DF695B1"),BigInt("0x34E26F890DC31CC8"),BigInt("0x7C339BA2C5DC31CC"),BigInt("0x035D6B6AF5E9B8B5"),BigInt("0x82EE7A32A5B7233E"),BigInt("0xFD808AFA9582AA47"),BigInt("0x4D364994D625E4DA"),BigInt("0x3258B95CE6106DA3"),BigInt("0xB3EBA804B64EF628"),BigInt("0xCC8558CC867B7F51"),BigInt("0x8454ACE74E645255"),BigInt("0xFB3A5C2F7E51DB2C"),BigInt("0x7A894D772E0F40A7"),BigInt("0x05E7BDBF1E3AC9DE"),BigInt("0xEB2AA520BE311AAF"),BigInt("0x944455E88E0493D6"),BigInt("0x15F744B0DE5A085D"),BigInt("0x6A99B478EE6F8124"),BigInt("0x224840532670AC20"),BigInt("0x5D26B09B16452559"),BigInt("0xDC95A1C3461BBED2"),BigInt("0xA3FB510B762E37AB"),BigInt("0x35D6B6AF5E9B8B5B"),BigInt("0x4AB846676EAE0222"),BigInt("0xCB0B573F3EF099A9"),BigInt("0xB465A7F70EC510D0"),BigInt("0xFCB453DCC6DA3DD4"),BigInt("0x83DAA314F6EFB4AD"),BigInt("0x0269B24CA6B12F26"),BigInt("0x7D0742849684A65F"),BigInt("0x93CA5A1B368F752E"),BigInt("0xECA4AAD306BAFC57"),BigInt("0x6D17BB8B56E467DC"),BigInt("0x12794B4366D1EEA5"),BigInt("0x5AA8BF68AECEC3A1"),BigInt("0x25C64FA09EFB4AD8"),BigInt("0xA4755EF8CEA5D153"),BigInt("0xDB1BAE30FE90582A"),BigInt("0xBCF7B7E3C7593BD8"),BigInt("0xC399472BF76CB2A1"),BigInt("0x422A5673A732292A"),BigInt("0x3D44A6BB9707A053"),BigInt("0x759552905F188D57"),BigInt("0x0AFBA2586F2D042E"),BigInt("0x8B48B3003F739FA5"),BigInt("0xF42643C80F4616DC"),BigInt("0x1AEB5B57AF4DC5AD"),BigInt("0x6585AB9F9F784CD4"),BigInt("0xE436BAC7CF26D75F"),BigInt("0x9B584A0FFF135E26"),BigInt("0xD389BE24370C7322"),BigInt("0xACE74EEC0739FA5B"),BigInt("0x2D545FB4576761D0"),BigInt("0x523AAF7C6752E8A9"),BigInt("0xC41748D84FE75459"),BigInt("0xBB79B8107FD2DD20"),BigInt("0x3ACAA9482F8C46AB"),BigInt("0x45A459801FB9CFD2"),BigInt("0x0D75ADABD7A6E2D6"),BigInt("0x721B5D63E7936BAF"),BigInt("0xF3A84C3BB7CDF024"),BigInt("0x8CC6BCF387F8795D"),BigInt("0x620BA46C27F3AA2C"),BigInt("0x1D6554A417C62355"),BigInt("0x9CD645FC4798B8DE"),BigInt("0xE3B8B53477AD31A7"),BigInt("0xAB69411FBFB21CA3"),BigInt("0xD407B1D78F8795DA"),BigInt("0x55B4A08FDFD90E51"),BigInt("0x2ADA5047EFEC8728")];class CRC64{constructor(){this._crc=BigInt(0)}update(e){const t=typeof e==="string"?Buffer.from(e):e;let a=CRC64.flip64Bits(this._crc);for(const e of t){const t=Number(a&BigInt(255));a=r[t^e]^a>>BigInt(8)}this._crc=CRC64.flip64Bits(a)}digest(e){switch(e){case"hex":return this._crc.toString(16).toUpperCase();case"base64":return this.toBuffer().toString("base64");default:return this.toBuffer()}}toBuffer(){return Buffer.from([0,8,16,24,32,40,48,56].map((e=>Number(this._crc>>BigInt(e)&BigInt(255)))))}static flip64Bits(e){return(BigInt(1)<s(this,void 0,void 0,(function*(){return t.get(e,r)}))));const i=yield a.readBody();return JSON.parse(i)}))}getContainerItems(e,t){return s(this,void 0,void 0,(function*(){const r=new d.URL(t);r.searchParams.append("itemPath",e);const a=this.downloadHttpManager.getClient(0);const i=l.getDownloadHeaders("application/json");const n=yield v.retryHttpClientRequest("Get Container Items",(()=>s(this,void 0,void 0,(function*(){return a.get(r.toString(),i)}))));const o=yield n.readBody();return JSON.parse(o)}))}downloadSingleArtifact(e){return s(this,void 0,void 0,(function*(){const t=g.getDownloadFileConcurrency();p.debug(`Download file concurrency is set to ${t}`);const r=[...new Array(t).keys()];let a=0;let i=0;p.info(`Total number of files that will be downloaded: ${e.length}`);this.statusReporter.setTotalNumberOfFilesToProcess(e.length);this.statusReporter.start();yield Promise.all(r.map((t=>s(this,void 0,void 0,(function*(){while(a{throw new Error(`Unable to download the artifact: ${e}`)})).finally((()=>{this.statusReporter.stop();this.downloadHttpManager.disposeAndReplaceAllClients()}))}))}downloadIndividualFile(e,t,r){return s(this,void 0,void 0,(function*(){let a=0;const i=g.getRetryLimit();let n=o.createWriteStream(r);const c=l.getDownloadHeaders("application/json",true,true);const makeDownloadRequest=()=>s(this,void 0,void 0,(function*(){const r=this.downloadHttpManager.getClient(e);return yield r.get(t,c)}));const isGzip=e=>"content-encoding"in e&&e["content-encoding"]==="gzip";const backOff=r=>s(this,void 0,void 0,(function*(){a++;if(a>i){return Promise.reject(new Error(`Retry limit has been reached. Unable to download ${t}`))}else{this.downloadHttpManager.disposeAndReplaceClient(e);if(r){p.info(`Backoff due to too many requests, retry #${a}. Waiting for ${r} milliseconds before continuing the download`);yield l.sleep(r)}else{const e=l.getExponentialRetryTimeInMilliseconds(a);p.info(`Exponential backoff for retry #${a}. Waiting for ${e} milliseconds before continuing the download`);yield l.sleep(e)}p.info(`Finished backoff for retry #${a}, continuing with download`)}}));const isAllBytesReceived=(e,t)=>{if(!e||!t||process.env["ACTIONS_ARTIFACT_SKIP_DOWNLOAD_VALIDATION"]){p.info("Skipping download validation.");return true}return parseInt(e)===t};const resetDestinationStream=e=>s(this,void 0,void 0,(function*(){n.close();yield l.rmFile(e);n=o.createWriteStream(e)}));while(a<=i){let e;try{e=yield makeDownloadRequest()}catch(e){p.info("An error occurred while attempting to download a file");console.log(e);yield backOff();continue}let a=false;if(l.isSuccessStatusCode(e.message.statusCode)){try{const t=isGzip(e.message.headers);yield this.pipeResponseToFile(e,n,t);if(t||isAllBytesReceived(e.message.headers["content-length"],yield l.getFileSize(r))){return}else{a=true}}catch(e){a=true}}if(a||l.isRetryableStatusCode(e.message.statusCode)){p.info(`A ${e.message.statusCode} response code has been received while attempting to download an artifact`);resetDestinationStream(r);l.isThrottledStatusCode(e.message.statusCode)?yield backOff(l.tryGetRetryAfterValueTimeInMilliseconds(e.message.headers)):yield backOff()}else{l.displayHttpDiagnostics(e);return Promise.reject(new Error(`Unexpected http ${e.message.statusCode} during download for ${t}`))}}}))}pipeResponseToFile(e,t,r){return s(this,void 0,void 0,(function*(){yield new Promise(((a,i)=>{if(r){const r=c.createGunzip();e.message.on("error",(e=>{p.error(`An error occurred while attempting to read the response stream`);r.close();t.close();i(e)})).pipe(r).on("error",(e=>{p.error(`An error occurred while attempting to decompress the response stream`);t.close();i(e)})).pipe(t).on("close",(()=>{a()})).on("error",(e=>{p.error(`An error occurred while writing a downloaded file to ${t.path}`);i(e)}))}else{e.message.on("error",(e=>{p.error(`An error occurred while attempting to read the response stream`);t.close();i(e)})).pipe(t).on("close",(()=>{a()})).on("error",(e=>{p.error(`An error occurred while writing a downloaded file to ${t.path}`);i(e)}))}}));return}))}}t.DownloadHttpClient=DownloadHttpClient},5686:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getDownloadSpecification=void 0;const s=n(r(1017));function getDownloadSpecification(e,t,r,a){const i=new Set;const n={rootDownloadLocation:a?s.join(r,e):r,directoryStructure:[],emptyFilesToCreate:[],filesToDownload:[]};for(const o of t){if(o.path.startsWith(`${e}/`)||o.path.startsWith(`${e}\\`)){const t=s.normalize(o.path);const p=s.join(r,a?t:t.replace(e,""));if(o.itemType==="file"){i.add(s.dirname(p));if(o.fileLength===0){n.emptyFilesToCreate.push(p)}else{n.filesToDownload.push({sourceLocation:o.contentLocation,targetPath:p})}}}}n.directoryStructure=Array.from(i);return n}t.getDownloadSpecification=getDownloadSpecification},6527:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.HttpManager=void 0;const a=r(6327);class HttpManager{constructor(e,t){if(e<1){throw new Error("There must be at least one client")}this.userAgent=t;this.clients=new Array(e).fill(a.createHttpClient(t))}getClient(e){return this.clients[e]}disposeAndReplaceClient(e){this.clients[e].dispose();this.clients[e]=a.createHttpClient(this.userAgent)}disposeAndReplaceAllClients(){for(const[e]of this.clients.entries()){this.disposeAndReplaceClient(e)}}}t.HttpManager=HttpManager},7398:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.checkArtifactFilePath=t.checkArtifactName=void 0;const a=r(2186);const i=new Map([['"',' Double quote "'],[":"," Colon :"],["<"," Less than <"],[">"," Greater than >"],["|"," Vertical bar |"],["*"," Asterisk *"],["?"," Question mark ?"],["\r"," Carriage return \\r"],["\n"," Line feed \\n"]]);const n=new Map([...i,["\\"," Backslash \\"],["/"," Forward slash /"]]);function checkArtifactName(e){if(!e){throw new Error(`Artifact name: ${e}, is incorrectly provided`)}for(const[t,r]of n){if(e.includes(t)){throw new Error(`Artifact name is not valid: ${e}. Contains the following character: ${r}\n \nInvalid characters include: ${Array.from(n.values()).toString()}\n \nThese characters are not allowed in the artifact name due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems.`)}}a.info(`Artifact name is valid!`)}t.checkArtifactName=checkArtifactName;function checkArtifactFilePath(e){if(!e){throw new Error(`Artifact path: ${e}, is incorrectly provided`)}for(const[t,r]of i){if(e.includes(t)){throw new Error(`Artifact path is not valid: ${e}. Contains the following character: ${r}\n \nInvalid characters include: ${Array.from(i.values()).toString()}\n \nThe following characters are not allowed in files that are uploaded due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems.\n `)}}}t.checkArtifactFilePath=checkArtifactFilePath},755:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.retryHttpClientRequest=t.retry=void 0;const o=r(6327);const p=n(r(2186));const c=r(2222);function retry(e,t,r,a){return s(this,void 0,void 0,(function*(){let i=undefined;let n=undefined;let s=false;let c="";let l=undefined;let d=1;while(d<=a){try{i=yield t();n=i.message.statusCode;if(o.isSuccessStatusCode(n)){return i}if(n){l=r.get(n)}s=o.isRetryableStatusCode(n);c=`Artifact service responded with ${n}`}catch(e){s=true;c=e.message}if(!s){p.info(`${e} - Error is not retryable`);if(i){o.displayHttpDiagnostics(i)}break}p.info(`${e} - Attempt ${d} of ${a} failed with error: ${c}`);yield o.sleep(o.getExponentialRetryTimeInMilliseconds(d));d++}if(i){o.displayHttpDiagnostics(i)}if(l){throw Error(`${e} failed: ${l}`)}throw Error(`${e} failed: ${c}`)}))}t.retry=retry;function retryHttpClientRequest(e,t,r=new Map,a=c.getRetryLimit()){return s(this,void 0,void 0,(function*(){return yield retry(e,t,r,a)}))}t.retryHttpClientRequest=retryHttpClientRequest},9081:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.StatusReporter=void 0;const a=r(2186);class StatusReporter{constructor(e){this.totalNumberOfFilesToProcess=0;this.processedCount=0;this.largeFiles=new Map;this.totalFileStatus=undefined;this.displayFrequencyInMilliseconds=e}setTotalNumberOfFilesToProcess(e){this.totalNumberOfFilesToProcess=e;this.processedCount=0}start(){this.totalFileStatus=setInterval((()=>{const e=this.formatPercentage(this.processedCount,this.totalNumberOfFilesToProcess);a.info(`Total file count: ${this.totalNumberOfFilesToProcess} ---- Processed file #${this.processedCount} (${e.slice(0,e.indexOf(".")+2)}%)`)}),this.displayFrequencyInMilliseconds)}updateLargeFileStatus(e,t,r,i){const n=this.formatPercentage(r,i);a.info(`Uploaded ${e} (${n.slice(0,n.indexOf(".")+2)}%) bytes ${t}:${r}`)}stop(){if(this.totalFileStatus){clearInterval(this.totalFileStatus)}}incrementProcessedCount(){this.processedCount++}formatPercentage(e,t){return(e/t*100).toFixed(4).toString()}}t.StatusReporter=StatusReporter},606:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==="function"?__values(e):e[Symbol.iterator](),r={},verb("next"),verb("throw"),verb("return"),r[Symbol.asyncIterator]=function(){return this},r);function verb(t){r[t]=e[t]&&function(r){return new Promise((function(a,i){r=e[t](r),settle(a,i,r.done,r.value)}))}}function settle(e,t,r,a){Promise.resolve(a).then((function(t){e({value:t,done:r})}),t)}};Object.defineProperty(t,"__esModule",{value:true});t.createGZipFileInBuffer=t.createGZipFileOnDisk=void 0;const p=n(r(7147));const c=n(r(9796));const l=r(3837);const d=l.promisify(p.stat);const u=[".gzip",".zip",".tar.lz",".tar.gz",".tar.bz2",".7z"];function createGZipFileOnDisk(e,t){return s(this,void 0,void 0,(function*(){for(const t of u){if(e.endsWith(t)){return Number.MAX_SAFE_INTEGER}}return new Promise(((r,a)=>{const i=p.createReadStream(e);const n=c.createGzip();const o=p.createWriteStream(t);i.pipe(n).pipe(o);o.on("finish",(()=>s(this,void 0,void 0,(function*(){const e=(yield d(t)).size;r(e)}))));o.on("error",(e=>{console.log(e);a}))}))}))}t.createGZipFileOnDisk=createGZipFileOnDisk;function createGZipFileInBuffer(e){return s(this,void 0,void 0,(function*(){return new Promise((t=>s(this,void 0,void 0,(function*(){var r,a;const i=p.createReadStream(e);const n=c.createGzip();i.pipe(n);const s=[];try{for(var l=o(n),d;d=yield l.next(),!d.done;){const e=d.value;s.push(e)}}catch(e){r={error:e}}finally{try{if(d&&!d.done&&(a=l.return))yield a.call(l)}finally{if(r)throw r.error}}t(Buffer.concat(s))}))))}))}t.createGZipFileInBuffer=createGZipFileInBuffer},4354:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.UploadHttpClient=void 0;const o=n(r(7147));const p=n(r(2186));const c=n(r(8065));const l=n(r(2781));const d=r(6327);const u=r(2222);const m=r(3837);const h=r(7310);const g=r(4074);const v=r(9081);const y=r(6255);const b=r(6527);const w=r(606);const x=r(755);const E=m.promisify(o.stat);class UploadHttpClient{constructor(){this.uploadHttpManager=new b.HttpManager(u.getUploadFileConcurrency(),"@actions/artifact-upload");this.statusReporter=new v.StatusReporter(1e4)}createArtifactInFileContainer(e,t){return s(this,void 0,void 0,(function*(){const r={Type:"actions_storage",Name:e};if(t&&t.retentionDays){const e=u.getRetentionDays();r.RetentionDays=d.getProperRetention(t.retentionDays,e)}const a=JSON.stringify(r,null,2);const i=d.getArtifactUrl();const n=this.uploadHttpManager.getClient(0);const o=d.getUploadHeaders("application/json",false);const p=new Map([[y.HttpCodes.Forbidden,"Artifact storage quota has been hit. Unable to upload any new artifacts"],[y.HttpCodes.BadRequest,`The artifact name ${e} is not valid. Request URL ${i}`]]);const c=yield x.retryHttpClientRequest("Create Artifact Container",(()=>s(this,void 0,void 0,(function*(){return n.post(i,a,o)}))),p);const l=yield c.readBody();return JSON.parse(l)}))}uploadArtifactToFileContainer(e,t,r){return s(this,void 0,void 0,(function*(){const a=u.getUploadFileConcurrency();const i=u.getUploadChunkSize();p.debug(`File Concurrency: ${a}, and Chunk Size: ${i}`);const n=[];let o=true;if(r){if(r.continueOnError===false){o=false}}for(const r of t){const t=new h.URL(e);t.searchParams.append("itemPath",r.uploadFilePath);n.push({file:r.absoluteFilePath,resourceUrl:t.toString(),maxChunkSize:i,continueOnError:o})}const c=[...new Array(a).keys()];const l=[];let d=0;let m=0;let v=0;let y=0;let b=false;this.statusReporter.setTotalNumberOfFilesToProcess(t.length);this.statusReporter.start();yield Promise.all(c.map((e=>s(this,void 0,void 0,(function*(){while(do.createReadStream(t.file);m=false;u=a}else{p.debug(`A gzip file created for ${t.file} helped with reducing the size of the original file. The file will be uploaded using gzip.`);i=()=>{const e=new l.PassThrough;e.end(r);return e};u=r.byteLength}const n=yield this.uploadChunk(e,t.resourceUrl,i,0,u-1,u,m,a);if(!n){s=false;d+=u;p.warning(`Aborting upload for ${t.file} due to failure`)}return{isSuccess:s,successfulUploadSize:u-d,totalSize:a}}else{const r=yield c.file();p.debug(`${t.file} is greater than 64k in size. Creating a gzip file on-disk ${r.path} to potentially reduce the upload size`);u=yield w.createGZipFileOnDisk(t.file,r.path);let l=r.path;if(!i&&ao.createReadStream(l,{start:i,end:c,autoClose:false})),i,c,u,m,a);if(!g){s=false;d+=r;p.warning(`Aborting upload for ${t.file} due to failure`);h=true}else{if(u>8388608){this.statusReporter.updateLargeFileStatus(t.file,i,c,u)}}}p.debug(`deleting temporary gzip file ${r.path}`);yield r.cleanup();return{isSuccess:s,successfulUploadSize:u-d,totalSize:a}}}))}uploadChunk(e,t,r,a,i,n,o,c){return s(this,void 0,void 0,(function*(){const l=yield d.digestForStream(r());const m=d.getUploadHeaders("application/octet-stream",true,o,c,i-a+1,d.getContentRange(a,i,n),l);const uploadChunkRequest=()=>s(this,void 0,void 0,(function*(){const a=this.uploadHttpManager.getClient(e);return yield a.sendStream("PUT",t,r(),m)}));let h=0;const g=u.getRetryLimit();const incrementAndCheckRetryLimit=e=>{h++;if(h>g){if(e){d.displayHttpDiagnostics(e)}p.info(`Retry limit has been reached for chunk at offset ${a} to ${t}`);return true}return false};const backOff=t=>s(this,void 0,void 0,(function*(){this.uploadHttpManager.disposeAndReplaceClient(e);if(t){p.info(`Backoff due to too many requests, retry #${h}. Waiting for ${t} milliseconds before continuing the upload`);yield d.sleep(t)}else{const e=d.getExponentialRetryTimeInMilliseconds(h);p.info(`Exponential backoff for retry #${h}. Waiting for ${e} milliseconds before continuing the upload at offset ${a}`);yield d.sleep(e)}p.info(`Finished backoff for retry #${h}, continuing with upload`);return}));while(h<=g){let r;try{r=yield uploadChunkRequest()}catch(t){p.info(`An error has been caught http-client index ${e}, retrying the upload`);console.log(t);if(incrementAndCheckRetryLimit()){return false}yield backOff();continue}yield r.readBody();if(d.isSuccessStatusCode(r.message.statusCode)){return true}else if(d.isRetryableStatusCode(r.message.statusCode)){p.info(`A ${r.message.statusCode} status code has been received, will attempt to retry the upload`);if(incrementAndCheckRetryLimit(r)){return false}d.isThrottledStatusCode(r.message.statusCode)?yield backOff(d.tryGetRetryAfterValueTimeInMilliseconds(r.message.headers)):yield backOff()}else{p.error(`Unexpected response. Unable to upload chunk to ${t}`);d.displayHttpDiagnostics(r);return false}}return false}))}patchArtifactSize(e,t){return s(this,void 0,void 0,(function*(){const r=new h.URL(d.getArtifactUrl());r.searchParams.append("artifactName",t);const a={Size:e};const i=JSON.stringify(a,null,2);p.debug(`URL is ${r.toString()}`);const n=this.uploadHttpManager.getClient(0);const o=d.getUploadHeaders("application/json",false);const c=new Map([[y.HttpCodes.NotFound,`An Artifact with the name ${t} was not found`]]);const l=yield x.retryHttpClientRequest("Finalize artifact upload",(()=>s(this,void 0,void 0,(function*(){return n.patch(r.toString(),i,o)}))),c);yield l.readBody();p.debug(`Artifact ${t} has been successfully uploaded, total size in bytes: ${e}`)}))}}t.UploadHttpClient=UploadHttpClient},183:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getUploadSpecification=void 0;const s=n(r(7147));const o=r(2186);const p=r(1017);const c=r(7398);function getUploadSpecification(e,t,r){const a=[];if(!s.existsSync(t)){throw new Error(`Provided rootDirectory ${t} does not exist`)}if(!s.lstatSync(t).isDirectory()){throw new Error(`Provided rootDirectory ${t} is not a valid directory`)}t=p.normalize(t);t=p.resolve(t);for(let i of r){if(!s.existsSync(i)){throw new Error(`File ${i} does not exist`)}if(!s.lstatSync(i).isDirectory()){i=p.normalize(i);i=p.resolve(i);if(!i.startsWith(t)){throw new Error(`The rootDirectory: ${t} is not a parent directory of the file: ${i}`)}const r=i.replace(t,"");c.checkArtifactFilePath(r);a.push({absoluteFilePath:i,uploadFilePath:p.join(e,r)})}else{o.debug(`Removing ${i} from rawSearchResults because it is a directory`)}}return a}t.getUploadSpecification=getUploadSpecification},6327:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.digestForStream=t.sleep=t.getProperRetention=t.rmFile=t.getFileSize=t.createEmptyFilesForArtifact=t.createDirectoriesForArtifact=t.displayHttpDiagnostics=t.getArtifactUrl=t.createHttpClient=t.getUploadHeaders=t.getDownloadHeaders=t.getContentRange=t.tryGetRetryAfterValueTimeInMilliseconds=t.isThrottledStatusCode=t.isRetryableStatusCode=t.isForbiddenStatusCode=t.isSuccessStatusCode=t.getApiVersion=t.parseEnvNumber=t.getExponentialRetryTimeInMilliseconds=void 0;const n=i(r(6113));const s=r(7147);const o=r(2186);const p=r(6255);const c=r(5526);const l=r(2222);const d=i(r(3549));function getExponentialRetryTimeInMilliseconds(e){if(e<0){throw new Error("RetryCount should not be negative")}else if(e===0){return l.getInitialRetryIntervalInMilliseconds()}const t=l.getInitialRetryIntervalInMilliseconds()*l.getRetryMultiplier()*e;const r=t*l.getRetryMultiplier();return Math.trunc(Math.random()*(r-t)+t)}t.getExponentialRetryTimeInMilliseconds=getExponentialRetryTimeInMilliseconds;function parseEnvNumber(e){const t=Number(process.env[e]);if(Number.isNaN(t)||t<0){return undefined}return t}t.parseEnvNumber=parseEnvNumber;function getApiVersion(){return"6.0-preview"}t.getApiVersion=getApiVersion;function isSuccessStatusCode(e){if(!e){return false}return e>=200&&e<300}t.isSuccessStatusCode=isSuccessStatusCode;function isForbiddenStatusCode(e){if(!e){return false}return e===p.HttpCodes.Forbidden}t.isForbiddenStatusCode=isForbiddenStatusCode;function isRetryableStatusCode(e){if(!e){return false}const t=[p.HttpCodes.BadGateway,p.HttpCodes.GatewayTimeout,p.HttpCodes.InternalServerError,p.HttpCodes.ServiceUnavailable,p.HttpCodes.TooManyRequests,413];return t.includes(e)}t.isRetryableStatusCode=isRetryableStatusCode;function isThrottledStatusCode(e){if(!e){return false}return e===p.HttpCodes.TooManyRequests}t.isThrottledStatusCode=isThrottledStatusCode;function tryGetRetryAfterValueTimeInMilliseconds(e){if(e["retry-after"]){const t=Number(e["retry-after"]);if(!isNaN(t)){o.info(`Retry-After header is present with a value of ${t}`);return t*1e3}o.info(`Returned retry-after header value: ${t} is non-numeric and cannot be used`);return undefined}o.info(`No retry-after header was found. Dumping all headers for diagnostic purposes`);console.log(e);return undefined}t.tryGetRetryAfterValueTimeInMilliseconds=tryGetRetryAfterValueTimeInMilliseconds;function getContentRange(e,t,r){return`bytes ${e}-${t}/${r}`}t.getContentRange=getContentRange;function getDownloadHeaders(e,t,r){const a={};if(e){a["Content-Type"]=e}if(t){a["Connection"]="Keep-Alive";a["Keep-Alive"]="10"}if(r){a["Accept-Encoding"]="gzip";a["Accept"]=`application/octet-stream;api-version=${getApiVersion()}`}else{a["Accept"]=`application/json;api-version=${getApiVersion()}`}return a}t.getDownloadHeaders=getDownloadHeaders;function getUploadHeaders(e,t,r,a,i,n,s){const o={};o["Accept"]=`application/json;api-version=${getApiVersion()}`;if(e){o["Content-Type"]=e}if(t){o["Connection"]="Keep-Alive";o["Keep-Alive"]="10"}if(r){o["Content-Encoding"]="gzip";o["x-tfs-filelength"]=a}if(i){o["Content-Length"]=i}if(n){o["Content-Range"]=n}if(s){o["x-actions-results-crc64"]=s.crc64;o["x-actions-results-md5"]=s.md5}return o}t.getUploadHeaders=getUploadHeaders;function createHttpClient(e){return new p.HttpClient(e,[new c.BearerCredentialHandler(l.getRuntimeToken())])}t.createHttpClient=createHttpClient;function getArtifactUrl(){const e=`${l.getRuntimeUrl()}_apis/pipelines/workflows/${l.getWorkFlowRunId()}/artifacts?api-version=${getApiVersion()}`;o.debug(`Artifact Url: ${e}`);return e}t.getArtifactUrl=getArtifactUrl;function displayHttpDiagnostics(e){o.info(`##### Begin Diagnostic HTTP information #####\nStatus Code: ${e.message.statusCode}\nStatus Message: ${e.message.statusMessage}\nHeader Information: ${JSON.stringify(e.message.headers,undefined,2)}\n###### End Diagnostic HTTP information ######`)}t.displayHttpDiagnostics=displayHttpDiagnostics;function createDirectoriesForArtifact(e){return a(this,void 0,void 0,(function*(){for(const t of e){yield s.promises.mkdir(t,{recursive:true})}}))}t.createDirectoriesForArtifact=createDirectoriesForArtifact;function createEmptyFilesForArtifact(e){return a(this,void 0,void 0,(function*(){for(const t of e){yield(yield s.promises.open(t,"w")).close()}}))}t.createEmptyFilesForArtifact=createEmptyFilesForArtifact;function getFileSize(e){return a(this,void 0,void 0,(function*(){const t=yield s.promises.stat(e);o.debug(`${e} size:(${t.size}) blksize:(${t.blksize}) blocks:(${t.blocks})`);return t.size}))}t.getFileSize=getFileSize;function rmFile(e){return a(this,void 0,void 0,(function*(){yield s.promises.unlink(e)}))}t.rmFile=rmFile;function getProperRetention(e,t){if(e<0){throw new Error("Invalid retention, minimum value is 1.")}let r=e;if(t){const e=parseInt(t);if(!isNaN(e)&&esetTimeout(t,e)))}))}t.sleep=sleep;function digestForStream(e){return a(this,void 0,void 0,(function*(){return new Promise(((t,r)=>{const a=new d.default;const i=n.default.createHash("md5");e.on("data",(e=>{a.update(e);i.update(e)})).on("end",(()=>t({crc64:a.digest("base64"),md5:i.digest("base64")}))).on("error",r)}))}))}t.digestForStream=digestForStream},7351:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.issue=t.issueCommand=void 0;const s=n(r(2037));const o=r(5278);function issueCommand(e,t,r){const a=new Command(e,t,r);process.stdout.write(a.toString()+s.EOL)}t.issueCommand=issueCommand;function issue(e,t=""){issueCommand(e,{},t)}t.issue=issue;const p="::";class Command{constructor(e,t,r){if(!e){e="missing.command"}this.command=e;this.properties=t;this.message=r}toString(){let e=p+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let t=true;for(const r in this.properties){if(this.properties.hasOwnProperty(r)){const a=this.properties[r];if(a){if(t){t=false}else{e+=","}e+=`${r}=${escapeProperty(a)}`}}}}e+=`${p}${escapeData(this.message)}`;return e}}function escapeData(e){return o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(e){return o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}},2186:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getIDToken=t.getState=t.saveState=t.group=t.endGroup=t.startGroup=t.info=t.notice=t.warning=t.error=t.debug=t.isDebug=t.setFailed=t.setCommandEcho=t.setOutput=t.getBooleanInput=t.getMultilineInput=t.getInput=t.addPath=t.setSecret=t.exportVariable=t.ExitCode=void 0;const o=r(7351);const p=r(717);const c=r(5278);const l=n(r(2037));const d=n(r(1017));const u=r(5840);const m=r(8041);var h;(function(e){e[e["Success"]=0]="Success";e[e["Failure"]=1]="Failure"})(h=t.ExitCode||(t.ExitCode={}));function exportVariable(e,t){const r=c.toCommandValue(t);process.env[e]=r;const a=process.env["GITHUB_ENV"]||"";if(a){const t=`ghadelimiter_${u.v4()}`;if(e.includes(t)){throw new Error(`Unexpected input: name should not contain the delimiter "${t}"`)}if(r.includes(t)){throw new Error(`Unexpected input: value should not contain the delimiter "${t}"`)}const a=`${e}<<${t}${l.EOL}${r}${l.EOL}${t}`;p.issueCommand("ENV",a)}else{o.issueCommand("set-env",{name:e},r)}}t.exportVariable=exportVariable;function setSecret(e){o.issueCommand("add-mask",{},e)}t.setSecret=setSecret;function addPath(e){const t=process.env["GITHUB_PATH"]||"";if(t){p.issueCommand("PATH",e)}else{o.issueCommand("add-path",{},e)}process.env["PATH"]=`${e}${d.delimiter}${process.env["PATH"]}`}t.addPath=addPath;function getInput(e,t){const r=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(t&&t.required&&!r){throw new Error(`Input required and not supplied: ${e}`)}if(t&&t.trimWhitespace===false){return r}return r.trim()}t.getInput=getInput;function getMultilineInput(e,t){const r=getInput(e,t).split("\n").filter((e=>e!==""));return r}t.getMultilineInput=getMultilineInput;function getBooleanInput(e,t){const r=["true","True","TRUE"];const a=["false","False","FALSE"];const i=getInput(e,t);if(r.includes(i))return true;if(a.includes(i))return false;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e}\n`+`Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}t.getBooleanInput=getBooleanInput;function setOutput(e,t){process.stdout.write(l.EOL);o.issueCommand("set-output",{name:e},t)}t.setOutput=setOutput;function setCommandEcho(e){o.issue("echo",e?"on":"off")}t.setCommandEcho=setCommandEcho;function setFailed(e){process.exitCode=h.Failure;error(e)}t.setFailed=setFailed;function isDebug(){return process.env["RUNNER_DEBUG"]==="1"}t.isDebug=isDebug;function debug(e){o.issueCommand("debug",{},e)}t.debug=debug;function error(e,t={}){o.issueCommand("error",c.toCommandProperties(t),e instanceof Error?e.toString():e)}t.error=error;function warning(e,t={}){o.issueCommand("warning",c.toCommandProperties(t),e instanceof Error?e.toString():e)}t.warning=warning;function notice(e,t={}){o.issueCommand("notice",c.toCommandProperties(t),e instanceof Error?e.toString():e)}t.notice=notice;function info(e){process.stdout.write(e+l.EOL)}t.info=info;function startGroup(e){o.issue("group",e)}t.startGroup=startGroup;function endGroup(){o.issue("endgroup")}t.endGroup=endGroup;function group(e,t){return s(this,void 0,void 0,(function*(){startGroup(e);let r;try{r=yield t()}finally{endGroup()}return r}))}t.group=group;function saveState(e,t){o.issueCommand("save-state",{name:e},t)}t.saveState=saveState;function getState(e){return process.env[`STATE_${e}`]||""}t.getState=getState;function getIDToken(e){return s(this,void 0,void 0,(function*(){return yield m.OidcClient.getIDToken(e)}))}t.getIDToken=getIDToken;var g=r(1327);Object.defineProperty(t,"summary",{enumerable:true,get:function(){return g.summary}});var v=r(1327);Object.defineProperty(t,"markdownSummary",{enumerable:true,get:function(){return v.markdownSummary}});var y=r(2981);Object.defineProperty(t,"toPosixPath",{enumerable:true,get:function(){return y.toPosixPath}});Object.defineProperty(t,"toWin32Path",{enumerable:true,get:function(){return y.toWin32Path}});Object.defineProperty(t,"toPlatformPath",{enumerable:true,get:function(){return y.toPlatformPath}})},717:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.issueCommand=void 0;const s=n(r(7147));const o=n(r(2037));const p=r(5278);function issueCommand(e,t){const r=process.env[`GITHUB_${e}`];if(!r){throw new Error(`Unable to find environment variable for file command ${e}`)}if(!s.existsSync(r)){throw new Error(`Missing file at path: ${r}`)}s.appendFileSync(r,`${p.toCommandValue(t)}${o.EOL}`,{encoding:"utf8"})}t.issueCommand=issueCommand},8041:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.OidcClient=void 0;const i=r(6255);const n=r(5526);const s=r(2186);class OidcClient{static createHttpClient(e=true,t=10){const r={allowRetries:e,maxRetries:t};return new i.HttpClient("actions/oidc-client",[new n.BearerCredentialHandler(OidcClient.getRequestToken())],r)}static getRequestToken(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable")}return e}static getIDTokenUrl(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_URL"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable")}return e}static getCall(e){var t;return a(this,void 0,void 0,(function*(){const r=OidcClient.createHttpClient();const a=yield r.getJson(e).catch((e=>{throw new Error(`Failed to get ID Token. \n \n Error Code : ${e.statusCode}\n \n Error Message: ${e.result.message}`)}));const i=(t=a.result)===null||t===void 0?void 0:t.value;if(!i){throw new Error("Response json body do not have ID Token field")}return i}))}static getIDToken(e){return a(this,void 0,void 0,(function*(){try{let t=OidcClient.getIDTokenUrl();if(e){const r=encodeURIComponent(e);t=`${t}&audience=${r}`}s.debug(`ID token url is ${t}`);const r=yield OidcClient.getCall(t);s.setSecret(r);return r}catch(e){throw new Error(`Error message: ${e.message}`)}}))}}t.OidcClient=OidcClient},2981:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.toPlatformPath=t.toWin32Path=t.toPosixPath=void 0;const s=n(r(1017));function toPosixPath(e){return e.replace(/[\\]/g,"/")}t.toPosixPath=toPosixPath;function toWin32Path(e){return e.replace(/[/]/g,"\\")}t.toWin32Path=toWin32Path;function toPlatformPath(e){return e.replace(/[/\\]/g,s.sep)}t.toPlatformPath=toPlatformPath},1327:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.summary=t.markdownSummary=t.SUMMARY_DOCS_URL=t.SUMMARY_ENV_VAR=void 0;const i=r(2037);const n=r(7147);const{access:s,appendFile:o,writeFile:p}=n.promises;t.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";t.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";class Summary{constructor(){this._buffer=""}filePath(){return a(this,void 0,void 0,(function*(){if(this._filePath){return this._filePath}const e=process.env[t.SUMMARY_ENV_VAR];if(!e){throw new Error(`Unable to find environment variable for $${t.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`)}try{yield s(e,n.constants.R_OK|n.constants.W_OK)}catch(t){throw new Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}this._filePath=e;return this._filePath}))}wrap(e,t,r={}){const a=Object.entries(r).map((([e,t])=>` ${e}="${t}"`)).join("");if(!t){return`<${e}${a}>`}return`<${e}${a}>${t}`}write(e){return a(this,void 0,void 0,(function*(){const t=!!(e===null||e===void 0?void 0:e.overwrite);const r=yield this.filePath();const a=t?p:o;yield a(r,this._buffer,{encoding:"utf8"});return this.emptyBuffer()}))}clear(){return a(this,void 0,void 0,(function*(){return this.emptyBuffer().write({overwrite:true})}))}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){this._buffer="";return this}addRaw(e,t=false){this._buffer+=e;return t?this.addEOL():this}addEOL(){return this.addRaw(i.EOL)}addCodeBlock(e,t){const r=Object.assign({},t&&{lang:t});const a=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(a).addEOL()}addList(e,t=false){const r=t?"ol":"ul";const a=e.map((e=>this.wrap("li",e))).join("");const i=this.wrap(r,a);return this.addRaw(i).addEOL()}addTable(e){const t=e.map((e=>{const t=e.map((e=>{if(typeof e==="string"){return this.wrap("td",e)}const{header:t,data:r,colspan:a,rowspan:i}=e;const n=t?"th":"td";const s=Object.assign(Object.assign({},a&&{colspan:a}),i&&{rowspan:i});return this.wrap(n,r,s)})).join("");return this.wrap("tr",t)})).join("");const r=this.wrap("table",t);return this.addRaw(r).addEOL()}addDetails(e,t){const r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL()}addImage(e,t,r){const{width:a,height:i}=r||{};const n=Object.assign(Object.assign({},a&&{width:a}),i&&{height:i});const s=this.wrap("img",null,Object.assign({src:e,alt:t},n));return this.addRaw(s).addEOL()}addHeading(e,t){const r=`h${t}`;const a=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1";const i=this.wrap(a,e);return this.addRaw(i).addEOL()}addSeparator(){const e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){const e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,t){const r=Object.assign({},t&&{cite:t});const a=this.wrap("blockquote",e,r);return this.addRaw(a).addEOL()}addLink(e,t){const r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL()}}const c=new Summary;t.markdownSummary=c;t.summary=c},5278:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.toCommandProperties=t.toCommandValue=void 0;function toCommandValue(e){if(e===null||e===undefined){return""}else if(typeof e==="string"||e instanceof String){return e}return JSON.stringify(e)}t.toCommandValue=toCommandValue;function toCommandProperties(e){if(!Object.keys(e).length){return{}}return{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}}t.toCommandProperties=toCommandProperties},1514:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getExecOutput=t.exec=void 0;const o=r(1576);const p=n(r(8159));function exec(e,t,r){return s(this,void 0,void 0,(function*(){const a=p.argStringToArray(e);if(a.length===0){throw new Error(`Parameter 'commandLine' cannot be null or empty.`)}const i=a[0];t=a.slice(1).concat(t||[]);const n=new p.ToolRunner(i,t,r);return n.exec()}))}t.exec=exec;function getExecOutput(e,t,r){var a,i;return s(this,void 0,void 0,(function*(){let n="";let s="";const p=new o.StringDecoder("utf8");const c=new o.StringDecoder("utf8");const l=(a=r===null||r===void 0?void 0:r.listeners)===null||a===void 0?void 0:a.stdout;const d=(i=r===null||r===void 0?void 0:r.listeners)===null||i===void 0?void 0:i.stderr;const stdErrListener=e=>{s+=c.write(e);if(d){d(e)}};const stdOutListener=e=>{n+=p.write(e);if(l){l(e)}};const u=Object.assign(Object.assign({},r===null||r===void 0?void 0:r.listeners),{stdout:stdOutListener,stderr:stdErrListener});const m=yield exec(e,t,Object.assign(Object.assign({},r),{listeners:u}));n+=p.end();s+=c.end();return{exitCode:m,stdout:n,stderr:s}}))}t.getExecOutput=getExecOutput},8159:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.argStringToArray=t.ToolRunner=void 0;const o=n(r(2037));const p=n(r(2361));const c=n(r(2081));const l=n(r(1017));const d=n(r(7436));const u=n(r(1962));const m=r(9512);const h=process.platform==="win32";class ToolRunner extends p.EventEmitter{constructor(e,t,r){super();if(!e){throw new Error("Parameter 'toolPath' cannot be null or empty.")}this.toolPath=e;this.args=t||[];this.options=r||{}}_debug(e){if(this.options.listeners&&this.options.listeners.debug){this.options.listeners.debug(e)}}_getCommandString(e,t){const r=this._getSpawnFileName();const a=this._getSpawnArgs(e);let i=t?"":"[command]";if(h){if(this._isCmdFile()){i+=r;for(const e of a){i+=` ${e}`}}else if(e.windowsVerbatimArguments){i+=`"${r}"`;for(const e of a){i+=` ${e}`}}else{i+=this._windowsQuoteCmdArg(r);for(const e of a){i+=` ${this._windowsQuoteCmdArg(e)}`}}}else{i+=r;for(const e of a){i+=` ${e}`}}return i}_processLineBuffer(e,t,r){try{let a=t+e.toString();let i=a.indexOf(o.EOL);while(i>-1){const e=a.substring(0,i);r(e);a=a.substring(i+o.EOL.length);i=a.indexOf(o.EOL)}return a}catch(e){this._debug(`error processing line. Failed with error ${e}`);return""}}_getSpawnFileName(){if(h){if(this._isCmdFile()){return process.env["COMSPEC"]||"cmd.exe"}}return this.toolPath}_getSpawnArgs(e){if(h){if(this._isCmdFile()){let t=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(const r of this.args){t+=" ";t+=e.windowsVerbatimArguments?r:this._windowsQuoteCmdArg(r)}t+='"';return[t]}}return this.args}_endsWith(e,t){return e.endsWith(t)}_isCmdFile(){const e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT")}_windowsQuoteCmdArg(e){if(!this._isCmdFile()){return this._uvQuoteCmdArg(e)}if(!e){return'""'}const t=[" ","\t","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'];let r=false;for(const a of e){if(t.some((e=>e===a))){r=true;break}}if(!r){return e}let a='"';let i=true;for(let t=e.length;t>0;t--){a+=e[t-1];if(i&&e[t-1]==="\\"){a+="\\"}else if(e[t-1]==='"'){i=true;a+='"'}else{i=false}}a+='"';return a.split("").reverse().join("")}_uvQuoteCmdArg(e){if(!e){return'""'}if(!e.includes(" ")&&!e.includes("\t")&&!e.includes('"')){return e}if(!e.includes('"')&&!e.includes("\\")){return`"${e}"`}let t='"';let r=true;for(let a=e.length;a>0;a--){t+=e[a-1];if(r&&e[a-1]==="\\"){t+="\\"}else if(e[a-1]==='"'){r=true;t+="\\"}else{r=false}}t+='"';return t.split("").reverse().join("")}_cloneExecOptions(e){e=e||{};const t={cwd:e.cwd||process.cwd(),env:e.env||process.env,silent:e.silent||false,windowsVerbatimArguments:e.windowsVerbatimArguments||false,failOnStdErr:e.failOnStdErr||false,ignoreReturnCode:e.ignoreReturnCode||false,delay:e.delay||1e4};t.outStream=e.outStream||process.stdout;t.errStream=e.errStream||process.stderr;return t}_getSpawnOptions(e,t){e=e||{};const r={};r.cwd=e.cwd;r.env=e.env;r["windowsVerbatimArguments"]=e.windowsVerbatimArguments||this._isCmdFile();if(e.windowsVerbatimArguments){r.argv0=`"${t}"`}return r}exec(){return s(this,void 0,void 0,(function*(){if(!u.isRooted(this.toolPath)&&(this.toolPath.includes("/")||h&&this.toolPath.includes("\\"))){this.toolPath=l.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)}this.toolPath=yield d.which(this.toolPath,true);return new Promise(((e,t)=>s(this,void 0,void 0,(function*(){this._debug(`exec tool: ${this.toolPath}`);this._debug("arguments:");for(const e of this.args){this._debug(` ${e}`)}const r=this._cloneExecOptions(this.options);if(!r.silent&&r.outStream){r.outStream.write(this._getCommandString(r)+o.EOL)}const a=new ExecState(r,this.toolPath);a.on("debug",(e=>{this._debug(e)}));if(this.options.cwd&&!(yield u.exists(this.options.cwd))){return t(new Error(`The cwd: ${this.options.cwd} does not exist!`))}const i=this._getSpawnFileName();const n=c.spawn(i,this._getSpawnArgs(r),this._getSpawnOptions(this.options,i));let s="";if(n.stdout){n.stdout.on("data",(e=>{if(this.options.listeners&&this.options.listeners.stdout){this.options.listeners.stdout(e)}if(!r.silent&&r.outStream){r.outStream.write(e)}s=this._processLineBuffer(e,s,(e=>{if(this.options.listeners&&this.options.listeners.stdline){this.options.listeners.stdline(e)}}))}))}let p="";if(n.stderr){n.stderr.on("data",(e=>{a.processStderr=true;if(this.options.listeners&&this.options.listeners.stderr){this.options.listeners.stderr(e)}if(!r.silent&&r.errStream&&r.outStream){const t=r.failOnStdErr?r.errStream:r.outStream;t.write(e)}p=this._processLineBuffer(e,p,(e=>{if(this.options.listeners&&this.options.listeners.errline){this.options.listeners.errline(e)}}))}))}n.on("error",(e=>{a.processError=e.message;a.processExited=true;a.processClosed=true;a.CheckComplete()}));n.on("exit",(e=>{a.processExitCode=e;a.processExited=true;this._debug(`Exit code ${e} received from tool '${this.toolPath}'`);a.CheckComplete()}));n.on("close",(e=>{a.processExitCode=e;a.processExited=true;a.processClosed=true;this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);a.CheckComplete()}));a.on("done",((r,a)=>{if(s.length>0){this.emit("stdline",s)}if(p.length>0){this.emit("errline",p)}n.removeAllListeners();if(r){t(r)}else{e(a)}}));if(this.options.input){if(!n.stdin){throw new Error("child process missing stdin")}n.stdin.end(this.options.input)}}))))}))}}t.ToolRunner=ToolRunner;function argStringToArray(e){const t=[];let r=false;let a=false;let i="";function append(e){if(a&&e!=='"'){i+="\\"}i+=e;a=false}for(let n=0;n0){t.push(i);i=""}continue}append(s)}if(i.length>0){t.push(i.trim())}return t}t.argStringToArray=argStringToArray;class ExecState extends p.EventEmitter{constructor(e,t){super();this.processClosed=false;this.processError="";this.processExitCode=0;this.processExited=false;this.processStderr=false;this.delay=1e4;this.done=false;this.timeout=null;if(!t){throw new Error("toolPath must not be empty")}this.options=e;this.toolPath=t;if(e.delay){this.delay=e.delay}}CheckComplete(){if(this.done){return}if(this.processClosed){this._setResult()}else if(this.processExited){this.timeout=m.setTimeout(ExecState.HandleTimeout,this.delay,this)}}_debug(e){this.emit("debug",e)}_setResult(){let e;if(this.processExited){if(this.processError){e=new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`)}else if(this.processExitCode!==0&&!this.options.ignoreReturnCode){e=new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)}else if(this.processStderr&&this.options.failOnStdErr){e=new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)}}if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.done=true;this.emit("done",e,this.processExitCode)}static HandleTimeout(e){if(e.done){return}if(!e.processClosed&&e.processExited){const t=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(t)}e._setResult()}}},8090:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.hashFiles=t.create=void 0;const i=r(8298);const n=r(2448);function create(e,t){return a(this,void 0,void 0,(function*(){return yield i.DefaultGlobber.create(e,t)}))}t.create=create;function hashFiles(e,t,r=false){return a(this,void 0,void 0,(function*(){let a=true;if(t&&typeof t.followSymbolicLinks==="boolean"){a=t.followSymbolicLinks}const i=yield create(e,{followSymbolicLinks:a});return n.hashFiles(i,r)}))}t.hashFiles=hashFiles},1026:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getOptions=void 0;const s=n(r(2186));function getOptions(e){const t={followSymbolicLinks:true,implicitDescendants:true,matchDirectories:true,omitBrokenSymbolicLinks:true};if(e){if(typeof e.followSymbolicLinks==="boolean"){t.followSymbolicLinks=e.followSymbolicLinks;s.debug(`followSymbolicLinks '${t.followSymbolicLinks}'`)}if(typeof e.implicitDescendants==="boolean"){t.implicitDescendants=e.implicitDescendants;s.debug(`implicitDescendants '${t.implicitDescendants}'`)}if(typeof e.matchDirectories==="boolean"){t.matchDirectories=e.matchDirectories;s.debug(`matchDirectories '${t.matchDirectories}'`)}if(typeof e.omitBrokenSymbolicLinks==="boolean"){t.omitBrokenSymbolicLinks=e.omitBrokenSymbolicLinks;s.debug(`omitBrokenSymbolicLinks '${t.omitBrokenSymbolicLinks}'`)}}return t}t.getOptions=getOptions},8298:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==="function"?__values(e):e[Symbol.iterator](),r={},verb("next"),verb("throw"),verb("return"),r[Symbol.asyncIterator]=function(){return this},r);function verb(t){r[t]=e[t]&&function(r){return new Promise((function(a,i){r=e[t](r),settle(a,i,r.done,r.value)}))}}function settle(e,t,r,a){Promise.resolve(a).then((function(t){e({value:t,done:r})}),t)}};var p=this&&this.__await||function(e){return this instanceof p?(this.v=e,this):new p(e)};var c=this&&this.__asyncGenerator||function(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var a=r.apply(e,t||[]),i,n=[];return i={},verb("next"),verb("throw"),verb("return"),i[Symbol.asyncIterator]=function(){return this},i;function verb(e){if(a[e])i[e]=function(t){return new Promise((function(r,a){n.push([e,t,r,a])>1||resume(e,t)}))}}function resume(e,t){try{step(a[e](t))}catch(e){settle(n[0][3],e)}}function step(e){e.value instanceof p?Promise.resolve(e.value.v).then(fulfill,reject):settle(n[0][2],e)}function fulfill(e){resume("next",e)}function reject(e){resume("throw",e)}function settle(e,t){if(e(t),n.shift(),n.length)resume(n[0][0],n[0][1])}};Object.defineProperty(t,"__esModule",{value:true});t.DefaultGlobber=void 0;const l=n(r(2186));const d=n(r(7147));const u=n(r(1026));const m=n(r(1017));const h=n(r(9005));const g=r(1063);const v=r(4536);const y=r(9117);const b=process.platform==="win32";class DefaultGlobber{constructor(e){this.patterns=[];this.searchPaths=[];this.options=u.getOptions(e)}getSearchPaths(){return this.searchPaths.slice()}glob(){var e,t;return s(this,void 0,void 0,(function*(){const r=[];try{for(var a=o(this.globGenerator()),i;i=yield a.next(),!i.done;){const e=i.value;r.push(e)}}catch(t){e={error:t}}finally{try{if(i&&!i.done&&(t=a.return))yield t.call(a)}finally{if(e)throw e.error}}return r}))}globGenerator(){return c(this,arguments,(function*globGenerator_1(){const e=u.getOptions(this.options);const t=[];for(const r of this.patterns){t.push(r);if(e.implicitDescendants&&(r.trailingSeparator||r.segments[r.segments.length-1]!=="**")){t.push(new v.Pattern(r.negate,true,r.segments.concat("**")))}}const r=[];for(const e of h.getSearchPaths(t)){l.debug(`Search path '${e}'`);try{yield p(d.promises.lstat(e))}catch(e){if(e.code==="ENOENT"){continue}throw e}r.unshift(new y.SearchState(e,1))}const a=[];while(r.length){const i=r.pop();const n=h.match(t,i.path);const s=!!n||h.partialMatch(t,i.path);if(!n&&!s){continue}const o=yield p(DefaultGlobber.stat(i,e,a));if(!o){continue}if(o.isDirectory()){if(n&g.MatchKind.Directory&&e.matchDirectories){yield yield p(i.path)}else if(!s){continue}const t=i.level+1;const a=(yield p(d.promises.readdir(i.path))).map((e=>new y.SearchState(m.join(i.path,e),t)));r.push(...a.reverse())}else if(n&g.MatchKind.File){yield yield p(i.path)}}}))}static create(e,t){return s(this,void 0,void 0,(function*(){const r=new DefaultGlobber(t);if(b){e=e.replace(/\r\n/g,"\n");e=e.replace(/\r/g,"\n")}const a=e.split("\n").map((e=>e.trim()));for(const e of a){if(!e||e.startsWith("#")){continue}else{r.patterns.push(new v.Pattern(e))}}r.searchPaths.push(...h.getSearchPaths(r.patterns));return r}))}static stat(e,t,r){return s(this,void 0,void 0,(function*(){let a;if(t.followSymbolicLinks){try{a=yield d.promises.stat(e.path)}catch(r){if(r.code==="ENOENT"){if(t.omitBrokenSymbolicLinks){l.debug(`Broken symlink '${e.path}'`);return undefined}throw new Error(`No information found for the path '${e.path}'. This may indicate a broken symbolic link.`)}throw r}}else{a=yield d.promises.lstat(e.path)}if(a.isDirectory()&&t.followSymbolicLinks){const t=yield d.promises.realpath(e.path);while(r.length>=e.level){r.pop()}if(r.some((e=>e===t))){l.debug(`Symlink cycle detected for path '${e.path}' and realpath '${t}'`);return undefined}r.push(t)}return a}))}}t.DefaultGlobber=DefaultGlobber},2448:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==="function"?__values(e):e[Symbol.iterator](),r={},verb("next"),verb("throw"),verb("return"),r[Symbol.asyncIterator]=function(){return this},r);function verb(t){r[t]=e[t]&&function(r){return new Promise((function(a,i){r=e[t](r),settle(a,i,r.done,r.value)}))}}function settle(e,t,r,a){Promise.resolve(a).then((function(t){e({value:t,done:r})}),t)}};Object.defineProperty(t,"__esModule",{value:true});t.hashFiles=void 0;const p=n(r(6113));const c=n(r(2186));const l=n(r(7147));const d=n(r(2781));const u=n(r(3837));const m=n(r(1017));function hashFiles(e,t=false){var r,a;var i;return s(this,void 0,void 0,(function*(){const n=t?c.info:c.debug;let s=false;const h=(i=process.env["GITHUB_WORKSPACE"])!==null&&i!==void 0?i:process.cwd();const g=p.createHash("sha256");let v=0;try{for(var y=o(e.globGenerator()),b;b=yield y.next(),!b.done;){const e=b.value;n(e);if(!e.startsWith(`${h}${m.sep}`)){n(`Ignore '${e}' since it is not under GITHUB_WORKSPACE.`);continue}if(l.statSync(e).isDirectory()){n(`Skip directory '${e}'.`);continue}const t=p.createHash("sha256");const r=u.promisify(d.pipeline);yield r(l.createReadStream(e),t);g.write(t.digest());v++;if(!s){s=true}}}catch(e){r={error:e}}finally{try{if(b&&!b.done&&(a=y.return))yield a.call(y)}finally{if(r)throw r.error}}g.end();if(s){n(`Found ${v} files to hash.`);return g.digest("hex")}else{n(`No matches found for glob`);return""}}))}t.hashFiles=hashFiles},1063:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MatchKind=void 0;var r;(function(e){e[e["None"]=0]="None";e[e["Directory"]=1]="Directory";e[e["File"]=2]="File";e[e["All"]=3]="All"})(r=t.MatchKind||(t.MatchKind={}))},1849:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.safeTrimTrailingSeparator=t.normalizeSeparators=t.hasRoot=t.hasAbsoluteRoot=t.ensureAbsoluteRoot=t.dirname=void 0;const o=n(r(1017));const p=s(r(9491));const c=process.platform==="win32";function dirname(e){e=safeTrimTrailingSeparator(e);if(c&&/^\\\\[^\\]+(\\[^\\]+)?$/.test(e)){return e}let t=o.dirname(e);if(c&&/^\\\\[^\\]+\\[^\\]+\\$/.test(t)){t=safeTrimTrailingSeparator(t)}return t}t.dirname=dirname;function ensureAbsoluteRoot(e,t){p.default(e,`ensureAbsoluteRoot parameter 'root' must not be empty`);p.default(t,`ensureAbsoluteRoot parameter 'itemPath' must not be empty`);if(hasAbsoluteRoot(t)){return t}if(c){if(t.match(/^[A-Z]:[^\\/]|^[A-Z]:$/i)){let e=process.cwd();p.default(e.match(/^[A-Z]:\\/i),`Expected current directory to start with an absolute drive root. Actual '${e}'`);if(t[0].toUpperCase()===e[0].toUpperCase()){if(t.length===2){return`${t[0]}:\\${e.substr(3)}`}else{if(!e.endsWith("\\")){e+="\\"}return`${t[0]}:\\${e.substr(3)}${t.substr(2)}`}}else{return`${t[0]}:\\${t.substr(2)}`}}else if(normalizeSeparators(t).match(/^\\$|^\\[^\\]/)){const e=process.cwd();p.default(e.match(/^[A-Z]:\\/i),`Expected current directory to start with an absolute drive root. Actual '${e}'`);return`${e[0]}:\\${t.substr(1)}`}}p.default(hasAbsoluteRoot(e),`ensureAbsoluteRoot parameter 'root' must have an absolute root`);if(e.endsWith("/")||c&&e.endsWith("\\")){}else{e+=o.sep}return e+t}t.ensureAbsoluteRoot=ensureAbsoluteRoot;function hasAbsoluteRoot(e){p.default(e,`hasAbsoluteRoot parameter 'itemPath' must not be empty`);e=normalizeSeparators(e);if(c){return e.startsWith("\\\\")||/^[A-Z]:\\/i.test(e)}return e.startsWith("/")}t.hasAbsoluteRoot=hasAbsoluteRoot;function hasRoot(e){p.default(e,`isRooted parameter 'itemPath' must not be empty`);e=normalizeSeparators(e);if(c){return e.startsWith("\\")||/^[A-Z]:/i.test(e)}return e.startsWith("/")}t.hasRoot=hasRoot;function normalizeSeparators(e){e=e||"";if(c){e=e.replace(/\//g,"\\");const t=/^\\\\+[^\\]/.test(e);return(t?"\\":"")+e.replace(/\\\\+/g,"\\")}return e.replace(/\/\/+/g,"/")}t.normalizeSeparators=normalizeSeparators;function safeTrimTrailingSeparator(e){if(!e){return""}e=normalizeSeparators(e);if(!e.endsWith(o.sep)){return e}if(e===o.sep){return e}if(c&&/^[A-Z]:\\$/i.test(e)){return e}return e.substr(0,e.length-1)}t.safeTrimTrailingSeparator=safeTrimTrailingSeparator},6836:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.Path=void 0;const o=n(r(1017));const p=n(r(1849));const c=s(r(9491));const l=process.platform==="win32";class Path{constructor(e){this.segments=[];if(typeof e==="string"){c.default(e,`Parameter 'itemPath' must not be empty`);e=p.safeTrimTrailingSeparator(e);if(!p.hasRoot(e)){this.segments=e.split(o.sep)}else{let t=e;let r=p.dirname(t);while(r!==t){const e=o.basename(t);this.segments.unshift(e);t=r;r=p.dirname(t)}this.segments.unshift(t)}}else{c.default(e.length>0,`Parameter 'itemPath' must not be an empty array`);for(let t=0;t!e.negate));const t={};for(const r of e){const e=p?r.searchPath.toUpperCase():r.searchPath;t[e]="candidate"}const r=[];for(const a of e){const e=p?a.searchPath.toUpperCase():a.searchPath;if(t[e]==="included"){continue}let i=false;let n=e;let o=s.dirname(n);while(o!==n){if(t[o]){i=true;break}n=o;o=s.dirname(n)}if(!i){r.push(a.searchPath);t[e]="included"}}return r}t.getSearchPaths=getSearchPaths;function match(e,t){let r=o.MatchKind.None;for(const a of e){if(a.negate){r&=~a.match(t)}else{r|=a.match(t)}}return r}t.match=match;function partialMatch(e,t){return e.some((e=>!e.negate&&e.partialMatch(t)))}t.partialMatch=partialMatch},4536:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.Pattern=void 0;const o=n(r(2037));const p=n(r(1017));const c=n(r(1849));const l=s(r(9491));const d=r(3973);const u=r(1063);const m=r(6836);const h=process.platform==="win32";class Pattern{constructor(e,t=false,r,a){this.negate=false;let i;if(typeof e==="string"){i=e.trim()}else{r=r||[];l.default(r.length,`Parameter 'segments' must not empty`);const t=Pattern.getLiteral(r[0]);l.default(t&&c.hasAbsoluteRoot(t),`Parameter 'segments' first element must be a root path`);i=new m.Path(r).toString().trim();if(e){i=`!${i}`}}while(i.startsWith("!")){this.negate=!this.negate;i=i.substr(1).trim()}i=Pattern.fixupPattern(i,a);this.segments=new m.Path(i).segments;this.trailingSeparator=c.normalizeSeparators(i).endsWith(p.sep);i=c.safeTrimTrailingSeparator(i);let n=false;const s=this.segments.map((e=>Pattern.getLiteral(e))).filter((e=>!n&&!(n=e==="")));this.searchPath=new m.Path(s).toString();this.rootRegExp=new RegExp(Pattern.regExpEscape(s[0]),h?"i":"");this.isImplicitPattern=t;const o={dot:true,nobrace:true,nocase:h,nocomment:true,noext:true,nonegate:true};i=h?i.replace(/\\/g,"/"):i;this.minimatch=new d.Minimatch(i,o)}match(e){if(this.segments[this.segments.length-1]==="**"){e=c.normalizeSeparators(e);if(!e.endsWith(p.sep)&&this.isImplicitPattern===false){e=`${e}${p.sep}`}}else{e=c.safeTrimTrailingSeparator(e)}if(this.minimatch.match(e)){return this.trailingSeparator?u.MatchKind.Directory:u.MatchKind.All}return u.MatchKind.None}partialMatch(e){e=c.safeTrimTrailingSeparator(e);if(c.dirname(e)===e){return this.rootRegExp.test(e)}return this.minimatch.matchOne(e.split(h?/\\+/:/\/+/),this.minimatch.set[0],true)}static globEscape(e){return(h?e:e.replace(/\\/g,"\\\\")).replace(/(\[)(?=[^/]+\])/g,"[[]").replace(/\?/g,"[?]").replace(/\*/g,"[*]")}static fixupPattern(e,t){l.default(e,"pattern cannot be empty");const r=new m.Path(e).segments.map((e=>Pattern.getLiteral(e)));l.default(r.every(((e,t)=>(e!=="."||t===0)&&e!=="..")),`Invalid pattern '${e}'. Relative pathing '.' and '..' is not allowed.`);l.default(!c.hasRoot(e)||r[0],`Invalid pattern '${e}'. Root segment must not contain globs.`);e=c.normalizeSeparators(e);if(e==="."||e.startsWith(`.${p.sep}`)){e=Pattern.globEscape(process.cwd())+e.substr(1)}else if(e==="~"||e.startsWith(`~${p.sep}`)){t=t||o.homedir();l.default(t,"Unable to determine HOME directory");l.default(c.hasAbsoluteRoot(t),`Expected HOME directory to be a rooted path. Actual '${t}'`);e=Pattern.globEscape(t)+e.substr(1)}else if(h&&(e.match(/^[A-Z]:$/i)||e.match(/^[A-Z]:[^\\]/i))){let t=c.ensureAbsoluteRoot("C:\\dummy-root",e.substr(0,2));if(e.length>2&&!t.endsWith("\\")){t+="\\"}e=Pattern.globEscape(t)+e.substr(2)}else if(h&&(e==="\\"||e.match(/^\\[^\\]/))){let t=c.ensureAbsoluteRoot("C:\\dummy-root","\\");if(!t.endsWith("\\")){t+="\\"}e=Pattern.globEscape(t)+e.substr(1)}else{e=c.ensureAbsoluteRoot(Pattern.globEscape(process.cwd()),e)}return c.normalizeSeparators(e)}static getLiteral(e){let t="";for(let r=0;r=0){if(a.length>1){return""}if(a){t+=a;r=i;continue}}}t+=a}return t}static regExpEscape(e){return e.replace(/[[\\^$.|?*+()]/g,"\\$&")}}t.Pattern=Pattern},9117:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.SearchState=void 0;class SearchState{constructor(e,t){this.path=e;this.level=t}}t.SearchState=SearchState},5526:function(e,t){"use strict";var r=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.PersonalAccessTokenCredentialHandler=t.BearerCredentialHandler=t.BasicCredentialHandler=void 0;class BasicCredentialHandler{constructor(e,t){this.username=e;this.password=t}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.BasicCredentialHandler=BasicCredentialHandler;class BearerCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Bearer ${this.token}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.BearerCredentialHandler=BearerCredentialHandler;class PersonalAccessTokenCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.PersonalAccessTokenCredentialHandler=PersonalAccessTokenCredentialHandler},6255:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.HttpClient=t.isHttps=t.HttpClientResponse=t.HttpClientError=t.getProxyUrl=t.MediaTypes=t.Headers=t.HttpCodes=void 0;const o=n(r(3685));const p=n(r(5687));const c=n(r(9835));const l=n(r(4294));var d;(function(e){e[e["OK"]=200]="OK";e[e["MultipleChoices"]=300]="MultipleChoices";e[e["MovedPermanently"]=301]="MovedPermanently";e[e["ResourceMoved"]=302]="ResourceMoved";e[e["SeeOther"]=303]="SeeOther";e[e["NotModified"]=304]="NotModified";e[e["UseProxy"]=305]="UseProxy";e[e["SwitchProxy"]=306]="SwitchProxy";e[e["TemporaryRedirect"]=307]="TemporaryRedirect";e[e["PermanentRedirect"]=308]="PermanentRedirect";e[e["BadRequest"]=400]="BadRequest";e[e["Unauthorized"]=401]="Unauthorized";e[e["PaymentRequired"]=402]="PaymentRequired";e[e["Forbidden"]=403]="Forbidden";e[e["NotFound"]=404]="NotFound";e[e["MethodNotAllowed"]=405]="MethodNotAllowed";e[e["NotAcceptable"]=406]="NotAcceptable";e[e["ProxyAuthenticationRequired"]=407]="ProxyAuthenticationRequired";e[e["RequestTimeout"]=408]="RequestTimeout";e[e["Conflict"]=409]="Conflict";e[e["Gone"]=410]="Gone";e[e["TooManyRequests"]=429]="TooManyRequests";e[e["InternalServerError"]=500]="InternalServerError";e[e["NotImplemented"]=501]="NotImplemented";e[e["BadGateway"]=502]="BadGateway";e[e["ServiceUnavailable"]=503]="ServiceUnavailable";e[e["GatewayTimeout"]=504]="GatewayTimeout"})(d=t.HttpCodes||(t.HttpCodes={}));var u;(function(e){e["Accept"]="accept";e["ContentType"]="content-type"})(u=t.Headers||(t.Headers={}));var m;(function(e){e["ApplicationJson"]="application/json"})(m=t.MediaTypes||(t.MediaTypes={}));function getProxyUrl(e){const t=c.getProxyUrl(new URL(e));return t?t.href:""}t.getProxyUrl=getProxyUrl;const h=[d.MovedPermanently,d.ResourceMoved,d.SeeOther,d.TemporaryRedirect,d.PermanentRedirect];const g=[d.BadGateway,d.ServiceUnavailable,d.GatewayTimeout];const v=["OPTIONS","GET","DELETE","HEAD"];const y=10;const b=5;class HttpClientError extends Error{constructor(e,t){super(e);this.name="HttpClientError";this.statusCode=t;Object.setPrototypeOf(this,HttpClientError.prototype)}}t.HttpClientError=HttpClientError;class HttpClientResponse{constructor(e){this.message=e}readBody(){return s(this,void 0,void 0,(function*(){return new Promise((e=>s(this,void 0,void 0,(function*(){let t=Buffer.alloc(0);this.message.on("data",(e=>{t=Buffer.concat([t,e])}));this.message.on("end",(()=>{e(t.toString())}))}))))}))}}t.HttpClientResponse=HttpClientResponse;function isHttps(e){const t=new URL(e);return t.protocol==="https:"}t.isHttps=isHttps;class HttpClient{constructor(e,t,r){this._ignoreSslError=false;this._allowRedirects=true;this._allowRedirectDowngrade=false;this._maxRedirects=50;this._allowRetries=false;this._maxRetries=1;this._keepAlive=false;this._disposed=false;this.userAgent=e;this.handlers=t||[];this.requestOptions=r;if(r){if(r.ignoreSslError!=null){this._ignoreSslError=r.ignoreSslError}this._socketTimeout=r.socketTimeout;if(r.allowRedirects!=null){this._allowRedirects=r.allowRedirects}if(r.allowRedirectDowngrade!=null){this._allowRedirectDowngrade=r.allowRedirectDowngrade}if(r.maxRedirects!=null){this._maxRedirects=Math.max(r.maxRedirects,0)}if(r.keepAlive!=null){this._keepAlive=r.keepAlive}if(r.allowRetries!=null){this._allowRetries=r.allowRetries}if(r.maxRetries!=null){this._maxRetries=r.maxRetries}}}options(e,t){return s(this,void 0,void 0,(function*(){return this.request("OPTIONS",e,null,t||{})}))}get(e,t){return s(this,void 0,void 0,(function*(){return this.request("GET",e,null,t||{})}))}del(e,t){return s(this,void 0,void 0,(function*(){return this.request("DELETE",e,null,t||{})}))}post(e,t,r){return s(this,void 0,void 0,(function*(){return this.request("POST",e,t,r||{})}))}patch(e,t,r){return s(this,void 0,void 0,(function*(){return this.request("PATCH",e,t,r||{})}))}put(e,t,r){return s(this,void 0,void 0,(function*(){return this.request("PUT",e,t,r||{})}))}head(e,t){return s(this,void 0,void 0,(function*(){return this.request("HEAD",e,null,t||{})}))}sendStream(e,t,r,a){return s(this,void 0,void 0,(function*(){return this.request(e,t,r,a)}))}getJson(e,t={}){return s(this,void 0,void 0,(function*(){t[u.Accept]=this._getExistingOrDefaultHeader(t,u.Accept,m.ApplicationJson);const r=yield this.get(e,t);return this._processResponse(r,this.requestOptions)}))}postJson(e,t,r={}){return s(this,void 0,void 0,(function*(){const a=JSON.stringify(t,null,2);r[u.Accept]=this._getExistingOrDefaultHeader(r,u.Accept,m.ApplicationJson);r[u.ContentType]=this._getExistingOrDefaultHeader(r,u.ContentType,m.ApplicationJson);const i=yield this.post(e,a,r);return this._processResponse(i,this.requestOptions)}))}putJson(e,t,r={}){return s(this,void 0,void 0,(function*(){const a=JSON.stringify(t,null,2);r[u.Accept]=this._getExistingOrDefaultHeader(r,u.Accept,m.ApplicationJson);r[u.ContentType]=this._getExistingOrDefaultHeader(r,u.ContentType,m.ApplicationJson);const i=yield this.put(e,a,r);return this._processResponse(i,this.requestOptions)}))}patchJson(e,t,r={}){return s(this,void 0,void 0,(function*(){const a=JSON.stringify(t,null,2);r[u.Accept]=this._getExistingOrDefaultHeader(r,u.Accept,m.ApplicationJson);r[u.ContentType]=this._getExistingOrDefaultHeader(r,u.ContentType,m.ApplicationJson);const i=yield this.patch(e,a,r);return this._processResponse(i,this.requestOptions)}))}request(e,t,r,a){return s(this,void 0,void 0,(function*(){if(this._disposed){throw new Error("Client has already been disposed.")}const i=new URL(t);let n=this._prepareRequest(e,i,a);const s=this._allowRetries&&v.includes(e)?this._maxRetries+1:1;let o=0;let p;do{p=yield this.requestRaw(n,r);if(p&&p.message&&p.message.statusCode===d.Unauthorized){let e;for(const t of this.handlers){if(t.canHandleAuthentication(p)){e=t;break}}if(e){return e.handleAuthentication(this,n,r)}else{return p}}let t=this._maxRedirects;while(p.message.statusCode&&h.includes(p.message.statusCode)&&this._allowRedirects&&t>0){const s=p.message.headers["location"];if(!s){break}const o=new URL(s);if(i.protocol==="https:"&&i.protocol!==o.protocol&&!this._allowRedirectDowngrade){throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.")}yield p.readBody();if(o.hostname!==i.hostname){for(const e in a){if(e.toLowerCase()==="authorization"){delete a[e]}}}n=this._prepareRequest(e,o,a);p=yield this.requestRaw(n,r);t--}if(!p.message.statusCode||!g.includes(p.message.statusCode)){return p}o+=1;if(o{function callbackForResult(e,t){if(e){a(e)}else if(!t){a(new Error("Unknown error"))}else{r(t)}}this.requestRawWithCallback(e,t,callbackForResult)}))}))}requestRawWithCallback(e,t,r){if(typeof t==="string"){if(!e.options.headers){e.options.headers={}}e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8")}let a=false;function handleResult(e,t){if(!a){a=true;r(e,t)}}const i=e.httpModule.request(e.options,(e=>{const t=new HttpClientResponse(e);handleResult(undefined,t)}));let n;i.on("socket",(e=>{n=e}));i.setTimeout(this._socketTimeout||3*6e4,(()=>{if(n){n.end()}handleResult(new Error(`Request timeout: ${e.options.path}`))}));i.on("error",(function(e){handleResult(e)}));if(t&&typeof t==="string"){i.write(t,"utf8")}if(t&&typeof t!=="string"){t.on("close",(function(){i.end()}));t.pipe(i)}else{i.end()}}getAgent(e){const t=new URL(e);return this._getAgent(t)}_prepareRequest(e,t,r){const a={};a.parsedUrl=t;const i=a.parsedUrl.protocol==="https:";a.httpModule=i?p:o;const n=i?443:80;a.options={};a.options.host=a.parsedUrl.hostname;a.options.port=a.parsedUrl.port?parseInt(a.parsedUrl.port):n;a.options.path=(a.parsedUrl.pathname||"")+(a.parsedUrl.search||"");a.options.method=e;a.options.headers=this._mergeHeaders(r);if(this.userAgent!=null){a.options.headers["user-agent"]=this.userAgent}a.options.agent=this._getAgent(a.parsedUrl);if(this.handlers){for(const e of this.handlers){e.prepareRequest(a.options)}}return a}_mergeHeaders(e){if(this.requestOptions&&this.requestOptions.headers){return Object.assign({},lowercaseKeys(this.requestOptions.headers),lowercaseKeys(e||{}))}return lowercaseKeys(e||{})}_getExistingOrDefaultHeader(e,t,r){let a;if(this.requestOptions&&this.requestOptions.headers){a=lowercaseKeys(this.requestOptions.headers)[t]}return e[t]||a||r}_getAgent(e){let t;const r=c.getProxyUrl(e);const a=r&&r.hostname;if(this._keepAlive&&a){t=this._proxyAgent}if(this._keepAlive&&!a){t=this._agent}if(t){return t}const i=e.protocol==="https:";let n=100;if(this.requestOptions){n=this.requestOptions.maxSockets||o.globalAgent.maxSockets}if(r&&r.hostname){const e={maxSockets:n,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(r.username||r.password)&&{proxyAuth:`${r.username}:${r.password}`}),{host:r.hostname,port:r.port})};let a;const s=r.protocol==="https:";if(i){a=s?l.httpsOverHttps:l.httpsOverHttp}else{a=s?l.httpOverHttps:l.httpOverHttp}t=a(e);this._proxyAgent=t}if(this._keepAlive&&!t){const e={keepAlive:this._keepAlive,maxSockets:n};t=i?new p.Agent(e):new o.Agent(e);this._agent=t}if(!t){t=i?p.globalAgent:o.globalAgent}if(i&&this._ignoreSslError){t.options=Object.assign(t.options||{},{rejectUnauthorized:false})}return t}_performExponentialBackoff(e){return s(this,void 0,void 0,(function*(){e=Math.min(y,e);const t=b*Math.pow(2,e);return new Promise((e=>setTimeout((()=>e()),t)))}))}_processResponse(e,t){return s(this,void 0,void 0,(function*(){return new Promise(((r,a)=>s(this,void 0,void 0,(function*(){const i=e.message.statusCode||0;const n={statusCode:i,result:null,headers:{}};if(i===d.NotFound){r(n)}function dateTimeDeserializer(e,t){if(typeof t==="string"){const e=new Date(t);if(!isNaN(e.valueOf())){return e}}return t}let s;let o;try{o=yield e.readBody();if(o&&o.length>0){if(t&&t.deserializeDates){s=JSON.parse(o,dateTimeDeserializer)}else{s=JSON.parse(o)}n.result=s}n.headers=e.message.headers}catch(e){}if(i>299){let e;if(s&&s.message){e=s.message}else if(o&&o.length>0){e=o}else{e=`Failed request: (${i})`}const t=new HttpClientError(e,i);t.result=n.result;a(t)}else{r(n)}}))))}))}}t.HttpClient=HttpClient;const lowercaseKeys=e=>Object.keys(e).reduce(((t,r)=>(t[r.toLowerCase()]=e[r],t)),{})},9835:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.checkBypass=t.getProxyUrl=void 0;function getProxyUrl(e){const t=e.protocol==="https:";if(checkBypass(e)){return undefined}const r=(()=>{if(t){return process.env["https_proxy"]||process.env["HTTPS_PROXY"]}else{return process.env["http_proxy"]||process.env["HTTP_PROXY"]}})();if(r){return new URL(r)}else{return undefined}}t.getProxyUrl=getProxyUrl;function checkBypass(e){if(!e.hostname){return false}const t=process.env["no_proxy"]||process.env["NO_PROXY"]||"";if(!t){return false}let r;if(e.port){r=Number(e.port)}else if(e.protocol==="http:"){r=80}else if(e.protocol==="https:"){r=443}const a=[e.hostname.toUpperCase()];if(typeof r==="number"){a.push(`${a[0]}:${r}`)}for(const e of t.split(",").map((e=>e.trim().toUpperCase())).filter((e=>e))){if(a.some((t=>t===e))){return true}}return false}t.checkBypass=checkBypass},1962:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o;Object.defineProperty(t,"__esModule",{value:true});t.getCmdPath=t.tryGetExecutablePath=t.isRooted=t.isDirectory=t.exists=t.IS_WINDOWS=t.unlink=t.symlink=t.stat=t.rmdir=t.rename=t.readlink=t.readdir=t.mkdir=t.lstat=t.copyFile=t.chmod=void 0;const p=n(r(7147));const c=n(r(1017));o=p.promises,t.chmod=o.chmod,t.copyFile=o.copyFile,t.lstat=o.lstat,t.mkdir=o.mkdir,t.readdir=o.readdir,t.readlink=o.readlink,t.rename=o.rename,t.rmdir=o.rmdir,t.stat=o.stat,t.symlink=o.symlink,t.unlink=o.unlink;t.IS_WINDOWS=process.platform==="win32";function exists(e){return s(this,void 0,void 0,(function*(){try{yield t.stat(e)}catch(e){if(e.code==="ENOENT"){return false}throw e}return true}))}t.exists=exists;function isDirectory(e,r=false){return s(this,void 0,void 0,(function*(){const a=r?yield t.stat(e):yield t.lstat(e);return a.isDirectory()}))}t.isDirectory=isDirectory;function isRooted(e){e=normalizeSeparators(e);if(!e){throw new Error('isRooted() parameter "p" cannot be empty')}if(t.IS_WINDOWS){return e.startsWith("\\")||/^[A-Z]:/i.test(e)}return e.startsWith("/")}t.isRooted=isRooted;function tryGetExecutablePath(e,r){return s(this,void 0,void 0,(function*(){let a=undefined;try{a=yield t.stat(e)}catch(t){if(t.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${t}`)}}if(a&&a.isFile()){if(t.IS_WINDOWS){const t=c.extname(e).toUpperCase();if(r.some((e=>e.toUpperCase()===t))){return e}}else{if(isUnixExecutable(a)){return e}}}const i=e;for(const n of r){e=i+n;a=undefined;try{a=yield t.stat(e)}catch(t){if(t.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${t}`)}}if(a&&a.isFile()){if(t.IS_WINDOWS){try{const r=c.dirname(e);const a=c.basename(e).toUpperCase();for(const i of yield t.readdir(r)){if(a===i.toUpperCase()){e=c.join(r,i);break}}}catch(t){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${t}`)}return e}else{if(isUnixExecutable(a)){return e}}}}return""}))}t.tryGetExecutablePath=tryGetExecutablePath;function normalizeSeparators(e){e=e||"";if(t.IS_WINDOWS){e=e.replace(/\//g,"\\");return e.replace(/\\\\+/g,"\\")}return e.replace(/\/\/+/g,"/")}function isUnixExecutable(e){return(e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}function getCmdPath(){var e;return(e=process.env["COMSPEC"])!==null&&e!==void 0?e:`cmd.exe`}t.getCmdPath=getCmdPath},7436:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.findInPath=t.which=t.mkdirP=t.rmRF=t.mv=t.cp=void 0;const o=r(9491);const p=n(r(2081));const c=n(r(1017));const l=r(3837);const d=n(r(1962));const u=l.promisify(p.exec);const m=l.promisify(p.execFile);function cp(e,t,r={}){return s(this,void 0,void 0,(function*(){const{force:a,recursive:i,copySourceDirectory:n}=readCopyOptions(r);const s=(yield d.exists(t))?yield d.stat(t):null;if(s&&s.isFile()&&!a){return}const o=s&&s.isDirectory()&&n?c.join(t,c.basename(e)):t;if(!(yield d.exists(e))){throw new Error(`no such file or directory: ${e}`)}const p=yield d.stat(e);if(p.isDirectory()){if(!i){throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`)}else{yield cpDirRecursive(e,o,0,a)}}else{if(c.relative(e,o)===""){throw new Error(`'${o}' and '${e}' are the same file`)}yield copyFile(e,o,a)}}))}t.cp=cp;function mv(e,t,r={}){return s(this,void 0,void 0,(function*(){if(yield d.exists(t)){let a=true;if(yield d.isDirectory(t)){t=c.join(t,c.basename(e));a=yield d.exists(t)}if(a){if(r.force==null||r.force){yield rmRF(t)}else{throw new Error("Destination already exists")}}}yield mkdirP(c.dirname(t));yield d.rename(e,t)}))}t.mv=mv;function rmRF(e){return s(this,void 0,void 0,(function*(){if(d.IS_WINDOWS){if(/[*"<>|]/.test(e)){throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows')}try{const t=d.getCmdPath();if(yield d.isDirectory(e,true)){yield u(`${t} /s /c "rd /s /q "%inputPath%""`,{env:{inputPath:e}})}else{yield u(`${t} /s /c "del /f /a "%inputPath%""`,{env:{inputPath:e}})}}catch(e){if(e.code!=="ENOENT")throw e}try{yield d.unlink(e)}catch(e){if(e.code!=="ENOENT")throw e}}else{let t=false;try{t=yield d.isDirectory(e)}catch(e){if(e.code!=="ENOENT")throw e;return}if(t){yield m(`rm`,[`-rf`,`${e}`])}else{yield d.unlink(e)}}}))}t.rmRF=rmRF;function mkdirP(e){return s(this,void 0,void 0,(function*(){o.ok(e,"a path argument must be provided");yield d.mkdir(e,{recursive:true})}))}t.mkdirP=mkdirP;function which(e,t){return s(this,void 0,void 0,(function*(){if(!e){throw new Error("parameter 'tool' is required")}if(t){const t=yield which(e,false);if(!t){if(d.IS_WINDOWS){throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`)}else{throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`)}}return t}const r=yield findInPath(e);if(r&&r.length>0){return r[0]}return""}))}t.which=which;function findInPath(e){return s(this,void 0,void 0,(function*(){if(!e){throw new Error("parameter 'tool' is required")}const t=[];if(d.IS_WINDOWS&&process.env["PATHEXT"]){for(const e of process.env["PATHEXT"].split(c.delimiter)){if(e){t.push(e)}}}if(d.isRooted(e)){const r=yield d.tryGetExecutablePath(e,t);if(r){return[r]}return[]}if(e.includes(c.sep)){return[]}const r=[];if(process.env.PATH){for(const e of process.env.PATH.split(c.delimiter)){if(e){r.push(e)}}}const a=[];for(const i of r){const r=yield d.tryGetExecutablePath(c.join(i,e),t);if(r){a.push(r)}}return a}))}t.findInPath=findInPath;function readCopyOptions(e){const t=e.force==null?true:e.force;const r=Boolean(e.recursive);const a=e.copySourceDirectory==null?true:Boolean(e.copySourceDirectory);return{force:t,recursive:r,copySourceDirectory:a}}function cpDirRecursive(e,t,r,a){return s(this,void 0,void 0,(function*(){if(r>=255)return;r++;yield mkdirP(t);const i=yield d.readdir(e);for(const n of i){const i=`${e}/${n}`;const s=`${t}/${n}`;const o=yield d.lstat(i);if(o.isDirectory()){yield cpDirRecursive(i,s,r,a)}else{yield copyFile(i,s,a)}}yield d.chmod(t,(yield d.stat(e)).mode)}))}function copyFile(e,t,r){return s(this,void 0,void 0,(function*(){if((yield d.lstat(e)).isSymbolicLink()){try{yield d.lstat(t);yield d.unlink(t)}catch(e){if(e.code==="EPERM"){yield d.chmod(t,"0666");yield d.unlink(t)}}const r=yield d.readlink(e);yield d.symlink(r,t,d.IS_WINDOWS?"junction":null)}else if(!(yield d.exists(t))||r){yield d.copyFile(e,t)}}))}},6809:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ArchiveDependencies=t.IfNoFile=t.ArchiveOn=void 0;var r;(function(e){e["SUCCESS"]="success";e["FAILURE"]="failure";e["ALWAYS"]="always"})(r=t.ArchiveOn||(t.ArchiveOn={}));var a;(function(e){e["WARN"]="warn";e["ERROR"]="error";e["IGNORE"]="ignore"})(a=t.IfNoFile||(t.IfNoFile={}));var i;(function(e){e["ALL"]="all";e["NONE"]="none"})(i=t.ArchiveDependencies||(t.ArchiveDependencies={}))},8114:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.IfNoFile=t.ArchiveOn=t.ArchiveDependencies=t.getMapping=t.getMappedTarget=t.readDefinitionFile=t.getTreeForProject=t.getOrderedListForTree=t.getOrderedListForProject=t.parentChainFromNode=t.getTree=void 0;const a=r(2253);Object.defineProperty(t,"getTree",{enumerable:true,get:function(){return a.getTree}});Object.defineProperty(t,"parentChainFromNode",{enumerable:true,get:function(){return a.parentChainFromNode}});Object.defineProperty(t,"getOrderedListForProject",{enumerable:true,get:function(){return a.getOrderedListForProject}});Object.defineProperty(t,"getOrderedListForTree",{enumerable:true,get:function(){return a.getOrderedListForTree}});Object.defineProperty(t,"getTreeForProject",{enumerable:true,get:function(){return a.getTreeForProject}});const i=r(5934);Object.defineProperty(t,"readDefinitionFile",{enumerable:true,get:function(){return i.readDefinitionFile}});const n=r(9596);Object.defineProperty(t,"getMappedTarget",{enumerable:true,get:function(){return n.getMappedTarget}});Object.defineProperty(t,"getMapping",{enumerable:true,get:function(){return n.getMapping}});const s=r(6809);Object.defineProperty(t,"ArchiveDependencies",{enumerable:true,get:function(){return s.ArchiveDependencies}});Object.defineProperty(t,"ArchiveOn",{enumerable:true,get:function(){return s.ArchiveOn}});Object.defineProperty(t,"IfNoFile",{enumerable:true,get:function(){return s.IfNoFile}})},5934:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.readDefinitionFile=void 0;const i=r(4619);const n=r(3919);const s=r(5265);const o=r(3292);const p=a(r(6545));const c=a(r(1017));async function readDefinitionFile(e,t){try{const r=await getContent(e,t);const a=await(0,s.validateDefinitionFile)(r);let i=undefined;if(a.extends){i=await readDefinitionFile(constructLocation(a.extends,e,t),t);delete a["extends"]}a.pre=extendPre(a.pre,i?i.pre:undefined);a.post=extendPost(a.post,i?i.post:undefined);a.default=extendDefault(a.default,i?i.default:undefined);a.build=extendBuild(a.build,i?i.build:undefined);a.dependencies=await loadDependencies(a.dependencies,i?.dependencies,e,t);targetExpressionToTarget(a.dependencies);return a}catch(t){throw new Error(`Error getting ${e} - ${t}`)}}t.readDefinitionFile=readDefinitionFile;async function loadDependencies(e,t,r,a){let i=[];if(!e){return t??[]}if(!Array.isArray(e)){const t=constructLocation(e,r,a);const n=await readDefinitionFile(t,a);i=n.dependencies}else{i=e}return t?t.concat(i):i}function extendBuild(e,t){if(!t){return e}if(!e){return t}return[...e,...t.filter((t=>!e.find((e=>e.project===t.project))))]}function extendDefault(e,t){if(!t){return e}if(!e){return t}const r=Object.keys(e);return Object.entries(t).reduce(((t,[a,i])=>{const n=e[a];if(Array.isArray(i)&&Array.isArray(n)){t[a]=n.length?n:i}else if(typeof i==="object"){t[a]=r.includes(a)?extendDefault(e[a],i):i}else{t[a]=e[a]??i}return t}),{...e})}function extendPre(e,t){if(!t){return e}if(!e){return t}return e.concat(t)}function extendPost(e,t){if(!t){return e}if(!e){return t}return{success:extendPre(e.success,t.success),always:extendPre(e.always,t.always),failure:extendPre(e.failure,t.failure)}}async function getContent(e,t){if(isURL(e)){const r=(0,n.treatUrl)(e,t?.group,t?.name,t?.branch);const a=await p.default.get(r,{responseType:"text",...t?.token?{headers:{Authorization:`Bearer ${t.token}`}}:{}});return a.data}else{return(0,o.readFile)(e,"utf8")}}function constructLocation(e,t,r){if(isURL(e)){return(0,n.treatUrl)(e,r?.group,r?.name,r?.branch)}else if(isURL(t)){const a=(0,n.treatUrl)(t,r?.group,r?.name,r?.branch);const i=a.lastIndexOf("/");return`${a.slice(0,i)}/${e}`}else{return c.default.join(c.default.dirname(t),e)}}function isURL(e){const t=/^https?:\/\//;return t.test(e)}function targetExpressionToTarget(e){for(const t of e){if(t.mapping?.dependant){executeTargetExpression(t.mapping.dependant)}if(t.mapping?.dependencies){executeTargetExpression(t.mapping.dependencies)}}}function executeTargetExpression(e){for(const[t,r]of Object.entries(e)){e[t]=r.map((e=>e.targetExpression?{source:e.source,target:(0,i.safeEval)(e.targetExpression,e)}:e))}}},698:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ArchiveArtifactSchema=void 0;const a=r(4428);t.ArchiveArtifactSchema={type:"object",properties:{name:{type:"string",nullable:true},paths:{type:"array",items:{type:"object",properties:{path:{type:"string"},on:{type:"string",enum:["success","failure","always"]}},required:["on","path"]}},"if-no-files-found":{type:"string",enum:["warn","ignore","error"],default:"warn"},dependencies:{oneOf:[{type:"string",enum:["all","none"]},{type:"array",items:a.ProjectNameSchema}]}},required:["paths","if-no-files-found","dependencies"]}},6768:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.BuildSchema=t.BuildCommandSchema=void 0;const a=r(698);const i=r(4428);const n={type:"array",items:{type:"string"}};const s={type:"object",properties:{current:n,upstream:n,downstream:n},required:["current","upstream","downstream"],additionalProperties:false};t.BuildCommandSchema={type:"object",properties:{before:{...s,nullable:true},after:{...s,nullable:true},current:n,upstream:n,downstream:n},required:["current","upstream","downstream"],additionalProperties:false};t.BuildSchema={type:"object",properties:{project:i.ProjectNameSchema,"build-command":{...t.BuildCommandSchema,nullable:true},"archive-artifacts":{...a.ArchiveArtifactSchema,nullable:true},skip:{type:"boolean",nullable:true},clone:{type:"array",items:{type:"string"},nullable:true}},required:["project"],anyOf:[{required:["build-command"]},{required:["archive-artifacts"]},{required:["skip"]}]}},9579:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.DefintionFileSchema=void 0;const a=r(6768);const i=r(9040);t.DefintionFileSchema={type:"object",properties:{version:{type:["string","number"],enum:["2.1",2.1,"2.2",2.2]},dependencies:{type:["string","array"],oneOf:[{type:"string"},i.DependenciesSchema],nullable:true},extends:{type:"string",nullable:true},default:{type:"object",properties:{"build-command":a.BuildCommandSchema},required:["build-command"],nullable:true,additionalProperties:false},build:{type:"array",items:a.BuildSchema,nullable:true},pre:{type:"array",items:{type:"string"},nullable:true},post:{type:"object",properties:{success:{type:"array",items:{type:"string"},nullable:true},always:{type:"array",items:{type:"string"},nullable:true},failure:{type:"array",items:{type:"string"},nullable:true}},nullable:true}},required:["version"],additionalProperties:false}},9040:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.DependenciesSchema=void 0;const a=r(5013);const i=r(4428);t.DependenciesSchema={type:"array",items:{type:"object",properties:{project:i.ProjectNameSchema,dependencies:{type:"array",items:{type:"object",properties:{project:{type:"string"}},required:["project"],additionalProperties:false},nullable:true},mapping:{...a.MappingSchema,nullable:true}},required:["project"],additionalProperties:false}}},5013:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MappingSchema=void 0;const a=r(4428);const i={type:"object",properties:{source:{type:"string"},target:{type:"string",nullable:true},targetExpression:{type:"string",nullable:true}},required:["source"],oneOf:[{required:["target"]},{required:["targetExpression"]}],additionalProperties:false};const n={type:"object",properties:{default:{type:"array",items:i}},patternProperties:{"^[^/]+/[^/]+$":{type:"array",items:i}},required:["default"],additionalProperties:false};t.MappingSchema={type:"object",properties:{dependencies:{...n,nullable:true},dependant:{...n,nullable:true},exclude:{type:"array",items:a.ProjectNameSchema}},required:["exclude"],anyOf:[{required:["dependencies"]},{required:["dependant"]}],additionalProperties:false}},4428:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ProjectNameSchema=void 0;t.ProjectNameSchema={type:"string",pattern:"^[^/]+/[^/]+$"}},2253:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getOrderedListForTree=t.getOrderedListForProject=t.parentChainFromNode=t.getTreeForProject=t.getTree=void 0;const a=r(5934);const i=r(8998);async function getTree(e,t){const r=await(0,a.readDefinitionFile)(e,t);return(0,i.constructTree)(r.dependencies,r.default?.["build-command"],r.build)}t.getTree=getTree;async function getTreeForProject(e,t,r){const a=await getTree(e,r);return lookForProject(a,t)}t.getTreeForProject=getTreeForProject;function parentChainFromNode(e){const t=e.parents.reduce(((e,t)=>{e.push(...parentChainFromNode(t).filter((t=>!e.find((e=>t.project===e.project)))));return e}),[]);t.push(e);return t}t.parentChainFromNode=parentChainFromNode;async function getOrderedListForProject(e,t,r){const a=await getTreeForProject(e,t,r);if(!a){throw new Error(`Project ${t} not found`)}const i=parentChainFromNode(a);const n=childChainFromNode(a);return i.concat(n.slice(1))}t.getOrderedListForProject=getOrderedListForProject;async function getOrderedListForTree(e,t){const r=await getTree(e,t);const a=[];flattenTreeTopToBottom(r,a);return a}t.getOrderedListForTree=getOrderedListForTree;function lookForProject(e,t){return e.find((e=>e.project===t))??e.map((e=>lookForProject(e.children,t))).find((e=>!!e))}function childChainFromNode(e){return e.children.reduce(((e,t)=>{e.push(...childChainFromNode(t).filter((t=>!e.find((e=>e.project===t.project)))));return e}),[e])}function flattenTreeTopToBottom(e,t){if(e.length===0){return}const r=[];e.forEach((e=>{const a=e.parents.every((e=>t.find((t=>t.project===e.project))));if(!t.find((t=>t.project===e.project))&&a){t.push(e)}r.push(...e.children);if(!a){r.push(e)}}));flattenTreeTopToBottom(r,t)}},8998:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.constructTree=void 0;function constructTree(e,t,r){const a=e.reduce(((e,a)=>{const i=constructNode(a,t,r);if(i){e[a.project]=i}return e}),{});return e.reduce(((e,t)=>{if(isRoot(t)&&a[t.project]){e.push(a[t.project])}else{t.dependencies?.forEach((e=>{if(!a[e.project]){throw new Error(`The project ${e.project} does not exist on project list. Please review your project definition file`)}if(a[t.project]){a[e.project].children.push(a[t.project]);a[t.project].parents.push(a[e.project])}}))}return e}),[])}t.constructTree=constructTree;function constructNode(e,t,r){const a=getBuildCommand(e.project,t,r);const i=findBuildConfigForProject(e.project,r);const n=i?.clone;return i?.skip?undefined:{project:e.project,parents:[],children:[],archiveArtifacts:getArchiveArtifacts(e.project,r),mapping:e.mapping,before:a?.before,after:a?.after,commands:{upstream:a?.upstream??[],downstream:a?.downstream??[],current:a?.current??[]},...n?{clone:n}:{}}}function isRoot(e){return!e.dependencies||e.dependencies.length===0}function getArchiveArtifacts(e,t){return t?.find((t=>t.project===e))?.["archive-artifacts"]}function getBuildCommand(e,t,r){const a=findBuildConfigForProject(e,r);const i=a?.["build-command"];if(!i){return t}return{...i,after:i?.after?getDefaultCommandLevel(i.after,t?.after):t?.after,before:i?.before?getDefaultCommandLevel(i.before,t?.before):t?.before,...getDefaultCommandLevel({current:i.current,upstream:i.upstream,downstream:i.downstream},t)}}function getDefaultCommandLevel(e,t){if(!t){return e}const r={...e};Object.entries(e).forEach((([e,a])=>{if(a.length===0){r[e]=t[e]??a}}));return r}function findBuildConfigForProject(e,t){return t?.find((t=>t.project===e))}},9596:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getMapping=t.getMappedTarget=void 0;function getMappedTarget(e,t,r,a,i){return getMapping(e,t,r,a,i)?.target??i}t.getMappedTarget=getMappedTarget;function getMapping(e,t,r,a,i){if(e===r){return}return getSourceToTargetFromProjectOrDefault(i,r,t?.exclude??[],t?.dependencies)||getSourceToTargetFromProjectOrDefault(i,e,a?.exclude??[],a?.dependant)}t.getMapping=getMapping;function getSourceToTargetFromProjectOrDefault(e,t,r,a){if(!r.includes(t)&&a){return findSourceToTarget(e,a[t])??findSourceToTarget(e,a.default)}}function findSourceToTarget(e,t){return t?.find((t=>t.source===e))??t?.find((t=>!!e.match(new RegExp(`^${t.source}$`))))}},4619:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.safeEval=void 0;function safeEval(e,t){return Function("args",`"use strict";return (${e})`)(t)}t.safeEval=safeEval},3919:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.treatUrl=void 0;const a=r(4619);function treatUrl(e,t,r,a){return replaceExpressions(replacePlaceholders(e,t,r,a))}t.treatUrl=treatUrl;function replacePlaceholders(e,t,r,a){let i=e;const n=/\${([^{}:]+)(:([^{}]*))?}/g;const s=[...e.matchAll(n)];s.forEach((e=>{const n=e[1];let s=e[3]??process.env[n]??"";if(n==="GROUP"&&t){s=t}else if(n==="PROJECT_NAME"&&r){s=r}else if(n==="BRANCH"&&a){s=a}i=i.replace(new RegExp(`\\$\\{${n}(:([^{}]*))?}`,"gi"),s)}));return i}function replaceExpressions(e){let t=e;const r=/%{([^%]+)}/g;const i=[...e.matchAll(r)];i.forEach((e=>{t=t.replace(`%{${e[1]}}`,(0,a.safeEval)(e[1]))}));return t}},5265:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.validateDefinitionFile=void 0;const i=r(4083);const n=a(r(5439));const s=r(9579);async function validateDefinitionFile(e){const t=(0,i.parse)(e,reviver);const r=new n.default({useDefaults:"empty",allowUnionTypes:true});const a=r.compile(s.DefintionFileSchema);const o=a(t);if(o){return t}else{throw new Error(JSON.stringify(a.errors))}}t.validateDefinitionFile=validateDefinitionFile;function reviver(e,t){return convertToArray(e,t)||parseMapping(e,t)||parseBuild(e,t)||parseArchiveArtifacts(e,t)||t}function convertToArray(e,t){if(["path","current","upstream","downstream","clone","pre","success","failure","always"].includes(e)&&typeof t==="string"){return t.trim().split("\n")}}function initializeUndefined(e,t,r){if(!t[e]){t[e]=r}return t}function parseMapping(e,t){if(e==="mapping"){const e=t;initializeUndefined("exclude",e,[]);if(e["dependencies"]){initializeUndefined("default",e["dependencies"],[])}if(e["dependant"]){initializeUndefined("default",e["dependant"],[])}return e}}function parseBuild(e,t){if(["before","after","build-command"].includes(e)){const e=t;["upstream","downstream","current"].forEach((t=>{initializeUndefined(t,e,[])}));return e}}function parseArchiveArtifacts(e,t){if(e==="archive-artifacts"){const e=t;initializeUndefined("dependencies",e,"none");if(e["path"]&&Array.isArray(e["path"])){e["paths"]=transformPath(e.path);delete e["path"]}return e}}function transformPath(e){return e.map((e=>{if(typeof e==="string"){const t=e.lastIndexOf("@");return{path:t===-1?e:e.slice(0,t),on:t===-1?"success":e.slice(t+1)}}}))}},5439:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;const a=r(2396);const i=r(5826);const n=r(6658);const s=r(3712);const o=["/properties"];const p="http://json-schema.org/draft-07/schema";class Ajv extends a.default{_addVocabularies(){super._addVocabularies();i.default.forEach((e=>this.addVocabulary(e)));if(this.opts.discriminator)this.addKeyword(n.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();if(!this.opts.meta)return;const e=this.opts.$data?this.$dataMetaSchema(s,o):s;this.addMetaSchema(e,p,false);this.refs["http://json-schema.org/schema"]=p}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(p)?p:undefined)}}e.exports=t=Ajv;Object.defineProperty(t,"__esModule",{value:true});t["default"]=Ajv;var c=r(4988);Object.defineProperty(t,"KeywordCxt",{enumerable:true,get:function(){return c.KeywordCxt}});var l=r(6035);Object.defineProperty(t,"_",{enumerable:true,get:function(){return l._}});Object.defineProperty(t,"str",{enumerable:true,get:function(){return l.str}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return l.stringify}});Object.defineProperty(t,"nil",{enumerable:true,get:function(){return l.nil}});Object.defineProperty(t,"Name",{enumerable:true,get:function(){return l.Name}});Object.defineProperty(t,"CodeGen",{enumerable:true,get:function(){return l.CodeGen}});var d=r(3111);Object.defineProperty(t,"ValidationError",{enumerable:true,get:function(){return d.default}});var u=r(2146);Object.defineProperty(t,"MissingRefError",{enumerable:true,get:function(){return u.default}})},6370:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class _CodeOrName{}t._CodeOrName=_CodeOrName;t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class Name extends _CodeOrName{constructor(e){super();if(!t.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return false}get names(){return{[this.str]:1}}}t.Name=Name;class _Code extends _CodeOrName{constructor(e){super();this._items=typeof e==="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return false;const e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce(((e,t)=>`${e}${t}`),"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce(((e,t)=>{if(t instanceof Name)e[t.str]=(e[t.str]||0)+1;return e}),{})}}t._Code=_Code;t.nil=new _Code("");function _(e,...t){const r=[e[0]];let a=0;while(a{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.regexpCode=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;const a=r(6370);const i=r(3149);var n=r(6370);Object.defineProperty(t,"_",{enumerable:true,get:function(){return n._}});Object.defineProperty(t,"str",{enumerable:true,get:function(){return n.str}});Object.defineProperty(t,"strConcat",{enumerable:true,get:function(){return n.strConcat}});Object.defineProperty(t,"nil",{enumerable:true,get:function(){return n.nil}});Object.defineProperty(t,"getProperty",{enumerable:true,get:function(){return n.getProperty}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return n.stringify}});Object.defineProperty(t,"regexpCode",{enumerable:true,get:function(){return n.regexpCode}});Object.defineProperty(t,"Name",{enumerable:true,get:function(){return n.Name}});var s=r(3149);Object.defineProperty(t,"Scope",{enumerable:true,get:function(){return s.Scope}});Object.defineProperty(t,"ValueScope",{enumerable:true,get:function(){return s.ValueScope}});Object.defineProperty(t,"ValueScopeName",{enumerable:true,get:function(){return s.ValueScopeName}});Object.defineProperty(t,"varKinds",{enumerable:true,get:function(){return s.varKinds}});t.operators={GT:new a._Code(">"),GTE:new a._Code(">="),LT:new a._Code("<"),LTE:new a._Code("<="),EQ:new a._Code("==="),NEQ:new a._Code("!=="),NOT:new a._Code("!"),OR:new a._Code("||"),AND:new a._Code("&&"),ADD:new a._Code("+")};class Node{optimizeNodes(){return this}optimizeNames(e,t){return this}}class Def extends Node{constructor(e,t,r){super();this.varKind=e;this.name=t;this.rhs=r}render({es5:e,_n:t}){const r=e?i.varKinds.var:this.varKind;const a=this.rhs===undefined?"":` = ${this.rhs}`;return`${r} ${this.name}${a};`+t}optimizeNames(e,t){if(!e[this.name.str])return;if(this.rhs)this.rhs=optimizeExpr(this.rhs,e,t);return this}get names(){return this.rhs instanceof a._CodeOrName?this.rhs.names:{}}}class Assign extends Node{constructor(e,t,r){super();this.lhs=e;this.rhs=t;this.sideEffects=r}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(this.lhs instanceof a.Name&&!e[this.lhs.str]&&!this.sideEffects)return;this.rhs=optimizeExpr(this.rhs,e,t);return this}get names(){const e=this.lhs instanceof a.Name?{}:{...this.lhs.names};return addExprNames(e,this.rhs)}}class AssignOp extends Assign{constructor(e,t,r,a){super(e,r,a);this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}}class Label extends Node{constructor(e){super();this.label=e;this.names={}}render({_n:e}){return`${this.label}:`+e}}class Break extends Node{constructor(e){super();this.label=e;this.names={}}render({_n:e}){const t=this.label?` ${this.label}`:"";return`break${t};`+e}}class Throw extends Node{constructor(e){super();this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}}class AnyCode extends Node{constructor(e){super();this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:undefined}optimizeNames(e,t){this.code=optimizeExpr(this.code,e,t);return this}get names(){return this.code instanceof a._CodeOrName?this.code.names:{}}}class ParentNode extends Node{constructor(e=[]){super();this.nodes=e}render(e){return this.nodes.reduce(((t,r)=>t+r.render(e)),"")}optimizeNodes(){const{nodes:e}=this;let t=e.length;while(t--){const r=e[t].optimizeNodes();if(Array.isArray(r))e.splice(t,1,...r);else if(r)e[t]=r;else e.splice(t,1)}return e.length>0?this:undefined}optimizeNames(e,t){const{nodes:r}=this;let a=r.length;while(a--){const i=r[a];if(i.optimizeNames(e,t))continue;subtractNames(e,i.names);r.splice(a,1)}return r.length>0?this:undefined}get names(){return this.nodes.reduce(((e,t)=>addNames(e,t.names)),{})}}class BlockNode extends ParentNode{render(e){return"{"+e._n+super.render(e)+"}"+e._n}}class Root extends ParentNode{}class Else extends BlockNode{}Else.kind="else";class If extends BlockNode{constructor(e,t){super(t);this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);if(this.else)t+="else "+this.else.render(e);return t}optimizeNodes(){super.optimizeNodes();const e=this.condition;if(e===true)return this.nodes;let t=this.else;if(t){const e=t.optimizeNodes();t=this.else=Array.isArray(e)?new Else(e):e}if(t){if(e===false)return t instanceof If?t:t.nodes;if(this.nodes.length)return this;return new If(not(e),t instanceof If?[t]:t.nodes)}if(e===false||!this.nodes.length)return undefined;return this}optimizeNames(e,t){var r;this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(e,t);if(!(super.optimizeNames(e,t)||this.else))return;this.condition=optimizeExpr(this.condition,e,t);return this}get names(){const e=super.names;addExprNames(e,this.condition);if(this.else)addNames(e,this.else.names);return e}}If.kind="if";class For extends BlockNode{}For.kind="for";class ForLoop extends For{constructor(e){super();this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(!super.optimizeNames(e,t))return;this.iteration=optimizeExpr(this.iteration,e,t);return this}get names(){return addNames(super.names,this.iteration.names)}}class ForRange extends For{constructor(e,t,r,a){super();this.varKind=e;this.name=t;this.from=r;this.to=a}render(e){const t=e.es5?i.varKinds.var:this.varKind;const{name:r,from:a,to:n}=this;return`for(${t} ${r}=${a}; ${r}<${n}; ${r}++)`+super.render(e)}get names(){const e=addExprNames(super.names,this.from);return addExprNames(e,this.to)}}class ForIter extends For{constructor(e,t,r,a){super();this.loop=e;this.varKind=t;this.name=r;this.iterable=a}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(!super.optimizeNames(e,t))return;this.iterable=optimizeExpr(this.iterable,e,t);return this}get names(){return addNames(super.names,this.iterable.names)}}class Func extends BlockNode{constructor(e,t,r){super();this.name=e;this.args=t;this.async=r}render(e){const t=this.async?"async ":"";return`${t}function ${this.name}(${this.args})`+super.render(e)}}Func.kind="func";class Return extends ParentNode{render(e){return"return "+super.render(e)}}Return.kind="return";class Try extends BlockNode{render(e){let t="try"+super.render(e);if(this.catch)t+=this.catch.render(e);if(this.finally)t+=this.finally.render(e);return t}optimizeNodes(){var e,t;super.optimizeNodes();(e=this.catch)===null||e===void 0?void 0:e.optimizeNodes();(t=this.finally)===null||t===void 0?void 0:t.optimizeNodes();return this}optimizeNames(e,t){var r,a;super.optimizeNames(e,t);(r=this.catch)===null||r===void 0?void 0:r.optimizeNames(e,t);(a=this.finally)===null||a===void 0?void 0:a.optimizeNames(e,t);return this}get names(){const e=super.names;if(this.catch)addNames(e,this.catch.names);if(this.finally)addNames(e,this.finally.names);return e}}class Catch extends BlockNode{constructor(e){super();this.error=e}render(e){return`catch(${this.error})`+super.render(e)}}Catch.kind="catch";class Finally extends BlockNode{render(e){return"finally"+super.render(e)}}Finally.kind="finally";class CodeGen{constructor(e,t={}){this._values={};this._blockStarts=[];this._constants={};this.opts={...t,_n:t.lines?"\n":""};this._extScope=e;this._scope=new i.Scope({parent:e});this._nodes=[new Root]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){const r=this._extScope.value(e,t);const a=this._values[r.prefix]||(this._values[r.prefix]=new Set);a.add(r);return r}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,r,a){const i=this._scope.toName(t);if(r!==undefined&&a)this._constants[i.str]=r;this._leafNode(new Def(e,i,r));return i}const(e,t,r){return this._def(i.varKinds.const,e,t,r)}let(e,t,r){return this._def(i.varKinds.let,e,t,r)}var(e,t,r){return this._def(i.varKinds.var,e,t,r)}assign(e,t,r){return this._leafNode(new Assign(e,t,r))}add(e,r){return this._leafNode(new AssignOp(e,t.operators.ADD,r))}code(e){if(typeof e=="function")e();else if(e!==a.nil)this._leafNode(new AnyCode(e));return this}object(...e){const t=["{"];for(const[r,i]of e){if(t.length>1)t.push(",");t.push(r);if(r!==i||this.opts.es5){t.push(":");(0,a.addCodeArg)(t,i)}}t.push("}");return new a._Code(t)}if(e,t,r){this._blockNode(new If(e));if(t&&r){this.code(t).else().code(r).endIf()}else if(t){this.code(t).endIf()}else if(r){throw new Error('CodeGen: "else" body without "then" body')}return this}elseIf(e){return this._elseNode(new If(e))}else(){return this._elseNode(new Else)}endIf(){return this._endBlockNode(If,Else)}_for(e,t){this._blockNode(e);if(t)this.code(t).endFor();return this}for(e,t){return this._for(new ForLoop(e),t)}forRange(e,t,r,a,n=(this.opts.es5?i.varKinds.var:i.varKinds.let)){const s=this._scope.toName(e);return this._for(new ForRange(n,s,t,r),(()=>a(s)))}forOf(e,t,r,n=i.varKinds.const){const s=this._scope.toName(e);if(this.opts.es5){const e=t instanceof a.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0,a._)`${e}.length`,(t=>{this.var(s,(0,a._)`${e}[${t}]`);r(s)}))}return this._for(new ForIter("of",n,s,t),(()=>r(s)))}forIn(e,t,r,n=(this.opts.es5?i.varKinds.var:i.varKinds.const)){if(this.opts.ownProperties){return this.forOf(e,(0,a._)`Object.keys(${t})`,r)}const s=this._scope.toName(e);return this._for(new ForIter("in",n,s,t),(()=>r(s)))}endFor(){return this._endBlockNode(For)}label(e){return this._leafNode(new Label(e))}break(e){return this._leafNode(new Break(e))}return(e){const t=new Return;this._blockNode(t);this.code(e);if(t.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Return)}try(e,t,r){if(!t&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');const a=new Try;this._blockNode(a);this.code(e);if(t){const e=this.name("e");this._currNode=a.catch=new Catch(e);t(e)}if(r){this._currNode=a.finally=new Finally;this.code(r)}return this._endBlockNode(Catch,Finally)}throw(e){return this._leafNode(new Throw(e))}block(e,t){this._blockStarts.push(this._nodes.length);if(e)this.code(e).endBlock(t);return this}endBlock(e){const t=this._blockStarts.pop();if(t===undefined)throw new Error("CodeGen: not in self-balancing block");const r=this._nodes.length-t;if(r<0||e!==undefined&&r!==e){throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${e} expected`)}this._nodes.length=t;return this}func(e,t=a.nil,r,i){this._blockNode(new Func(e,t,r));if(i)this.code(i).endFunc();return this}endFunc(){return this._endBlockNode(Func)}optimize(e=1){while(e-- >0){this._root.optimizeNodes();this._root.optimizeNames(this._root.names,this._constants)}}_leafNode(e){this._currNode.nodes.push(e);return this}_blockNode(e){this._currNode.nodes.push(e);this._nodes.push(e)}_endBlockNode(e,t){const r=this._currNode;if(r instanceof e||t&&r instanceof t){this._nodes.pop();return this}throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){const t=this._currNode;if(!(t instanceof If)){throw new Error('CodeGen: "else" without "if"')}this._currNode=t.else=e;return this}get _root(){return this._nodes[0]}get _currNode(){const e=this._nodes;return e[e.length-1]}set _currNode(e){const t=this._nodes;t[t.length-1]=e}}t.CodeGen=CodeGen;function addNames(e,t){for(const r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function addExprNames(e,t){return t instanceof a._CodeOrName?addNames(e,t.names):e}function optimizeExpr(e,t,r){if(e instanceof a.Name)return replaceName(e);if(!canOptimize(e))return e;return new a._Code(e._items.reduce(((e,t)=>{if(t instanceof a.Name)t=replaceName(t);if(t instanceof a._Code)e.push(...t._items);else e.push(t);return e}),[]));function replaceName(e){const a=r[e.str];if(a===undefined||t[e.str]!==1)return e;delete t[e.str];return a}function canOptimize(e){return e instanceof a._Code&&e._items.some((e=>e instanceof a.Name&&t[e.str]===1&&r[e.str]!==undefined))}}function subtractNames(e,t){for(const r in t)e[r]=(e[r]||0)-(t[r]||0)}function not(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,a._)`!${par(e)}`}t.not=not;const o=mappend(t.operators.AND);function and(...e){return e.reduce(o)}t.and=and;const p=mappend(t.operators.OR);function or(...e){return e.reduce(p)}t.or=or;function mappend(e){return(t,r)=>t===a.nil?r:r===a.nil?t:(0,a._)`${par(t)} ${e} ${par(r)}`}function par(e){return e instanceof a.Name?e:(0,a._)`(${e})`}},3149:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;const a=r(6370);class ValueError extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`);this.value=e.value}}var i;(function(e){e[e["Started"]=0]="Started";e[e["Completed"]=1]="Completed"})(i=t.UsedValueState||(t.UsedValueState={}));t.varKinds={const:new a.Name("const"),let:new a.Name("let"),var:new a.Name("var")};class Scope{constructor({prefixes:e,parent:t}={}){this._names={};this._prefixes=e;this._parent=t}toName(e){return e instanceof a.Name?e:this.name(e)}name(e){return new a.Name(this._newName(e))}_newName(e){const t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){var t,r;if(((r=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||r===void 0?void 0:r.has(e))||this._prefixes&&!this._prefixes.has(e)){throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`)}return this._names[e]={prefix:e,index:0}}}t.Scope=Scope;class ValueScopeName extends a.Name{constructor(e,t){super(t);this.prefix=e}setValue(e,{property:t,itemIndex:r}){this.value=e;this.scopePath=(0,a._)`.${new a.Name(t)}[${r}]`}}t.ValueScopeName=ValueScopeName;const n=(0,a._)`\n`;class ValueScope extends Scope{constructor(e){super(e);this._values={};this._scope=e.scope;this.opts={...e,_n:e.lines?n:a.nil}}get(){return this._scope}name(e){return new ValueScopeName(e,this._newName(e))}value(e,t){var r;if(t.ref===undefined)throw new Error("CodeGen: ref must be passed in value");const a=this.toName(e);const{prefix:i}=a;const n=(r=t.key)!==null&&r!==void 0?r:t.ref;let s=this._values[i];if(s){const e=s.get(n);if(e)return e}else{s=this._values[i]=new Map}s.set(n,a);const o=this._scope[i]||(this._scope[i]=[]);const p=o.length;o[p]=t.ref;a.setValue(t,{property:i,itemIndex:p});return a}getValue(e,t){const r=this._values[e];if(!r)return;return r.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,(t=>{if(t.scopePath===undefined)throw new Error(`CodeGen: name "${t}" has no value`);return(0,a._)`${e}${t.scopePath}`}))}scopeCode(e=this._values,t,r){return this._reduceValues(e,(e=>{if(e.value===undefined)throw new Error(`CodeGen: name "${e}" has no value`);return e.value.code}),t,r)}_reduceValues(e,r,n={},s){let o=a.nil;for(const p in e){const c=e[p];if(!c)continue;const l=n[p]=n[p]||new Map;c.forEach((e=>{if(l.has(e))return;l.set(e,i.Started);let n=r(e);if(n){const r=this.opts.es5?t.varKinds.var:t.varKinds.const;o=(0,a._)`${o}${r} ${e} = ${n};${this.opts._n}`}else if(n=s===null||s===void 0?void 0:s(e)){o=(0,a._)`${o}${n}${this.opts._n}`}else{throw new ValueError(e)}l.set(e,i.Completed)}))}return o}}t.ValueScope=ValueScope},7722:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;const a=r(6035);const i=r(407);const n=r(5302);t.keywordError={message:({keyword:e})=>(0,a.str)`must pass "${e}" keyword validation`};t.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,a.str)`"${e}" keyword must be ${t} ($data)`:(0,a.str)`"${e}" keyword is invalid ($data)`};function reportError(e,r=t.keywordError,i,n){const{it:s}=e;const{gen:o,compositeRule:p,allErrors:c}=s;const l=errorObjectCode(e,r,i);if(n!==null&&n!==void 0?n:p||c){addError(o,l)}else{returnErrors(s,(0,a._)`[${l}]`)}}t.reportError=reportError;function reportExtraError(e,r=t.keywordError,a){const{it:i}=e;const{gen:s,compositeRule:o,allErrors:p}=i;const c=errorObjectCode(e,r,a);addError(s,c);if(!(o||p)){returnErrors(i,n.default.vErrors)}}t.reportExtraError=reportExtraError;function resetErrorsCount(e,t){e.assign(n.default.errors,t);e.if((0,a._)`${n.default.vErrors} !== null`,(()=>e.if(t,(()=>e.assign((0,a._)`${n.default.vErrors}.length`,t)),(()=>e.assign(n.default.vErrors,null)))))}t.resetErrorsCount=resetErrorsCount;function extendErrors({gen:e,keyword:t,schemaValue:r,data:i,errsCount:s,it:o}){if(s===undefined)throw new Error("ajv implementation error");const p=e.name("err");e.forRange("i",s,n.default.errors,(s=>{e.const(p,(0,a._)`${n.default.vErrors}[${s}]`);e.if((0,a._)`${p}.instancePath === undefined`,(()=>e.assign((0,a._)`${p}.instancePath`,(0,a.strConcat)(n.default.instancePath,o.errorPath))));e.assign((0,a._)`${p}.schemaPath`,(0,a.str)`${o.errSchemaPath}/${t}`);if(o.opts.verbose){e.assign((0,a._)`${p}.schema`,r);e.assign((0,a._)`${p}.data`,i)}}))}t.extendErrors=extendErrors;function addError(e,t){const r=e.const("err",t);e.if((0,a._)`${n.default.vErrors} === null`,(()=>e.assign(n.default.vErrors,(0,a._)`[${r}]`)),(0,a._)`${n.default.vErrors}.push(${r})`);e.code((0,a._)`${n.default.errors}++`)}function returnErrors(e,t){const{gen:r,validateName:i,schemaEnv:n}=e;if(n.$async){r.throw((0,a._)`new ${e.ValidationError}(${t})`)}else{r.assign((0,a._)`${i}.errors`,t);r.return(false)}}const s={keyword:new a.Name("keyword"),schemaPath:new a.Name("schemaPath"),params:new a.Name("params"),propertyName:new a.Name("propertyName"),message:new a.Name("message"),schema:new a.Name("schema"),parentSchema:new a.Name("parentSchema")};function errorObjectCode(e,t,r){const{createErrors:i}=e.it;if(i===false)return(0,a._)`{}`;return errorObject(e,t,r)}function errorObject(e,t,r={}){const{gen:a,it:i}=e;const n=[errorInstancePath(i,r),errorSchemaPath(e,r)];extraErrorProps(e,t,n);return a.object(...n)}function errorInstancePath({errorPath:e},{instancePath:t}){const r=t?(0,a.str)`${e}${(0,i.getErrorPath)(t,i.Type.Str)}`:e;return[n.default.instancePath,(0,a.strConcat)(n.default.instancePath,r)]}function errorSchemaPath({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let o=n?t:(0,a.str)`${t}/${e}`;if(r){o=(0,a.str)`${o}${(0,i.getErrorPath)(r,i.Type.Str)}`}return[s.schemaPath,o]}function extraErrorProps(e,{params:t,message:r},i){const{keyword:o,data:p,schemaValue:c,it:l}=e;const{opts:d,propertyName:u,topSchemaRef:m,schemaPath:h}=l;i.push([s.keyword,o],[s.params,typeof t=="function"?t(e):t||(0,a._)`{}`]);if(d.messages){i.push([s.message,typeof r=="function"?r(e):r])}if(d.verbose){i.push([s.schema,c],[s.parentSchema,(0,a._)`${m}${h}`],[n.default.data,p])}if(u)i.push([s.propertyName,u])}},9230:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;const a=r(6035);const i=r(3111);const n=r(5302);const s=r(985);const o=r(407);const p=r(4988);class SchemaEnv{constructor(e){var t;this.refs={};this.dynamicAnchors={};let r;if(typeof e.schema=="object")r=e.schema;this.schema=e.schema;this.schemaId=e.schemaId;this.root=e.root||this;this.baseId=(t=e.baseId)!==null&&t!==void 0?t:(0,s.normalizeId)(r===null||r===void 0?void 0:r[e.schemaId||"$id"]);this.schemaPath=e.schemaPath;this.localRefs=e.localRefs;this.meta=e.meta;this.$async=r===null||r===void 0?void 0:r.$async;this.refs={}}}t.SchemaEnv=SchemaEnv;function compileSchema(e){const t=getCompilingSchema.call(this,e);if(t)return t;const r=(0,s.getFullPath)(this.opts.uriResolver,e.root.baseId);const{es5:o,lines:c}=this.opts.code;const{ownProperties:l}=this.opts;const d=new a.CodeGen(this.scope,{es5:o,lines:c,ownProperties:l});let u;if(e.$async){u=d.scopeValue("Error",{ref:i.default,code:(0,a._)`require("ajv/dist/runtime/validation_error").default`})}const m=d.scopeName("validate");e.validateName=m;const h={gen:d,allErrors:this.opts.allErrors,data:n.default.data,parentData:n.default.parentData,parentDataProperty:n.default.parentDataProperty,dataNames:[n.default.data],dataPathArr:[a.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:d.scopeValue("schema",this.opts.code.source===true?{ref:e.schema,code:(0,a.stringify)(e.schema)}:{ref:e.schema}),validateName:m,ValidationError:u,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:a.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,a._)`""`,opts:this.opts,self:this};let g;try{this._compilations.add(e);(0,p.validateFunctionCode)(h);d.optimize(this.opts.code.optimize);const t=d.toString();g=`${d.scopeRefs(n.default.scope)}return ${t}`;if(this.opts.code.process)g=this.opts.code.process(g,e);const r=new Function(`${n.default.self}`,`${n.default.scope}`,g);const i=r(this,this.scope.get());this.scope.value(m,{ref:i});i.errors=null;i.schema=e.schema;i.schemaEnv=e;if(e.$async)i.$async=true;if(this.opts.code.source===true){i.source={validateName:m,validateCode:t,scopeValues:d._values}}if(this.opts.unevaluated){const{props:e,items:t}=h;i.evaluated={props:e instanceof a.Name?undefined:e,items:t instanceof a.Name?undefined:t,dynamicProps:e instanceof a.Name,dynamicItems:t instanceof a.Name};if(i.source)i.source.evaluated=(0,a.stringify)(i.evaluated)}e.validate=i;return e}catch(t){delete e.validate;delete e.validateName;if(g)this.logger.error("Error compiling schema, function code:",g);throw t}finally{this._compilations.delete(e)}}t.compileSchema=compileSchema;function resolveRef(e,t,r){var a;r=(0,s.resolveUrl)(this.opts.uriResolver,t,r);const i=e.refs[r];if(i)return i;let n=resolve.call(this,e,r);if(n===undefined){const i=(a=e.localRefs)===null||a===void 0?void 0:a[r];const{schemaId:s}=this.opts;if(i)n=new SchemaEnv({schema:i,schemaId:s,root:e,baseId:t})}if(n===undefined)return;return e.refs[r]=inlineOrCompile.call(this,n)}t.resolveRef=resolveRef;function inlineOrCompile(e){if((0,s.inlineRef)(e.schema,this.opts.inlineRefs))return e.schema;return e.validate?e:compileSchema.call(this,e)}function getCompilingSchema(e){for(const t of this._compilations){if(sameSchemaEnv(t,e))return t}}t.getCompilingSchema=getCompilingSchema;function sameSchemaEnv(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function resolve(e,t){let r;while(typeof(r=this.refs[t])=="string")t=r;return r||this.schemas[t]||resolveSchema.call(this,e,t)}function resolveSchema(e,t){const r=this.opts.uriResolver.parse(t);const a=(0,s._getFullPath)(this.opts.uriResolver,r);let i=(0,s.getFullPath)(this.opts.uriResolver,e.baseId,undefined);if(Object.keys(e.schema).length>0&&a===i){return getJsonPointer.call(this,r,e)}const n=(0,s.normalizeId)(a);const o=this.refs[n]||this.schemas[n];if(typeof o=="string"){const t=resolveSchema.call(this,e,o);if(typeof(t===null||t===void 0?void 0:t.schema)!=="object")return;return getJsonPointer.call(this,r,t)}if(typeof(o===null||o===void 0?void 0:o.schema)!=="object")return;if(!o.validate)compileSchema.call(this,o);if(n===(0,s.normalizeId)(t)){const{schema:t}=o;const{schemaId:r}=this.opts;const a=t[r];if(a)i=(0,s.resolveUrl)(this.opts.uriResolver,i,a);return new SchemaEnv({schema:t,schemaId:r,root:e,baseId:i})}return getJsonPointer.call(this,r,o)}t.resolveSchema=resolveSchema;const c=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function getJsonPointer(e,{baseId:t,schema:r,root:a}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(const a of e.fragment.slice(1).split("/")){if(typeof r==="boolean")return;const e=r[(0,o.unescapeFragment)(a)];if(e===undefined)return;r=e;const i=typeof r==="object"&&r[this.opts.schemaId];if(!c.has(a)&&i){t=(0,s.resolveUrl)(this.opts.uriResolver,t,i)}}let n;if(typeof r!="boolean"&&r.$ref&&!(0,o.schemaHasRulesButRef)(r,this.RULES)){const e=(0,s.resolveUrl)(this.opts.uriResolver,t,r.$ref);n=resolveSchema.call(this,a,e)}const{schemaId:p}=this.opts;n=n||new SchemaEnv({schema:r,schemaId:p,root:a,baseId:t});if(n.schema!==n.root.schema)return n;return undefined}},5302:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i={data:new a.Name("data"),valCxt:new a.Name("valCxt"),instancePath:new a.Name("instancePath"),parentData:new a.Name("parentData"),parentDataProperty:new a.Name("parentDataProperty"),rootData:new a.Name("rootData"),dynamicAnchors:new a.Name("dynamicAnchors"),vErrors:new a.Name("vErrors"),errors:new a.Name("errors"),this:new a.Name("this"),self:new a.Name("self"),scope:new a.Name("scope"),json:new a.Name("json"),jsonPos:new a.Name("jsonPos"),jsonLen:new a.Name("jsonLen"),jsonPart:new a.Name("jsonPart")};t["default"]=i},2146:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(985);class MissingRefError extends Error{constructor(e,t,r,i){super(i||`can't resolve reference ${r} from id ${t}`);this.missingRef=(0,a.resolveUrl)(e,t,r);this.missingSchema=(0,a.normalizeId)((0,a.getFullPath)(e,this.missingRef))}}t["default"]=MissingRefError},985:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;const a=r(407);const i=r(8206);const n=r(9263);const s=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function inlineRef(e,t=true){if(typeof e=="boolean")return true;if(t===true)return!hasRef(e);if(!t)return false;return countKeys(e)<=t}t.inlineRef=inlineRef;const o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function hasRef(e){for(const t in e){if(o.has(t))return true;const r=e[t];if(Array.isArray(r)&&r.some(hasRef))return true;if(typeof r=="object"&&hasRef(r))return true}return false}function countKeys(e){let t=0;for(const r in e){if(r==="$ref")return Infinity;t++;if(s.has(r))continue;if(typeof e[r]=="object"){(0,a.eachItem)(e[r],(e=>t+=countKeys(e)))}if(t===Infinity)return Infinity}return t}function getFullPath(e,t="",r){if(r!==false)t=normalizeId(t);const a=e.parse(t);return _getFullPath(e,a)}t.getFullPath=getFullPath;function _getFullPath(e,t){const r=e.serialize(t);return r.split("#")[0]+"#"}t._getFullPath=_getFullPath;const p=/#\/?$/;function normalizeId(e){return e?e.replace(p,""):""}t.normalizeId=normalizeId;function resolveUrl(e,t,r){r=normalizeId(r);return e.resolve(t,r)}t.resolveUrl=resolveUrl;const c=/^[a-z_][-a-z0-9._]*$/i;function getSchemaRefs(e,t){if(typeof e=="boolean")return{};const{schemaId:r,uriResolver:a}=this.opts;const s=normalizeId(e[r]||t);const o={"":s};const p=getFullPath(a,s,false);const l={};const d=new Set;n(e,{allKeys:true},((e,t,a,i)=>{if(i===undefined)return;const n=p+t;let s=o[i];if(typeof e[r]=="string")s=addRef.call(this,e[r]);addAnchor.call(this,e.$anchor);addAnchor.call(this,e.$dynamicAnchor);o[t]=s;function addRef(t){const r=this.opts.uriResolver.resolve;t=normalizeId(s?r(s,t):t);if(d.has(t))throw ambiguos(t);d.add(t);let a=this.refs[t];if(typeof a=="string")a=this.refs[a];if(typeof a=="object"){checkAmbiguosRef(e,a.schema,t)}else if(t!==normalizeId(n)){if(t[0]==="#"){checkAmbiguosRef(e,l[t],t);l[t]=e}else{this.refs[t]=n}}return t}function addAnchor(e){if(typeof e=="string"){if(!c.test(e))throw new Error(`invalid anchor "${e}"`);addRef.call(this,`#${e}`)}}}));return l;function checkAmbiguosRef(e,t,r){if(t!==undefined&&!i(e,t))throw ambiguos(r)}function ambiguos(e){return new Error(`reference "${e}" resolves to more than one schema`)}}t.getSchemaRefs=getSchemaRefs},6731:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getRules=t.isJSONType=void 0;const r=["string","number","integer","boolean","null","object","array"];const a=new Set(r);function isJSONType(e){return typeof e=="string"&&a.has(e)}t.isJSONType=isJSONType;function getRules(){const e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:true,boolean:true,null:true},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=getRules},407:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.checkStrictMode=t.getErrorPath=t.Type=t.useFunc=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;const a=r(6035);const i=r(6370);function toHash(e){const t={};for(const r of e)t[r]=true;return t}t.toHash=toHash;function alwaysValidSchema(e,t){if(typeof t=="boolean")return t;if(Object.keys(t).length===0)return true;checkUnknownRules(e,t);return!schemaHasRules(t,e.self.RULES.all)}t.alwaysValidSchema=alwaysValidSchema;function checkUnknownRules(e,t=e.schema){const{opts:r,self:a}=e;if(!r.strictSchema)return;if(typeof t==="boolean")return;const i=a.RULES.keywords;for(const r in t){if(!i[r])checkStrictMode(e,`unknown keyword: "${r}"`)}}t.checkUnknownRules=checkUnknownRules;function schemaHasRules(e,t){if(typeof e=="boolean")return!e;for(const r in e)if(t[r])return true;return false}t.schemaHasRules=schemaHasRules;function schemaHasRulesButRef(e,t){if(typeof e=="boolean")return!e;for(const r in e)if(r!=="$ref"&&t.all[r])return true;return false}t.schemaHasRulesButRef=schemaHasRulesButRef;function schemaRefOrVal({topSchemaRef:e,schemaPath:t},r,i,n){if(!n){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,a._)`${r}`}return(0,a._)`${e}${t}${(0,a.getProperty)(i)}`}t.schemaRefOrVal=schemaRefOrVal;function unescapeFragment(e){return unescapeJsonPointer(decodeURIComponent(e))}t.unescapeFragment=unescapeFragment;function escapeFragment(e){return encodeURIComponent(escapeJsonPointer(e))}t.escapeFragment=escapeFragment;function escapeJsonPointer(e){if(typeof e=="number")return`${e}`;return e.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=escapeJsonPointer;function unescapeJsonPointer(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=unescapeJsonPointer;function eachItem(e,t){if(Array.isArray(e)){for(const r of e)t(r)}else{t(e)}}t.eachItem=eachItem;function makeMergeEvaluated({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:i}){return(n,s,o,p)=>{const c=o===undefined?s:o instanceof a.Name?(s instanceof a.Name?e(n,s,o):t(n,s,o),o):s instanceof a.Name?(t(n,o,s),s):r(s,o);return p===a.Name&&!(c instanceof a.Name)?i(n,c):c}}t.mergeEvaluated={props:makeMergeEvaluated({mergeNames:(e,t,r)=>e.if((0,a._)`${r} !== true && ${t} !== undefined`,(()=>{e.if((0,a._)`${t} === true`,(()=>e.assign(r,true)),(()=>e.assign(r,(0,a._)`${r} || {}`).code((0,a._)`Object.assign(${r}, ${t})`)))})),mergeToName:(e,t,r)=>e.if((0,a._)`${r} !== true`,(()=>{if(t===true){e.assign(r,true)}else{e.assign(r,(0,a._)`${r} || {}`);setEvaluated(e,r,t)}})),mergeValues:(e,t)=>e===true?true:{...e,...t},resultToName:evaluatedPropsToName}),items:makeMergeEvaluated({mergeNames:(e,t,r)=>e.if((0,a._)`${r} !== true && ${t} !== undefined`,(()=>e.assign(r,(0,a._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`))),mergeToName:(e,t,r)=>e.if((0,a._)`${r} !== true`,(()=>e.assign(r,t===true?true:(0,a._)`${r} > ${t} ? ${r} : ${t}`))),mergeValues:(e,t)=>e===true?true:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function evaluatedPropsToName(e,t){if(t===true)return e.var("props",true);const r=e.var("props",(0,a._)`{}`);if(t!==undefined)setEvaluated(e,r,t);return r}t.evaluatedPropsToName=evaluatedPropsToName;function setEvaluated(e,t,r){Object.keys(r).forEach((r=>e.assign((0,a._)`${t}${(0,a.getProperty)(r)}`,true)))}t.setEvaluated=setEvaluated;const n={};function useFunc(e,t){return e.scopeValue("func",{ref:t,code:n[t.code]||(n[t.code]=new i._Code(t.code))})}t.useFunc=useFunc;var s;(function(e){e[e["Num"]=0]="Num";e[e["Str"]=1]="Str"})(s=t.Type||(t.Type={}));function getErrorPath(e,t,r){if(e instanceof a.Name){const i=t===s.Num;return r?i?(0,a._)`"[" + ${e} + "]"`:(0,a._)`"['" + ${e} + "']"`:i?(0,a._)`"/" + ${e}`:(0,a._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,a.getProperty)(e).toString():"/"+escapeJsonPointer(e)}t.getErrorPath=getErrorPath;function checkStrictMode(e,t,r=e.opts.strictSchema){if(!r)return;t=`strict mode: ${t}`;if(r===true)throw new Error(t);e.self.logger.warn(t)}t.checkStrictMode=checkStrictMode},4019:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function schemaHasRulesForType({schema:e,self:t},r){const a=t.RULES.types[r];return a&&a!==true&&shouldUseGroup(e,a)}t.schemaHasRulesForType=schemaHasRulesForType;function shouldUseGroup(e,t){return t.rules.some((t=>shouldUseRule(e,t)))}t.shouldUseGroup=shouldUseGroup;function shouldUseRule(e,t){var r;return e[t.keyword]!==undefined||((r=t.definition.implements)===null||r===void 0?void 0:r.some((t=>e[t]!==undefined)))}t.shouldUseRule=shouldUseRule},598:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;const a=r(7722);const i=r(6035);const n=r(5302);const s={message:"boolean schema is false"};function topBoolOrEmptySchema(e){const{gen:t,schema:r,validateName:a}=e;if(r===false){falseSchemaError(e,false)}else if(typeof r=="object"&&r.$async===true){t.return(n.default.data)}else{t.assign((0,i._)`${a}.errors`,null);t.return(true)}}t.topBoolOrEmptySchema=topBoolOrEmptySchema;function boolOrEmptySchema(e,t){const{gen:r,schema:a}=e;if(a===false){r.var(t,false);falseSchemaError(e)}else{r.var(t,true)}}t.boolOrEmptySchema=boolOrEmptySchema;function falseSchemaError(e,t){const{gen:r,data:i}=e;const n={gen:r,keyword:"false schema",data:i,schema:false,schemaCode:false,schemaValue:false,params:{},it:e};(0,a.reportError)(n,s,undefined,t)}},2933:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;const a=r(6731);const i=r(4019);const n=r(7722);const s=r(6035);const o=r(407);var p;(function(e){e[e["Correct"]=0]="Correct";e[e["Wrong"]=1]="Wrong"})(p=t.DataType||(t.DataType={}));function getSchemaTypes(e){const t=getJSONTypes(e.type);const r=t.includes("null");if(r){if(e.nullable===false)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==undefined){throw new Error('"nullable" cannot be used without "type"')}if(e.nullable===true)t.push("null")}return t}t.getSchemaTypes=getSchemaTypes;function getJSONTypes(e){const t=Array.isArray(e)?e:e?[e]:[];if(t.every(a.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}t.getJSONTypes=getJSONTypes;function coerceAndCheckDataType(e,t){const{gen:r,data:a,opts:n}=e;const s=coerceToTypes(t,n.coerceTypes);const o=t.length>0&&!(s.length===0&&t.length===1&&(0,i.schemaHasRulesForType)(e,t[0]));if(o){const i=checkDataTypes(t,a,n.strictNumbers,p.Wrong);r.if(i,(()=>{if(s.length)coerceData(e,t,s);else reportTypeError(e)}))}return o}t.coerceAndCheckDataType=coerceAndCheckDataType;const c=new Set(["string","number","integer","boolean","null"]);function coerceToTypes(e,t){return t?e.filter((e=>c.has(e)||t==="array"&&e==="array")):[]}function coerceData(e,t,r){const{gen:a,data:i,opts:n}=e;const o=a.let("dataType",(0,s._)`typeof ${i}`);const p=a.let("coerced",(0,s._)`undefined`);if(n.coerceTypes==="array"){a.if((0,s._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,(()=>a.assign(i,(0,s._)`${i}[0]`).assign(o,(0,s._)`typeof ${i}`).if(checkDataTypes(t,i,n.strictNumbers),(()=>a.assign(p,i)))))}a.if((0,s._)`${p} !== undefined`);for(const e of r){if(c.has(e)||e==="array"&&n.coerceTypes==="array"){coerceSpecificType(e)}}a.else();reportTypeError(e);a.endIf();a.if((0,s._)`${p} !== undefined`,(()=>{a.assign(i,p);assignParentData(e,p)}));function coerceSpecificType(e){switch(e){case"string":a.elseIf((0,s._)`${o} == "number" || ${o} == "boolean"`).assign(p,(0,s._)`"" + ${i}`).elseIf((0,s._)`${i} === null`).assign(p,(0,s._)`""`);return;case"number":a.elseIf((0,s._)`${o} == "boolean" || ${i} === null +(()=>{var __webpack_modules__={2605:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.create=void 0;const a=r(8802);function create(){return a.DefaultArtifactClient.create()}t.create=create},8802:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.DefaultArtifactClient=void 0;const o=n(r(2186));const p=r(183);const c=r(4354);const l=r(6327);const d=r(7398);const u=r(8538);const m=r(5686);const h=r(2222);const g=r(1017);class DefaultArtifactClient{static create(){return new DefaultArtifactClient}uploadArtifact(e,t,r,a){return s(this,void 0,void 0,(function*(){o.info(`Starting artifact upload\nFor more detailed logs during the artifact upload process, enable step-debugging: https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging`);d.checkArtifactName(e);const i=p.getUploadSpecification(e,r,t);const n={artifactName:e,artifactItems:[],size:0,failedItems:[]};const s=new c.UploadHttpClient;if(i.length===0){o.warning(`No files found that can be uploaded`)}else{const t=yield s.createArtifactInFileContainer(e,a);if(!t.fileContainerResourceUrl){o.debug(t.toString());throw new Error("No URL provided by the Artifact Service to upload an artifact to")}o.debug(`Upload Resource URL: ${t.fileContainerResourceUrl}`);o.info(`Container for artifact "${e}" successfully created. Starting upload of file(s)`);const r=yield s.uploadArtifactToFileContainer(t.fileContainerResourceUrl,i,a);o.info(`File upload process has finished. Finalizing the artifact upload`);yield s.patchArtifactSize(r.totalSize,e);if(r.failedItems.length>0){o.info(`Upload finished. There were ${r.failedItems.length} items that failed to upload`)}else{o.info(`Artifact has been finalized. All files have been successfully uploaded!`)}o.info(`\nThe raw size of all the files that were specified for upload is ${r.totalSize} bytes\nThe size of all the files that were uploaded is ${r.uploadSize} bytes. This takes into account any gzip compression used to reduce the upload size, time and storage\n\nNote: The size of downloaded zips can differ significantly from the reported size. For more information see: https://github.com/actions/upload-artifact#zipped-artifact-downloads \r\n`);n.artifactItems=i.map((e=>e.absoluteFilePath));n.size=r.uploadSize;n.failedItems=r.failedItems}return n}))}downloadArtifact(e,t,r){return s(this,void 0,void 0,(function*(){const a=new u.DownloadHttpClient;const i=yield a.listArtifacts();if(i.count===0){throw new Error(`Unable to find any artifacts for the associated workflow`)}const n=i.value.find((t=>t.name===e));if(!n){throw new Error(`Unable to find an artifact with the name: ${e}`)}const s=yield a.getContainerItems(n.name,n.fileContainerResourceUrl);if(!t){t=h.getWorkSpaceDirectory()}t=g.normalize(t);t=g.resolve(t);const p=m.getDownloadSpecification(e,s.value,t,(r===null||r===void 0?void 0:r.createArtifactFolder)||false);if(p.filesToDownload.length===0){o.info(`No downloadable files were found for the artifact: ${n.name}`)}else{yield l.createDirectoriesForArtifact(p.directoryStructure);o.info("Directory structure has been setup for the artifact");yield l.createEmptyFilesForArtifact(p.emptyFilesToCreate);yield a.downloadSingleArtifact(p.filesToDownload)}return{artifactName:e,downloadPath:p.rootDownloadLocation}}))}downloadAllArtifacts(e){return s(this,void 0,void 0,(function*(){const t=new u.DownloadHttpClient;const r=[];const a=yield t.listArtifacts();if(a.count===0){o.info("Unable to find any artifacts for the associated workflow");return r}if(!e){e=h.getWorkSpaceDirectory()}e=g.normalize(e);e=g.resolve(e);let i=0;while(i{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getRetentionDays=t.getWorkSpaceDirectory=t.getWorkFlowRunId=t.getRuntimeUrl=t.getRuntimeToken=t.getDownloadFileConcurrency=t.getInitialRetryIntervalInMilliseconds=t.getRetryMultiplier=t.getRetryLimit=t.getUploadChunkSize=t.getUploadFileConcurrency=void 0;function getUploadFileConcurrency(){return 2}t.getUploadFileConcurrency=getUploadFileConcurrency;function getUploadChunkSize(){return 8*1024*1024}t.getUploadChunkSize=getUploadChunkSize;function getRetryLimit(){return 5}t.getRetryLimit=getRetryLimit;function getRetryMultiplier(){return 1.5}t.getRetryMultiplier=getRetryMultiplier;function getInitialRetryIntervalInMilliseconds(){return 3e3}t.getInitialRetryIntervalInMilliseconds=getInitialRetryIntervalInMilliseconds;function getDownloadFileConcurrency(){return 2}t.getDownloadFileConcurrency=getDownloadFileConcurrency;function getRuntimeToken(){const e=process.env["ACTIONS_RUNTIME_TOKEN"];if(!e){throw new Error("Unable to get ACTIONS_RUNTIME_TOKEN env variable")}return e}t.getRuntimeToken=getRuntimeToken;function getRuntimeUrl(){const e=process.env["ACTIONS_RUNTIME_URL"];if(!e){throw new Error("Unable to get ACTIONS_RUNTIME_URL env variable")}return e}t.getRuntimeUrl=getRuntimeUrl;function getWorkFlowRunId(){const e=process.env["GITHUB_RUN_ID"];if(!e){throw new Error("Unable to get GITHUB_RUN_ID env variable")}return e}t.getWorkFlowRunId=getWorkFlowRunId;function getWorkSpaceDirectory(){const e=process.env["GITHUB_WORKSPACE"];if(!e){throw new Error("Unable to get GITHUB_WORKSPACE env variable")}return e}t.getWorkSpaceDirectory=getWorkSpaceDirectory;function getRetentionDays(){return process.env["GITHUB_RETENTION_DAYS"]}t.getRetentionDays=getRetentionDays},3549:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const r=[BigInt("0x0000000000000000"),BigInt("0x7F6EF0C830358979"),BigInt("0xFEDDE190606B12F2"),BigInt("0x81B31158505E9B8B"),BigInt("0xC962E5739841B68F"),BigInt("0xB60C15BBA8743FF6"),BigInt("0x37BF04E3F82AA47D"),BigInt("0x48D1F42BC81F2D04"),BigInt("0xA61CECB46814FE75"),BigInt("0xD9721C7C5821770C"),BigInt("0x58C10D24087FEC87"),BigInt("0x27AFFDEC384A65FE"),BigInt("0x6F7E09C7F05548FA"),BigInt("0x1010F90FC060C183"),BigInt("0x91A3E857903E5A08"),BigInt("0xEECD189FA00BD371"),BigInt("0x78E0FF3B88BE6F81"),BigInt("0x078E0FF3B88BE6F8"),BigInt("0x863D1EABE8D57D73"),BigInt("0xF953EE63D8E0F40A"),BigInt("0xB1821A4810FFD90E"),BigInt("0xCEECEA8020CA5077"),BigInt("0x4F5FFBD87094CBFC"),BigInt("0x30310B1040A14285"),BigInt("0xDEFC138FE0AA91F4"),BigInt("0xA192E347D09F188D"),BigInt("0x2021F21F80C18306"),BigInt("0x5F4F02D7B0F40A7F"),BigInt("0x179EF6FC78EB277B"),BigInt("0x68F0063448DEAE02"),BigInt("0xE943176C18803589"),BigInt("0x962DE7A428B5BCF0"),BigInt("0xF1C1FE77117CDF02"),BigInt("0x8EAF0EBF2149567B"),BigInt("0x0F1C1FE77117CDF0"),BigInt("0x7072EF2F41224489"),BigInt("0x38A31B04893D698D"),BigInt("0x47CDEBCCB908E0F4"),BigInt("0xC67EFA94E9567B7F"),BigInt("0xB9100A5CD963F206"),BigInt("0x57DD12C379682177"),BigInt("0x28B3E20B495DA80E"),BigInt("0xA900F35319033385"),BigInt("0xD66E039B2936BAFC"),BigInt("0x9EBFF7B0E12997F8"),BigInt("0xE1D10778D11C1E81"),BigInt("0x606216208142850A"),BigInt("0x1F0CE6E8B1770C73"),BigInt("0x8921014C99C2B083"),BigInt("0xF64FF184A9F739FA"),BigInt("0x77FCE0DCF9A9A271"),BigInt("0x08921014C99C2B08"),BigInt("0x4043E43F0183060C"),BigInt("0x3F2D14F731B68F75"),BigInt("0xBE9E05AF61E814FE"),BigInt("0xC1F0F56751DD9D87"),BigInt("0x2F3DEDF8F1D64EF6"),BigInt("0x50531D30C1E3C78F"),BigInt("0xD1E00C6891BD5C04"),BigInt("0xAE8EFCA0A188D57D"),BigInt("0xE65F088B6997F879"),BigInt("0x9931F84359A27100"),BigInt("0x1882E91B09FCEA8B"),BigInt("0x67EC19D339C963F2"),BigInt("0xD75ADABD7A6E2D6F"),BigInt("0xA8342A754A5BA416"),BigInt("0x29873B2D1A053F9D"),BigInt("0x56E9CBE52A30B6E4"),BigInt("0x1E383FCEE22F9BE0"),BigInt("0x6156CF06D21A1299"),BigInt("0xE0E5DE5E82448912"),BigInt("0x9F8B2E96B271006B"),BigInt("0x71463609127AD31A"),BigInt("0x0E28C6C1224F5A63"),BigInt("0x8F9BD7997211C1E8"),BigInt("0xF0F5275142244891"),BigInt("0xB824D37A8A3B6595"),BigInt("0xC74A23B2BA0EECEC"),BigInt("0x46F932EAEA507767"),BigInt("0x3997C222DA65FE1E"),BigInt("0xAFBA2586F2D042EE"),BigInt("0xD0D4D54EC2E5CB97"),BigInt("0x5167C41692BB501C"),BigInt("0x2E0934DEA28ED965"),BigInt("0x66D8C0F56A91F461"),BigInt("0x19B6303D5AA47D18"),BigInt("0x980521650AFAE693"),BigInt("0xE76BD1AD3ACF6FEA"),BigInt("0x09A6C9329AC4BC9B"),BigInt("0x76C839FAAAF135E2"),BigInt("0xF77B28A2FAAFAE69"),BigInt("0x8815D86ACA9A2710"),BigInt("0xC0C42C4102850A14"),BigInt("0xBFAADC8932B0836D"),BigInt("0x3E19CDD162EE18E6"),BigInt("0x41773D1952DB919F"),BigInt("0x269B24CA6B12F26D"),BigInt("0x59F5D4025B277B14"),BigInt("0xD846C55A0B79E09F"),BigInt("0xA72835923B4C69E6"),BigInt("0xEFF9C1B9F35344E2"),BigInt("0x90973171C366CD9B"),BigInt("0x1124202993385610"),BigInt("0x6E4AD0E1A30DDF69"),BigInt("0x8087C87E03060C18"),BigInt("0xFFE938B633338561"),BigInt("0x7E5A29EE636D1EEA"),BigInt("0x0134D92653589793"),BigInt("0x49E52D0D9B47BA97"),BigInt("0x368BDDC5AB7233EE"),BigInt("0xB738CC9DFB2CA865"),BigInt("0xC8563C55CB19211C"),BigInt("0x5E7BDBF1E3AC9DEC"),BigInt("0x21152B39D3991495"),BigInt("0xA0A63A6183C78F1E"),BigInt("0xDFC8CAA9B3F20667"),BigInt("0x97193E827BED2B63"),BigInt("0xE877CE4A4BD8A21A"),BigInt("0x69C4DF121B863991"),BigInt("0x16AA2FDA2BB3B0E8"),BigInt("0xF86737458BB86399"),BigInt("0x8709C78DBB8DEAE0"),BigInt("0x06BAD6D5EBD3716B"),BigInt("0x79D4261DDBE6F812"),BigInt("0x3105D23613F9D516"),BigInt("0x4E6B22FE23CC5C6F"),BigInt("0xCFD833A67392C7E4"),BigInt("0xB0B6C36E43A74E9D"),BigInt("0x9A6C9329AC4BC9B5"),BigInt("0xE50263E19C7E40CC"),BigInt("0x64B172B9CC20DB47"),BigInt("0x1BDF8271FC15523E"),BigInt("0x530E765A340A7F3A"),BigInt("0x2C608692043FF643"),BigInt("0xADD397CA54616DC8"),BigInt("0xD2BD67026454E4B1"),BigInt("0x3C707F9DC45F37C0"),BigInt("0x431E8F55F46ABEB9"),BigInt("0xC2AD9E0DA4342532"),BigInt("0xBDC36EC59401AC4B"),BigInt("0xF5129AEE5C1E814F"),BigInt("0x8A7C6A266C2B0836"),BigInt("0x0BCF7B7E3C7593BD"),BigInt("0x74A18BB60C401AC4"),BigInt("0xE28C6C1224F5A634"),BigInt("0x9DE29CDA14C02F4D"),BigInt("0x1C518D82449EB4C6"),BigInt("0x633F7D4A74AB3DBF"),BigInt("0x2BEE8961BCB410BB"),BigInt("0x548079A98C8199C2"),BigInt("0xD53368F1DCDF0249"),BigInt("0xAA5D9839ECEA8B30"),BigInt("0x449080A64CE15841"),BigInt("0x3BFE706E7CD4D138"),BigInt("0xBA4D61362C8A4AB3"),BigInt("0xC52391FE1CBFC3CA"),BigInt("0x8DF265D5D4A0EECE"),BigInt("0xF29C951DE49567B7"),BigInt("0x732F8445B4CBFC3C"),BigInt("0x0C41748D84FE7545"),BigInt("0x6BAD6D5EBD3716B7"),BigInt("0x14C39D968D029FCE"),BigInt("0x95708CCEDD5C0445"),BigInt("0xEA1E7C06ED698D3C"),BigInt("0xA2CF882D2576A038"),BigInt("0xDDA178E515432941"),BigInt("0x5C1269BD451DB2CA"),BigInt("0x237C997575283BB3"),BigInt("0xCDB181EAD523E8C2"),BigInt("0xB2DF7122E51661BB"),BigInt("0x336C607AB548FA30"),BigInt("0x4C0290B2857D7349"),BigInt("0x04D364994D625E4D"),BigInt("0x7BBD94517D57D734"),BigInt("0xFA0E85092D094CBF"),BigInt("0x856075C11D3CC5C6"),BigInt("0x134D926535897936"),BigInt("0x6C2362AD05BCF04F"),BigInt("0xED9073F555E26BC4"),BigInt("0x92FE833D65D7E2BD"),BigInt("0xDA2F7716ADC8CFB9"),BigInt("0xA54187DE9DFD46C0"),BigInt("0x24F29686CDA3DD4B"),BigInt("0x5B9C664EFD965432"),BigInt("0xB5517ED15D9D8743"),BigInt("0xCA3F8E196DA80E3A"),BigInt("0x4B8C9F413DF695B1"),BigInt("0x34E26F890DC31CC8"),BigInt("0x7C339BA2C5DC31CC"),BigInt("0x035D6B6AF5E9B8B5"),BigInt("0x82EE7A32A5B7233E"),BigInt("0xFD808AFA9582AA47"),BigInt("0x4D364994D625E4DA"),BigInt("0x3258B95CE6106DA3"),BigInt("0xB3EBA804B64EF628"),BigInt("0xCC8558CC867B7F51"),BigInt("0x8454ACE74E645255"),BigInt("0xFB3A5C2F7E51DB2C"),BigInt("0x7A894D772E0F40A7"),BigInt("0x05E7BDBF1E3AC9DE"),BigInt("0xEB2AA520BE311AAF"),BigInt("0x944455E88E0493D6"),BigInt("0x15F744B0DE5A085D"),BigInt("0x6A99B478EE6F8124"),BigInt("0x224840532670AC20"),BigInt("0x5D26B09B16452559"),BigInt("0xDC95A1C3461BBED2"),BigInt("0xA3FB510B762E37AB"),BigInt("0x35D6B6AF5E9B8B5B"),BigInt("0x4AB846676EAE0222"),BigInt("0xCB0B573F3EF099A9"),BigInt("0xB465A7F70EC510D0"),BigInt("0xFCB453DCC6DA3DD4"),BigInt("0x83DAA314F6EFB4AD"),BigInt("0x0269B24CA6B12F26"),BigInt("0x7D0742849684A65F"),BigInt("0x93CA5A1B368F752E"),BigInt("0xECA4AAD306BAFC57"),BigInt("0x6D17BB8B56E467DC"),BigInt("0x12794B4366D1EEA5"),BigInt("0x5AA8BF68AECEC3A1"),BigInt("0x25C64FA09EFB4AD8"),BigInt("0xA4755EF8CEA5D153"),BigInt("0xDB1BAE30FE90582A"),BigInt("0xBCF7B7E3C7593BD8"),BigInt("0xC399472BF76CB2A1"),BigInt("0x422A5673A732292A"),BigInt("0x3D44A6BB9707A053"),BigInt("0x759552905F188D57"),BigInt("0x0AFBA2586F2D042E"),BigInt("0x8B48B3003F739FA5"),BigInt("0xF42643C80F4616DC"),BigInt("0x1AEB5B57AF4DC5AD"),BigInt("0x6585AB9F9F784CD4"),BigInt("0xE436BAC7CF26D75F"),BigInt("0x9B584A0FFF135E26"),BigInt("0xD389BE24370C7322"),BigInt("0xACE74EEC0739FA5B"),BigInt("0x2D545FB4576761D0"),BigInt("0x523AAF7C6752E8A9"),BigInt("0xC41748D84FE75459"),BigInt("0xBB79B8107FD2DD20"),BigInt("0x3ACAA9482F8C46AB"),BigInt("0x45A459801FB9CFD2"),BigInt("0x0D75ADABD7A6E2D6"),BigInt("0x721B5D63E7936BAF"),BigInt("0xF3A84C3BB7CDF024"),BigInt("0x8CC6BCF387F8795D"),BigInt("0x620BA46C27F3AA2C"),BigInt("0x1D6554A417C62355"),BigInt("0x9CD645FC4798B8DE"),BigInt("0xE3B8B53477AD31A7"),BigInt("0xAB69411FBFB21CA3"),BigInt("0xD407B1D78F8795DA"),BigInt("0x55B4A08FDFD90E51"),BigInt("0x2ADA5047EFEC8728")];class CRC64{constructor(){this._crc=BigInt(0)}update(e){const t=typeof e==="string"?Buffer.from(e):e;let a=CRC64.flip64Bits(this._crc);for(const e of t){const t=Number(a&BigInt(255));a=r[t^e]^a>>BigInt(8)}this._crc=CRC64.flip64Bits(a)}digest(e){switch(e){case"hex":return this._crc.toString(16).toUpperCase();case"base64":return this.toBuffer().toString("base64");default:return this.toBuffer()}}toBuffer(){return Buffer.from([0,8,16,24,32,40,48,56].map((e=>Number(this._crc>>BigInt(e)&BigInt(255)))))}static flip64Bits(e){return(BigInt(1)<s(this,void 0,void 0,(function*(){return t.get(e,r)}))));const i=yield a.readBody();return JSON.parse(i)}))}getContainerItems(e,t){return s(this,void 0,void 0,(function*(){const r=new d.URL(t);r.searchParams.append("itemPath",e);const a=this.downloadHttpManager.getClient(0);const i=l.getDownloadHeaders("application/json");const n=yield v.retryHttpClientRequest("Get Container Items",(()=>s(this,void 0,void 0,(function*(){return a.get(r.toString(),i)}))));const o=yield n.readBody();return JSON.parse(o)}))}downloadSingleArtifact(e){return s(this,void 0,void 0,(function*(){const t=g.getDownloadFileConcurrency();p.debug(`Download file concurrency is set to ${t}`);const r=[...new Array(t).keys()];let a=0;let i=0;p.info(`Total number of files that will be downloaded: ${e.length}`);this.statusReporter.setTotalNumberOfFilesToProcess(e.length);this.statusReporter.start();yield Promise.all(r.map((t=>s(this,void 0,void 0,(function*(){while(a{throw new Error(`Unable to download the artifact: ${e}`)})).finally((()=>{this.statusReporter.stop();this.downloadHttpManager.disposeAndReplaceAllClients()}))}))}downloadIndividualFile(e,t,r){return s(this,void 0,void 0,(function*(){let a=0;const i=g.getRetryLimit();let n=o.createWriteStream(r);const c=l.getDownloadHeaders("application/json",true,true);const makeDownloadRequest=()=>s(this,void 0,void 0,(function*(){const r=this.downloadHttpManager.getClient(e);return yield r.get(t,c)}));const isGzip=e=>"content-encoding"in e&&e["content-encoding"]==="gzip";const backOff=r=>s(this,void 0,void 0,(function*(){a++;if(a>i){return Promise.reject(new Error(`Retry limit has been reached. Unable to download ${t}`))}else{this.downloadHttpManager.disposeAndReplaceClient(e);if(r){p.info(`Backoff due to too many requests, retry #${a}. Waiting for ${r} milliseconds before continuing the download`);yield l.sleep(r)}else{const e=l.getExponentialRetryTimeInMilliseconds(a);p.info(`Exponential backoff for retry #${a}. Waiting for ${e} milliseconds before continuing the download`);yield l.sleep(e)}p.info(`Finished backoff for retry #${a}, continuing with download`)}}));const isAllBytesReceived=(e,t)=>{if(!e||!t||process.env["ACTIONS_ARTIFACT_SKIP_DOWNLOAD_VALIDATION"]){p.info("Skipping download validation.");return true}return parseInt(e)===t};const resetDestinationStream=e=>s(this,void 0,void 0,(function*(){n.close();yield l.rmFile(e);n=o.createWriteStream(e)}));while(a<=i){let e;try{e=yield makeDownloadRequest()}catch(e){p.info("An error occurred while attempting to download a file");console.log(e);yield backOff();continue}let a=false;if(l.isSuccessStatusCode(e.message.statusCode)){try{const t=isGzip(e.message.headers);yield this.pipeResponseToFile(e,n,t);if(t||isAllBytesReceived(e.message.headers["content-length"],yield l.getFileSize(r))){return}else{a=true}}catch(e){a=true}}if(a||l.isRetryableStatusCode(e.message.statusCode)){p.info(`A ${e.message.statusCode} response code has been received while attempting to download an artifact`);resetDestinationStream(r);l.isThrottledStatusCode(e.message.statusCode)?yield backOff(l.tryGetRetryAfterValueTimeInMilliseconds(e.message.headers)):yield backOff()}else{l.displayHttpDiagnostics(e);return Promise.reject(new Error(`Unexpected http ${e.message.statusCode} during download for ${t}`))}}}))}pipeResponseToFile(e,t,r){return s(this,void 0,void 0,(function*(){yield new Promise(((a,i)=>{if(r){const r=c.createGunzip();e.message.on("error",(e=>{p.error(`An error occurred while attempting to read the response stream`);r.close();t.close();i(e)})).pipe(r).on("error",(e=>{p.error(`An error occurred while attempting to decompress the response stream`);t.close();i(e)})).pipe(t).on("close",(()=>{a()})).on("error",(e=>{p.error(`An error occurred while writing a downloaded file to ${t.path}`);i(e)}))}else{e.message.on("error",(e=>{p.error(`An error occurred while attempting to read the response stream`);t.close();i(e)})).pipe(t).on("close",(()=>{a()})).on("error",(e=>{p.error(`An error occurred while writing a downloaded file to ${t.path}`);i(e)}))}}));return}))}}t.DownloadHttpClient=DownloadHttpClient},5686:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getDownloadSpecification=void 0;const s=n(r(1017));function getDownloadSpecification(e,t,r,a){const i=new Set;const n={rootDownloadLocation:a?s.join(r,e):r,directoryStructure:[],emptyFilesToCreate:[],filesToDownload:[]};for(const o of t){if(o.path.startsWith(`${e}/`)||o.path.startsWith(`${e}\\`)){const t=s.normalize(o.path);const p=s.join(r,a?t:t.replace(e,""));if(o.itemType==="file"){i.add(s.dirname(p));if(o.fileLength===0){n.emptyFilesToCreate.push(p)}else{n.filesToDownload.push({sourceLocation:o.contentLocation,targetPath:p})}}}}n.directoryStructure=Array.from(i);return n}t.getDownloadSpecification=getDownloadSpecification},6527:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.HttpManager=void 0;const a=r(6327);class HttpManager{constructor(e,t){if(e<1){throw new Error("There must be at least one client")}this.userAgent=t;this.clients=new Array(e).fill(a.createHttpClient(t))}getClient(e){return this.clients[e]}disposeAndReplaceClient(e){this.clients[e].dispose();this.clients[e]=a.createHttpClient(this.userAgent)}disposeAndReplaceAllClients(){for(const[e]of this.clients.entries()){this.disposeAndReplaceClient(e)}}}t.HttpManager=HttpManager},7398:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.checkArtifactFilePath=t.checkArtifactName=void 0;const a=r(2186);const i=new Map([['"',' Double quote "'],[":"," Colon :"],["<"," Less than <"],[">"," Greater than >"],["|"," Vertical bar |"],["*"," Asterisk *"],["?"," Question mark ?"],["\r"," Carriage return \\r"],["\n"," Line feed \\n"]]);const n=new Map([...i,["\\"," Backslash \\"],["/"," Forward slash /"]]);function checkArtifactName(e){if(!e){throw new Error(`Artifact name: ${e}, is incorrectly provided`)}for(const[t,r]of n){if(e.includes(t)){throw new Error(`Artifact name is not valid: ${e}. Contains the following character: ${r}\n \nInvalid characters include: ${Array.from(n.values()).toString()}\n \nThese characters are not allowed in the artifact name due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems.`)}}a.info(`Artifact name is valid!`)}t.checkArtifactName=checkArtifactName;function checkArtifactFilePath(e){if(!e){throw new Error(`Artifact path: ${e}, is incorrectly provided`)}for(const[t,r]of i){if(e.includes(t)){throw new Error(`Artifact path is not valid: ${e}. Contains the following character: ${r}\n \nInvalid characters include: ${Array.from(i.values()).toString()}\n \nThe following characters are not allowed in files that are uploaded due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems.\n `)}}}t.checkArtifactFilePath=checkArtifactFilePath},755:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.retryHttpClientRequest=t.retry=void 0;const o=r(6327);const p=n(r(2186));const c=r(2222);function retry(e,t,r,a){return s(this,void 0,void 0,(function*(){let i=undefined;let n=undefined;let s=false;let c="";let l=undefined;let d=1;while(d<=a){try{i=yield t();n=i.message.statusCode;if(o.isSuccessStatusCode(n)){return i}if(n){l=r.get(n)}s=o.isRetryableStatusCode(n);c=`Artifact service responded with ${n}`}catch(e){s=true;c=e.message}if(!s){p.info(`${e} - Error is not retryable`);if(i){o.displayHttpDiagnostics(i)}break}p.info(`${e} - Attempt ${d} of ${a} failed with error: ${c}`);yield o.sleep(o.getExponentialRetryTimeInMilliseconds(d));d++}if(i){o.displayHttpDiagnostics(i)}if(l){throw Error(`${e} failed: ${l}`)}throw Error(`${e} failed: ${c}`)}))}t.retry=retry;function retryHttpClientRequest(e,t,r=new Map,a=c.getRetryLimit()){return s(this,void 0,void 0,(function*(){return yield retry(e,t,r,a)}))}t.retryHttpClientRequest=retryHttpClientRequest},9081:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.StatusReporter=void 0;const a=r(2186);class StatusReporter{constructor(e){this.totalNumberOfFilesToProcess=0;this.processedCount=0;this.largeFiles=new Map;this.totalFileStatus=undefined;this.displayFrequencyInMilliseconds=e}setTotalNumberOfFilesToProcess(e){this.totalNumberOfFilesToProcess=e;this.processedCount=0}start(){this.totalFileStatus=setInterval((()=>{const e=this.formatPercentage(this.processedCount,this.totalNumberOfFilesToProcess);a.info(`Total file count: ${this.totalNumberOfFilesToProcess} ---- Processed file #${this.processedCount} (${e.slice(0,e.indexOf(".")+2)}%)`)}),this.displayFrequencyInMilliseconds)}updateLargeFileStatus(e,t,r,i){const n=this.formatPercentage(r,i);a.info(`Uploaded ${e} (${n.slice(0,n.indexOf(".")+2)}%) bytes ${t}:${r}`)}stop(){if(this.totalFileStatus){clearInterval(this.totalFileStatus)}}incrementProcessedCount(){this.processedCount++}formatPercentage(e,t){return(e/t*100).toFixed(4).toString()}}t.StatusReporter=StatusReporter},606:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==="function"?__values(e):e[Symbol.iterator](),r={},verb("next"),verb("throw"),verb("return"),r[Symbol.asyncIterator]=function(){return this},r);function verb(t){r[t]=e[t]&&function(r){return new Promise((function(a,i){r=e[t](r),settle(a,i,r.done,r.value)}))}}function settle(e,t,r,a){Promise.resolve(a).then((function(t){e({value:t,done:r})}),t)}};Object.defineProperty(t,"__esModule",{value:true});t.createGZipFileInBuffer=t.createGZipFileOnDisk=void 0;const p=n(r(7147));const c=n(r(9796));const l=r(3837);const d=l.promisify(p.stat);const u=[".gzip",".zip",".tar.lz",".tar.gz",".tar.bz2",".7z"];function createGZipFileOnDisk(e,t){return s(this,void 0,void 0,(function*(){for(const t of u){if(e.endsWith(t)){return Number.MAX_SAFE_INTEGER}}return new Promise(((r,a)=>{const i=p.createReadStream(e);const n=c.createGzip();const o=p.createWriteStream(t);i.pipe(n).pipe(o);o.on("finish",(()=>s(this,void 0,void 0,(function*(){const e=(yield d(t)).size;r(e)}))));o.on("error",(e=>{console.log(e);a}))}))}))}t.createGZipFileOnDisk=createGZipFileOnDisk;function createGZipFileInBuffer(e){return s(this,void 0,void 0,(function*(){return new Promise((t=>s(this,void 0,void 0,(function*(){var r,a;const i=p.createReadStream(e);const n=c.createGzip();i.pipe(n);const s=[];try{for(var l=o(n),d;d=yield l.next(),!d.done;){const e=d.value;s.push(e)}}catch(e){r={error:e}}finally{try{if(d&&!d.done&&(a=l.return))yield a.call(l)}finally{if(r)throw r.error}}t(Buffer.concat(s))}))))}))}t.createGZipFileInBuffer=createGZipFileInBuffer},4354:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.UploadHttpClient=void 0;const o=n(r(7147));const p=n(r(2186));const c=n(r(8065));const l=n(r(2781));const d=r(6327);const u=r(2222);const m=r(3837);const h=r(7310);const g=r(4074);const v=r(9081);const y=r(6255);const b=r(6527);const w=r(606);const x=r(755);const E=m.promisify(o.stat);class UploadHttpClient{constructor(){this.uploadHttpManager=new b.HttpManager(u.getUploadFileConcurrency(),"@actions/artifact-upload");this.statusReporter=new v.StatusReporter(1e4)}createArtifactInFileContainer(e,t){return s(this,void 0,void 0,(function*(){const r={Type:"actions_storage",Name:e};if(t&&t.retentionDays){const e=u.getRetentionDays();r.RetentionDays=d.getProperRetention(t.retentionDays,e)}const a=JSON.stringify(r,null,2);const i=d.getArtifactUrl();const n=this.uploadHttpManager.getClient(0);const o=d.getUploadHeaders("application/json",false);const p=new Map([[y.HttpCodes.Forbidden,"Artifact storage quota has been hit. Unable to upload any new artifacts"],[y.HttpCodes.BadRequest,`The artifact name ${e} is not valid. Request URL ${i}`]]);const c=yield x.retryHttpClientRequest("Create Artifact Container",(()=>s(this,void 0,void 0,(function*(){return n.post(i,a,o)}))),p);const l=yield c.readBody();return JSON.parse(l)}))}uploadArtifactToFileContainer(e,t,r){return s(this,void 0,void 0,(function*(){const a=u.getUploadFileConcurrency();const i=u.getUploadChunkSize();p.debug(`File Concurrency: ${a}, and Chunk Size: ${i}`);const n=[];let o=true;if(r){if(r.continueOnError===false){o=false}}for(const r of t){const t=new h.URL(e);t.searchParams.append("itemPath",r.uploadFilePath);n.push({file:r.absoluteFilePath,resourceUrl:t.toString(),maxChunkSize:i,continueOnError:o})}const c=[...new Array(a).keys()];const l=[];let d=0;let m=0;let v=0;let y=0;let b=false;this.statusReporter.setTotalNumberOfFilesToProcess(t.length);this.statusReporter.start();yield Promise.all(c.map((e=>s(this,void 0,void 0,(function*(){while(do.createReadStream(t.file);m=false;u=a}else{p.debug(`A gzip file created for ${t.file} helped with reducing the size of the original file. The file will be uploaded using gzip.`);i=()=>{const e=new l.PassThrough;e.end(r);return e};u=r.byteLength}const n=yield this.uploadChunk(e,t.resourceUrl,i,0,u-1,u,m,a);if(!n){s=false;d+=u;p.warning(`Aborting upload for ${t.file} due to failure`)}return{isSuccess:s,successfulUploadSize:u-d,totalSize:a}}else{const r=yield c.file();p.debug(`${t.file} is greater than 64k in size. Creating a gzip file on-disk ${r.path} to potentially reduce the upload size`);u=yield w.createGZipFileOnDisk(t.file,r.path);let l=r.path;if(!i&&ao.createReadStream(l,{start:i,end:c,autoClose:false})),i,c,u,m,a);if(!g){s=false;d+=r;p.warning(`Aborting upload for ${t.file} due to failure`);h=true}else{if(u>8388608){this.statusReporter.updateLargeFileStatus(t.file,i,c,u)}}}p.debug(`deleting temporary gzip file ${r.path}`);yield r.cleanup();return{isSuccess:s,successfulUploadSize:u-d,totalSize:a}}}))}uploadChunk(e,t,r,a,i,n,o,c){return s(this,void 0,void 0,(function*(){const l=yield d.digestForStream(r());const m=d.getUploadHeaders("application/octet-stream",true,o,c,i-a+1,d.getContentRange(a,i,n),l);const uploadChunkRequest=()=>s(this,void 0,void 0,(function*(){const a=this.uploadHttpManager.getClient(e);return yield a.sendStream("PUT",t,r(),m)}));let h=0;const g=u.getRetryLimit();const incrementAndCheckRetryLimit=e=>{h++;if(h>g){if(e){d.displayHttpDiagnostics(e)}p.info(`Retry limit has been reached for chunk at offset ${a} to ${t}`);return true}return false};const backOff=t=>s(this,void 0,void 0,(function*(){this.uploadHttpManager.disposeAndReplaceClient(e);if(t){p.info(`Backoff due to too many requests, retry #${h}. Waiting for ${t} milliseconds before continuing the upload`);yield d.sleep(t)}else{const e=d.getExponentialRetryTimeInMilliseconds(h);p.info(`Exponential backoff for retry #${h}. Waiting for ${e} milliseconds before continuing the upload at offset ${a}`);yield d.sleep(e)}p.info(`Finished backoff for retry #${h}, continuing with upload`);return}));while(h<=g){let r;try{r=yield uploadChunkRequest()}catch(t){p.info(`An error has been caught http-client index ${e}, retrying the upload`);console.log(t);if(incrementAndCheckRetryLimit()){return false}yield backOff();continue}yield r.readBody();if(d.isSuccessStatusCode(r.message.statusCode)){return true}else if(d.isRetryableStatusCode(r.message.statusCode)){p.info(`A ${r.message.statusCode} status code has been received, will attempt to retry the upload`);if(incrementAndCheckRetryLimit(r)){return false}d.isThrottledStatusCode(r.message.statusCode)?yield backOff(d.tryGetRetryAfterValueTimeInMilliseconds(r.message.headers)):yield backOff()}else{p.error(`Unexpected response. Unable to upload chunk to ${t}`);d.displayHttpDiagnostics(r);return false}}return false}))}patchArtifactSize(e,t){return s(this,void 0,void 0,(function*(){const r=new h.URL(d.getArtifactUrl());r.searchParams.append("artifactName",t);const a={Size:e};const i=JSON.stringify(a,null,2);p.debug(`URL is ${r.toString()}`);const n=this.uploadHttpManager.getClient(0);const o=d.getUploadHeaders("application/json",false);const c=new Map([[y.HttpCodes.NotFound,`An Artifact with the name ${t} was not found`]]);const l=yield x.retryHttpClientRequest("Finalize artifact upload",(()=>s(this,void 0,void 0,(function*(){return n.patch(r.toString(),i,o)}))),c);yield l.readBody();p.debug(`Artifact ${t} has been successfully uploaded, total size in bytes: ${e}`)}))}}t.UploadHttpClient=UploadHttpClient},183:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getUploadSpecification=void 0;const s=n(r(7147));const o=r(2186);const p=r(1017);const c=r(7398);function getUploadSpecification(e,t,r){const a=[];if(!s.existsSync(t)){throw new Error(`Provided rootDirectory ${t} does not exist`)}if(!s.lstatSync(t).isDirectory()){throw new Error(`Provided rootDirectory ${t} is not a valid directory`)}t=p.normalize(t);t=p.resolve(t);for(let i of r){if(!s.existsSync(i)){throw new Error(`File ${i} does not exist`)}if(!s.lstatSync(i).isDirectory()){i=p.normalize(i);i=p.resolve(i);if(!i.startsWith(t)){throw new Error(`The rootDirectory: ${t} is not a parent directory of the file: ${i}`)}const r=i.replace(t,"");c.checkArtifactFilePath(r);a.push({absoluteFilePath:i,uploadFilePath:p.join(e,r)})}else{o.debug(`Removing ${i} from rawSearchResults because it is a directory`)}}return a}t.getUploadSpecification=getUploadSpecification},6327:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.digestForStream=t.sleep=t.getProperRetention=t.rmFile=t.getFileSize=t.createEmptyFilesForArtifact=t.createDirectoriesForArtifact=t.displayHttpDiagnostics=t.getArtifactUrl=t.createHttpClient=t.getUploadHeaders=t.getDownloadHeaders=t.getContentRange=t.tryGetRetryAfterValueTimeInMilliseconds=t.isThrottledStatusCode=t.isRetryableStatusCode=t.isForbiddenStatusCode=t.isSuccessStatusCode=t.getApiVersion=t.parseEnvNumber=t.getExponentialRetryTimeInMilliseconds=void 0;const n=i(r(6113));const s=r(7147);const o=r(2186);const p=r(6255);const c=r(5526);const l=r(2222);const d=i(r(3549));function getExponentialRetryTimeInMilliseconds(e){if(e<0){throw new Error("RetryCount should not be negative")}else if(e===0){return l.getInitialRetryIntervalInMilliseconds()}const t=l.getInitialRetryIntervalInMilliseconds()*l.getRetryMultiplier()*e;const r=t*l.getRetryMultiplier();return Math.trunc(Math.random()*(r-t)+t)}t.getExponentialRetryTimeInMilliseconds=getExponentialRetryTimeInMilliseconds;function parseEnvNumber(e){const t=Number(process.env[e]);if(Number.isNaN(t)||t<0){return undefined}return t}t.parseEnvNumber=parseEnvNumber;function getApiVersion(){return"6.0-preview"}t.getApiVersion=getApiVersion;function isSuccessStatusCode(e){if(!e){return false}return e>=200&&e<300}t.isSuccessStatusCode=isSuccessStatusCode;function isForbiddenStatusCode(e){if(!e){return false}return e===p.HttpCodes.Forbidden}t.isForbiddenStatusCode=isForbiddenStatusCode;function isRetryableStatusCode(e){if(!e){return false}const t=[p.HttpCodes.BadGateway,p.HttpCodes.GatewayTimeout,p.HttpCodes.InternalServerError,p.HttpCodes.ServiceUnavailable,p.HttpCodes.TooManyRequests,413];return t.includes(e)}t.isRetryableStatusCode=isRetryableStatusCode;function isThrottledStatusCode(e){if(!e){return false}return e===p.HttpCodes.TooManyRequests}t.isThrottledStatusCode=isThrottledStatusCode;function tryGetRetryAfterValueTimeInMilliseconds(e){if(e["retry-after"]){const t=Number(e["retry-after"]);if(!isNaN(t)){o.info(`Retry-After header is present with a value of ${t}`);return t*1e3}o.info(`Returned retry-after header value: ${t} is non-numeric and cannot be used`);return undefined}o.info(`No retry-after header was found. Dumping all headers for diagnostic purposes`);console.log(e);return undefined}t.tryGetRetryAfterValueTimeInMilliseconds=tryGetRetryAfterValueTimeInMilliseconds;function getContentRange(e,t,r){return`bytes ${e}-${t}/${r}`}t.getContentRange=getContentRange;function getDownloadHeaders(e,t,r){const a={};if(e){a["Content-Type"]=e}if(t){a["Connection"]="Keep-Alive";a["Keep-Alive"]="10"}if(r){a["Accept-Encoding"]="gzip";a["Accept"]=`application/octet-stream;api-version=${getApiVersion()}`}else{a["Accept"]=`application/json;api-version=${getApiVersion()}`}return a}t.getDownloadHeaders=getDownloadHeaders;function getUploadHeaders(e,t,r,a,i,n,s){const o={};o["Accept"]=`application/json;api-version=${getApiVersion()}`;if(e){o["Content-Type"]=e}if(t){o["Connection"]="Keep-Alive";o["Keep-Alive"]="10"}if(r){o["Content-Encoding"]="gzip";o["x-tfs-filelength"]=a}if(i){o["Content-Length"]=i}if(n){o["Content-Range"]=n}if(s){o["x-actions-results-crc64"]=s.crc64;o["x-actions-results-md5"]=s.md5}return o}t.getUploadHeaders=getUploadHeaders;function createHttpClient(e){return new p.HttpClient(e,[new c.BearerCredentialHandler(l.getRuntimeToken())])}t.createHttpClient=createHttpClient;function getArtifactUrl(){const e=`${l.getRuntimeUrl()}_apis/pipelines/workflows/${l.getWorkFlowRunId()}/artifacts?api-version=${getApiVersion()}`;o.debug(`Artifact Url: ${e}`);return e}t.getArtifactUrl=getArtifactUrl;function displayHttpDiagnostics(e){o.info(`##### Begin Diagnostic HTTP information #####\nStatus Code: ${e.message.statusCode}\nStatus Message: ${e.message.statusMessage}\nHeader Information: ${JSON.stringify(e.message.headers,undefined,2)}\n###### End Diagnostic HTTP information ######`)}t.displayHttpDiagnostics=displayHttpDiagnostics;function createDirectoriesForArtifact(e){return a(this,void 0,void 0,(function*(){for(const t of e){yield s.promises.mkdir(t,{recursive:true})}}))}t.createDirectoriesForArtifact=createDirectoriesForArtifact;function createEmptyFilesForArtifact(e){return a(this,void 0,void 0,(function*(){for(const t of e){yield(yield s.promises.open(t,"w")).close()}}))}t.createEmptyFilesForArtifact=createEmptyFilesForArtifact;function getFileSize(e){return a(this,void 0,void 0,(function*(){const t=yield s.promises.stat(e);o.debug(`${e} size:(${t.size}) blksize:(${t.blksize}) blocks:(${t.blocks})`);return t.size}))}t.getFileSize=getFileSize;function rmFile(e){return a(this,void 0,void 0,(function*(){yield s.promises.unlink(e)}))}t.rmFile=rmFile;function getProperRetention(e,t){if(e<0){throw new Error("Invalid retention, minimum value is 1.")}let r=e;if(t){const e=parseInt(t);if(!isNaN(e)&&esetTimeout(t,e)))}))}t.sleep=sleep;function digestForStream(e){return a(this,void 0,void 0,(function*(){return new Promise(((t,r)=>{const a=new d.default;const i=n.default.createHash("md5");e.on("data",(e=>{a.update(e);i.update(e)})).on("end",(()=>t({crc64:a.digest("base64"),md5:i.digest("base64")}))).on("error",r)}))}))}t.digestForStream=digestForStream},7351:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.issue=t.issueCommand=void 0;const s=n(r(2037));const o=r(5278);function issueCommand(e,t,r){const a=new Command(e,t,r);process.stdout.write(a.toString()+s.EOL)}t.issueCommand=issueCommand;function issue(e,t=""){issueCommand(e,{},t)}t.issue=issue;const p="::";class Command{constructor(e,t,r){if(!e){e="missing.command"}this.command=e;this.properties=t;this.message=r}toString(){let e=p+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let t=true;for(const r in this.properties){if(this.properties.hasOwnProperty(r)){const a=this.properties[r];if(a){if(t){t=false}else{e+=","}e+=`${r}=${escapeProperty(a)}`}}}}e+=`${p}${escapeData(this.message)}`;return e}}function escapeData(e){return o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(e){return o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}},2186:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getIDToken=t.getState=t.saveState=t.group=t.endGroup=t.startGroup=t.info=t.notice=t.warning=t.error=t.debug=t.isDebug=t.setFailed=t.setCommandEcho=t.setOutput=t.getBooleanInput=t.getMultilineInput=t.getInput=t.addPath=t.setSecret=t.exportVariable=t.ExitCode=void 0;const o=r(7351);const p=r(717);const c=r(5278);const l=n(r(2037));const d=n(r(1017));const u=r(5840);const m=r(8041);var h;(function(e){e[e["Success"]=0]="Success";e[e["Failure"]=1]="Failure"})(h=t.ExitCode||(t.ExitCode={}));function exportVariable(e,t){const r=c.toCommandValue(t);process.env[e]=r;const a=process.env["GITHUB_ENV"]||"";if(a){const t=`ghadelimiter_${u.v4()}`;if(e.includes(t)){throw new Error(`Unexpected input: name should not contain the delimiter "${t}"`)}if(r.includes(t)){throw new Error(`Unexpected input: value should not contain the delimiter "${t}"`)}const a=`${e}<<${t}${l.EOL}${r}${l.EOL}${t}`;p.issueCommand("ENV",a)}else{o.issueCommand("set-env",{name:e},r)}}t.exportVariable=exportVariable;function setSecret(e){o.issueCommand("add-mask",{},e)}t.setSecret=setSecret;function addPath(e){const t=process.env["GITHUB_PATH"]||"";if(t){p.issueCommand("PATH",e)}else{o.issueCommand("add-path",{},e)}process.env["PATH"]=`${e}${d.delimiter}${process.env["PATH"]}`}t.addPath=addPath;function getInput(e,t){const r=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(t&&t.required&&!r){throw new Error(`Input required and not supplied: ${e}`)}if(t&&t.trimWhitespace===false){return r}return r.trim()}t.getInput=getInput;function getMultilineInput(e,t){const r=getInput(e,t).split("\n").filter((e=>e!==""));return r}t.getMultilineInput=getMultilineInput;function getBooleanInput(e,t){const r=["true","True","TRUE"];const a=["false","False","FALSE"];const i=getInput(e,t);if(r.includes(i))return true;if(a.includes(i))return false;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e}\n`+`Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}t.getBooleanInput=getBooleanInput;function setOutput(e,t){process.stdout.write(l.EOL);o.issueCommand("set-output",{name:e},t)}t.setOutput=setOutput;function setCommandEcho(e){o.issue("echo",e?"on":"off")}t.setCommandEcho=setCommandEcho;function setFailed(e){process.exitCode=h.Failure;error(e)}t.setFailed=setFailed;function isDebug(){return process.env["RUNNER_DEBUG"]==="1"}t.isDebug=isDebug;function debug(e){o.issueCommand("debug",{},e)}t.debug=debug;function error(e,t={}){o.issueCommand("error",c.toCommandProperties(t),e instanceof Error?e.toString():e)}t.error=error;function warning(e,t={}){o.issueCommand("warning",c.toCommandProperties(t),e instanceof Error?e.toString():e)}t.warning=warning;function notice(e,t={}){o.issueCommand("notice",c.toCommandProperties(t),e instanceof Error?e.toString():e)}t.notice=notice;function info(e){process.stdout.write(e+l.EOL)}t.info=info;function startGroup(e){o.issue("group",e)}t.startGroup=startGroup;function endGroup(){o.issue("endgroup")}t.endGroup=endGroup;function group(e,t){return s(this,void 0,void 0,(function*(){startGroup(e);let r;try{r=yield t()}finally{endGroup()}return r}))}t.group=group;function saveState(e,t){o.issueCommand("save-state",{name:e},t)}t.saveState=saveState;function getState(e){return process.env[`STATE_${e}`]||""}t.getState=getState;function getIDToken(e){return s(this,void 0,void 0,(function*(){return yield m.OidcClient.getIDToken(e)}))}t.getIDToken=getIDToken;var g=r(1327);Object.defineProperty(t,"summary",{enumerable:true,get:function(){return g.summary}});var v=r(1327);Object.defineProperty(t,"markdownSummary",{enumerable:true,get:function(){return v.markdownSummary}});var y=r(2981);Object.defineProperty(t,"toPosixPath",{enumerable:true,get:function(){return y.toPosixPath}});Object.defineProperty(t,"toWin32Path",{enumerable:true,get:function(){return y.toWin32Path}});Object.defineProperty(t,"toPlatformPath",{enumerable:true,get:function(){return y.toPlatformPath}})},717:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.issueCommand=void 0;const s=n(r(7147));const o=n(r(2037));const p=r(5278);function issueCommand(e,t){const r=process.env[`GITHUB_${e}`];if(!r){throw new Error(`Unable to find environment variable for file command ${e}`)}if(!s.existsSync(r)){throw new Error(`Missing file at path: ${r}`)}s.appendFileSync(r,`${p.toCommandValue(t)}${o.EOL}`,{encoding:"utf8"})}t.issueCommand=issueCommand},8041:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.OidcClient=void 0;const i=r(6255);const n=r(5526);const s=r(2186);class OidcClient{static createHttpClient(e=true,t=10){const r={allowRetries:e,maxRetries:t};return new i.HttpClient("actions/oidc-client",[new n.BearerCredentialHandler(OidcClient.getRequestToken())],r)}static getRequestToken(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable")}return e}static getIDTokenUrl(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_URL"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable")}return e}static getCall(e){var t;return a(this,void 0,void 0,(function*(){const r=OidcClient.createHttpClient();const a=yield r.getJson(e).catch((e=>{throw new Error(`Failed to get ID Token. \n \n Error Code : ${e.statusCode}\n \n Error Message: ${e.result.message}`)}));const i=(t=a.result)===null||t===void 0?void 0:t.value;if(!i){throw new Error("Response json body do not have ID Token field")}return i}))}static getIDToken(e){return a(this,void 0,void 0,(function*(){try{let t=OidcClient.getIDTokenUrl();if(e){const r=encodeURIComponent(e);t=`${t}&audience=${r}`}s.debug(`ID token url is ${t}`);const r=yield OidcClient.getCall(t);s.setSecret(r);return r}catch(e){throw new Error(`Error message: ${e.message}`)}}))}}t.OidcClient=OidcClient},2981:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.toPlatformPath=t.toWin32Path=t.toPosixPath=void 0;const s=n(r(1017));function toPosixPath(e){return e.replace(/[\\]/g,"/")}t.toPosixPath=toPosixPath;function toWin32Path(e){return e.replace(/[/]/g,"\\")}t.toWin32Path=toWin32Path;function toPlatformPath(e){return e.replace(/[/\\]/g,s.sep)}t.toPlatformPath=toPlatformPath},1327:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.summary=t.markdownSummary=t.SUMMARY_DOCS_URL=t.SUMMARY_ENV_VAR=void 0;const i=r(2037);const n=r(7147);const{access:s,appendFile:o,writeFile:p}=n.promises;t.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";t.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";class Summary{constructor(){this._buffer=""}filePath(){return a(this,void 0,void 0,(function*(){if(this._filePath){return this._filePath}const e=process.env[t.SUMMARY_ENV_VAR];if(!e){throw new Error(`Unable to find environment variable for $${t.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`)}try{yield s(e,n.constants.R_OK|n.constants.W_OK)}catch(t){throw new Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}this._filePath=e;return this._filePath}))}wrap(e,t,r={}){const a=Object.entries(r).map((([e,t])=>` ${e}="${t}"`)).join("");if(!t){return`<${e}${a}>`}return`<${e}${a}>${t}`}write(e){return a(this,void 0,void 0,(function*(){const t=!!(e===null||e===void 0?void 0:e.overwrite);const r=yield this.filePath();const a=t?p:o;yield a(r,this._buffer,{encoding:"utf8"});return this.emptyBuffer()}))}clear(){return a(this,void 0,void 0,(function*(){return this.emptyBuffer().write({overwrite:true})}))}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){this._buffer="";return this}addRaw(e,t=false){this._buffer+=e;return t?this.addEOL():this}addEOL(){return this.addRaw(i.EOL)}addCodeBlock(e,t){const r=Object.assign({},t&&{lang:t});const a=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(a).addEOL()}addList(e,t=false){const r=t?"ol":"ul";const a=e.map((e=>this.wrap("li",e))).join("");const i=this.wrap(r,a);return this.addRaw(i).addEOL()}addTable(e){const t=e.map((e=>{const t=e.map((e=>{if(typeof e==="string"){return this.wrap("td",e)}const{header:t,data:r,colspan:a,rowspan:i}=e;const n=t?"th":"td";const s=Object.assign(Object.assign({},a&&{colspan:a}),i&&{rowspan:i});return this.wrap(n,r,s)})).join("");return this.wrap("tr",t)})).join("");const r=this.wrap("table",t);return this.addRaw(r).addEOL()}addDetails(e,t){const r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL()}addImage(e,t,r){const{width:a,height:i}=r||{};const n=Object.assign(Object.assign({},a&&{width:a}),i&&{height:i});const s=this.wrap("img",null,Object.assign({src:e,alt:t},n));return this.addRaw(s).addEOL()}addHeading(e,t){const r=`h${t}`;const a=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1";const i=this.wrap(a,e);return this.addRaw(i).addEOL()}addSeparator(){const e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){const e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,t){const r=Object.assign({},t&&{cite:t});const a=this.wrap("blockquote",e,r);return this.addRaw(a).addEOL()}addLink(e,t){const r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL()}}const c=new Summary;t.markdownSummary=c;t.summary=c},5278:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.toCommandProperties=t.toCommandValue=void 0;function toCommandValue(e){if(e===null||e===undefined){return""}else if(typeof e==="string"||e instanceof String){return e}return JSON.stringify(e)}t.toCommandValue=toCommandValue;function toCommandProperties(e){if(!Object.keys(e).length){return{}}return{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}}t.toCommandProperties=toCommandProperties},1514:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getExecOutput=t.exec=void 0;const o=r(1576);const p=n(r(8159));function exec(e,t,r){return s(this,void 0,void 0,(function*(){const a=p.argStringToArray(e);if(a.length===0){throw new Error(`Parameter 'commandLine' cannot be null or empty.`)}const i=a[0];t=a.slice(1).concat(t||[]);const n=new p.ToolRunner(i,t,r);return n.exec()}))}t.exec=exec;function getExecOutput(e,t,r){var a,i;return s(this,void 0,void 0,(function*(){let n="";let s="";const p=new o.StringDecoder("utf8");const c=new o.StringDecoder("utf8");const l=(a=r===null||r===void 0?void 0:r.listeners)===null||a===void 0?void 0:a.stdout;const d=(i=r===null||r===void 0?void 0:r.listeners)===null||i===void 0?void 0:i.stderr;const stdErrListener=e=>{s+=c.write(e);if(d){d(e)}};const stdOutListener=e=>{n+=p.write(e);if(l){l(e)}};const u=Object.assign(Object.assign({},r===null||r===void 0?void 0:r.listeners),{stdout:stdOutListener,stderr:stdErrListener});const m=yield exec(e,t,Object.assign(Object.assign({},r),{listeners:u}));n+=p.end();s+=c.end();return{exitCode:m,stdout:n,stderr:s}}))}t.getExecOutput=getExecOutput},8159:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.argStringToArray=t.ToolRunner=void 0;const o=n(r(2037));const p=n(r(2361));const c=n(r(2081));const l=n(r(1017));const d=n(r(7436));const u=n(r(1962));const m=r(9512);const h=process.platform==="win32";class ToolRunner extends p.EventEmitter{constructor(e,t,r){super();if(!e){throw new Error("Parameter 'toolPath' cannot be null or empty.")}this.toolPath=e;this.args=t||[];this.options=r||{}}_debug(e){if(this.options.listeners&&this.options.listeners.debug){this.options.listeners.debug(e)}}_getCommandString(e,t){const r=this._getSpawnFileName();const a=this._getSpawnArgs(e);let i=t?"":"[command]";if(h){if(this._isCmdFile()){i+=r;for(const e of a){i+=` ${e}`}}else if(e.windowsVerbatimArguments){i+=`"${r}"`;for(const e of a){i+=` ${e}`}}else{i+=this._windowsQuoteCmdArg(r);for(const e of a){i+=` ${this._windowsQuoteCmdArg(e)}`}}}else{i+=r;for(const e of a){i+=` ${e}`}}return i}_processLineBuffer(e,t,r){try{let a=t+e.toString();let i=a.indexOf(o.EOL);while(i>-1){const e=a.substring(0,i);r(e);a=a.substring(i+o.EOL.length);i=a.indexOf(o.EOL)}return a}catch(e){this._debug(`error processing line. Failed with error ${e}`);return""}}_getSpawnFileName(){if(h){if(this._isCmdFile()){return process.env["COMSPEC"]||"cmd.exe"}}return this.toolPath}_getSpawnArgs(e){if(h){if(this._isCmdFile()){let t=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(const r of this.args){t+=" ";t+=e.windowsVerbatimArguments?r:this._windowsQuoteCmdArg(r)}t+='"';return[t]}}return this.args}_endsWith(e,t){return e.endsWith(t)}_isCmdFile(){const e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT")}_windowsQuoteCmdArg(e){if(!this._isCmdFile()){return this._uvQuoteCmdArg(e)}if(!e){return'""'}const t=[" ","\t","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'];let r=false;for(const a of e){if(t.some((e=>e===a))){r=true;break}}if(!r){return e}let a='"';let i=true;for(let t=e.length;t>0;t--){a+=e[t-1];if(i&&e[t-1]==="\\"){a+="\\"}else if(e[t-1]==='"'){i=true;a+='"'}else{i=false}}a+='"';return a.split("").reverse().join("")}_uvQuoteCmdArg(e){if(!e){return'""'}if(!e.includes(" ")&&!e.includes("\t")&&!e.includes('"')){return e}if(!e.includes('"')&&!e.includes("\\")){return`"${e}"`}let t='"';let r=true;for(let a=e.length;a>0;a--){t+=e[a-1];if(r&&e[a-1]==="\\"){t+="\\"}else if(e[a-1]==='"'){r=true;t+="\\"}else{r=false}}t+='"';return t.split("").reverse().join("")}_cloneExecOptions(e){e=e||{};const t={cwd:e.cwd||process.cwd(),env:e.env||process.env,silent:e.silent||false,windowsVerbatimArguments:e.windowsVerbatimArguments||false,failOnStdErr:e.failOnStdErr||false,ignoreReturnCode:e.ignoreReturnCode||false,delay:e.delay||1e4};t.outStream=e.outStream||process.stdout;t.errStream=e.errStream||process.stderr;return t}_getSpawnOptions(e,t){e=e||{};const r={};r.cwd=e.cwd;r.env=e.env;r["windowsVerbatimArguments"]=e.windowsVerbatimArguments||this._isCmdFile();if(e.windowsVerbatimArguments){r.argv0=`"${t}"`}return r}exec(){return s(this,void 0,void 0,(function*(){if(!u.isRooted(this.toolPath)&&(this.toolPath.includes("/")||h&&this.toolPath.includes("\\"))){this.toolPath=l.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)}this.toolPath=yield d.which(this.toolPath,true);return new Promise(((e,t)=>s(this,void 0,void 0,(function*(){this._debug(`exec tool: ${this.toolPath}`);this._debug("arguments:");for(const e of this.args){this._debug(` ${e}`)}const r=this._cloneExecOptions(this.options);if(!r.silent&&r.outStream){r.outStream.write(this._getCommandString(r)+o.EOL)}const a=new ExecState(r,this.toolPath);a.on("debug",(e=>{this._debug(e)}));if(this.options.cwd&&!(yield u.exists(this.options.cwd))){return t(new Error(`The cwd: ${this.options.cwd} does not exist!`))}const i=this._getSpawnFileName();const n=c.spawn(i,this._getSpawnArgs(r),this._getSpawnOptions(this.options,i));let s="";if(n.stdout){n.stdout.on("data",(e=>{if(this.options.listeners&&this.options.listeners.stdout){this.options.listeners.stdout(e)}if(!r.silent&&r.outStream){r.outStream.write(e)}s=this._processLineBuffer(e,s,(e=>{if(this.options.listeners&&this.options.listeners.stdline){this.options.listeners.stdline(e)}}))}))}let p="";if(n.stderr){n.stderr.on("data",(e=>{a.processStderr=true;if(this.options.listeners&&this.options.listeners.stderr){this.options.listeners.stderr(e)}if(!r.silent&&r.errStream&&r.outStream){const t=r.failOnStdErr?r.errStream:r.outStream;t.write(e)}p=this._processLineBuffer(e,p,(e=>{if(this.options.listeners&&this.options.listeners.errline){this.options.listeners.errline(e)}}))}))}n.on("error",(e=>{a.processError=e.message;a.processExited=true;a.processClosed=true;a.CheckComplete()}));n.on("exit",(e=>{a.processExitCode=e;a.processExited=true;this._debug(`Exit code ${e} received from tool '${this.toolPath}'`);a.CheckComplete()}));n.on("close",(e=>{a.processExitCode=e;a.processExited=true;a.processClosed=true;this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);a.CheckComplete()}));a.on("done",((r,a)=>{if(s.length>0){this.emit("stdline",s)}if(p.length>0){this.emit("errline",p)}n.removeAllListeners();if(r){t(r)}else{e(a)}}));if(this.options.input){if(!n.stdin){throw new Error("child process missing stdin")}n.stdin.end(this.options.input)}}))))}))}}t.ToolRunner=ToolRunner;function argStringToArray(e){const t=[];let r=false;let a=false;let i="";function append(e){if(a&&e!=='"'){i+="\\"}i+=e;a=false}for(let n=0;n0){t.push(i);i=""}continue}append(s)}if(i.length>0){t.push(i.trim())}return t}t.argStringToArray=argStringToArray;class ExecState extends p.EventEmitter{constructor(e,t){super();this.processClosed=false;this.processError="";this.processExitCode=0;this.processExited=false;this.processStderr=false;this.delay=1e4;this.done=false;this.timeout=null;if(!t){throw new Error("toolPath must not be empty")}this.options=e;this.toolPath=t;if(e.delay){this.delay=e.delay}}CheckComplete(){if(this.done){return}if(this.processClosed){this._setResult()}else if(this.processExited){this.timeout=m.setTimeout(ExecState.HandleTimeout,this.delay,this)}}_debug(e){this.emit("debug",e)}_setResult(){let e;if(this.processExited){if(this.processError){e=new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`)}else if(this.processExitCode!==0&&!this.options.ignoreReturnCode){e=new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)}else if(this.processStderr&&this.options.failOnStdErr){e=new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)}}if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.done=true;this.emit("done",e,this.processExitCode)}static HandleTimeout(e){if(e.done){return}if(!e.processClosed&&e.processExited){const t=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(t)}e._setResult()}}},8090:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.hashFiles=t.create=void 0;const i=r(8298);const n=r(2448);function create(e,t){return a(this,void 0,void 0,(function*(){return yield i.DefaultGlobber.create(e,t)}))}t.create=create;function hashFiles(e,t,r=false){return a(this,void 0,void 0,(function*(){let a=true;if(t&&typeof t.followSymbolicLinks==="boolean"){a=t.followSymbolicLinks}const i=yield create(e,{followSymbolicLinks:a});return n.hashFiles(i,r)}))}t.hashFiles=hashFiles},1026:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getOptions=void 0;const s=n(r(2186));function getOptions(e){const t={followSymbolicLinks:true,implicitDescendants:true,matchDirectories:true,omitBrokenSymbolicLinks:true};if(e){if(typeof e.followSymbolicLinks==="boolean"){t.followSymbolicLinks=e.followSymbolicLinks;s.debug(`followSymbolicLinks '${t.followSymbolicLinks}'`)}if(typeof e.implicitDescendants==="boolean"){t.implicitDescendants=e.implicitDescendants;s.debug(`implicitDescendants '${t.implicitDescendants}'`)}if(typeof e.matchDirectories==="boolean"){t.matchDirectories=e.matchDirectories;s.debug(`matchDirectories '${t.matchDirectories}'`)}if(typeof e.omitBrokenSymbolicLinks==="boolean"){t.omitBrokenSymbolicLinks=e.omitBrokenSymbolicLinks;s.debug(`omitBrokenSymbolicLinks '${t.omitBrokenSymbolicLinks}'`)}}return t}t.getOptions=getOptions},8298:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==="function"?__values(e):e[Symbol.iterator](),r={},verb("next"),verb("throw"),verb("return"),r[Symbol.asyncIterator]=function(){return this},r);function verb(t){r[t]=e[t]&&function(r){return new Promise((function(a,i){r=e[t](r),settle(a,i,r.done,r.value)}))}}function settle(e,t,r,a){Promise.resolve(a).then((function(t){e({value:t,done:r})}),t)}};var p=this&&this.__await||function(e){return this instanceof p?(this.v=e,this):new p(e)};var c=this&&this.__asyncGenerator||function(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var a=r.apply(e,t||[]),i,n=[];return i={},verb("next"),verb("throw"),verb("return"),i[Symbol.asyncIterator]=function(){return this},i;function verb(e){if(a[e])i[e]=function(t){return new Promise((function(r,a){n.push([e,t,r,a])>1||resume(e,t)}))}}function resume(e,t){try{step(a[e](t))}catch(e){settle(n[0][3],e)}}function step(e){e.value instanceof p?Promise.resolve(e.value.v).then(fulfill,reject):settle(n[0][2],e)}function fulfill(e){resume("next",e)}function reject(e){resume("throw",e)}function settle(e,t){if(e(t),n.shift(),n.length)resume(n[0][0],n[0][1])}};Object.defineProperty(t,"__esModule",{value:true});t.DefaultGlobber=void 0;const l=n(r(2186));const d=n(r(7147));const u=n(r(1026));const m=n(r(1017));const h=n(r(9005));const g=r(1063);const v=r(4536);const y=r(9117);const b=process.platform==="win32";class DefaultGlobber{constructor(e){this.patterns=[];this.searchPaths=[];this.options=u.getOptions(e)}getSearchPaths(){return this.searchPaths.slice()}glob(){var e,t;return s(this,void 0,void 0,(function*(){const r=[];try{for(var a=o(this.globGenerator()),i;i=yield a.next(),!i.done;){const e=i.value;r.push(e)}}catch(t){e={error:t}}finally{try{if(i&&!i.done&&(t=a.return))yield t.call(a)}finally{if(e)throw e.error}}return r}))}globGenerator(){return c(this,arguments,(function*globGenerator_1(){const e=u.getOptions(this.options);const t=[];for(const r of this.patterns){t.push(r);if(e.implicitDescendants&&(r.trailingSeparator||r.segments[r.segments.length-1]!=="**")){t.push(new v.Pattern(r.negate,true,r.segments.concat("**")))}}const r=[];for(const e of h.getSearchPaths(t)){l.debug(`Search path '${e}'`);try{yield p(d.promises.lstat(e))}catch(e){if(e.code==="ENOENT"){continue}throw e}r.unshift(new y.SearchState(e,1))}const a=[];while(r.length){const i=r.pop();const n=h.match(t,i.path);const s=!!n||h.partialMatch(t,i.path);if(!n&&!s){continue}const o=yield p(DefaultGlobber.stat(i,e,a));if(!o){continue}if(o.isDirectory()){if(n&g.MatchKind.Directory&&e.matchDirectories){yield yield p(i.path)}else if(!s){continue}const t=i.level+1;const a=(yield p(d.promises.readdir(i.path))).map((e=>new y.SearchState(m.join(i.path,e),t)));r.push(...a.reverse())}else if(n&g.MatchKind.File){yield yield p(i.path)}}}))}static create(e,t){return s(this,void 0,void 0,(function*(){const r=new DefaultGlobber(t);if(b){e=e.replace(/\r\n/g,"\n");e=e.replace(/\r/g,"\n")}const a=e.split("\n").map((e=>e.trim()));for(const e of a){if(!e||e.startsWith("#")){continue}else{r.patterns.push(new v.Pattern(e))}}r.searchPaths.push(...h.getSearchPaths(r.patterns));return r}))}static stat(e,t,r){return s(this,void 0,void 0,(function*(){let a;if(t.followSymbolicLinks){try{a=yield d.promises.stat(e.path)}catch(r){if(r.code==="ENOENT"){if(t.omitBrokenSymbolicLinks){l.debug(`Broken symlink '${e.path}'`);return undefined}throw new Error(`No information found for the path '${e.path}'. This may indicate a broken symbolic link.`)}throw r}}else{a=yield d.promises.lstat(e.path)}if(a.isDirectory()&&t.followSymbolicLinks){const t=yield d.promises.realpath(e.path);while(r.length>=e.level){r.pop()}if(r.some((e=>e===t))){l.debug(`Symlink cycle detected for path '${e.path}' and realpath '${t}'`);return undefined}r.push(t)}return a}))}}t.DefaultGlobber=DefaultGlobber},2448:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==="function"?__values(e):e[Symbol.iterator](),r={},verb("next"),verb("throw"),verb("return"),r[Symbol.asyncIterator]=function(){return this},r);function verb(t){r[t]=e[t]&&function(r){return new Promise((function(a,i){r=e[t](r),settle(a,i,r.done,r.value)}))}}function settle(e,t,r,a){Promise.resolve(a).then((function(t){e({value:t,done:r})}),t)}};Object.defineProperty(t,"__esModule",{value:true});t.hashFiles=void 0;const p=n(r(6113));const c=n(r(2186));const l=n(r(7147));const d=n(r(2781));const u=n(r(3837));const m=n(r(1017));function hashFiles(e,t=false){var r,a;var i;return s(this,void 0,void 0,(function*(){const n=t?c.info:c.debug;let s=false;const h=(i=process.env["GITHUB_WORKSPACE"])!==null&&i!==void 0?i:process.cwd();const g=p.createHash("sha256");let v=0;try{for(var y=o(e.globGenerator()),b;b=yield y.next(),!b.done;){const e=b.value;n(e);if(!e.startsWith(`${h}${m.sep}`)){n(`Ignore '${e}' since it is not under GITHUB_WORKSPACE.`);continue}if(l.statSync(e).isDirectory()){n(`Skip directory '${e}'.`);continue}const t=p.createHash("sha256");const r=u.promisify(d.pipeline);yield r(l.createReadStream(e),t);g.write(t.digest());v++;if(!s){s=true}}}catch(e){r={error:e}}finally{try{if(b&&!b.done&&(a=y.return))yield a.call(y)}finally{if(r)throw r.error}}g.end();if(s){n(`Found ${v} files to hash.`);return g.digest("hex")}else{n(`No matches found for glob`);return""}}))}t.hashFiles=hashFiles},1063:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MatchKind=void 0;var r;(function(e){e[e["None"]=0]="None";e[e["Directory"]=1]="Directory";e[e["File"]=2]="File";e[e["All"]=3]="All"})(r=t.MatchKind||(t.MatchKind={}))},1849:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.safeTrimTrailingSeparator=t.normalizeSeparators=t.hasRoot=t.hasAbsoluteRoot=t.ensureAbsoluteRoot=t.dirname=void 0;const o=n(r(1017));const p=s(r(9491));const c=process.platform==="win32";function dirname(e){e=safeTrimTrailingSeparator(e);if(c&&/^\\\\[^\\]+(\\[^\\]+)?$/.test(e)){return e}let t=o.dirname(e);if(c&&/^\\\\[^\\]+\\[^\\]+\\$/.test(t)){t=safeTrimTrailingSeparator(t)}return t}t.dirname=dirname;function ensureAbsoluteRoot(e,t){p.default(e,`ensureAbsoluteRoot parameter 'root' must not be empty`);p.default(t,`ensureAbsoluteRoot parameter 'itemPath' must not be empty`);if(hasAbsoluteRoot(t)){return t}if(c){if(t.match(/^[A-Z]:[^\\/]|^[A-Z]:$/i)){let e=process.cwd();p.default(e.match(/^[A-Z]:\\/i),`Expected current directory to start with an absolute drive root. Actual '${e}'`);if(t[0].toUpperCase()===e[0].toUpperCase()){if(t.length===2){return`${t[0]}:\\${e.substr(3)}`}else{if(!e.endsWith("\\")){e+="\\"}return`${t[0]}:\\${e.substr(3)}${t.substr(2)}`}}else{return`${t[0]}:\\${t.substr(2)}`}}else if(normalizeSeparators(t).match(/^\\$|^\\[^\\]/)){const e=process.cwd();p.default(e.match(/^[A-Z]:\\/i),`Expected current directory to start with an absolute drive root. Actual '${e}'`);return`${e[0]}:\\${t.substr(1)}`}}p.default(hasAbsoluteRoot(e),`ensureAbsoluteRoot parameter 'root' must have an absolute root`);if(e.endsWith("/")||c&&e.endsWith("\\")){}else{e+=o.sep}return e+t}t.ensureAbsoluteRoot=ensureAbsoluteRoot;function hasAbsoluteRoot(e){p.default(e,`hasAbsoluteRoot parameter 'itemPath' must not be empty`);e=normalizeSeparators(e);if(c){return e.startsWith("\\\\")||/^[A-Z]:\\/i.test(e)}return e.startsWith("/")}t.hasAbsoluteRoot=hasAbsoluteRoot;function hasRoot(e){p.default(e,`isRooted parameter 'itemPath' must not be empty`);e=normalizeSeparators(e);if(c){return e.startsWith("\\")||/^[A-Z]:/i.test(e)}return e.startsWith("/")}t.hasRoot=hasRoot;function normalizeSeparators(e){e=e||"";if(c){e=e.replace(/\//g,"\\");const t=/^\\\\+[^\\]/.test(e);return(t?"\\":"")+e.replace(/\\\\+/g,"\\")}return e.replace(/\/\/+/g,"/")}t.normalizeSeparators=normalizeSeparators;function safeTrimTrailingSeparator(e){if(!e){return""}e=normalizeSeparators(e);if(!e.endsWith(o.sep)){return e}if(e===o.sep){return e}if(c&&/^[A-Z]:\\$/i.test(e)){return e}return e.substr(0,e.length-1)}t.safeTrimTrailingSeparator=safeTrimTrailingSeparator},6836:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.Path=void 0;const o=n(r(1017));const p=n(r(1849));const c=s(r(9491));const l=process.platform==="win32";class Path{constructor(e){this.segments=[];if(typeof e==="string"){c.default(e,`Parameter 'itemPath' must not be empty`);e=p.safeTrimTrailingSeparator(e);if(!p.hasRoot(e)){this.segments=e.split(o.sep)}else{let t=e;let r=p.dirname(t);while(r!==t){const e=o.basename(t);this.segments.unshift(e);t=r;r=p.dirname(t)}this.segments.unshift(t)}}else{c.default(e.length>0,`Parameter 'itemPath' must not be an empty array`);for(let t=0;t!e.negate));const t={};for(const r of e){const e=p?r.searchPath.toUpperCase():r.searchPath;t[e]="candidate"}const r=[];for(const a of e){const e=p?a.searchPath.toUpperCase():a.searchPath;if(t[e]==="included"){continue}let i=false;let n=e;let o=s.dirname(n);while(o!==n){if(t[o]){i=true;break}n=o;o=s.dirname(n)}if(!i){r.push(a.searchPath);t[e]="included"}}return r}t.getSearchPaths=getSearchPaths;function match(e,t){let r=o.MatchKind.None;for(const a of e){if(a.negate){r&=~a.match(t)}else{r|=a.match(t)}}return r}t.match=match;function partialMatch(e,t){return e.some((e=>!e.negate&&e.partialMatch(t)))}t.partialMatch=partialMatch},4536:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.Pattern=void 0;const o=n(r(2037));const p=n(r(1017));const c=n(r(1849));const l=s(r(9491));const d=r(3973);const u=r(1063);const m=r(6836);const h=process.platform==="win32";class Pattern{constructor(e,t=false,r,a){this.negate=false;let i;if(typeof e==="string"){i=e.trim()}else{r=r||[];l.default(r.length,`Parameter 'segments' must not empty`);const t=Pattern.getLiteral(r[0]);l.default(t&&c.hasAbsoluteRoot(t),`Parameter 'segments' first element must be a root path`);i=new m.Path(r).toString().trim();if(e){i=`!${i}`}}while(i.startsWith("!")){this.negate=!this.negate;i=i.substr(1).trim()}i=Pattern.fixupPattern(i,a);this.segments=new m.Path(i).segments;this.trailingSeparator=c.normalizeSeparators(i).endsWith(p.sep);i=c.safeTrimTrailingSeparator(i);let n=false;const s=this.segments.map((e=>Pattern.getLiteral(e))).filter((e=>!n&&!(n=e==="")));this.searchPath=new m.Path(s).toString();this.rootRegExp=new RegExp(Pattern.regExpEscape(s[0]),h?"i":"");this.isImplicitPattern=t;const o={dot:true,nobrace:true,nocase:h,nocomment:true,noext:true,nonegate:true};i=h?i.replace(/\\/g,"/"):i;this.minimatch=new d.Minimatch(i,o)}match(e){if(this.segments[this.segments.length-1]==="**"){e=c.normalizeSeparators(e);if(!e.endsWith(p.sep)&&this.isImplicitPattern===false){e=`${e}${p.sep}`}}else{e=c.safeTrimTrailingSeparator(e)}if(this.minimatch.match(e)){return this.trailingSeparator?u.MatchKind.Directory:u.MatchKind.All}return u.MatchKind.None}partialMatch(e){e=c.safeTrimTrailingSeparator(e);if(c.dirname(e)===e){return this.rootRegExp.test(e)}return this.minimatch.matchOne(e.split(h?/\\+/:/\/+/),this.minimatch.set[0],true)}static globEscape(e){return(h?e:e.replace(/\\/g,"\\\\")).replace(/(\[)(?=[^/]+\])/g,"[[]").replace(/\?/g,"[?]").replace(/\*/g,"[*]")}static fixupPattern(e,t){l.default(e,"pattern cannot be empty");const r=new m.Path(e).segments.map((e=>Pattern.getLiteral(e)));l.default(r.every(((e,t)=>(e!=="."||t===0)&&e!=="..")),`Invalid pattern '${e}'. Relative pathing '.' and '..' is not allowed.`);l.default(!c.hasRoot(e)||r[0],`Invalid pattern '${e}'. Root segment must not contain globs.`);e=c.normalizeSeparators(e);if(e==="."||e.startsWith(`.${p.sep}`)){e=Pattern.globEscape(process.cwd())+e.substr(1)}else if(e==="~"||e.startsWith(`~${p.sep}`)){t=t||o.homedir();l.default(t,"Unable to determine HOME directory");l.default(c.hasAbsoluteRoot(t),`Expected HOME directory to be a rooted path. Actual '${t}'`);e=Pattern.globEscape(t)+e.substr(1)}else if(h&&(e.match(/^[A-Z]:$/i)||e.match(/^[A-Z]:[^\\]/i))){let t=c.ensureAbsoluteRoot("C:\\dummy-root",e.substr(0,2));if(e.length>2&&!t.endsWith("\\")){t+="\\"}e=Pattern.globEscape(t)+e.substr(2)}else if(h&&(e==="\\"||e.match(/^\\[^\\]/))){let t=c.ensureAbsoluteRoot("C:\\dummy-root","\\");if(!t.endsWith("\\")){t+="\\"}e=Pattern.globEscape(t)+e.substr(1)}else{e=c.ensureAbsoluteRoot(Pattern.globEscape(process.cwd()),e)}return c.normalizeSeparators(e)}static getLiteral(e){let t="";for(let r=0;r=0){if(a.length>1){return""}if(a){t+=a;r=i;continue}}}t+=a}return t}static regExpEscape(e){return e.replace(/[[\\^$.|?*+()]/g,"\\$&")}}t.Pattern=Pattern},9117:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.SearchState=void 0;class SearchState{constructor(e,t){this.path=e;this.level=t}}t.SearchState=SearchState},5526:function(e,t){"use strict";var r=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.PersonalAccessTokenCredentialHandler=t.BearerCredentialHandler=t.BasicCredentialHandler=void 0;class BasicCredentialHandler{constructor(e,t){this.username=e;this.password=t}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.BasicCredentialHandler=BasicCredentialHandler;class BearerCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Bearer ${this.token}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.BearerCredentialHandler=BearerCredentialHandler;class PersonalAccessTokenCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.PersonalAccessTokenCredentialHandler=PersonalAccessTokenCredentialHandler},6255:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.HttpClient=t.isHttps=t.HttpClientResponse=t.HttpClientError=t.getProxyUrl=t.MediaTypes=t.Headers=t.HttpCodes=void 0;const o=n(r(3685));const p=n(r(5687));const c=n(r(9835));const l=n(r(4294));var d;(function(e){e[e["OK"]=200]="OK";e[e["MultipleChoices"]=300]="MultipleChoices";e[e["MovedPermanently"]=301]="MovedPermanently";e[e["ResourceMoved"]=302]="ResourceMoved";e[e["SeeOther"]=303]="SeeOther";e[e["NotModified"]=304]="NotModified";e[e["UseProxy"]=305]="UseProxy";e[e["SwitchProxy"]=306]="SwitchProxy";e[e["TemporaryRedirect"]=307]="TemporaryRedirect";e[e["PermanentRedirect"]=308]="PermanentRedirect";e[e["BadRequest"]=400]="BadRequest";e[e["Unauthorized"]=401]="Unauthorized";e[e["PaymentRequired"]=402]="PaymentRequired";e[e["Forbidden"]=403]="Forbidden";e[e["NotFound"]=404]="NotFound";e[e["MethodNotAllowed"]=405]="MethodNotAllowed";e[e["NotAcceptable"]=406]="NotAcceptable";e[e["ProxyAuthenticationRequired"]=407]="ProxyAuthenticationRequired";e[e["RequestTimeout"]=408]="RequestTimeout";e[e["Conflict"]=409]="Conflict";e[e["Gone"]=410]="Gone";e[e["TooManyRequests"]=429]="TooManyRequests";e[e["InternalServerError"]=500]="InternalServerError";e[e["NotImplemented"]=501]="NotImplemented";e[e["BadGateway"]=502]="BadGateway";e[e["ServiceUnavailable"]=503]="ServiceUnavailable";e[e["GatewayTimeout"]=504]="GatewayTimeout"})(d=t.HttpCodes||(t.HttpCodes={}));var u;(function(e){e["Accept"]="accept";e["ContentType"]="content-type"})(u=t.Headers||(t.Headers={}));var m;(function(e){e["ApplicationJson"]="application/json"})(m=t.MediaTypes||(t.MediaTypes={}));function getProxyUrl(e){const t=c.getProxyUrl(new URL(e));return t?t.href:""}t.getProxyUrl=getProxyUrl;const h=[d.MovedPermanently,d.ResourceMoved,d.SeeOther,d.TemporaryRedirect,d.PermanentRedirect];const g=[d.BadGateway,d.ServiceUnavailable,d.GatewayTimeout];const v=["OPTIONS","GET","DELETE","HEAD"];const y=10;const b=5;class HttpClientError extends Error{constructor(e,t){super(e);this.name="HttpClientError";this.statusCode=t;Object.setPrototypeOf(this,HttpClientError.prototype)}}t.HttpClientError=HttpClientError;class HttpClientResponse{constructor(e){this.message=e}readBody(){return s(this,void 0,void 0,(function*(){return new Promise((e=>s(this,void 0,void 0,(function*(){let t=Buffer.alloc(0);this.message.on("data",(e=>{t=Buffer.concat([t,e])}));this.message.on("end",(()=>{e(t.toString())}))}))))}))}}t.HttpClientResponse=HttpClientResponse;function isHttps(e){const t=new URL(e);return t.protocol==="https:"}t.isHttps=isHttps;class HttpClient{constructor(e,t,r){this._ignoreSslError=false;this._allowRedirects=true;this._allowRedirectDowngrade=false;this._maxRedirects=50;this._allowRetries=false;this._maxRetries=1;this._keepAlive=false;this._disposed=false;this.userAgent=e;this.handlers=t||[];this.requestOptions=r;if(r){if(r.ignoreSslError!=null){this._ignoreSslError=r.ignoreSslError}this._socketTimeout=r.socketTimeout;if(r.allowRedirects!=null){this._allowRedirects=r.allowRedirects}if(r.allowRedirectDowngrade!=null){this._allowRedirectDowngrade=r.allowRedirectDowngrade}if(r.maxRedirects!=null){this._maxRedirects=Math.max(r.maxRedirects,0)}if(r.keepAlive!=null){this._keepAlive=r.keepAlive}if(r.allowRetries!=null){this._allowRetries=r.allowRetries}if(r.maxRetries!=null){this._maxRetries=r.maxRetries}}}options(e,t){return s(this,void 0,void 0,(function*(){return this.request("OPTIONS",e,null,t||{})}))}get(e,t){return s(this,void 0,void 0,(function*(){return this.request("GET",e,null,t||{})}))}del(e,t){return s(this,void 0,void 0,(function*(){return this.request("DELETE",e,null,t||{})}))}post(e,t,r){return s(this,void 0,void 0,(function*(){return this.request("POST",e,t,r||{})}))}patch(e,t,r){return s(this,void 0,void 0,(function*(){return this.request("PATCH",e,t,r||{})}))}put(e,t,r){return s(this,void 0,void 0,(function*(){return this.request("PUT",e,t,r||{})}))}head(e,t){return s(this,void 0,void 0,(function*(){return this.request("HEAD",e,null,t||{})}))}sendStream(e,t,r,a){return s(this,void 0,void 0,(function*(){return this.request(e,t,r,a)}))}getJson(e,t={}){return s(this,void 0,void 0,(function*(){t[u.Accept]=this._getExistingOrDefaultHeader(t,u.Accept,m.ApplicationJson);const r=yield this.get(e,t);return this._processResponse(r,this.requestOptions)}))}postJson(e,t,r={}){return s(this,void 0,void 0,(function*(){const a=JSON.stringify(t,null,2);r[u.Accept]=this._getExistingOrDefaultHeader(r,u.Accept,m.ApplicationJson);r[u.ContentType]=this._getExistingOrDefaultHeader(r,u.ContentType,m.ApplicationJson);const i=yield this.post(e,a,r);return this._processResponse(i,this.requestOptions)}))}putJson(e,t,r={}){return s(this,void 0,void 0,(function*(){const a=JSON.stringify(t,null,2);r[u.Accept]=this._getExistingOrDefaultHeader(r,u.Accept,m.ApplicationJson);r[u.ContentType]=this._getExistingOrDefaultHeader(r,u.ContentType,m.ApplicationJson);const i=yield this.put(e,a,r);return this._processResponse(i,this.requestOptions)}))}patchJson(e,t,r={}){return s(this,void 0,void 0,(function*(){const a=JSON.stringify(t,null,2);r[u.Accept]=this._getExistingOrDefaultHeader(r,u.Accept,m.ApplicationJson);r[u.ContentType]=this._getExistingOrDefaultHeader(r,u.ContentType,m.ApplicationJson);const i=yield this.patch(e,a,r);return this._processResponse(i,this.requestOptions)}))}request(e,t,r,a){return s(this,void 0,void 0,(function*(){if(this._disposed){throw new Error("Client has already been disposed.")}const i=new URL(t);let n=this._prepareRequest(e,i,a);const s=this._allowRetries&&v.includes(e)?this._maxRetries+1:1;let o=0;let p;do{p=yield this.requestRaw(n,r);if(p&&p.message&&p.message.statusCode===d.Unauthorized){let e;for(const t of this.handlers){if(t.canHandleAuthentication(p)){e=t;break}}if(e){return e.handleAuthentication(this,n,r)}else{return p}}let t=this._maxRedirects;while(p.message.statusCode&&h.includes(p.message.statusCode)&&this._allowRedirects&&t>0){const s=p.message.headers["location"];if(!s){break}const o=new URL(s);if(i.protocol==="https:"&&i.protocol!==o.protocol&&!this._allowRedirectDowngrade){throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.")}yield p.readBody();if(o.hostname!==i.hostname){for(const e in a){if(e.toLowerCase()==="authorization"){delete a[e]}}}n=this._prepareRequest(e,o,a);p=yield this.requestRaw(n,r);t--}if(!p.message.statusCode||!g.includes(p.message.statusCode)){return p}o+=1;if(o{function callbackForResult(e,t){if(e){a(e)}else if(!t){a(new Error("Unknown error"))}else{r(t)}}this.requestRawWithCallback(e,t,callbackForResult)}))}))}requestRawWithCallback(e,t,r){if(typeof t==="string"){if(!e.options.headers){e.options.headers={}}e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8")}let a=false;function handleResult(e,t){if(!a){a=true;r(e,t)}}const i=e.httpModule.request(e.options,(e=>{const t=new HttpClientResponse(e);handleResult(undefined,t)}));let n;i.on("socket",(e=>{n=e}));i.setTimeout(this._socketTimeout||3*6e4,(()=>{if(n){n.end()}handleResult(new Error(`Request timeout: ${e.options.path}`))}));i.on("error",(function(e){handleResult(e)}));if(t&&typeof t==="string"){i.write(t,"utf8")}if(t&&typeof t!=="string"){t.on("close",(function(){i.end()}));t.pipe(i)}else{i.end()}}getAgent(e){const t=new URL(e);return this._getAgent(t)}_prepareRequest(e,t,r){const a={};a.parsedUrl=t;const i=a.parsedUrl.protocol==="https:";a.httpModule=i?p:o;const n=i?443:80;a.options={};a.options.host=a.parsedUrl.hostname;a.options.port=a.parsedUrl.port?parseInt(a.parsedUrl.port):n;a.options.path=(a.parsedUrl.pathname||"")+(a.parsedUrl.search||"");a.options.method=e;a.options.headers=this._mergeHeaders(r);if(this.userAgent!=null){a.options.headers["user-agent"]=this.userAgent}a.options.agent=this._getAgent(a.parsedUrl);if(this.handlers){for(const e of this.handlers){e.prepareRequest(a.options)}}return a}_mergeHeaders(e){if(this.requestOptions&&this.requestOptions.headers){return Object.assign({},lowercaseKeys(this.requestOptions.headers),lowercaseKeys(e||{}))}return lowercaseKeys(e||{})}_getExistingOrDefaultHeader(e,t,r){let a;if(this.requestOptions&&this.requestOptions.headers){a=lowercaseKeys(this.requestOptions.headers)[t]}return e[t]||a||r}_getAgent(e){let t;const r=c.getProxyUrl(e);const a=r&&r.hostname;if(this._keepAlive&&a){t=this._proxyAgent}if(this._keepAlive&&!a){t=this._agent}if(t){return t}const i=e.protocol==="https:";let n=100;if(this.requestOptions){n=this.requestOptions.maxSockets||o.globalAgent.maxSockets}if(r&&r.hostname){const e={maxSockets:n,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(r.username||r.password)&&{proxyAuth:`${r.username}:${r.password}`}),{host:r.hostname,port:r.port})};let a;const s=r.protocol==="https:";if(i){a=s?l.httpsOverHttps:l.httpsOverHttp}else{a=s?l.httpOverHttps:l.httpOverHttp}t=a(e);this._proxyAgent=t}if(this._keepAlive&&!t){const e={keepAlive:this._keepAlive,maxSockets:n};t=i?new p.Agent(e):new o.Agent(e);this._agent=t}if(!t){t=i?p.globalAgent:o.globalAgent}if(i&&this._ignoreSslError){t.options=Object.assign(t.options||{},{rejectUnauthorized:false})}return t}_performExponentialBackoff(e){return s(this,void 0,void 0,(function*(){e=Math.min(y,e);const t=b*Math.pow(2,e);return new Promise((e=>setTimeout((()=>e()),t)))}))}_processResponse(e,t){return s(this,void 0,void 0,(function*(){return new Promise(((r,a)=>s(this,void 0,void 0,(function*(){const i=e.message.statusCode||0;const n={statusCode:i,result:null,headers:{}};if(i===d.NotFound){r(n)}function dateTimeDeserializer(e,t){if(typeof t==="string"){const e=new Date(t);if(!isNaN(e.valueOf())){return e}}return t}let s;let o;try{o=yield e.readBody();if(o&&o.length>0){if(t&&t.deserializeDates){s=JSON.parse(o,dateTimeDeserializer)}else{s=JSON.parse(o)}n.result=s}n.headers=e.message.headers}catch(e){}if(i>299){let e;if(s&&s.message){e=s.message}else if(o&&o.length>0){e=o}else{e=`Failed request: (${i})`}const t=new HttpClientError(e,i);t.result=n.result;a(t)}else{r(n)}}))))}))}}t.HttpClient=HttpClient;const lowercaseKeys=e=>Object.keys(e).reduce(((t,r)=>(t[r.toLowerCase()]=e[r],t)),{})},9835:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.checkBypass=t.getProxyUrl=void 0;function getProxyUrl(e){const t=e.protocol==="https:";if(checkBypass(e)){return undefined}const r=(()=>{if(t){return process.env["https_proxy"]||process.env["HTTPS_PROXY"]}else{return process.env["http_proxy"]||process.env["HTTP_PROXY"]}})();if(r){return new URL(r)}else{return undefined}}t.getProxyUrl=getProxyUrl;function checkBypass(e){if(!e.hostname){return false}const t=process.env["no_proxy"]||process.env["NO_PROXY"]||"";if(!t){return false}let r;if(e.port){r=Number(e.port)}else if(e.protocol==="http:"){r=80}else if(e.protocol==="https:"){r=443}const a=[e.hostname.toUpperCase()];if(typeof r==="number"){a.push(`${a[0]}:${r}`)}for(const e of t.split(",").map((e=>e.trim().toUpperCase())).filter((e=>e))){if(a.some((t=>t===e))){return true}}return false}t.checkBypass=checkBypass},1962:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o;Object.defineProperty(t,"__esModule",{value:true});t.getCmdPath=t.tryGetExecutablePath=t.isRooted=t.isDirectory=t.exists=t.IS_WINDOWS=t.unlink=t.symlink=t.stat=t.rmdir=t.rename=t.readlink=t.readdir=t.mkdir=t.lstat=t.copyFile=t.chmod=void 0;const p=n(r(7147));const c=n(r(1017));o=p.promises,t.chmod=o.chmod,t.copyFile=o.copyFile,t.lstat=o.lstat,t.mkdir=o.mkdir,t.readdir=o.readdir,t.readlink=o.readlink,t.rename=o.rename,t.rmdir=o.rmdir,t.stat=o.stat,t.symlink=o.symlink,t.unlink=o.unlink;t.IS_WINDOWS=process.platform==="win32";function exists(e){return s(this,void 0,void 0,(function*(){try{yield t.stat(e)}catch(e){if(e.code==="ENOENT"){return false}throw e}return true}))}t.exists=exists;function isDirectory(e,r=false){return s(this,void 0,void 0,(function*(){const a=r?yield t.stat(e):yield t.lstat(e);return a.isDirectory()}))}t.isDirectory=isDirectory;function isRooted(e){e=normalizeSeparators(e);if(!e){throw new Error('isRooted() parameter "p" cannot be empty')}if(t.IS_WINDOWS){return e.startsWith("\\")||/^[A-Z]:/i.test(e)}return e.startsWith("/")}t.isRooted=isRooted;function tryGetExecutablePath(e,r){return s(this,void 0,void 0,(function*(){let a=undefined;try{a=yield t.stat(e)}catch(t){if(t.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${t}`)}}if(a&&a.isFile()){if(t.IS_WINDOWS){const t=c.extname(e).toUpperCase();if(r.some((e=>e.toUpperCase()===t))){return e}}else{if(isUnixExecutable(a)){return e}}}const i=e;for(const n of r){e=i+n;a=undefined;try{a=yield t.stat(e)}catch(t){if(t.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${t}`)}}if(a&&a.isFile()){if(t.IS_WINDOWS){try{const r=c.dirname(e);const a=c.basename(e).toUpperCase();for(const i of yield t.readdir(r)){if(a===i.toUpperCase()){e=c.join(r,i);break}}}catch(t){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${t}`)}return e}else{if(isUnixExecutable(a)){return e}}}}return""}))}t.tryGetExecutablePath=tryGetExecutablePath;function normalizeSeparators(e){e=e||"";if(t.IS_WINDOWS){e=e.replace(/\//g,"\\");return e.replace(/\\\\+/g,"\\")}return e.replace(/\/\/+/g,"/")}function isUnixExecutable(e){return(e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}function getCmdPath(){var e;return(e=process.env["COMSPEC"])!==null&&e!==void 0?e:`cmd.exe`}t.getCmdPath=getCmdPath},7436:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.findInPath=t.which=t.mkdirP=t.rmRF=t.mv=t.cp=void 0;const o=r(9491);const p=n(r(2081));const c=n(r(1017));const l=r(3837);const d=n(r(1962));const u=l.promisify(p.exec);const m=l.promisify(p.execFile);function cp(e,t,r={}){return s(this,void 0,void 0,(function*(){const{force:a,recursive:i,copySourceDirectory:n}=readCopyOptions(r);const s=(yield d.exists(t))?yield d.stat(t):null;if(s&&s.isFile()&&!a){return}const o=s&&s.isDirectory()&&n?c.join(t,c.basename(e)):t;if(!(yield d.exists(e))){throw new Error(`no such file or directory: ${e}`)}const p=yield d.stat(e);if(p.isDirectory()){if(!i){throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`)}else{yield cpDirRecursive(e,o,0,a)}}else{if(c.relative(e,o)===""){throw new Error(`'${o}' and '${e}' are the same file`)}yield copyFile(e,o,a)}}))}t.cp=cp;function mv(e,t,r={}){return s(this,void 0,void 0,(function*(){if(yield d.exists(t)){let a=true;if(yield d.isDirectory(t)){t=c.join(t,c.basename(e));a=yield d.exists(t)}if(a){if(r.force==null||r.force){yield rmRF(t)}else{throw new Error("Destination already exists")}}}yield mkdirP(c.dirname(t));yield d.rename(e,t)}))}t.mv=mv;function rmRF(e){return s(this,void 0,void 0,(function*(){if(d.IS_WINDOWS){if(/[*"<>|]/.test(e)){throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows')}try{const t=d.getCmdPath();if(yield d.isDirectory(e,true)){yield u(`${t} /s /c "rd /s /q "%inputPath%""`,{env:{inputPath:e}})}else{yield u(`${t} /s /c "del /f /a "%inputPath%""`,{env:{inputPath:e}})}}catch(e){if(e.code!=="ENOENT")throw e}try{yield d.unlink(e)}catch(e){if(e.code!=="ENOENT")throw e}}else{let t=false;try{t=yield d.isDirectory(e)}catch(e){if(e.code!=="ENOENT")throw e;return}if(t){yield m(`rm`,[`-rf`,`${e}`])}else{yield d.unlink(e)}}}))}t.rmRF=rmRF;function mkdirP(e){return s(this,void 0,void 0,(function*(){o.ok(e,"a path argument must be provided");yield d.mkdir(e,{recursive:true})}))}t.mkdirP=mkdirP;function which(e,t){return s(this,void 0,void 0,(function*(){if(!e){throw new Error("parameter 'tool' is required")}if(t){const t=yield which(e,false);if(!t){if(d.IS_WINDOWS){throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`)}else{throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`)}}return t}const r=yield findInPath(e);if(r&&r.length>0){return r[0]}return""}))}t.which=which;function findInPath(e){return s(this,void 0,void 0,(function*(){if(!e){throw new Error("parameter 'tool' is required")}const t=[];if(d.IS_WINDOWS&&process.env["PATHEXT"]){for(const e of process.env["PATHEXT"].split(c.delimiter)){if(e){t.push(e)}}}if(d.isRooted(e)){const r=yield d.tryGetExecutablePath(e,t);if(r){return[r]}return[]}if(e.includes(c.sep)){return[]}const r=[];if(process.env.PATH){for(const e of process.env.PATH.split(c.delimiter)){if(e){r.push(e)}}}const a=[];for(const i of r){const r=yield d.tryGetExecutablePath(c.join(i,e),t);if(r){a.push(r)}}return a}))}t.findInPath=findInPath;function readCopyOptions(e){const t=e.force==null?true:e.force;const r=Boolean(e.recursive);const a=e.copySourceDirectory==null?true:Boolean(e.copySourceDirectory);return{force:t,recursive:r,copySourceDirectory:a}}function cpDirRecursive(e,t,r,a){return s(this,void 0,void 0,(function*(){if(r>=255)return;r++;yield mkdirP(t);const i=yield d.readdir(e);for(const n of i){const i=`${e}/${n}`;const s=`${t}/${n}`;const o=yield d.lstat(i);if(o.isDirectory()){yield cpDirRecursive(i,s,r,a)}else{yield copyFile(i,s,a)}}yield d.chmod(t,(yield d.stat(e)).mode)}))}function copyFile(e,t,r){return s(this,void 0,void 0,(function*(){if((yield d.lstat(e)).isSymbolicLink()){try{yield d.lstat(t);yield d.unlink(t)}catch(e){if(e.code==="EPERM"){yield d.chmod(t,"0666");yield d.unlink(t)}}const r=yield d.readlink(e);yield d.symlink(r,t,d.IS_WINDOWS?"junction":null)}else if(!(yield d.exists(t))||r){yield d.copyFile(e,t)}}))}},6809:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ArchiveDependencies=t.IfNoFile=t.ArchiveOn=void 0;var r;(function(e){e["SUCCESS"]="success";e["FAILURE"]="failure";e["ALWAYS"]="always"})(r=t.ArchiveOn||(t.ArchiveOn={}));var a;(function(e){e["WARN"]="warn";e["ERROR"]="error";e["IGNORE"]="ignore"})(a=t.IfNoFile||(t.IfNoFile={}));var i;(function(e){e["ALL"]="all";e["NONE"]="none"})(i=t.ArchiveDependencies||(t.ArchiveDependencies={}))},8114:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.IfNoFile=t.ArchiveOn=t.ArchiveDependencies=t.getMapping=t.getMappedTarget=t.readDefinitionFile=t.getTreeForProject=t.getOrderedListForTree=t.getOrderedListForProject=t.parentChainFromNode=t.getTree=void 0;const a=r(2253);Object.defineProperty(t,"getTree",{enumerable:true,get:function(){return a.getTree}});Object.defineProperty(t,"parentChainFromNode",{enumerable:true,get:function(){return a.parentChainFromNode}});Object.defineProperty(t,"getOrderedListForProject",{enumerable:true,get:function(){return a.getOrderedListForProject}});Object.defineProperty(t,"getOrderedListForTree",{enumerable:true,get:function(){return a.getOrderedListForTree}});Object.defineProperty(t,"getTreeForProject",{enumerable:true,get:function(){return a.getTreeForProject}});const i=r(5934);Object.defineProperty(t,"readDefinitionFile",{enumerable:true,get:function(){return i.readDefinitionFile}});const n=r(9596);Object.defineProperty(t,"getMappedTarget",{enumerable:true,get:function(){return n.getMappedTarget}});Object.defineProperty(t,"getMapping",{enumerable:true,get:function(){return n.getMapping}});const s=r(6809);Object.defineProperty(t,"ArchiveDependencies",{enumerable:true,get:function(){return s.ArchiveDependencies}});Object.defineProperty(t,"ArchiveOn",{enumerable:true,get:function(){return s.ArchiveOn}});Object.defineProperty(t,"IfNoFile",{enumerable:true,get:function(){return s.IfNoFile}})},5934:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.readDefinitionFile=void 0;const i=r(4619);const n=r(3919);const s=r(5265);const o=r(3292);const p=a(r(6545));const c=a(r(1017));async function readDefinitionFile(e,t){try{const r=await getContent(e,t);const a=await(0,s.validateDefinitionFile)(r);let i=undefined;if(a.extends){i=await readDefinitionFile(constructLocation(a.extends,e,t),t);delete a["extends"]}a.pre=extendPre(a.pre,i?i.pre:undefined);a.post=extendPost(a.post,i?i.post:undefined);a.default=extendDefault(a.default,i?i.default:undefined);a.build=extendBuild(a.build,i?i.build:undefined);a.dependencies=await loadDependencies(a.dependencies,i?.dependencies,e,t);targetExpressionToTarget(a.dependencies);return a}catch(t){throw new Error(`Error getting ${e} - ${t}`)}}t.readDefinitionFile=readDefinitionFile;async function loadDependencies(e,t,r,a){let i=[];if(!e){return t??[]}if(!Array.isArray(e)){const t=constructLocation(e,r,a);const n=await readDefinitionFile(t,a);i=n.dependencies}else{i=e}return t?t.concat(i):i}function extendBuild(e,t){if(!t){return e}if(!e){return t}return[...e,...t.filter((t=>!e.find((e=>e.project===t.project))))]}function extendDefault(e,t){if(!t){return e}if(!e){return t}const r=Object.keys(e);return Object.entries(t).reduce(((t,[a,i])=>{const n=e[a];if(Array.isArray(i)&&Array.isArray(n)){t[a]=n.length?n:i}else if(typeof i==="object"){t[a]=r.includes(a)?extendDefault(e[a],i):i}else{t[a]=e[a]??i}return t}),{...e})}function extendPre(e,t){if(!t){return e}if(!e){return t}return e.concat(t)}function extendPost(e,t){if(!t){return e}if(!e){return t}return{success:extendPre(e.success,t.success),always:extendPre(e.always,t.always),failure:extendPre(e.failure,t.failure)}}async function getContent(e,t){if(isURL(e)){const r=(0,n.treatUrl)(e,t?.group,t?.name,t?.branch);const a=await p.default.get(r,{responseType:"text",...t?.token?{headers:{Authorization:`Bearer ${t.token}`}}:{}});return a.data}else{return(0,o.readFile)(e,"utf8")}}function constructLocation(e,t,r){if(isURL(e)){return(0,n.treatUrl)(e,r?.group,r?.name,r?.branch)}else if(isURL(t)){const a=(0,n.treatUrl)(t,r?.group,r?.name,r?.branch);const i=a.lastIndexOf("/");return`${a.slice(0,i)}/${e}`}else{return c.default.join(c.default.dirname(t),e)}}function isURL(e){const t=/^https?:\/\//;return t.test(e)}function targetExpressionToTarget(e){for(const t of e){if(t.mapping?.dependant){executeTargetExpression(t.mapping.dependant)}if(t.mapping?.dependencies){executeTargetExpression(t.mapping.dependencies)}}}function executeTargetExpression(e){for(const[t,r]of Object.entries(e)){e[t]=r.map((e=>e.targetExpression?{source:e.source,target:(0,i.safeEval)(e.targetExpression,e)}:e))}}},698:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ArchiveArtifactSchema=void 0;const a=r(4428);t.ArchiveArtifactSchema={type:"object",properties:{name:{type:"string",nullable:true},paths:{type:"array",items:{type:"object",properties:{path:{type:"string"},on:{type:"string",enum:["success","failure","always"]}},required:["on","path"]}},"if-no-files-found":{type:"string",enum:["warn","ignore","error"],default:"warn"},dependencies:{oneOf:[{type:"string",enum:["all","none"]},{type:"array",items:a.ProjectNameSchema}]}},required:["paths","if-no-files-found","dependencies"]}},6768:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.BuildSchema=t.BuildCommandSchema=void 0;const a=r(698);const i=r(4428);const n={type:"array",items:{type:"string"}};const s={type:"object",properties:{current:n,upstream:n,downstream:n},required:["current","upstream","downstream"],additionalProperties:false};t.BuildCommandSchema={type:"object",properties:{before:{...s,nullable:true},after:{...s,nullable:true},current:n,upstream:n,downstream:n},required:["current","upstream","downstream"],additionalProperties:false};t.BuildSchema={type:"object",properties:{project:i.ProjectNameSchema,"build-command":{...t.BuildCommandSchema,nullable:true},"archive-artifacts":{...a.ArchiveArtifactSchema,nullable:true},skip:{type:"boolean",nullable:true},clone:{type:"array",items:{type:"string"},nullable:true}},required:["project"],anyOf:[{required:["build-command"]},{required:["archive-artifacts"]},{required:["skip"]}]}},9579:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.DefintionFileSchema=void 0;const a=r(6768);const i=r(9040);t.DefintionFileSchema={type:"object",properties:{version:{type:["string","number"],enum:["2.1",2.1,"2.2",2.2]},dependencies:{type:["string","array"],oneOf:[{type:"string"},i.DependenciesSchema],nullable:true},extends:{type:"string",nullable:true},default:{type:"object",properties:{"build-command":a.BuildCommandSchema},required:["build-command"],nullable:true,additionalProperties:false},build:{type:"array",items:a.BuildSchema,nullable:true},pre:{type:"array",items:{type:"string"},nullable:true},post:{type:"object",properties:{success:{type:"array",items:{type:"string"},nullable:true},always:{type:"array",items:{type:"string"},nullable:true},failure:{type:"array",items:{type:"string"},nullable:true}},nullable:true}},required:["version"],additionalProperties:false}},9040:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.DependenciesSchema=void 0;const a=r(5013);const i=r(4428);t.DependenciesSchema={type:"array",items:{type:"object",properties:{project:i.ProjectNameSchema,dependencies:{type:"array",items:{type:"object",properties:{project:{type:"string"}},required:["project"],additionalProperties:false},nullable:true},mapping:{...a.MappingSchema,nullable:true}},required:["project"],additionalProperties:false}}},5013:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MappingSchema=void 0;const a=r(4428);const i={type:"object",properties:{source:{type:"string"},target:{type:"string",nullable:true},targetExpression:{type:"string",nullable:true}},required:["source"],oneOf:[{required:["target"]},{required:["targetExpression"]}],additionalProperties:false};const n={type:"object",properties:{default:{type:"array",items:i}},patternProperties:{"^[^/]+/[^/]+$":{type:"array",items:i}},required:["default"],additionalProperties:false};t.MappingSchema={type:"object",properties:{dependencies:{...n,nullable:true},dependant:{...n,nullable:true},exclude:{type:"array",items:a.ProjectNameSchema}},required:["exclude"],anyOf:[{required:["dependencies"]},{required:["dependant"]}],additionalProperties:false}},4428:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ProjectNameSchema=void 0;t.ProjectNameSchema={type:"string",pattern:"^[^/]+/[^/]+$"}},2253:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getOrderedListForTree=t.getOrderedListForProject=t.parentChainFromNode=t.getTreeForProject=t.getTree=void 0;const a=r(5934);const i=r(8998);async function getTree(e,t){const r=await(0,a.readDefinitionFile)(e,t);return(0,i.constructTree)(r.dependencies,r.default?.["build-command"],r.build)}t.getTree=getTree;async function getTreeForProject(e,t,r){const a=await getTree(e,r);return lookForProject(a,t)}t.getTreeForProject=getTreeForProject;function parentChainFromNode(e){const t=e.parents.reduce(((e,t)=>{e.push(...parentChainFromNode(t).filter((t=>!e.find((e=>t.project===e.project)))));return e}),[]);t.push(e);return t}t.parentChainFromNode=parentChainFromNode;async function getOrderedListForProject(e,t,r){const a=await getTreeForProject(e,t,r);if(!a){throw new Error(`Project ${t} not found`)}const i=parentChainFromNode(a);const n=childChainFromNode(a);return i.concat(n.slice(1))}t.getOrderedListForProject=getOrderedListForProject;async function getOrderedListForTree(e,t){const r=await getTree(e,t);const a=[];flattenTreeTopToBottom(r,a);return a}t.getOrderedListForTree=getOrderedListForTree;function lookForProject(e,t){return e.find((e=>e.project===t))??e.map((e=>lookForProject(e.children,t))).find((e=>!!e))}function childChainFromNode(e){return e.children.reduce(((e,t)=>{e.push(...childChainFromNode(t).filter((t=>!e.find((e=>e.project===t.project)))));return e}),[e])}function flattenTreeTopToBottom(e,t){if(e.length===0){return}const r=[];e.forEach((e=>{const a=e.parents.every((e=>t.find((t=>t.project===e.project))));if(!t.find((t=>t.project===e.project))&&a){t.push(e)}r.push(...e.children);if(!a){r.push(e)}}));flattenTreeTopToBottom(r,t)}},8998:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.constructTree=void 0;function constructTree(e,t,r){const a=e.reduce(((e,a)=>{const i=constructNode(a,t,r);if(i){e[a.project]=i}return e}),{});return e.reduce(((e,t)=>{if(isRoot(t)&&a[t.project]){e.push(a[t.project])}else{t.dependencies?.forEach((e=>{if(!a[e.project]){throw new Error(`The project ${e.project} does not exist on project list. Please review your project definition file`)}if(a[t.project]){a[e.project].children.push(a[t.project]);a[t.project].parents.push(a[e.project])}}))}return e}),[])}t.constructTree=constructTree;function constructNode(e,t,r){const a=getBuildCommand(e.project,t,r);const i=findBuildConfigForProject(e.project,r);const n=i?.clone;return i?.skip?undefined:{project:e.project,parents:[],children:[],archiveArtifacts:getArchiveArtifacts(e.project,r),mapping:e.mapping,before:a?.before,after:a?.after,commands:{upstream:a?.upstream??[],downstream:a?.downstream??[],current:a?.current??[]},...n?{clone:n}:{}}}function isRoot(e){return!e.dependencies||e.dependencies.length===0}function getArchiveArtifacts(e,t){return t?.find((t=>t.project===e))?.["archive-artifacts"]}function getBuildCommand(e,t,r){const a=findBuildConfigForProject(e,r);const i=a?.["build-command"];if(!i){return t}return{...i,after:i?.after?getDefaultCommandLevel(i.after,t?.after):t?.after,before:i?.before?getDefaultCommandLevel(i.before,t?.before):t?.before,...getDefaultCommandLevel({current:i.current,upstream:i.upstream,downstream:i.downstream},t)}}function getDefaultCommandLevel(e,t){if(!t){return e}const r={...e};Object.entries(e).forEach((([e,a])=>{if(a.length===0){r[e]=t[e]??a}}));return r}function findBuildConfigForProject(e,t){return t?.find((t=>t.project===e))}},9596:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getMapping=t.getMappedTarget=void 0;function getMappedTarget(e,t,r,a,i){return getMapping(e,t,r,a,i)?.target??i}t.getMappedTarget=getMappedTarget;function getMapping(e,t,r,a,i){if(e===r){return}return getSourceToTargetFromProjectOrDefault(i,r,t?.exclude??[],t?.dependencies)||getSourceToTargetFromProjectOrDefault(i,e,a?.exclude??[],a?.dependant)}t.getMapping=getMapping;function getSourceToTargetFromProjectOrDefault(e,t,r,a){if(!r.includes(t)&&a){return findSourceToTarget(e,a[t])??findSourceToTarget(e,a.default)}}function findSourceToTarget(e,t){return t?.find((t=>t.source===e))??t?.find((t=>!!e.match(new RegExp(`^${t.source}$`))))}},4619:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.safeEval=void 0;function safeEval(e,t){try{return Function("args",`"use strict";return (${e})`)(t)}catch(e){return undefined}}t.safeEval=safeEval},3919:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.treatUrl=void 0;const a=r(4619);function treatUrl(e,t,r,a){return replaceExpressions(replacePlaceholders(e,t,r,a))}t.treatUrl=treatUrl;function replacePlaceholders(e,t,r,a){let i=e;const n=/\${([^{}:]+)(:([^{}]*))?}/g;const s=[...e.matchAll(n)];s.forEach((e=>{const n=e[1];let s=e[3]??process.env[n]??"";if(n==="GROUP"&&t){s=t}else if(n==="PROJECT_NAME"&&r){s=r}else if(n==="BRANCH"&&a){s=a}i=i.replace(new RegExp(`\\$\\{${n}(:([^{}]*))?}`,"gi"),s)}));return i}function replaceExpressions(e){let t=e;const r=/%{([^%]+)}/g;const i=[...e.matchAll(r)];i.forEach((e=>{t=t.replace(`%{${e[1]}}`,(0,a.safeEval)(e[1]))}));return t}},5265:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.validateDefinitionFile=void 0;const i=r(4083);const n=a(r(5439));const s=r(9579);async function validateDefinitionFile(e){const t=(0,i.parse)(e,reviver);const r=new n.default({useDefaults:"empty",allowUnionTypes:true});const a=r.compile(s.DefintionFileSchema);const o=a(t);if(o){return t}else{throw new Error(JSON.stringify(a.errors))}}t.validateDefinitionFile=validateDefinitionFile;function reviver(e,t){return convertToArray(e,t)||parseMapping(e,t)||parseBuild(e,t)||parseArchiveArtifacts(e,t)||t}function convertToArray(e,t){if(["path","current","upstream","downstream","clone","pre","success","failure","always"].includes(e)&&typeof t==="string"){return t.trim().split("\n")}}function initializeUndefined(e,t,r){if(!t[e]){t[e]=r}return t}function parseMapping(e,t){if(e==="mapping"){const e=t;initializeUndefined("exclude",e,[]);if(e["dependencies"]){initializeUndefined("default",e["dependencies"],[])}if(e["dependant"]){initializeUndefined("default",e["dependant"],[])}return e}}function parseBuild(e,t){if(["before","after","build-command"].includes(e)){const e=t;["upstream","downstream","current"].forEach((t=>{initializeUndefined(t,e,[])}));return e}}function parseArchiveArtifacts(e,t){if(e==="archive-artifacts"){const e=t;initializeUndefined("dependencies",e,"none");if(e["path"]&&Array.isArray(e["path"])){e["paths"]=transformPath(e.path);delete e["path"]}return e}}function transformPath(e){return e.map((e=>{if(typeof e==="string"){const t=e.lastIndexOf("@");return{path:t===-1?e:e.slice(0,t),on:t===-1?"success":e.slice(t+1)}}}))}},5439:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;const a=r(2396);const i=r(5826);const n=r(6658);const s=r(3712);const o=["/properties"];const p="http://json-schema.org/draft-07/schema";class Ajv extends a.default{_addVocabularies(){super._addVocabularies();i.default.forEach((e=>this.addVocabulary(e)));if(this.opts.discriminator)this.addKeyword(n.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();if(!this.opts.meta)return;const e=this.opts.$data?this.$dataMetaSchema(s,o):s;this.addMetaSchema(e,p,false);this.refs["http://json-schema.org/schema"]=p}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(p)?p:undefined)}}e.exports=t=Ajv;Object.defineProperty(t,"__esModule",{value:true});t["default"]=Ajv;var c=r(4988);Object.defineProperty(t,"KeywordCxt",{enumerable:true,get:function(){return c.KeywordCxt}});var l=r(6035);Object.defineProperty(t,"_",{enumerable:true,get:function(){return l._}});Object.defineProperty(t,"str",{enumerable:true,get:function(){return l.str}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return l.stringify}});Object.defineProperty(t,"nil",{enumerable:true,get:function(){return l.nil}});Object.defineProperty(t,"Name",{enumerable:true,get:function(){return l.Name}});Object.defineProperty(t,"CodeGen",{enumerable:true,get:function(){return l.CodeGen}});var d=r(3111);Object.defineProperty(t,"ValidationError",{enumerable:true,get:function(){return d.default}});var u=r(2146);Object.defineProperty(t,"MissingRefError",{enumerable:true,get:function(){return u.default}})},6370:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class _CodeOrName{}t._CodeOrName=_CodeOrName;t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class Name extends _CodeOrName{constructor(e){super();if(!t.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return false}get names(){return{[this.str]:1}}}t.Name=Name;class _Code extends _CodeOrName{constructor(e){super();this._items=typeof e==="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return false;const e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce(((e,t)=>`${e}${t}`),"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce(((e,t)=>{if(t instanceof Name)e[t.str]=(e[t.str]||0)+1;return e}),{})}}t._Code=_Code;t.nil=new _Code("");function _(e,...t){const r=[e[0]];let a=0;while(a{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.regexpCode=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;const a=r(6370);const i=r(3149);var n=r(6370);Object.defineProperty(t,"_",{enumerable:true,get:function(){return n._}});Object.defineProperty(t,"str",{enumerable:true,get:function(){return n.str}});Object.defineProperty(t,"strConcat",{enumerable:true,get:function(){return n.strConcat}});Object.defineProperty(t,"nil",{enumerable:true,get:function(){return n.nil}});Object.defineProperty(t,"getProperty",{enumerable:true,get:function(){return n.getProperty}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return n.stringify}});Object.defineProperty(t,"regexpCode",{enumerable:true,get:function(){return n.regexpCode}});Object.defineProperty(t,"Name",{enumerable:true,get:function(){return n.Name}});var s=r(3149);Object.defineProperty(t,"Scope",{enumerable:true,get:function(){return s.Scope}});Object.defineProperty(t,"ValueScope",{enumerable:true,get:function(){return s.ValueScope}});Object.defineProperty(t,"ValueScopeName",{enumerable:true,get:function(){return s.ValueScopeName}});Object.defineProperty(t,"varKinds",{enumerable:true,get:function(){return s.varKinds}});t.operators={GT:new a._Code(">"),GTE:new a._Code(">="),LT:new a._Code("<"),LTE:new a._Code("<="),EQ:new a._Code("==="),NEQ:new a._Code("!=="),NOT:new a._Code("!"),OR:new a._Code("||"),AND:new a._Code("&&"),ADD:new a._Code("+")};class Node{optimizeNodes(){return this}optimizeNames(e,t){return this}}class Def extends Node{constructor(e,t,r){super();this.varKind=e;this.name=t;this.rhs=r}render({es5:e,_n:t}){const r=e?i.varKinds.var:this.varKind;const a=this.rhs===undefined?"":` = ${this.rhs}`;return`${r} ${this.name}${a};`+t}optimizeNames(e,t){if(!e[this.name.str])return;if(this.rhs)this.rhs=optimizeExpr(this.rhs,e,t);return this}get names(){return this.rhs instanceof a._CodeOrName?this.rhs.names:{}}}class Assign extends Node{constructor(e,t,r){super();this.lhs=e;this.rhs=t;this.sideEffects=r}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(this.lhs instanceof a.Name&&!e[this.lhs.str]&&!this.sideEffects)return;this.rhs=optimizeExpr(this.rhs,e,t);return this}get names(){const e=this.lhs instanceof a.Name?{}:{...this.lhs.names};return addExprNames(e,this.rhs)}}class AssignOp extends Assign{constructor(e,t,r,a){super(e,r,a);this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}}class Label extends Node{constructor(e){super();this.label=e;this.names={}}render({_n:e}){return`${this.label}:`+e}}class Break extends Node{constructor(e){super();this.label=e;this.names={}}render({_n:e}){const t=this.label?` ${this.label}`:"";return`break${t};`+e}}class Throw extends Node{constructor(e){super();this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}}class AnyCode extends Node{constructor(e){super();this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:undefined}optimizeNames(e,t){this.code=optimizeExpr(this.code,e,t);return this}get names(){return this.code instanceof a._CodeOrName?this.code.names:{}}}class ParentNode extends Node{constructor(e=[]){super();this.nodes=e}render(e){return this.nodes.reduce(((t,r)=>t+r.render(e)),"")}optimizeNodes(){const{nodes:e}=this;let t=e.length;while(t--){const r=e[t].optimizeNodes();if(Array.isArray(r))e.splice(t,1,...r);else if(r)e[t]=r;else e.splice(t,1)}return e.length>0?this:undefined}optimizeNames(e,t){const{nodes:r}=this;let a=r.length;while(a--){const i=r[a];if(i.optimizeNames(e,t))continue;subtractNames(e,i.names);r.splice(a,1)}return r.length>0?this:undefined}get names(){return this.nodes.reduce(((e,t)=>addNames(e,t.names)),{})}}class BlockNode extends ParentNode{render(e){return"{"+e._n+super.render(e)+"}"+e._n}}class Root extends ParentNode{}class Else extends BlockNode{}Else.kind="else";class If extends BlockNode{constructor(e,t){super(t);this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);if(this.else)t+="else "+this.else.render(e);return t}optimizeNodes(){super.optimizeNodes();const e=this.condition;if(e===true)return this.nodes;let t=this.else;if(t){const e=t.optimizeNodes();t=this.else=Array.isArray(e)?new Else(e):e}if(t){if(e===false)return t instanceof If?t:t.nodes;if(this.nodes.length)return this;return new If(not(e),t instanceof If?[t]:t.nodes)}if(e===false||!this.nodes.length)return undefined;return this}optimizeNames(e,t){var r;this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(e,t);if(!(super.optimizeNames(e,t)||this.else))return;this.condition=optimizeExpr(this.condition,e,t);return this}get names(){const e=super.names;addExprNames(e,this.condition);if(this.else)addNames(e,this.else.names);return e}}If.kind="if";class For extends BlockNode{}For.kind="for";class ForLoop extends For{constructor(e){super();this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(!super.optimizeNames(e,t))return;this.iteration=optimizeExpr(this.iteration,e,t);return this}get names(){return addNames(super.names,this.iteration.names)}}class ForRange extends For{constructor(e,t,r,a){super();this.varKind=e;this.name=t;this.from=r;this.to=a}render(e){const t=e.es5?i.varKinds.var:this.varKind;const{name:r,from:a,to:n}=this;return`for(${t} ${r}=${a}; ${r}<${n}; ${r}++)`+super.render(e)}get names(){const e=addExprNames(super.names,this.from);return addExprNames(e,this.to)}}class ForIter extends For{constructor(e,t,r,a){super();this.loop=e;this.varKind=t;this.name=r;this.iterable=a}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(!super.optimizeNames(e,t))return;this.iterable=optimizeExpr(this.iterable,e,t);return this}get names(){return addNames(super.names,this.iterable.names)}}class Func extends BlockNode{constructor(e,t,r){super();this.name=e;this.args=t;this.async=r}render(e){const t=this.async?"async ":"";return`${t}function ${this.name}(${this.args})`+super.render(e)}}Func.kind="func";class Return extends ParentNode{render(e){return"return "+super.render(e)}}Return.kind="return";class Try extends BlockNode{render(e){let t="try"+super.render(e);if(this.catch)t+=this.catch.render(e);if(this.finally)t+=this.finally.render(e);return t}optimizeNodes(){var e,t;super.optimizeNodes();(e=this.catch)===null||e===void 0?void 0:e.optimizeNodes();(t=this.finally)===null||t===void 0?void 0:t.optimizeNodes();return this}optimizeNames(e,t){var r,a;super.optimizeNames(e,t);(r=this.catch)===null||r===void 0?void 0:r.optimizeNames(e,t);(a=this.finally)===null||a===void 0?void 0:a.optimizeNames(e,t);return this}get names(){const e=super.names;if(this.catch)addNames(e,this.catch.names);if(this.finally)addNames(e,this.finally.names);return e}}class Catch extends BlockNode{constructor(e){super();this.error=e}render(e){return`catch(${this.error})`+super.render(e)}}Catch.kind="catch";class Finally extends BlockNode{render(e){return"finally"+super.render(e)}}Finally.kind="finally";class CodeGen{constructor(e,t={}){this._values={};this._blockStarts=[];this._constants={};this.opts={...t,_n:t.lines?"\n":""};this._extScope=e;this._scope=new i.Scope({parent:e});this._nodes=[new Root]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){const r=this._extScope.value(e,t);const a=this._values[r.prefix]||(this._values[r.prefix]=new Set);a.add(r);return r}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,r,a){const i=this._scope.toName(t);if(r!==undefined&&a)this._constants[i.str]=r;this._leafNode(new Def(e,i,r));return i}const(e,t,r){return this._def(i.varKinds.const,e,t,r)}let(e,t,r){return this._def(i.varKinds.let,e,t,r)}var(e,t,r){return this._def(i.varKinds.var,e,t,r)}assign(e,t,r){return this._leafNode(new Assign(e,t,r))}add(e,r){return this._leafNode(new AssignOp(e,t.operators.ADD,r))}code(e){if(typeof e=="function")e();else if(e!==a.nil)this._leafNode(new AnyCode(e));return this}object(...e){const t=["{"];for(const[r,i]of e){if(t.length>1)t.push(",");t.push(r);if(r!==i||this.opts.es5){t.push(":");(0,a.addCodeArg)(t,i)}}t.push("}");return new a._Code(t)}if(e,t,r){this._blockNode(new If(e));if(t&&r){this.code(t).else().code(r).endIf()}else if(t){this.code(t).endIf()}else if(r){throw new Error('CodeGen: "else" body without "then" body')}return this}elseIf(e){return this._elseNode(new If(e))}else(){return this._elseNode(new Else)}endIf(){return this._endBlockNode(If,Else)}_for(e,t){this._blockNode(e);if(t)this.code(t).endFor();return this}for(e,t){return this._for(new ForLoop(e),t)}forRange(e,t,r,a,n=(this.opts.es5?i.varKinds.var:i.varKinds.let)){const s=this._scope.toName(e);return this._for(new ForRange(n,s,t,r),(()=>a(s)))}forOf(e,t,r,n=i.varKinds.const){const s=this._scope.toName(e);if(this.opts.es5){const e=t instanceof a.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0,a._)`${e}.length`,(t=>{this.var(s,(0,a._)`${e}[${t}]`);r(s)}))}return this._for(new ForIter("of",n,s,t),(()=>r(s)))}forIn(e,t,r,n=(this.opts.es5?i.varKinds.var:i.varKinds.const)){if(this.opts.ownProperties){return this.forOf(e,(0,a._)`Object.keys(${t})`,r)}const s=this._scope.toName(e);return this._for(new ForIter("in",n,s,t),(()=>r(s)))}endFor(){return this._endBlockNode(For)}label(e){return this._leafNode(new Label(e))}break(e){return this._leafNode(new Break(e))}return(e){const t=new Return;this._blockNode(t);this.code(e);if(t.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Return)}try(e,t,r){if(!t&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');const a=new Try;this._blockNode(a);this.code(e);if(t){const e=this.name("e");this._currNode=a.catch=new Catch(e);t(e)}if(r){this._currNode=a.finally=new Finally;this.code(r)}return this._endBlockNode(Catch,Finally)}throw(e){return this._leafNode(new Throw(e))}block(e,t){this._blockStarts.push(this._nodes.length);if(e)this.code(e).endBlock(t);return this}endBlock(e){const t=this._blockStarts.pop();if(t===undefined)throw new Error("CodeGen: not in self-balancing block");const r=this._nodes.length-t;if(r<0||e!==undefined&&r!==e){throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${e} expected`)}this._nodes.length=t;return this}func(e,t=a.nil,r,i){this._blockNode(new Func(e,t,r));if(i)this.code(i).endFunc();return this}endFunc(){return this._endBlockNode(Func)}optimize(e=1){while(e-- >0){this._root.optimizeNodes();this._root.optimizeNames(this._root.names,this._constants)}}_leafNode(e){this._currNode.nodes.push(e);return this}_blockNode(e){this._currNode.nodes.push(e);this._nodes.push(e)}_endBlockNode(e,t){const r=this._currNode;if(r instanceof e||t&&r instanceof t){this._nodes.pop();return this}throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){const t=this._currNode;if(!(t instanceof If)){throw new Error('CodeGen: "else" without "if"')}this._currNode=t.else=e;return this}get _root(){return this._nodes[0]}get _currNode(){const e=this._nodes;return e[e.length-1]}set _currNode(e){const t=this._nodes;t[t.length-1]=e}}t.CodeGen=CodeGen;function addNames(e,t){for(const r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function addExprNames(e,t){return t instanceof a._CodeOrName?addNames(e,t.names):e}function optimizeExpr(e,t,r){if(e instanceof a.Name)return replaceName(e);if(!canOptimize(e))return e;return new a._Code(e._items.reduce(((e,t)=>{if(t instanceof a.Name)t=replaceName(t);if(t instanceof a._Code)e.push(...t._items);else e.push(t);return e}),[]));function replaceName(e){const a=r[e.str];if(a===undefined||t[e.str]!==1)return e;delete t[e.str];return a}function canOptimize(e){return e instanceof a._Code&&e._items.some((e=>e instanceof a.Name&&t[e.str]===1&&r[e.str]!==undefined))}}function subtractNames(e,t){for(const r in t)e[r]=(e[r]||0)-(t[r]||0)}function not(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,a._)`!${par(e)}`}t.not=not;const o=mappend(t.operators.AND);function and(...e){return e.reduce(o)}t.and=and;const p=mappend(t.operators.OR);function or(...e){return e.reduce(p)}t.or=or;function mappend(e){return(t,r)=>t===a.nil?r:r===a.nil?t:(0,a._)`${par(t)} ${e} ${par(r)}`}function par(e){return e instanceof a.Name?e:(0,a._)`(${e})`}},3149:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;const a=r(6370);class ValueError extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`);this.value=e.value}}var i;(function(e){e[e["Started"]=0]="Started";e[e["Completed"]=1]="Completed"})(i=t.UsedValueState||(t.UsedValueState={}));t.varKinds={const:new a.Name("const"),let:new a.Name("let"),var:new a.Name("var")};class Scope{constructor({prefixes:e,parent:t}={}){this._names={};this._prefixes=e;this._parent=t}toName(e){return e instanceof a.Name?e:this.name(e)}name(e){return new a.Name(this._newName(e))}_newName(e){const t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){var t,r;if(((r=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||r===void 0?void 0:r.has(e))||this._prefixes&&!this._prefixes.has(e)){throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`)}return this._names[e]={prefix:e,index:0}}}t.Scope=Scope;class ValueScopeName extends a.Name{constructor(e,t){super(t);this.prefix=e}setValue(e,{property:t,itemIndex:r}){this.value=e;this.scopePath=(0,a._)`.${new a.Name(t)}[${r}]`}}t.ValueScopeName=ValueScopeName;const n=(0,a._)`\n`;class ValueScope extends Scope{constructor(e){super(e);this._values={};this._scope=e.scope;this.opts={...e,_n:e.lines?n:a.nil}}get(){return this._scope}name(e){return new ValueScopeName(e,this._newName(e))}value(e,t){var r;if(t.ref===undefined)throw new Error("CodeGen: ref must be passed in value");const a=this.toName(e);const{prefix:i}=a;const n=(r=t.key)!==null&&r!==void 0?r:t.ref;let s=this._values[i];if(s){const e=s.get(n);if(e)return e}else{s=this._values[i]=new Map}s.set(n,a);const o=this._scope[i]||(this._scope[i]=[]);const p=o.length;o[p]=t.ref;a.setValue(t,{property:i,itemIndex:p});return a}getValue(e,t){const r=this._values[e];if(!r)return;return r.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,(t=>{if(t.scopePath===undefined)throw new Error(`CodeGen: name "${t}" has no value`);return(0,a._)`${e}${t.scopePath}`}))}scopeCode(e=this._values,t,r){return this._reduceValues(e,(e=>{if(e.value===undefined)throw new Error(`CodeGen: name "${e}" has no value`);return e.value.code}),t,r)}_reduceValues(e,r,n={},s){let o=a.nil;for(const p in e){const c=e[p];if(!c)continue;const l=n[p]=n[p]||new Map;c.forEach((e=>{if(l.has(e))return;l.set(e,i.Started);let n=r(e);if(n){const r=this.opts.es5?t.varKinds.var:t.varKinds.const;o=(0,a._)`${o}${r} ${e} = ${n};${this.opts._n}`}else if(n=s===null||s===void 0?void 0:s(e)){o=(0,a._)`${o}${n}${this.opts._n}`}else{throw new ValueError(e)}l.set(e,i.Completed)}))}return o}}t.ValueScope=ValueScope},7722:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;const a=r(6035);const i=r(407);const n=r(5302);t.keywordError={message:({keyword:e})=>(0,a.str)`must pass "${e}" keyword validation`};t.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,a.str)`"${e}" keyword must be ${t} ($data)`:(0,a.str)`"${e}" keyword is invalid ($data)`};function reportError(e,r=t.keywordError,i,n){const{it:s}=e;const{gen:o,compositeRule:p,allErrors:c}=s;const l=errorObjectCode(e,r,i);if(n!==null&&n!==void 0?n:p||c){addError(o,l)}else{returnErrors(s,(0,a._)`[${l}]`)}}t.reportError=reportError;function reportExtraError(e,r=t.keywordError,a){const{it:i}=e;const{gen:s,compositeRule:o,allErrors:p}=i;const c=errorObjectCode(e,r,a);addError(s,c);if(!(o||p)){returnErrors(i,n.default.vErrors)}}t.reportExtraError=reportExtraError;function resetErrorsCount(e,t){e.assign(n.default.errors,t);e.if((0,a._)`${n.default.vErrors} !== null`,(()=>e.if(t,(()=>e.assign((0,a._)`${n.default.vErrors}.length`,t)),(()=>e.assign(n.default.vErrors,null)))))}t.resetErrorsCount=resetErrorsCount;function extendErrors({gen:e,keyword:t,schemaValue:r,data:i,errsCount:s,it:o}){if(s===undefined)throw new Error("ajv implementation error");const p=e.name("err");e.forRange("i",s,n.default.errors,(s=>{e.const(p,(0,a._)`${n.default.vErrors}[${s}]`);e.if((0,a._)`${p}.instancePath === undefined`,(()=>e.assign((0,a._)`${p}.instancePath`,(0,a.strConcat)(n.default.instancePath,o.errorPath))));e.assign((0,a._)`${p}.schemaPath`,(0,a.str)`${o.errSchemaPath}/${t}`);if(o.opts.verbose){e.assign((0,a._)`${p}.schema`,r);e.assign((0,a._)`${p}.data`,i)}}))}t.extendErrors=extendErrors;function addError(e,t){const r=e.const("err",t);e.if((0,a._)`${n.default.vErrors} === null`,(()=>e.assign(n.default.vErrors,(0,a._)`[${r}]`)),(0,a._)`${n.default.vErrors}.push(${r})`);e.code((0,a._)`${n.default.errors}++`)}function returnErrors(e,t){const{gen:r,validateName:i,schemaEnv:n}=e;if(n.$async){r.throw((0,a._)`new ${e.ValidationError}(${t})`)}else{r.assign((0,a._)`${i}.errors`,t);r.return(false)}}const s={keyword:new a.Name("keyword"),schemaPath:new a.Name("schemaPath"),params:new a.Name("params"),propertyName:new a.Name("propertyName"),message:new a.Name("message"),schema:new a.Name("schema"),parentSchema:new a.Name("parentSchema")};function errorObjectCode(e,t,r){const{createErrors:i}=e.it;if(i===false)return(0,a._)`{}`;return errorObject(e,t,r)}function errorObject(e,t,r={}){const{gen:a,it:i}=e;const n=[errorInstancePath(i,r),errorSchemaPath(e,r)];extraErrorProps(e,t,n);return a.object(...n)}function errorInstancePath({errorPath:e},{instancePath:t}){const r=t?(0,a.str)`${e}${(0,i.getErrorPath)(t,i.Type.Str)}`:e;return[n.default.instancePath,(0,a.strConcat)(n.default.instancePath,r)]}function errorSchemaPath({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let o=n?t:(0,a.str)`${t}/${e}`;if(r){o=(0,a.str)`${o}${(0,i.getErrorPath)(r,i.Type.Str)}`}return[s.schemaPath,o]}function extraErrorProps(e,{params:t,message:r},i){const{keyword:o,data:p,schemaValue:c,it:l}=e;const{opts:d,propertyName:u,topSchemaRef:m,schemaPath:h}=l;i.push([s.keyword,o],[s.params,typeof t=="function"?t(e):t||(0,a._)`{}`]);if(d.messages){i.push([s.message,typeof r=="function"?r(e):r])}if(d.verbose){i.push([s.schema,c],[s.parentSchema,(0,a._)`${m}${h}`],[n.default.data,p])}if(u)i.push([s.propertyName,u])}},9230:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;const a=r(6035);const i=r(3111);const n=r(5302);const s=r(985);const o=r(407);const p=r(4988);class SchemaEnv{constructor(e){var t;this.refs={};this.dynamicAnchors={};let r;if(typeof e.schema=="object")r=e.schema;this.schema=e.schema;this.schemaId=e.schemaId;this.root=e.root||this;this.baseId=(t=e.baseId)!==null&&t!==void 0?t:(0,s.normalizeId)(r===null||r===void 0?void 0:r[e.schemaId||"$id"]);this.schemaPath=e.schemaPath;this.localRefs=e.localRefs;this.meta=e.meta;this.$async=r===null||r===void 0?void 0:r.$async;this.refs={}}}t.SchemaEnv=SchemaEnv;function compileSchema(e){const t=getCompilingSchema.call(this,e);if(t)return t;const r=(0,s.getFullPath)(this.opts.uriResolver,e.root.baseId);const{es5:o,lines:c}=this.opts.code;const{ownProperties:l}=this.opts;const d=new a.CodeGen(this.scope,{es5:o,lines:c,ownProperties:l});let u;if(e.$async){u=d.scopeValue("Error",{ref:i.default,code:(0,a._)`require("ajv/dist/runtime/validation_error").default`})}const m=d.scopeName("validate");e.validateName=m;const h={gen:d,allErrors:this.opts.allErrors,data:n.default.data,parentData:n.default.parentData,parentDataProperty:n.default.parentDataProperty,dataNames:[n.default.data],dataPathArr:[a.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:d.scopeValue("schema",this.opts.code.source===true?{ref:e.schema,code:(0,a.stringify)(e.schema)}:{ref:e.schema}),validateName:m,ValidationError:u,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:a.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,a._)`""`,opts:this.opts,self:this};let g;try{this._compilations.add(e);(0,p.validateFunctionCode)(h);d.optimize(this.opts.code.optimize);const t=d.toString();g=`${d.scopeRefs(n.default.scope)}return ${t}`;if(this.opts.code.process)g=this.opts.code.process(g,e);const r=new Function(`${n.default.self}`,`${n.default.scope}`,g);const i=r(this,this.scope.get());this.scope.value(m,{ref:i});i.errors=null;i.schema=e.schema;i.schemaEnv=e;if(e.$async)i.$async=true;if(this.opts.code.source===true){i.source={validateName:m,validateCode:t,scopeValues:d._values}}if(this.opts.unevaluated){const{props:e,items:t}=h;i.evaluated={props:e instanceof a.Name?undefined:e,items:t instanceof a.Name?undefined:t,dynamicProps:e instanceof a.Name,dynamicItems:t instanceof a.Name};if(i.source)i.source.evaluated=(0,a.stringify)(i.evaluated)}e.validate=i;return e}catch(t){delete e.validate;delete e.validateName;if(g)this.logger.error("Error compiling schema, function code:",g);throw t}finally{this._compilations.delete(e)}}t.compileSchema=compileSchema;function resolveRef(e,t,r){var a;r=(0,s.resolveUrl)(this.opts.uriResolver,t,r);const i=e.refs[r];if(i)return i;let n=resolve.call(this,e,r);if(n===undefined){const i=(a=e.localRefs)===null||a===void 0?void 0:a[r];const{schemaId:s}=this.opts;if(i)n=new SchemaEnv({schema:i,schemaId:s,root:e,baseId:t})}if(n===undefined)return;return e.refs[r]=inlineOrCompile.call(this,n)}t.resolveRef=resolveRef;function inlineOrCompile(e){if((0,s.inlineRef)(e.schema,this.opts.inlineRefs))return e.schema;return e.validate?e:compileSchema.call(this,e)}function getCompilingSchema(e){for(const t of this._compilations){if(sameSchemaEnv(t,e))return t}}t.getCompilingSchema=getCompilingSchema;function sameSchemaEnv(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function resolve(e,t){let r;while(typeof(r=this.refs[t])=="string")t=r;return r||this.schemas[t]||resolveSchema.call(this,e,t)}function resolveSchema(e,t){const r=this.opts.uriResolver.parse(t);const a=(0,s._getFullPath)(this.opts.uriResolver,r);let i=(0,s.getFullPath)(this.opts.uriResolver,e.baseId,undefined);if(Object.keys(e.schema).length>0&&a===i){return getJsonPointer.call(this,r,e)}const n=(0,s.normalizeId)(a);const o=this.refs[n]||this.schemas[n];if(typeof o=="string"){const t=resolveSchema.call(this,e,o);if(typeof(t===null||t===void 0?void 0:t.schema)!=="object")return;return getJsonPointer.call(this,r,t)}if(typeof(o===null||o===void 0?void 0:o.schema)!=="object")return;if(!o.validate)compileSchema.call(this,o);if(n===(0,s.normalizeId)(t)){const{schema:t}=o;const{schemaId:r}=this.opts;const a=t[r];if(a)i=(0,s.resolveUrl)(this.opts.uriResolver,i,a);return new SchemaEnv({schema:t,schemaId:r,root:e,baseId:i})}return getJsonPointer.call(this,r,o)}t.resolveSchema=resolveSchema;const c=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function getJsonPointer(e,{baseId:t,schema:r,root:a}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(const a of e.fragment.slice(1).split("/")){if(typeof r==="boolean")return;const e=r[(0,o.unescapeFragment)(a)];if(e===undefined)return;r=e;const i=typeof r==="object"&&r[this.opts.schemaId];if(!c.has(a)&&i){t=(0,s.resolveUrl)(this.opts.uriResolver,t,i)}}let n;if(typeof r!="boolean"&&r.$ref&&!(0,o.schemaHasRulesButRef)(r,this.RULES)){const e=(0,s.resolveUrl)(this.opts.uriResolver,t,r.$ref);n=resolveSchema.call(this,a,e)}const{schemaId:p}=this.opts;n=n||new SchemaEnv({schema:r,schemaId:p,root:a,baseId:t});if(n.schema!==n.root.schema)return n;return undefined}},5302:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i={data:new a.Name("data"),valCxt:new a.Name("valCxt"),instancePath:new a.Name("instancePath"),parentData:new a.Name("parentData"),parentDataProperty:new a.Name("parentDataProperty"),rootData:new a.Name("rootData"),dynamicAnchors:new a.Name("dynamicAnchors"),vErrors:new a.Name("vErrors"),errors:new a.Name("errors"),this:new a.Name("this"),self:new a.Name("self"),scope:new a.Name("scope"),json:new a.Name("json"),jsonPos:new a.Name("jsonPos"),jsonLen:new a.Name("jsonLen"),jsonPart:new a.Name("jsonPart")};t["default"]=i},2146:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(985);class MissingRefError extends Error{constructor(e,t,r,i){super(i||`can't resolve reference ${r} from id ${t}`);this.missingRef=(0,a.resolveUrl)(e,t,r);this.missingSchema=(0,a.normalizeId)((0,a.getFullPath)(e,this.missingRef))}}t["default"]=MissingRefError},985:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;const a=r(407);const i=r(8206);const n=r(9263);const s=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function inlineRef(e,t=true){if(typeof e=="boolean")return true;if(t===true)return!hasRef(e);if(!t)return false;return countKeys(e)<=t}t.inlineRef=inlineRef;const o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function hasRef(e){for(const t in e){if(o.has(t))return true;const r=e[t];if(Array.isArray(r)&&r.some(hasRef))return true;if(typeof r=="object"&&hasRef(r))return true}return false}function countKeys(e){let t=0;for(const r in e){if(r==="$ref")return Infinity;t++;if(s.has(r))continue;if(typeof e[r]=="object"){(0,a.eachItem)(e[r],(e=>t+=countKeys(e)))}if(t===Infinity)return Infinity}return t}function getFullPath(e,t="",r){if(r!==false)t=normalizeId(t);const a=e.parse(t);return _getFullPath(e,a)}t.getFullPath=getFullPath;function _getFullPath(e,t){const r=e.serialize(t);return r.split("#")[0]+"#"}t._getFullPath=_getFullPath;const p=/#\/?$/;function normalizeId(e){return e?e.replace(p,""):""}t.normalizeId=normalizeId;function resolveUrl(e,t,r){r=normalizeId(r);return e.resolve(t,r)}t.resolveUrl=resolveUrl;const c=/^[a-z_][-a-z0-9._]*$/i;function getSchemaRefs(e,t){if(typeof e=="boolean")return{};const{schemaId:r,uriResolver:a}=this.opts;const s=normalizeId(e[r]||t);const o={"":s};const p=getFullPath(a,s,false);const l={};const d=new Set;n(e,{allKeys:true},((e,t,a,i)=>{if(i===undefined)return;const n=p+t;let s=o[i];if(typeof e[r]=="string")s=addRef.call(this,e[r]);addAnchor.call(this,e.$anchor);addAnchor.call(this,e.$dynamicAnchor);o[t]=s;function addRef(t){const r=this.opts.uriResolver.resolve;t=normalizeId(s?r(s,t):t);if(d.has(t))throw ambiguos(t);d.add(t);let a=this.refs[t];if(typeof a=="string")a=this.refs[a];if(typeof a=="object"){checkAmbiguosRef(e,a.schema,t)}else if(t!==normalizeId(n)){if(t[0]==="#"){checkAmbiguosRef(e,l[t],t);l[t]=e}else{this.refs[t]=n}}return t}function addAnchor(e){if(typeof e=="string"){if(!c.test(e))throw new Error(`invalid anchor "${e}"`);addRef.call(this,`#${e}`)}}}));return l;function checkAmbiguosRef(e,t,r){if(t!==undefined&&!i(e,t))throw ambiguos(r)}function ambiguos(e){return new Error(`reference "${e}" resolves to more than one schema`)}}t.getSchemaRefs=getSchemaRefs},6731:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getRules=t.isJSONType=void 0;const r=["string","number","integer","boolean","null","object","array"];const a=new Set(r);function isJSONType(e){return typeof e=="string"&&a.has(e)}t.isJSONType=isJSONType;function getRules(){const e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:true,boolean:true,null:true},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=getRules},407:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.checkStrictMode=t.getErrorPath=t.Type=t.useFunc=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;const a=r(6035);const i=r(6370);function toHash(e){const t={};for(const r of e)t[r]=true;return t}t.toHash=toHash;function alwaysValidSchema(e,t){if(typeof t=="boolean")return t;if(Object.keys(t).length===0)return true;checkUnknownRules(e,t);return!schemaHasRules(t,e.self.RULES.all)}t.alwaysValidSchema=alwaysValidSchema;function checkUnknownRules(e,t=e.schema){const{opts:r,self:a}=e;if(!r.strictSchema)return;if(typeof t==="boolean")return;const i=a.RULES.keywords;for(const r in t){if(!i[r])checkStrictMode(e,`unknown keyword: "${r}"`)}}t.checkUnknownRules=checkUnknownRules;function schemaHasRules(e,t){if(typeof e=="boolean")return!e;for(const r in e)if(t[r])return true;return false}t.schemaHasRules=schemaHasRules;function schemaHasRulesButRef(e,t){if(typeof e=="boolean")return!e;for(const r in e)if(r!=="$ref"&&t.all[r])return true;return false}t.schemaHasRulesButRef=schemaHasRulesButRef;function schemaRefOrVal({topSchemaRef:e,schemaPath:t},r,i,n){if(!n){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,a._)`${r}`}return(0,a._)`${e}${t}${(0,a.getProperty)(i)}`}t.schemaRefOrVal=schemaRefOrVal;function unescapeFragment(e){return unescapeJsonPointer(decodeURIComponent(e))}t.unescapeFragment=unescapeFragment;function escapeFragment(e){return encodeURIComponent(escapeJsonPointer(e))}t.escapeFragment=escapeFragment;function escapeJsonPointer(e){if(typeof e=="number")return`${e}`;return e.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=escapeJsonPointer;function unescapeJsonPointer(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=unescapeJsonPointer;function eachItem(e,t){if(Array.isArray(e)){for(const r of e)t(r)}else{t(e)}}t.eachItem=eachItem;function makeMergeEvaluated({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:i}){return(n,s,o,p)=>{const c=o===undefined?s:o instanceof a.Name?(s instanceof a.Name?e(n,s,o):t(n,s,o),o):s instanceof a.Name?(t(n,o,s),s):r(s,o);return p===a.Name&&!(c instanceof a.Name)?i(n,c):c}}t.mergeEvaluated={props:makeMergeEvaluated({mergeNames:(e,t,r)=>e.if((0,a._)`${r} !== true && ${t} !== undefined`,(()=>{e.if((0,a._)`${t} === true`,(()=>e.assign(r,true)),(()=>e.assign(r,(0,a._)`${r} || {}`).code((0,a._)`Object.assign(${r}, ${t})`)))})),mergeToName:(e,t,r)=>e.if((0,a._)`${r} !== true`,(()=>{if(t===true){e.assign(r,true)}else{e.assign(r,(0,a._)`${r} || {}`);setEvaluated(e,r,t)}})),mergeValues:(e,t)=>e===true?true:{...e,...t},resultToName:evaluatedPropsToName}),items:makeMergeEvaluated({mergeNames:(e,t,r)=>e.if((0,a._)`${r} !== true && ${t} !== undefined`,(()=>e.assign(r,(0,a._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`))),mergeToName:(e,t,r)=>e.if((0,a._)`${r} !== true`,(()=>e.assign(r,t===true?true:(0,a._)`${r} > ${t} ? ${r} : ${t}`))),mergeValues:(e,t)=>e===true?true:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function evaluatedPropsToName(e,t){if(t===true)return e.var("props",true);const r=e.var("props",(0,a._)`{}`);if(t!==undefined)setEvaluated(e,r,t);return r}t.evaluatedPropsToName=evaluatedPropsToName;function setEvaluated(e,t,r){Object.keys(r).forEach((r=>e.assign((0,a._)`${t}${(0,a.getProperty)(r)}`,true)))}t.setEvaluated=setEvaluated;const n={};function useFunc(e,t){return e.scopeValue("func",{ref:t,code:n[t.code]||(n[t.code]=new i._Code(t.code))})}t.useFunc=useFunc;var s;(function(e){e[e["Num"]=0]="Num";e[e["Str"]=1]="Str"})(s=t.Type||(t.Type={}));function getErrorPath(e,t,r){if(e instanceof a.Name){const i=t===s.Num;return r?i?(0,a._)`"[" + ${e} + "]"`:(0,a._)`"['" + ${e} + "']"`:i?(0,a._)`"/" + ${e}`:(0,a._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,a.getProperty)(e).toString():"/"+escapeJsonPointer(e)}t.getErrorPath=getErrorPath;function checkStrictMode(e,t,r=e.opts.strictSchema){if(!r)return;t=`strict mode: ${t}`;if(r===true)throw new Error(t);e.self.logger.warn(t)}t.checkStrictMode=checkStrictMode},4019:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function schemaHasRulesForType({schema:e,self:t},r){const a=t.RULES.types[r];return a&&a!==true&&shouldUseGroup(e,a)}t.schemaHasRulesForType=schemaHasRulesForType;function shouldUseGroup(e,t){return t.rules.some((t=>shouldUseRule(e,t)))}t.shouldUseGroup=shouldUseGroup;function shouldUseRule(e,t){var r;return e[t.keyword]!==undefined||((r=t.definition.implements)===null||r===void 0?void 0:r.some((t=>e[t]!==undefined)))}t.shouldUseRule=shouldUseRule},598:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;const a=r(7722);const i=r(6035);const n=r(5302);const s={message:"boolean schema is false"};function topBoolOrEmptySchema(e){const{gen:t,schema:r,validateName:a}=e;if(r===false){falseSchemaError(e,false)}else if(typeof r=="object"&&r.$async===true){t.return(n.default.data)}else{t.assign((0,i._)`${a}.errors`,null);t.return(true)}}t.topBoolOrEmptySchema=topBoolOrEmptySchema;function boolOrEmptySchema(e,t){const{gen:r,schema:a}=e;if(a===false){r.var(t,false);falseSchemaError(e)}else{r.var(t,true)}}t.boolOrEmptySchema=boolOrEmptySchema;function falseSchemaError(e,t){const{gen:r,data:i}=e;const n={gen:r,keyword:"false schema",data:i,schema:false,schemaCode:false,schemaValue:false,params:{},it:e};(0,a.reportError)(n,s,undefined,t)}},2933:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;const a=r(6731);const i=r(4019);const n=r(7722);const s=r(6035);const o=r(407);var p;(function(e){e[e["Correct"]=0]="Correct";e[e["Wrong"]=1]="Wrong"})(p=t.DataType||(t.DataType={}));function getSchemaTypes(e){const t=getJSONTypes(e.type);const r=t.includes("null");if(r){if(e.nullable===false)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==undefined){throw new Error('"nullable" cannot be used without "type"')}if(e.nullable===true)t.push("null")}return t}t.getSchemaTypes=getSchemaTypes;function getJSONTypes(e){const t=Array.isArray(e)?e:e?[e]:[];if(t.every(a.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}t.getJSONTypes=getJSONTypes;function coerceAndCheckDataType(e,t){const{gen:r,data:a,opts:n}=e;const s=coerceToTypes(t,n.coerceTypes);const o=t.length>0&&!(s.length===0&&t.length===1&&(0,i.schemaHasRulesForType)(e,t[0]));if(o){const i=checkDataTypes(t,a,n.strictNumbers,p.Wrong);r.if(i,(()=>{if(s.length)coerceData(e,t,s);else reportTypeError(e)}))}return o}t.coerceAndCheckDataType=coerceAndCheckDataType;const c=new Set(["string","number","integer","boolean","null"]);function coerceToTypes(e,t){return t?e.filter((e=>c.has(e)||t==="array"&&e==="array")):[]}function coerceData(e,t,r){const{gen:a,data:i,opts:n}=e;const o=a.let("dataType",(0,s._)`typeof ${i}`);const p=a.let("coerced",(0,s._)`undefined`);if(n.coerceTypes==="array"){a.if((0,s._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,(()=>a.assign(i,(0,s._)`${i}[0]`).assign(o,(0,s._)`typeof ${i}`).if(checkDataTypes(t,i,n.strictNumbers),(()=>a.assign(p,i)))))}a.if((0,s._)`${p} !== undefined`);for(const e of r){if(c.has(e)||e==="array"&&n.coerceTypes==="array"){coerceSpecificType(e)}}a.else();reportTypeError(e);a.endIf();a.if((0,s._)`${p} !== undefined`,(()=>{a.assign(i,p);assignParentData(e,p)}));function coerceSpecificType(e){switch(e){case"string":a.elseIf((0,s._)`${o} == "number" || ${o} == "boolean"`).assign(p,(0,s._)`"" + ${i}`).elseIf((0,s._)`${i} === null`).assign(p,(0,s._)`""`);return;case"number":a.elseIf((0,s._)`${o} == "boolean" || ${i} === null || (${o} == "string" && ${i} && ${i} == +${i})`).assign(p,(0,s._)`+${i}`);return;case"integer":a.elseIf((0,s._)`${o} === "boolean" || ${i} === null || (${o} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(p,(0,s._)`+${i}`);return;case"boolean":a.elseIf((0,s._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(p,false).elseIf((0,s._)`${i} === "true" || ${i} === 1`).assign(p,true);return;case"null":a.elseIf((0,s._)`${i} === "" || ${i} === 0 || ${i} === false`);a.assign(p,null);return;case"array":a.elseIf((0,s._)`${o} === "string" || ${o} === "number" || ${o} === "boolean" || ${i} === null`).assign(p,(0,s._)`[${i}]`)}}}function assignParentData({gen:e,parentData:t,parentDataProperty:r},a){e.if((0,s._)`${t} !== undefined`,(()=>e.assign((0,s._)`${t}[${r}]`,a)))}function checkDataType(e,t,r,a=p.Correct){const i=a===p.Correct?s.operators.EQ:s.operators.NEQ;let n;switch(e){case"null":return(0,s._)`${t} ${i} null`;case"array":n=(0,s._)`Array.isArray(${t})`;break;case"object":n=(0,s._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":n=numCond((0,s._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":n=numCond();break;default:return(0,s._)`typeof ${t} ${i} ${e}`}return a===p.Correct?n:(0,s.not)(n);function numCond(e=s.nil){return(0,s.and)((0,s._)`typeof ${t} == "number"`,e,r?(0,s._)`isFinite(${t})`:s.nil)}}t.checkDataType=checkDataType;function checkDataTypes(e,t,r,a){if(e.length===1){return checkDataType(e[0],t,r,a)}let i;const n=(0,o.toHash)(e);if(n.array&&n.object){const e=(0,s._)`typeof ${t} != "object"`;i=n.null?e:(0,s._)`!${t} || ${e}`;delete n.null;delete n.array;delete n.object}else{i=s.nil}if(n.number)delete n.integer;for(const e in n)i=(0,s.and)(i,checkDataType(e,t,r,a));return i}t.checkDataTypes=checkDataTypes;const l={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,s._)`{type: ${e}}`:(0,s._)`{type: ${t}}`};function reportTypeError(e){const t=getTypeErrorContext(e);(0,n.reportError)(t,l)}t.reportTypeError=reportTypeError;function getTypeErrorContext(e){const{gen:t,data:r,schema:a}=e;const i=(0,o.schemaRefOrVal)(e,a,"type");return{gen:t,keyword:"type",data:r,schema:a.type,schemaCode:i,schemaValue:i,parentSchema:a,params:{},it:e}}},1871:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.assignDefaults=void 0;const a=r(6035);const i=r(407);function assignDefaults(e,t){const{properties:r,items:a}=e.schema;if(t==="object"&&r){for(const t in r){assignDefault(e,t,r[t].default)}}else if(t==="array"&&Array.isArray(a)){a.forEach(((t,r)=>assignDefault(e,r,t.default)))}}t.assignDefaults=assignDefaults;function assignDefault(e,t,r){const{gen:n,compositeRule:s,data:o,opts:p}=e;if(r===undefined)return;const c=(0,a._)`${o}${(0,a.getProperty)(t)}`;if(s){(0,i.checkStrictMode)(e,`default is ignored for: ${c}`);return}let l=(0,a._)`${c} === undefined`;if(p.useDefaults==="empty"){l=(0,a._)`${l} || ${c} === null || ${c} === ""`}n.if(l,(0,a._)`${c} = ${(0,a.stringify)(r)}`)}},4988:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;const a=r(598);const i=r(2933);const n=r(4019);const s=r(2933);const o=r(1871);const p=r(6888);const c=r(7640);const l=r(6035);const d=r(5302);const u=r(985);const m=r(407);const h=r(7722);function validateFunctionCode(e){if(isSchemaObj(e)){checkKeywords(e);if(schemaCxtHasRules(e)){topSchemaObjCode(e);return}}validateFunction(e,(()=>(0,a.topBoolOrEmptySchema)(e)))}t.validateFunctionCode=validateFunctionCode;function validateFunction({gen:e,validateName:t,schema:r,schemaEnv:a,opts:i},n){if(i.code.es5){e.func(t,(0,l._)`${d.default.data}, ${d.default.valCxt}`,a.$async,(()=>{e.code((0,l._)`"use strict"; ${funcSourceUrl(r,i)}`);destructureValCxtES5(e,i);e.code(n)}))}else{e.func(t,(0,l._)`${d.default.data}, ${destructureValCxt(i)}`,a.$async,(()=>e.code(funcSourceUrl(r,i)).code(n)))}}function destructureValCxt(e){return(0,l._)`{${d.default.instancePath}="", ${d.default.parentData}, ${d.default.parentDataProperty}, ${d.default.rootData}=${d.default.data}${e.dynamicRef?(0,l._)`, ${d.default.dynamicAnchors}={}`:l.nil}}={}`}function destructureValCxtES5(e,t){e.if(d.default.valCxt,(()=>{e.var(d.default.instancePath,(0,l._)`${d.default.valCxt}.${d.default.instancePath}`);e.var(d.default.parentData,(0,l._)`${d.default.valCxt}.${d.default.parentData}`);e.var(d.default.parentDataProperty,(0,l._)`${d.default.valCxt}.${d.default.parentDataProperty}`);e.var(d.default.rootData,(0,l._)`${d.default.valCxt}.${d.default.rootData}`);if(t.dynamicRef)e.var(d.default.dynamicAnchors,(0,l._)`${d.default.valCxt}.${d.default.dynamicAnchors}`)}),(()=>{e.var(d.default.instancePath,(0,l._)`""`);e.var(d.default.parentData,(0,l._)`undefined`);e.var(d.default.parentDataProperty,(0,l._)`undefined`);e.var(d.default.rootData,d.default.data);if(t.dynamicRef)e.var(d.default.dynamicAnchors,(0,l._)`{}`)}))}function topSchemaObjCode(e){const{schema:t,opts:r,gen:a}=e;validateFunction(e,(()=>{if(r.$comment&&t.$comment)commentKeyword(e);checkNoDefault(e);a.let(d.default.vErrors,null);a.let(d.default.errors,0);if(r.unevaluated)resetEvaluated(e);typeAndKeywords(e);returnResults(e)}));return}function resetEvaluated(e){const{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,l._)`${r}.evaluated`);t.if((0,l._)`${e.evaluated}.dynamicProps`,(()=>t.assign((0,l._)`${e.evaluated}.props`,(0,l._)`undefined`)));t.if((0,l._)`${e.evaluated}.dynamicItems`,(()=>t.assign((0,l._)`${e.evaluated}.items`,(0,l._)`undefined`)))}function funcSourceUrl(e,t){const r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,l._)`/*# sourceURL=${r} */`:l.nil}function subschemaCode(e,t){if(isSchemaObj(e)){checkKeywords(e);if(schemaCxtHasRules(e)){subSchemaObjCode(e,t);return}}(0,a.boolOrEmptySchema)(e,t)}function schemaCxtHasRules({schema:e,self:t}){if(typeof e=="boolean")return!e;for(const r in e)if(t.RULES.all[r])return true;return false}function isSchemaObj(e){return typeof e.schema!="boolean"}function subSchemaObjCode(e,t){const{schema:r,gen:a,opts:i}=e;if(i.$comment&&r.$comment)commentKeyword(e);updateContext(e);checkAsyncSchema(e);const n=a.const("_errs",d.default.errors);typeAndKeywords(e,n);a.var(t,(0,l._)`${n} === ${d.default.errors}`)}function checkKeywords(e){(0,m.checkUnknownRules)(e);checkRefsAndKeywords(e)}function typeAndKeywords(e,t){if(e.opts.jtd)return schemaKeywords(e,[],false,t);const r=(0,i.getSchemaTypes)(e.schema);const a=(0,i.coerceAndCheckDataType)(e,r);schemaKeywords(e,r,!a,t)}function checkRefsAndKeywords(e){const{schema:t,errSchemaPath:r,opts:a,self:i}=e;if(t.$ref&&a.ignoreKeywordsWithRef&&(0,m.schemaHasRulesButRef)(t,i.RULES)){i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}}function checkNoDefault(e){const{schema:t,opts:r}=e;if(t.default!==undefined&&r.useDefaults&&r.strictSchema){(0,m.checkStrictMode)(e,"default is ignored in the schema root")}}function updateContext(e){const t=e.schema[e.opts.schemaId];if(t)e.baseId=(0,u.resolveUrl)(e.opts.uriResolver,e.baseId,t)}function checkAsyncSchema(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function commentKeyword({gen:e,schemaEnv:t,schema:r,errSchemaPath:a,opts:i}){const n=r.$comment;if(i.$comment===true){e.code((0,l._)`${d.default.self}.logger.log(${n})`)}else if(typeof i.$comment=="function"){const r=(0,l.str)`${a}/$comment`;const i=e.scopeValue("root",{ref:t.root});e.code((0,l._)`${d.default.self}.opts.$comment(${n}, ${r}, ${i}.schema)`)}}function returnResults(e){const{gen:t,schemaEnv:r,validateName:a,ValidationError:i,opts:n}=e;if(r.$async){t.if((0,l._)`${d.default.errors} === 0`,(()=>t.return(d.default.data)),(()=>t.throw((0,l._)`new ${i}(${d.default.vErrors})`)))}else{t.assign((0,l._)`${a}.errors`,d.default.vErrors);if(n.unevaluated)assignEvaluated(e);t.return((0,l._)`${d.default.errors} === 0`)}}function assignEvaluated({gen:e,evaluated:t,props:r,items:a}){if(r instanceof l.Name)e.assign((0,l._)`${t}.props`,r);if(a instanceof l.Name)e.assign((0,l._)`${t}.items`,a)}function schemaKeywords(e,t,r,a){const{gen:i,schema:o,data:p,allErrors:c,opts:u,self:h}=e;const{RULES:g}=h;if(o.$ref&&(u.ignoreKeywordsWithRef||!(0,m.schemaHasRulesButRef)(o,g))){i.block((()=>keywordCode(e,"$ref",g.all.$ref.definition)));return}if(!u.jtd)checkStrictTypes(e,t);i.block((()=>{for(const e of g.rules)groupKeywords(e);groupKeywords(g.post)}));function groupKeywords(m){if(!(0,n.shouldUseGroup)(o,m))return;if(m.type){i.if((0,s.checkDataType)(m.type,p,u.strictNumbers));iterateKeywords(e,m);if(t.length===1&&t[0]===m.type&&r){i.else();(0,s.reportTypeError)(e)}i.endIf()}else{iterateKeywords(e,m)}if(!c)i.if((0,l._)`${d.default.errors} === ${a||0}`)}}function iterateKeywords(e,t){const{gen:r,schema:a,opts:{useDefaults:i}}=e;if(i)(0,o.assignDefaults)(e,t.type);r.block((()=>{for(const r of t.rules){if((0,n.shouldUseRule)(a,r)){keywordCode(e,r.keyword,r.definition,t.type)}}}))}function checkStrictTypes(e,t){if(e.schemaEnv.meta||!e.opts.strictTypes)return;checkContextTypes(e,t);if(!e.opts.allowUnionTypes)checkMultipleTypes(e,t);checkKeywordTypes(e,e.dataTypes)}function checkContextTypes(e,t){if(!t.length)return;if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach((t=>{if(!includesType(e.dataTypes,t)){strictTypesError(e,`type "${t}" not allowed by context "${e.dataTypes.join(",")}"`)}}));narrowSchemaTypes(e,t)}function checkMultipleTypes(e,t){if(t.length>1&&!(t.length===2&&t.includes("null"))){strictTypesError(e,"use allowUnionTypes to allow union type keyword")}}function checkKeywordTypes(e,t){const r=e.self.RULES.all;for(const a in r){const i=r[a];if(typeof i=="object"&&(0,n.shouldUseRule)(e.schema,i)){const{type:r}=i.definition;if(r.length&&!r.some((e=>hasApplicableType(t,e)))){strictTypesError(e,`missing type "${r.join(",")}" for keyword "${a}"`)}}}}function hasApplicableType(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function includesType(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function narrowSchemaTypes(e,t){const r=[];for(const a of e.dataTypes){if(includesType(t,a))r.push(a);else if(t.includes("integer")&&a==="number")r.push("integer")}e.dataTypes=r}function strictTypesError(e,t){const r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`;(0,m.checkStrictMode)(e,t,e.opts.strictTypes)}class KeywordCxt{constructor(e,t,r){(0,p.validateKeywordUsage)(e,t,r);this.gen=e.gen;this.allErrors=e.allErrors;this.keyword=r;this.data=e.data;this.schema=e.schema[r];this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data;this.schemaValue=(0,m.schemaRefOrVal)(e,this.schema,r,this.$data);this.schemaType=t.schemaType;this.parentSchema=e.schema;this.params={};this.it=e;this.def=t;if(this.$data){this.schemaCode=e.gen.const("vSchema",getData(this.$data,e))}else{this.schemaCode=this.schemaValue;if(!(0,p.validSchemaType)(this.schema,t.schemaType,t.allowUndefined)){throw new Error(`${r} value must be ${JSON.stringify(t.schemaType)}`)}}if("code"in t?t.trackErrors:t.errors!==false){this.errsCount=e.gen.const("_errs",d.default.errors)}}result(e,t,r){this.failResult((0,l.not)(e),t,r)}failResult(e,t,r){this.gen.if(e);if(r)r();else this.error();if(t){this.gen.else();t();if(this.allErrors)this.gen.endIf()}else{if(this.allErrors)this.gen.endIf();else this.gen.else()}}pass(e,t){this.failResult((0,l.not)(e),undefined,t)}fail(e){if(e===undefined){this.error();if(!this.allErrors)this.gen.if(false);return}this.gen.if(e);this.error();if(this.allErrors)this.gen.endIf();else this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);const{schemaCode:t}=this;this.fail((0,l._)`${t} !== undefined && (${(0,l.or)(this.invalid$data(),e)})`)}error(e,t,r){if(t){this.setParams(t);this._error(e,r);this.setParams({});return}this._error(e,r)}_error(e,t){(e?h.reportExtraError:h.reportError)(this,this.def.error,t)}$dataError(){(0,h.reportError)(this,this.def.$dataError||h.keyword$DataError)}reset(){if(this.errsCount===undefined)throw new Error('add "trackErrors" to keyword definition');(0,h.resetErrorsCount)(this.gen,this.errsCount)}ok(e){if(!this.allErrors)this.gen.if(e)}setParams(e,t){if(t)Object.assign(this.params,e);else this.params=e}block$data(e,t,r=l.nil){this.gen.block((()=>{this.check$data(e,r);t()}))}check$data(e=l.nil,t=l.nil){if(!this.$data)return;const{gen:r,schemaCode:a,schemaType:i,def:n}=this;r.if((0,l.or)((0,l._)`${a} === undefined`,t));if(e!==l.nil)r.assign(e,true);if(i.length||n.validateSchema){r.elseIf(this.invalid$data());this.$dataError();if(e!==l.nil)r.assign(e,false)}r.else()}invalid$data(){const{gen:e,schemaCode:t,schemaType:r,def:a,it:i}=this;return(0,l.or)(wrong$DataType(),invalid$DataSchema());function wrong$DataType(){if(r.length){if(!(t instanceof l.Name))throw new Error("ajv implementation error");const e=Array.isArray(r)?r:[r];return(0,l._)`${(0,s.checkDataTypes)(e,t,i.opts.strictNumbers,s.DataType.Wrong)}`}return l.nil}function invalid$DataSchema(){if(a.validateSchema){const r=e.scopeValue("validate$data",{ref:a.validateSchema});return(0,l._)`!${r}(${t})`}return l.nil}}subschema(e,t){const r=(0,c.getSubschema)(this.it,e);(0,c.extendSubschemaData)(r,this.it,e);(0,c.extendSubschemaMode)(r,e);const a={...this.it,...r,items:undefined,props:undefined};subschemaCode(a,t);return a}mergeEvaluated(e,t){const{it:r,gen:a}=this;if(!r.opts.unevaluated)return;if(r.props!==true&&e.props!==undefined){r.props=m.mergeEvaluated.props(a,e.props,r.props,t)}if(r.items!==true&&e.items!==undefined){r.items=m.mergeEvaluated.items(a,e.items,r.items,t)}}mergeValidEvaluated(e,t){const{it:r,gen:a}=this;if(r.opts.unevaluated&&(r.props!==true||r.items!==true)){a.if(t,(()=>this.mergeEvaluated(e,l.Name)));return true}}}t.KeywordCxt=KeywordCxt;function keywordCode(e,t,r,a){const i=new KeywordCxt(e,r,t);if("code"in r){r.code(i,a)}else if(i.$data&&r.validate){(0,p.funcKeywordCode)(i,r)}else if("macro"in r){(0,p.macroKeywordCode)(i,r)}else if(r.compile||r.validate){(0,p.funcKeywordCode)(i,r)}}const g=/^\/(?:[^~]|~0|~1)*$/;const v=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function getData(e,{dataLevel:t,dataNames:r,dataPathArr:a}){let i;let n;if(e==="")return d.default.rootData;if(e[0]==="/"){if(!g.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e;n=d.default.rootData}else{const s=v.exec(e);if(!s)throw new Error(`Invalid JSON-pointer: ${e}`);const o=+s[1];i=s[2];if(i==="#"){if(o>=t)throw new Error(errorMsg("property/index",o));return a[t-o]}if(o>t)throw new Error(errorMsg("data",o));n=r[t-o];if(!i)return n}let s=n;const o=i.split("/");for(const e of o){if(e){n=(0,l._)`${n}${(0,l.getProperty)((0,m.unescapeJsonPointer)(e))}`;s=(0,l._)`${s} && ${n}`}}return s;function errorMsg(e,r){return`Cannot access ${e} ${r} levels up, current level is ${t}`}}t.getData=getData},6888:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;const a=r(6035);const i=r(5302);const n=r(982);const s=r(7722);function macroKeywordCode(e,t){const{gen:r,keyword:i,schema:n,parentSchema:s,it:o}=e;const p=t.macro.call(o.self,n,s,o);const c=useKeyword(r,i,p);if(o.opts.validateSchema!==false)o.self.validateSchema(p,true);const l=r.name("valid");e.subschema({schema:p,schemaPath:a.nil,errSchemaPath:`${o.errSchemaPath}/${i}`,topSchemaRef:c,compositeRule:true},l);e.pass(l,(()=>e.error(true)))}t.macroKeywordCode=macroKeywordCode;function funcKeywordCode(e,t){var r;const{gen:s,keyword:o,schema:p,parentSchema:c,$data:l,it:d}=e;checkAsyncKeyword(d,t);const u=!l&&t.compile?t.compile.call(d.self,p,c,d):t.validate;const m=useKeyword(s,o,u);const h=s.let("valid");e.block$data(h,validateKeyword);e.ok((r=t.valid)!==null&&r!==void 0?r:h);function validateKeyword(){if(t.errors===false){assignValid();if(t.modifying)modifyData(e);reportErrs((()=>e.error()))}else{const r=t.async?validateAsync():validateSync();if(t.modifying)modifyData(e);reportErrs((()=>addErrs(e,r)))}}function validateAsync(){const e=s.let("ruleErrs",null);s.try((()=>assignValid((0,a._)`await `)),(t=>s.assign(h,false).if((0,a._)`${t} instanceof ${d.ValidationError}`,(()=>s.assign(e,(0,a._)`${t}.errors`)),(()=>s.throw(t)))));return e}function validateSync(){const e=(0,a._)`${m}.errors`;s.assign(e,null);assignValid(a.nil);return e}function assignValid(r=(t.async?(0,a._)`await `:a.nil)){const o=d.opts.passContext?i.default.this:i.default.self;const p=!("compile"in t&&!l||t.schema===false);s.assign(h,(0,a._)`${r}${(0,n.callValidateCode)(e,m,o,p)}`,t.modifying)}function reportErrs(e){var r;s.if((0,a.not)((r=t.valid)!==null&&r!==void 0?r:h),e)}}t.funcKeywordCode=funcKeywordCode;function modifyData(e){const{gen:t,data:r,it:i}=e;t.if(i.parentData,(()=>t.assign(r,(0,a._)`${i.parentData}[${i.parentDataProperty}]`)))}function addErrs(e,t){const{gen:r}=e;r.if((0,a._)`Array.isArray(${t})`,(()=>{r.assign(i.default.vErrors,(0,a._)`${i.default.vErrors} === null ? ${t} : ${i.default.vErrors}.concat(${t})`).assign(i.default.errors,(0,a._)`${i.default.vErrors}.length`);(0,s.extendErrors)(e)}),(()=>e.error()))}function checkAsyncKeyword({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function useKeyword(e,t,r){if(r===undefined)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,a.stringify)(r)})}function validSchemaType(e,t,r=false){return!t.length||t.some((t=>t==="array"?Array.isArray(e):t==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==t||r&&typeof e=="undefined"))}t.validSchemaType=validSchemaType;function validateKeywordUsage({schema:e,opts:t,self:r,errSchemaPath:a},i,n){if(Array.isArray(i.keyword)?!i.keyword.includes(n):i.keyword!==n){throw new Error("ajv implementation error")}const s=i.dependencies;if(s===null||s===void 0?void 0:s.some((t=>!Object.prototype.hasOwnProperty.call(e,t)))){throw new Error(`parent schema must have dependencies of ${n}: ${s.join(",")}`)}if(i.validateSchema){const s=i.validateSchema(e[n]);if(!s){const e=`keyword "${n}" value is invalid at path "${a}": `+r.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(e);else throw new Error(e)}}}t.validateKeywordUsage=validateKeywordUsage},7640:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;const a=r(6035);const i=r(407);function getSubschema(e,{keyword:t,schemaProp:r,schema:n,schemaPath:s,errSchemaPath:o,topSchemaRef:p}){if(t!==undefined&&n!==undefined){throw new Error('both "keyword" and "schema" passed, only one allowed')}if(t!==undefined){const n=e.schema[t];return r===undefined?{schema:n,schemaPath:(0,a._)`${e.schemaPath}${(0,a.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:n[r],schemaPath:(0,a._)`${e.schemaPath}${(0,a.getProperty)(t)}${(0,a.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,i.escapeFragment)(r)}`}}if(n!==undefined){if(s===undefined||o===undefined||p===undefined){throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"')}return{schema:n,schemaPath:s,topSchemaRef:p,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}t.getSubschema=getSubschema;function extendSubschemaData(e,t,{dataProp:r,dataPropType:n,data:s,dataTypes:o,propertyName:p}){if(s!==undefined&&r!==undefined){throw new Error('both "data" and "dataProp" passed, only one allowed')}const{gen:c}=t;if(r!==undefined){const{errorPath:s,dataPathArr:o,opts:p}=t;const l=c.let("data",(0,a._)`${t.data}${(0,a.getProperty)(r)}`,true);dataContextProps(l);e.errorPath=(0,a.str)`${s}${(0,i.getErrorPath)(r,n,p.jsPropertySyntax)}`;e.parentDataProperty=(0,a._)`${r}`;e.dataPathArr=[...o,e.parentDataProperty]}if(s!==undefined){const t=s instanceof a.Name?s:c.let("data",s,true);dataContextProps(t);if(p!==undefined)e.propertyName=p}if(o)e.dataTypes=o;function dataContextProps(r){e.data=r;e.dataLevel=t.dataLevel+1;e.dataTypes=[];t.definedProperties=new Set;e.parentData=t.data;e.dataNames=[...t.dataNames,r]}}t.extendSubschemaData=extendSubschemaData;function extendSubschemaMode(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:a,createErrors:i,allErrors:n}){if(a!==undefined)e.compositeRule=a;if(i!==undefined)e.createErrors=i;if(n!==undefined)e.allErrors=n;e.jtdDiscriminator=t;e.jtdMetadata=r}t.extendSubschemaMode=extendSubschemaMode},2396:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var a=r(4988);Object.defineProperty(t,"KeywordCxt",{enumerable:true,get:function(){return a.KeywordCxt}});var i=r(6035);Object.defineProperty(t,"_",{enumerable:true,get:function(){return i._}});Object.defineProperty(t,"str",{enumerable:true,get:function(){return i.str}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return i.stringify}});Object.defineProperty(t,"nil",{enumerable:true,get:function(){return i.nil}});Object.defineProperty(t,"Name",{enumerable:true,get:function(){return i.Name}});Object.defineProperty(t,"CodeGen",{enumerable:true,get:function(){return i.CodeGen}});const n=r(3111);const s=r(2146);const o=r(6731);const p=r(9230);const c=r(6035);const l=r(985);const d=r(2933);const u=r(407);const m=r(7063);const h=r(1744);const defaultRegExp=(e,t)=>new RegExp(e,t);defaultRegExp.code="new RegExp";const g=["removeAdditional","useDefaults","coerceTypes"];const v=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]);const y={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."};const b={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'};const w=200;function requiredOptions(e){var t,r,a,i,n,s,o,p,c,l,d,u,m,g,v,y,b,x,E,S,T,k,C,O,P;const A=e.strict;const D=(t=e.code)===null||t===void 0?void 0:t.optimize;const N=D===true||D===undefined?1:D||0;const R=(a=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&a!==void 0?a:defaultRegExp;const j=(i=e.uriResolver)!==null&&i!==void 0?i:h.default;return{strictSchema:(s=(n=e.strictSchema)!==null&&n!==void 0?n:A)!==null&&s!==void 0?s:true,strictNumbers:(p=(o=e.strictNumbers)!==null&&o!==void 0?o:A)!==null&&p!==void 0?p:true,strictTypes:(l=(c=e.strictTypes)!==null&&c!==void 0?c:A)!==null&&l!==void 0?l:"log",strictTuples:(u=(d=e.strictTuples)!==null&&d!==void 0?d:A)!==null&&u!==void 0?u:"log",strictRequired:(g=(m=e.strictRequired)!==null&&m!==void 0?m:A)!==null&&g!==void 0?g:false,code:e.code?{...e.code,optimize:N,regExp:R}:{optimize:N,regExp:R},loopRequired:(v=e.loopRequired)!==null&&v!==void 0?v:w,loopEnum:(y=e.loopEnum)!==null&&y!==void 0?y:w,meta:(b=e.meta)!==null&&b!==void 0?b:true,messages:(x=e.messages)!==null&&x!==void 0?x:true,inlineRefs:(E=e.inlineRefs)!==null&&E!==void 0?E:true,schemaId:(S=e.schemaId)!==null&&S!==void 0?S:"$id",addUsedSchema:(T=e.addUsedSchema)!==null&&T!==void 0?T:true,validateSchema:(k=e.validateSchema)!==null&&k!==void 0?k:true,validateFormats:(C=e.validateFormats)!==null&&C!==void 0?C:true,unicodeRegExp:(O=e.unicodeRegExp)!==null&&O!==void 0?O:true,int32range:(P=e.int32range)!==null&&P!==void 0?P:true,uriResolver:j}}class Ajv{constructor(e={}){this.schemas={};this.refs={};this.formats={};this._compilations=new Set;this._loading={};this._cache=new Map;e=this.opts={...e,...requiredOptions(e)};const{es5:t,lines:r}=this.opts.code;this.scope=new c.ValueScope({scope:{},prefixes:v,es5:t,lines:r});this.logger=getLogger(e.logger);const a=e.validateFormats;e.validateFormats=false;this.RULES=(0,o.getRules)();checkOptions.call(this,y,e,"NOT SUPPORTED");checkOptions.call(this,b,e,"DEPRECATED","warn");this._metaOpts=getMetaSchemaOptions.call(this);if(e.formats)addInitialFormats.call(this);this._addVocabularies();this._addDefaultMetaSchema();if(e.keywords)addInitialKeywords.call(this,e.keywords);if(typeof e.meta=="object")this.addMetaSchema(e.meta);addInitialSchemas.call(this);e.validateFormats=a}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:e,meta:t,schemaId:r}=this.opts;let a=m;if(r==="id"){a={...m};a.id=a.$id;delete a.$id}if(t&&e)this.addMetaSchema(a,a[r],false)}defaultMeta(){const{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[t]||e:undefined}validate(e,t){let r;if(typeof e=="string"){r=this.getSchema(e);if(!r)throw new Error(`no schema with key or ref "${e}"`)}else{r=this.compile(e)}const a=r(t);if(!("$async"in r))this.errors=r.errors;return a}compile(e,t){const r=this._addSchema(e,t);return r.validate||this._compileSchemaEnv(r)}compileAsync(e,t){if(typeof this.opts.loadSchema!="function"){throw new Error("options.loadSchema should be a function")}const{loadSchema:r}=this.opts;return runCompileAsync.call(this,e,t);async function runCompileAsync(e,t){await loadMetaSchema.call(this,e.$schema);const r=this._addSchema(e,t);return r.validate||_compileAsync.call(this,r)}async function loadMetaSchema(e){if(e&&!this.getSchema(e)){await runCompileAsync.call(this,{$ref:e},true)}}async function _compileAsync(e){try{return this._compileSchemaEnv(e)}catch(t){if(!(t instanceof s.default))throw t;checkLoaded.call(this,t);await loadMissingSchema.call(this,t.missingSchema);return _compileAsync.call(this,e)}}function checkLoaded({missingSchema:e,missingRef:t}){if(this.refs[e]){throw new Error(`AnySchema ${e} is loaded but ${t} cannot be resolved`)}}async function loadMissingSchema(e){const r=await _loadSchema.call(this,e);if(!this.refs[e])await loadMetaSchema.call(this,r.$schema);if(!this.refs[e])this.addSchema(r,e,t)}async function _loadSchema(e){const t=this._loading[e];if(t)return t;try{return await(this._loading[e]=r(e))}finally{delete this._loading[e]}}}addSchema(e,t,r,a=this.opts.validateSchema){if(Array.isArray(e)){for(const t of e)this.addSchema(t,undefined,r,a);return this}let i;if(typeof e==="object"){const{schemaId:t}=this.opts;i=e[t];if(i!==undefined&&typeof i!="string"){throw new Error(`schema ${t} must be string`)}}t=(0,l.normalizeId)(t||i);this._checkUnique(t);this.schemas[t]=this._addSchema(e,r,t,a,true);return this}addMetaSchema(e,t,r=this.opts.validateSchema){this.addSchema(e,t,true,r);return this}validateSchema(e,t){if(typeof e=="boolean")return true;let r;r=e.$schema;if(r!==undefined&&typeof r!="string"){throw new Error("$schema must be a string")}r=r||this.opts.defaultMeta||this.defaultMeta();if(!r){this.logger.warn("meta-schema not available");this.errors=null;return true}const a=this.validate(r,e);if(!a&&t){const e="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(e);else throw new Error(e)}return a}getSchema(e){let t;while(typeof(t=getSchEnv.call(this,e))=="string")e=t;if(t===undefined){const{schemaId:r}=this.opts;const a=new p.SchemaEnv({schema:{},schemaId:r});t=p.resolveSchema.call(this,a,e);if(!t)return;this.refs[e]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp){this._removeAllSchemas(this.schemas,e);this._removeAllSchemas(this.refs,e);return this}switch(typeof e){case"undefined":this._removeAllSchemas(this.schemas);this._removeAllSchemas(this.refs);this._cache.clear();return this;case"string":{const t=getSchEnv.call(this,e);if(typeof t=="object")this._cache.delete(t.schema);delete this.schemas[e];delete this.refs[e];return this}case"object":{const t=e;this._cache.delete(t);let r=e[this.opts.schemaId];if(r){r=(0,l.normalizeId)(r);delete this.schemas[r];delete this.refs[r]}return this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(const t of e)this.addKeyword(t);return this}addKeyword(e,t){let r;if(typeof e=="string"){r=e;if(typeof t=="object"){this.logger.warn("these parameters are deprecated, see docs for addKeyword");t.keyword=r}}else if(typeof e=="object"&&t===undefined){t=e;r=t.keyword;if(Array.isArray(r)&&!r.length){throw new Error("addKeywords: keyword must be string or non-empty array")}}else{throw new Error("invalid addKeywords parameters")}checkKeyword.call(this,r,t);if(!t){(0,u.eachItem)(r,(e=>addRule.call(this,e)));return this}keywordMetaschema.call(this,t);const a={...t,type:(0,d.getJSONTypes)(t.type),schemaType:(0,d.getJSONTypes)(t.schemaType)};(0,u.eachItem)(r,a.type.length===0?e=>addRule.call(this,e,a):e=>a.type.forEach((t=>addRule.call(this,e,a,t))));return this}getKeyword(e){const t=this.RULES.all[e];return typeof t=="object"?t.definition:!!t}removeKeyword(e){const{RULES:t}=this;delete t.keywords[e];delete t.all[e];for(const r of t.rules){const t=r.rules.findIndex((t=>t.keyword===e));if(t>=0)r.rules.splice(t,1)}return this}addFormat(e,t){if(typeof t=="string")t=new RegExp(t);this.formats[e]=t;return this}errorsText(e=this.errors,{separator:t=", ",dataVar:r="data"}={}){if(!e||e.length===0)return"No errors";return e.map((e=>`${r}${e.instancePath} ${e.message}`)).reduce(((e,r)=>e+t+r))}$dataMetaSchema(e,t){const r=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(const a of t){const t=a.split("/").slice(1);let i=e;for(const e of t)i=i[e];for(const e in r){const t=r[e];if(typeof t!="object")continue;const{$data:a}=t.definition;const n=i[e];if(a&&n)i[e]=schemaOrData(n)}}return e}_removeAllSchemas(e,t){for(const r in e){const a=e[r];if(!t||t.test(r)){if(typeof a=="string"){delete e[r]}else if(a&&!a.meta){this._cache.delete(a.schema);delete e[r]}}}}_addSchema(e,t,r,a=this.opts.validateSchema,i=this.opts.addUsedSchema){let n;const{schemaId:s}=this.opts;if(typeof e=="object"){n=e[s]}else{if(this.opts.jtd)throw new Error("schema must be object");else if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let o=this._cache.get(e);if(o!==undefined)return o;r=(0,l.normalizeId)(n||r);const c=l.getSchemaRefs.call(this,e,r);o=new p.SchemaEnv({schema:e,schemaId:s,meta:t,baseId:r,localRefs:c});this._cache.set(o.schema,o);if(i&&!r.startsWith("#")){if(r)this._checkUnique(r);this.refs[r]=o}if(a)this.validateSchema(e,true);return o}_checkUnique(e){if(this.schemas[e]||this.refs[e]){throw new Error(`schema with key or id "${e}" already exists`)}}_compileSchemaEnv(e){if(e.meta)this._compileMetaSchema(e);else p.compileSchema.call(this,e);if(!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){const t=this.opts;this.opts=this._metaOpts;try{p.compileSchema.call(this,e)}finally{this.opts=t}}}t["default"]=Ajv;Ajv.ValidationError=n.default;Ajv.MissingRefError=s.default;function checkOptions(e,t,r,a="error"){for(const i in e){const n=i;if(n in t)this.logger[a](`${r}: option ${i}. ${e[n]}`)}}function getSchEnv(e){e=(0,l.normalizeId)(e);return this.schemas[e]||this.refs[e]}function addInitialSchemas(){const e=this.opts.schemas;if(!e)return;if(Array.isArray(e))this.addSchema(e);else for(const t in e)this.addSchema(e[t],t)}function addInitialFormats(){for(const e in this.opts.formats){const t=this.opts.formats[e];if(t)this.addFormat(e,t)}}function addInitialKeywords(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(const t in e){const r=e[t];if(!r.keyword)r.keyword=t;this.addKeyword(r)}}function getMetaSchemaOptions(){const e={...this.opts};for(const t of g)delete e[t];return e}const x={log(){},warn(){},error(){}};function getLogger(e){if(e===false)return x;if(e===undefined)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}const E=/^[a-z_$][a-z0-9_$:-]*$/i;function checkKeyword(e,t){const{RULES:r}=this;(0,u.eachItem)(e,(e=>{if(r.keywords[e])throw new Error(`Keyword ${e} is already defined`);if(!E.test(e))throw new Error(`Keyword ${e} has invalid name`)}));if(!t)return;if(t.$data&&!("code"in t||"validate"in t)){throw new Error('$data keyword must have "code" or "validate" function')}}function addRule(e,t,r){var a;const i=t===null||t===void 0?void 0:t.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:n}=this;let s=i?n.post:n.rules.find((({type:e})=>e===r));if(!s){s={type:r,rules:[]};n.rules.push(s)}n.keywords[e]=true;if(!t)return;const o={keyword:e,definition:{...t,type:(0,d.getJSONTypes)(t.type),schemaType:(0,d.getJSONTypes)(t.schemaType)}};if(t.before)addBeforeRule.call(this,s,o,t.before);else s.rules.push(o);n.all[e]=o;(a=t.implements)===null||a===void 0?void 0:a.forEach((e=>this.addKeyword(e)))}function addBeforeRule(e,t,r){const a=e.rules.findIndex((e=>e.keyword===r));if(a>=0){e.rules.splice(a,0,t)}else{e.rules.push(t);this.logger.warn(`rule ${r} is not defined`)}}function keywordMetaschema(e){let{metaSchema:t}=e;if(t===undefined)return;if(e.$data&&this.opts.$data)t=schemaOrData(t);e.validateSchema=this.compile(t,true)}const S={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function schemaOrData(e){return{anyOf:[e,S]}}},4735:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(8206);a.code='require("ajv/dist/runtime/equal").default';t["default"]=a},100:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function ucs2length(e){const t=e.length;let r=0;let a=0;let i;while(a=55296&&i<=56319&&a{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(20);a.code='require("ajv/dist/runtime/uri").default';t["default"]=a},3111:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});class ValidationError extends Error{constructor(e){super("validation failed");this.errors=e;this.ajv=this.validation=true}}t["default"]=ValidationError},7184:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateAdditionalItems=void 0;const a=r(6035);const i=r(407);const n={message:({params:{len:e}})=>(0,a.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,a._)`{limit: ${e}}`};const s={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:n,code(e){const{parentSchema:t,it:r}=e;const{items:a}=t;if(!Array.isArray(a)){(0,i.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}validateAdditionalItems(e,a)}};function validateAdditionalItems(e,t){const{gen:r,schema:n,data:s,keyword:o,it:p}=e;p.items=true;const c=r.const("len",(0,a._)`${s}.length`);if(n===false){e.setParams({len:t.length});e.pass((0,a._)`${c} <= ${t.length}`)}else if(typeof n=="object"&&!(0,i.alwaysValidSchema)(p,n)){const i=r.var("valid",(0,a._)`${c} <= ${t.length}`);r.if((0,a.not)(i),(()=>validateItems(i)));e.ok(i)}function validateItems(n){r.forRange("i",t.length,c,(t=>{e.subschema({keyword:o,dataProp:t,dataPropType:i.Type.Num},n);if(!p.allErrors)r.if((0,a.not)(n),(()=>r.break()))}))}}t.validateAdditionalItems=validateAdditionalItems;t["default"]=s},3347:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(982);const i=r(6035);const n=r(5302);const s=r(407);const o={message:"must NOT have additional properties",params:({params:e})=>(0,i._)`{additionalProperty: ${e.additionalProperty}}`};const p={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:true,trackErrors:true,error:o,code(e){const{gen:t,schema:r,parentSchema:o,data:p,errsCount:c,it:l}=e;if(!c)throw new Error("ajv implementation error");const{allErrors:d,opts:u}=l;l.props=true;if(u.removeAdditional!=="all"&&(0,s.alwaysValidSchema)(l,r))return;const m=(0,a.allSchemaProperties)(o.properties);const h=(0,a.allSchemaProperties)(o.patternProperties);checkAdditionalProperties();e.ok((0,i._)`${c} === ${n.default.errors}`);function checkAdditionalProperties(){t.forIn("key",p,(e=>{if(!m.length&&!h.length)additionalPropertyCode(e);else t.if(isAdditional(e),(()=>additionalPropertyCode(e)))}))}function isAdditional(r){let n;if(m.length>8){const e=(0,s.schemaRefOrVal)(l,o.properties,"properties");n=(0,a.isOwnProperty)(t,e,r)}else if(m.length){n=(0,i.or)(...m.map((e=>(0,i._)`${r} === ${e}`)))}else{n=i.nil}if(h.length){n=(0,i.or)(n,...h.map((t=>(0,i._)`${(0,a.usePattern)(e,t)}.test(${r})`)))}return(0,i.not)(n)}function deleteAdditional(e){t.code((0,i._)`delete ${p}[${e}]`)}function additionalPropertyCode(a){if(u.removeAdditional==="all"||u.removeAdditional&&r===false){deleteAdditional(a);return}if(r===false){e.setParams({additionalProperty:a});e.error();if(!d)t.break();return}if(typeof r=="object"&&!(0,s.alwaysValidSchema)(l,r)){const r=t.name("valid");if(u.removeAdditional==="failing"){applyAdditionalSchema(a,r,false);t.if((0,i.not)(r),(()=>{e.reset();deleteAdditional(a)}))}else{applyAdditionalSchema(a,r);if(!d)t.if((0,i.not)(r),(()=>t.break()))}}}function applyAdditionalSchema(t,r,a){const i={keyword:"additionalProperties",dataProp:t,dataPropType:s.Type.Str};if(a===false){Object.assign(i,{compositeRule:true,createErrors:false,allErrors:false})}e.subschema(i,r)}}};t["default"]=p},8870:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(407);const i={keyword:"allOf",schemaType:"array",code(e){const{gen:t,schema:r,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");const n=t.name("valid");r.forEach(((t,r)=>{if((0,a.alwaysValidSchema)(i,t))return;const s=e.subschema({keyword:"allOf",schemaProp:r},n);e.ok(n);e.mergeEvaluated(s)}))}};t["default"]=i},7155:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(982);const i={keyword:"anyOf",schemaType:"array",trackErrors:true,code:a.validateUnion,error:{message:"must match a schema in anyOf"}};t["default"]=i},8711:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i=r(407);const n={message:({params:{min:e,max:t}})=>t===undefined?(0,a.str)`must contain at least ${e} valid item(s)`:(0,a.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===undefined?(0,a._)`{minContains: ${e}}`:(0,a._)`{minContains: ${e}, maxContains: ${t}}`};const s={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:true,error:n,code(e){const{gen:t,schema:r,parentSchema:n,data:s,it:o}=e;let p;let c;const{minContains:l,maxContains:d}=n;if(o.opts.next){p=l===undefined?1:l;c=d}else{p=1}const u=t.const("len",(0,a._)`${s}.length`);e.setParams({min:p,max:c});if(c===undefined&&p===0){(0,i.checkStrictMode)(o,`"minContains" == 0 without "maxContains": "contains" keyword ignored`);return}if(c!==undefined&&p>c){(0,i.checkStrictMode)(o,`"minContains" > "maxContains" is always invalid`);e.fail();return}if((0,i.alwaysValidSchema)(o,r)){let t=(0,a._)`${u} >= ${p}`;if(c!==undefined)t=(0,a._)`${t} && ${u} <= ${c}`;e.pass(t);return}o.items=true;const m=t.name("valid");if(c===undefined&&p===1){validateItems(m,(()=>t.if(m,(()=>t.break()))))}else if(p===0){t.let(m,true);if(c!==undefined)t.if((0,a._)`${s}.length > 0`,validateItemsWithCount)}else{t.let(m,false);validateItemsWithCount()}e.result(m,(()=>e.reset()));function validateItemsWithCount(){const e=t.name("_valid");const r=t.let("count",0);validateItems(e,(()=>t.if(e,(()=>checkLimits(r)))))}function validateItems(r,a){t.forRange("i",0,u,(t=>{e.subschema({keyword:"contains",dataProp:t,dataPropType:i.Type.Num,compositeRule:true},r);a()}))}function checkLimits(e){t.code((0,a._)`${e}++`);if(c===undefined){t.if((0,a._)`${e} >= ${p}`,(()=>t.assign(m,true).break()))}else{t.if((0,a._)`${e} > ${c}`,(()=>t.assign(m,false).break()));if(p===1)t.assign(m,true);else t.if((0,a._)`${e} >= ${p}`,(()=>t.assign(m,true)))}}}};t["default"]=s},6482:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;const a=r(6035);const i=r(407);const n=r(982);t.error={message:({params:{property:e,depsCount:t,deps:r}})=>{const i=t===1?"property":"properties";return(0,a.str)`must have ${i} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:i}})=>(0,a._)`{property: ${e}, @@ -38,7 +38,7 @@ MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ -var e;(function(e){(function(t){var r=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:Function("return this;")();var a=makeExporter(e);if(typeof r.Reflect==="undefined"){r.Reflect=e}else{a=makeExporter(r.Reflect,a)}t(a);function makeExporter(e,t){return function(r,a){if(typeof e[r]!=="function"){Object.defineProperty(e,r,{configurable:true,writable:true,value:a})}if(t)t(r,a)}}})((function(e){var t=Object.prototype.hasOwnProperty;var r=typeof Symbol==="function";var a=r&&typeof Symbol.toPrimitive!=="undefined"?Symbol.toPrimitive:"@@toPrimitive";var i=r&&typeof Symbol.iterator!=="undefined"?Symbol.iterator:"@@iterator";var n=typeof Object.create==="function";var s={__proto__:[]}instanceof Array;var o=!n&&!s;var p={create:n?function(){return MakeDictionary(Object.create(null))}:s?function(){return MakeDictionary({__proto__:null})}:function(){return MakeDictionary({})},has:o?function(e,r){return t.call(e,r)}:function(e,t){return t in e},get:o?function(e,r){return t.call(e,r)?e[r]:undefined}:function(e,t){return e[t]}};var c=Object.getPrototypeOf(Function);var l=typeof process==="object"&&process.env&&process.env["REFLECT_METADATA_USE_MAP_POLYFILL"]==="true";var d=!l&&typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:CreateMapPolyfill();var u=!l&&typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:CreateSetPolyfill();var m=!l&&typeof WeakMap==="function"?WeakMap:CreateWeakMapPolyfill();var h=new m;function decorate(e,t,r,a){if(!IsUndefined(r)){if(!IsArray(e))throw new TypeError;if(!IsObject(t))throw new TypeError;if(!IsObject(a)&&!IsUndefined(a)&&!IsNull(a))throw new TypeError;if(IsNull(a))a=undefined;r=ToPropertyKey(r);return DecorateProperty(e,t,r,a)}else{if(!IsArray(e))throw new TypeError;if(!IsConstructor(t))throw new TypeError;return DecorateConstructor(e,t)}}e("decorate",decorate);function metadata(e,t){function decorator(r,a){if(!IsObject(r))throw new TypeError;if(!IsUndefined(a)&&!IsPropertyKey(a))throw new TypeError;OrdinaryDefineOwnMetadata(e,t,r,a)}return decorator}e("metadata",metadata);function defineMetadata(e,t,r,a){if(!IsObject(r))throw new TypeError;if(!IsUndefined(a))a=ToPropertyKey(a);return OrdinaryDefineOwnMetadata(e,t,r,a)}e("defineMetadata",defineMetadata);function hasMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryHasMetadata(e,t,r)}e("hasMetadata",hasMetadata);function hasOwnMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryHasOwnMetadata(e,t,r)}e("hasOwnMetadata",hasOwnMetadata);function getMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryGetMetadata(e,t,r)}e("getMetadata",getMetadata);function getOwnMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryGetOwnMetadata(e,t,r)}e("getOwnMetadata",getOwnMetadata);function getMetadataKeys(e,t){if(!IsObject(e))throw new TypeError;if(!IsUndefined(t))t=ToPropertyKey(t);return OrdinaryMetadataKeys(e,t)}e("getMetadataKeys",getMetadataKeys);function getOwnMetadataKeys(e,t){if(!IsObject(e))throw new TypeError;if(!IsUndefined(t))t=ToPropertyKey(t);return OrdinaryOwnMetadataKeys(e,t)}e("getOwnMetadataKeys",getOwnMetadataKeys);function deleteMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);var a=GetOrCreateMetadataMap(t,r,false);if(IsUndefined(a))return false;if(!a.delete(e))return false;if(a.size>0)return true;var i=h.get(t);i.delete(r);if(i.size>0)return true;h.delete(t);return true}e("deleteMetadata",deleteMetadata);function DecorateConstructor(e,t){for(var r=e.length-1;r>=0;--r){var a=e[r];var i=a(t);if(!IsUndefined(i)&&!IsNull(i)){if(!IsConstructor(i))throw new TypeError;t=i}}return t}function DecorateProperty(e,t,r,a){for(var i=e.length-1;i>=0;--i){var n=e[i];var s=n(t,r,a);if(!IsUndefined(s)&&!IsNull(s)){if(!IsObject(s))throw new TypeError;a=s}}return a}function GetOrCreateMetadataMap(e,t,r){var a=h.get(e);if(IsUndefined(a)){if(!r)return undefined;a=new d;h.set(e,a)}var i=a.get(t);if(IsUndefined(i)){if(!r)return undefined;i=new d;a.set(t,i)}return i}function OrdinaryHasMetadata(e,t,r){var a=OrdinaryHasOwnMetadata(e,t,r);if(a)return true;var i=OrdinaryGetPrototypeOf(t);if(!IsNull(i))return OrdinaryHasMetadata(e,i,r);return false}function OrdinaryHasOwnMetadata(e,t,r){var a=GetOrCreateMetadataMap(t,r,false);if(IsUndefined(a))return false;return ToBoolean(a.has(e))}function OrdinaryGetMetadata(e,t,r){var a=OrdinaryHasOwnMetadata(e,t,r);if(a)return OrdinaryGetOwnMetadata(e,t,r);var i=OrdinaryGetPrototypeOf(t);if(!IsNull(i))return OrdinaryGetMetadata(e,i,r);return undefined}function OrdinaryGetOwnMetadata(e,t,r){var a=GetOrCreateMetadataMap(t,r,false);if(IsUndefined(a))return undefined;return a.get(e)}function OrdinaryDefineOwnMetadata(e,t,r,a){var i=GetOrCreateMetadataMap(r,a,true);i.set(e,t)}function OrdinaryMetadataKeys(e,t){var r=OrdinaryOwnMetadataKeys(e,t);var a=OrdinaryGetPrototypeOf(e);if(a===null)return r;var i=OrdinaryMetadataKeys(a,t);if(i.length<=0)return r;if(r.length<=0)return i;var n=new u;var s=[];for(var o=0,p=r;o=0&&e=this._keys.length){this._index=-1;this._keys=t;this._values=t}else{this._index++}return{value:r,done:false}}return{value:undefined,done:true}};MapIterator.prototype.throw=function(e){if(this._index>=0){this._index=-1;this._keys=t;this._values=t}throw e};MapIterator.prototype.return=function(e){if(this._index>=0){this._index=-1;this._keys=t;this._values=t}return{value:e,done:true}};return MapIterator}();return function(){function Map(){this._keys=[];this._values=[];this._cacheKey=e;this._cacheIndex=-2}Object.defineProperty(Map.prototype,"size",{get:function(){return this._keys.length},enumerable:true,configurable:true});Map.prototype.has=function(e){return this._find(e,false)>=0};Map.prototype.get=function(e){var t=this._find(e,false);return t>=0?this._values[t]:undefined};Map.prototype.set=function(e,t){var r=this._find(e,true);this._values[r]=t;return this};Map.prototype.delete=function(t){var r=this._find(t,false);if(r>=0){var a=this._keys.length;for(var i=r+1;i{const a=r(9491);const i=r(1017);const n=r(7147);let s=undefined;try{s=r(1957)}catch(e){}const o={nosort:true,silent:true};let p=0;const c=process.platform==="win32";const defaults=e=>{const t=["unlink","chmod","stat","lstat","rmdir","readdir"];t.forEach((t=>{e[t]=e[t]||n[t];t=t+"Sync";e[t]=e[t]||n[t]}));e.maxBusyTries=e.maxBusyTries||3;e.emfileWait=e.emfileWait||1e3;if(e.glob===false){e.disableGlob=true}if(e.disableGlob!==true&&s===undefined){throw Error("glob dependency not found, set `options.disableGlob = true` if intentional")}e.disableGlob=e.disableGlob||false;e.glob=e.glob||o};const rimraf=(e,t,r)=>{if(typeof t==="function"){r=t;t={}}a(e,"rimraf: missing path");a.equal(typeof e,"string","rimraf: path should be a string");a.equal(typeof r,"function","rimraf: callback function required");a(t,"rimraf: invalid options argument provided");a.equal(typeof t,"object","rimraf: options should be object");defaults(t);let i=0;let n=null;let o=0;const next=e=>{n=n||e;if(--o===0)r(n)};const afterGlob=(e,a)=>{if(e)return r(e);o=a.length;if(o===0)return r();a.forEach((e=>{const CB=r=>{if(r){if((r.code==="EBUSY"||r.code==="ENOTEMPTY"||r.code==="EPERM")&&irimraf_(e,t,CB)),i*100)}if(r.code==="EMFILE"&&primraf_(e,t,CB)),p++)}if(r.code==="ENOENT")r=null}p=0;next(r)};rimraf_(e,t,CB)}))};if(t.disableGlob||!s.hasMagic(e))return afterGlob(null,[e]);t.lstat(e,((r,a)=>{if(!r)return afterGlob(null,[e]);s(e,t.glob,afterGlob)}))};const rimraf_=(e,t,r)=>{a(e);a(t);a(typeof r==="function");t.lstat(e,((a,i)=>{if(a&&a.code==="ENOENT")return r(null);if(a&&a.code==="EPERM"&&c)fixWinEPERM(e,t,a,r);if(i&&i.isDirectory())return rmdir(e,t,a,r);t.unlink(e,(a=>{if(a){if(a.code==="ENOENT")return r(null);if(a.code==="EPERM")return c?fixWinEPERM(e,t,a,r):rmdir(e,t,a,r);if(a.code==="EISDIR")return rmdir(e,t,a,r)}return r(a)}))}))};const fixWinEPERM=(e,t,r,i)=>{a(e);a(t);a(typeof i==="function");t.chmod(e,438,(a=>{if(a)i(a.code==="ENOENT"?null:r);else t.stat(e,((a,n)=>{if(a)i(a.code==="ENOENT"?null:r);else if(n.isDirectory())rmdir(e,t,r,i);else t.unlink(e,i)}))}))};const fixWinEPERMSync=(e,t,r)=>{a(e);a(t);try{t.chmodSync(e,438)}catch(e){if(e.code==="ENOENT")return;else throw r}let i;try{i=t.statSync(e)}catch(e){if(e.code==="ENOENT")return;else throw r}if(i.isDirectory())rmdirSync(e,t,r);else t.unlinkSync(e)};const rmdir=(e,t,r,i)=>{a(e);a(t);a(typeof i==="function");t.rmdir(e,(a=>{if(a&&(a.code==="ENOTEMPTY"||a.code==="EEXIST"||a.code==="EPERM"))rmkids(e,t,i);else if(a&&a.code==="ENOTDIR")i(r);else i(a)}))};const rmkids=(e,t,r)=>{a(e);a(t);a(typeof r==="function");t.readdir(e,((a,n)=>{if(a)return r(a);let s=n.length;if(s===0)return t.rmdir(e,r);let o;n.forEach((a=>{rimraf(i.join(e,a),t,(a=>{if(o)return;if(a)return r(o=a);if(--s===0)t.rmdir(e,r)}))}))}))};const rimrafSync=(e,t)=>{t=t||{};defaults(t);a(e,"rimraf: missing path");a.equal(typeof e,"string","rimraf: path should be a string");a(t,"rimraf: missing options");a.equal(typeof t,"object","rimraf: options should be object");let r;if(t.disableGlob||!s.hasMagic(e)){r=[e]}else{try{t.lstatSync(e);r=[e]}catch(a){r=s.sync(e,t.glob)}}if(!r.length)return;for(let e=0;e{a(e);a(t);try{t.rmdirSync(e)}catch(a){if(a.code==="ENOENT")return;if(a.code==="ENOTDIR")throw r;if(a.code==="ENOTEMPTY"||a.code==="EEXIST"||a.code==="EPERM")rmkidsSync(e,t)}};const rmkidsSync=(e,t)=>{a(e);a(t);t.readdirSync(e).forEach((r=>rimrafSync(i.join(e,r),t)));const r=c?100:1;let n=0;do{let a=true;try{const i=t.rmdirSync(e,t);a=false;return i}finally{if(++n{var a=Object.create;var i=Object.defineProperty;var n=Object.defineProperties;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertyNames;var c=Object.getOwnPropertySymbols;var l=Object.getPrototypeOf;var d=Object.prototype.hasOwnProperty;var u=Object.prototype.propertyIsEnumerable;var __defNormalProp=(e,t,r)=>t in e?i(e,t,{enumerable:true,configurable:true,writable:true,value:r}):e[t]=r;var __spreadValues=(e,t)=>{for(var r in t||(t={}))if(d.call(t,r))__defNormalProp(e,r,t[r]);if(c)for(var r of c(t)){if(u.call(t,r))__defNormalProp(e,r,t[r])}return e};var __spreadProps=(e,t)=>n(e,o(t));var __markAsModule=e=>i(e,"__esModule",{value:true});var __esm=(e,t)=>function __init(){return e&&(t=(0,e[p(e)[0]])(e=0)),t};var __commonJS=(e,t)=>function __require(){return t||(0,e[p(e)[0]])((t={exports:{}}).exports,t),t.exports};var __export=(e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:true})};var __reExport=(e,t,r,a)=>{if(t&&typeof t==="object"||typeof t==="function"){for(let n of p(t))if(!d.call(e,n)&&(r||n!=="default"))i(e,n,{get:()=>t[n],enumerable:!(a=s(t,n))||a.enumerable})}return e};var __toESM=(e,t)=>__reExport(__markAsModule(i(e!=null?a(l(e)):{},"default",!t&&e&&e.__esModule?{get:()=>e.default,enumerable:true}:{value:e,enumerable:true})),e);var m=(e=>(t,r)=>e&&e.get(t)||(r=__reExport(__markAsModule({}),t,1),e&&e.set(t,r),r))(typeof WeakMap!=="undefined"?new WeakMap:0);var __async=(e,t,r)=>new Promise(((a,i)=>{var fulfilled=e=>{try{step(r.next(e))}catch(e){i(e)}};var rejected=e=>{try{step(r.throw(e))}catch(e){i(e)}};var step=e=>e.done?a(e.value):Promise.resolve(e.value).then(fulfilled,rejected);step((r=r.apply(e,t)).next())}));var h;var g=__esm({"src/lib/errors/git-error.ts"(){h=class extends Error{constructor(e,t){super(t);this.task=e;Object.setPrototypeOf(this,new.target.prototype)}}}});var v;var y=__esm({"src/lib/errors/git-response-error.ts"(){g();v=class extends h{constructor(e,t){super(void 0,t||String(e));this.git=e}}}});var b;var w=__esm({"src/lib/errors/git-construct-error.ts"(){g();b=class extends h{constructor(e,t){super(void 0,t);this.config=e}}}});var x;var E=__esm({"src/lib/errors/git-plugin-error.ts"(){g();x=class extends h{constructor(e,t,r){super(e,r);this.task=e;this.plugin=t;Object.setPrototypeOf(this,new.target.prototype)}}}});var S;var T=__esm({"src/lib/errors/task-configuration-error.ts"(){g();S=class extends h{constructor(e){super(void 0,e)}}}});function asFunction(e){return typeof e==="function"?e:O}function isUserFunction(e){return typeof e==="function"&&e!==O}function splitOn(e,t){const r=e.indexOf(t);if(r<=0){return[e,""]}return[e.substr(0,r),e.substr(r+1)]}function first(e,t=0){return isArrayLike(e)&&e.length>t?e[t]:void 0}function last(e,t=0){if(isArrayLike(e)&&e.length>t){return e[e.length-1-t]}}function isArrayLike(e){return!!(e&&typeof e.length==="number")}function toLinesWithContent(e="",t=true,r="\n"){return e.split(r).reduce(((e,r)=>{const a=t?r.trim():r;if(a){e.push(a)}return e}),[])}function forEachLineWithContent(e,t){return toLinesWithContent(e,true).map((e=>t(e)))}function folderExists(e){return(0,k.exists)(e,k.FOLDER)}function append(e,t){if(Array.isArray(e)){if(!e.includes(t)){e.push(t)}}else{e.add(t)}return t}function including(e,t){if(Array.isArray(e)&&!e.includes(t)){e.push(t)}return e}function remove(e,t){if(Array.isArray(e)){const r=e.indexOf(t);if(r>=0){e.splice(r,1)}}else{e.delete(t)}return t}function asArray(e){return Array.isArray(e)?e:[e]}function asStringArray(e){return asArray(e).map(String)}function asNumber(e,t=0){if(e==null){return t}const r=parseInt(e,10);return isNaN(r)?t:r}function prefixedArray(e,t){const r=[];for(let a=0,i=e.length;at in e?{[t]:e[t]}:{})))}function delay(e=0){return new Promise((t=>setTimeout(t,e)))}var k,C,O,P;var A=__esm({"src/lib/utils/util.ts"(){k=r(4751);C="\0";O=()=>{};P=Object.prototype.toString.call.bind(Object.prototype.toString)}});function filterType(e,t,r){if(t(e)){return e}return arguments.length>2?r:void 0}function filterPrimitives(e,t){return/number|string|boolean/.test(typeof e)&&(!t||!t.includes(typeof e))}function filterPlainObject(e){return!!e&&P(e)==="[object Object]"}function filterFunction(e){return typeof e==="function"}var D,N,R,j,F;var I=__esm({"src/lib/utils/argument-filters.ts"(){A();D=e=>Array.isArray(e);N=e=>typeof e==="string";R=e=>Array.isArray(e)&&e.every(N);j=e=>N(e)||Array.isArray(e)&&e.every(N);F=e=>{if(e==null||"number|boolean|function".includes(typeof e)){return false}return Array.isArray(e)||typeof e==="string"||typeof e.length==="number"}}});var $;var B=__esm({"src/lib/utils/exit-codes.ts"(){$=(e=>{e[e["SUCCESS"]=0]="SUCCESS";e[e["ERROR"]=1]="ERROR";e[e["NOT_FOUND"]=-2]="NOT_FOUND";e[e["UNCLEAN"]=128]="UNCLEAN";return e})($||{})}});var L;var M=__esm({"src/lib/utils/git-output-streams.ts"(){L=class{constructor(e,t){this.stdOut=e;this.stdErr=t}asStrings(){return new L(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}});var U,G;var V=__esm({"src/lib/utils/line-parser.ts"(){U=class{constructor(e,t){this.matches=[];this.parse=(e,t)=>{this.resetMatches();if(!this._regExp.every(((t,r)=>this.addMatch(t,r,e(r))))){return false}return this.useMatches(t,this.prepareMatches())!==false};this._regExp=Array.isArray(e)?e:[e];if(t){this.useMatches=t}}useMatches(e,t){throw new Error(`LineParser:useMatches not implemented`)}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(e,t,r){const a=r&&e.exec(r);if(a){this.pushMatch(t,a)}return!!a}pushMatch(e,t){this.matches.push(...t.slice(1))}};G=class extends U{addMatch(e,t,r){return/^remote:\s/.test(String(r))&&super.addMatch(e,t,r)}pushMatch(e,t){if(e>0||t.length>1){super.pushMatch(e,t)}}}}});function createInstanceConfig(...e){const t=process.cwd();const r=Object.assign(__spreadValues({baseDir:t},q),...e.filter((e=>typeof e==="object"&&e)));r.baseDir=r.baseDir||t;r.trimmed=r.trimmed===true;return r}var q;var z=__esm({"src/lib/utils/simple-git-options.ts"(){q={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:false}}});function appendTaskOptions(e,t=[]){if(!filterPlainObject(e)){return t}return Object.keys(e).reduce(((t,r)=>{const a=e[r];if(filterPrimitives(a,["boolean"])){t.push(r+"="+a)}else{t.push(r)}return t}),t)}function getTrailingOptions(e,t=0,r=false){const a=[];for(let r=0,i=t<0?e.length:t;r{for(let i=toLinesWithContent(r,a),n=0,s=i.length;n{if(n+e>=s){return}return i[n+e]};t.some((({parse:t})=>t(line,e)))}}));return e}var K=__esm({"src/lib/utils/task-parser.ts"(){A()}});var W={};__export(W,{ExitCodes:()=>$,GitOutputStreams:()=>L,LineParser:()=>U,NOOP:()=>O,NULL:()=>C,RemoteLineParser:()=>G,append:()=>append,appendTaskOptions:()=>appendTaskOptions,asArray:()=>asArray,asFunction:()=>asFunction,asNumber:()=>asNumber,asStringArray:()=>asStringArray,bufferToString:()=>bufferToString,callTaskParser:()=>callTaskParser,createInstanceConfig:()=>createInstanceConfig,delay:()=>delay,filterArray:()=>D,filterFunction:()=>filterFunction,filterHasLength:()=>F,filterPlainObject:()=>filterPlainObject,filterPrimitives:()=>filterPrimitives,filterString:()=>N,filterStringArray:()=>R,filterStringOrStringArray:()=>j,filterType:()=>filterType,first:()=>first,folderExists:()=>folderExists,forEachLineWithContent:()=>forEachLineWithContent,getTrailingOptions:()=>getTrailingOptions,including:()=>including,isUserFunction:()=>isUserFunction,last:()=>last,objectToString:()=>P,parseStringResponse:()=>parseStringResponse,pick:()=>pick,prefixedArray:()=>prefixedArray,remove:()=>remove,splitOn:()=>splitOn,toLinesWithContent:()=>toLinesWithContent,trailingFunctionArgument:()=>trailingFunctionArgument,trailingOptionsArgument:()=>trailingOptionsArgument});var J=__esm({"src/lib/utils/index.ts"(){I();B();M();V();z();H();K();A()}});var Y={};__export(Y,{CheckRepoActions:()=>Q,checkIsBareRepoTask:()=>checkIsBareRepoTask,checkIsRepoRootTask:()=>checkIsRepoRootTask,checkIsRepoTask:()=>checkIsRepoTask});function checkIsRepoTask(e){switch(e){case"bare":return checkIsBareRepoTask();case"root":return checkIsRepoRootTask()}const t=["rev-parse","--is-inside-work-tree"];return{commands:t,format:"utf-8",onError:X,parser:Z}}function checkIsRepoRootTask(){const e=["rev-parse","--git-dir"];return{commands:e,format:"utf-8",onError:X,parser(e){return/^\.(git)?$/.test(e.trim())}}}function checkIsBareRepoTask(){const e=["rev-parse","--is-bare-repository"];return{commands:e,format:"utf-8",onError:X,parser:Z}}function isNotRepoMessage(e){return/(Not a git repository|Kein Git-Repository)/i.test(String(e))}var Q,X,Z;var ee=__esm({"src/lib/tasks/check-is-repo.ts"(){J();Q=(e=>{e["BARE"]="bare";e["IN_TREE"]="tree";e["IS_REPO_ROOT"]="root";return e})(Q||{});X=({exitCode:e},t,r,a)=>{if(e===128&&isNotRepoMessage(t)){return r(Buffer.from("false"))}a(t)};Z=e=>e.trim()==="true"}});function cleanSummaryParser(e,t){const r=new te(e);const a=e?ae:re;toLinesWithContent(t).forEach((e=>{const t=e.replace(a,"");r.paths.push(t);(ie.test(t)?r.folders:r.files).push(t)}));return r}var te,re,ae,ie;var ne=__esm({"src/lib/responses/CleanSummary.ts"(){J();te=class{constructor(e){this.dryRun=e;this.paths=[];this.files=[];this.folders=[]}};re=/^[a-z]+\s*/i;ae=/^[a-z]+\s+[a-z]+\s*/i;ie=/\/$/}});var se={};__export(se,{EMPTY_COMMANDS:()=>oe,adhocExecTask:()=>adhocExecTask,configurationErrorTask:()=>configurationErrorTask,isBufferTask:()=>isBufferTask,isEmptyTask:()=>isEmptyTask,straightThroughBufferTask:()=>straightThroughBufferTask,straightThroughStringTask:()=>straightThroughStringTask});function adhocExecTask(e){return{commands:oe,format:"empty",parser:e}}function configurationErrorTask(e){return{commands:oe,format:"empty",parser(){throw typeof e==="string"?new S(e):e}}}function straightThroughStringTask(e,t=false){return{commands:e,format:"utf-8",parser(e){return t?String(e).trim():e}}}function straightThroughBufferTask(e){return{commands:e,format:"buffer",parser(e){return e}}}function isBufferTask(e){return e.format==="buffer"}function isEmptyTask(e){return e.format==="empty"||!e.commands.length}var oe;var pe=__esm({"src/lib/tasks/task.ts"(){T();oe=[]}});var ce={};__export(ce,{CONFIG_ERROR_INTERACTIVE_MODE:()=>le,CONFIG_ERROR_MODE_REQUIRED:()=>de,CONFIG_ERROR_UNKNOWN_OPTION:()=>ue,CleanOptions:()=>me,cleanTask:()=>cleanTask,cleanWithOptionsTask:()=>cleanWithOptionsTask,isCleanOptionsArray:()=>isCleanOptionsArray});function cleanWithOptionsTask(e,t){const{cleanMode:r,options:a,valid:i}=getCleanOptions(e);if(!r){return configurationErrorTask(de)}if(!i.options){return configurationErrorTask(ue+JSON.stringify(e))}a.push(...t);if(a.some(isInteractiveMode)){return configurationErrorTask(le)}return cleanTask(r,a)}function cleanTask(e,t){const r=["clean",`-${e}`,...t];return{commands:r,format:"utf-8",parser(t){return cleanSummaryParser(e==="n",t)}}}function isCleanOptionsArray(e){return Array.isArray(e)&&e.every((e=>fe.has(e)))}function getCleanOptions(e){let t;let r=[];let a={cleanMode:false,options:true};e.replace(/[^a-z]i/g,"").split("").forEach((e=>{if(isCleanMode(e)){t=e;a.cleanMode=true}else{a.options=a.options&&isKnownOption(r[r.length]=`-${e}`)}}));return{cleanMode:t,options:r,valid:a}}function isCleanMode(e){return e==="f"||e==="n"}function isKnownOption(e){return/^-[a-z]$/i.test(e)&&fe.has(e.charAt(1))}function isInteractiveMode(e){if(/^-[^\-]/.test(e)){return e.indexOf("i")>0}return e==="--interactive"}var le,de,ue,me,fe;var he=__esm({"src/lib/tasks/clean.ts"(){ne();J();pe();le="Git clean interactive mode is not supported";de='Git clean mode parameter ("n" or "f") is required';ue="Git clean unknown option found in: ";me=(e=>{e["DRY_RUN"]="n";e["FORCE"]="f";e["IGNORED_INCLUDED"]="x";e["IGNORED_ONLY"]="X";e["EXCLUDING"]="e";e["QUIET"]="q";e["RECURSIVE"]="d";return e})(me||{});fe=new Set(["i",...asStringArray(Object.values(me))])}});function configListParser(e){const t=new ge;for(const r of configParser(e)){t.addValue(r.file,String(r.key),r.value)}return t}function configGetParser(e,t){let r=null;const a=[];const i=new Map;for(const n of configParser(e,t)){if(n.key!==t){continue}a.push(r=n.value);if(!i.has(n.file)){i.set(n.file,[])}i.get(n.file).push(r)}return{key:t,paths:Array.from(i.keys()),scopes:i,value:r,values:a}}function configFilePath(e){return e.replace(/^(file):/,"")}function*configParser(e,t=null){const r=e.split("\0");for(let e=0,a=r.length-1;eObject.assign(e,this.values[t])),{})}return this._all}addFile(e){if(!(e in this.values)){const t=last(this.files);this.values[e]=t?Object.create(this.values[t]):{};this.files.push(e)}return this.values[e]}addValue(e,t,r){const a=this.addFile(e);if(!a.hasOwnProperty(t)){a[t]=r}else if(Array.isArray(a[t])){a[t].push(r)}else{a[t]=[a[t],r]}this._all=void 0}}}});function asConfigScope(e,t){if(typeof e==="string"&&ye.hasOwnProperty(e)){return e}return t}function addConfigTask(e,t,r,a){const i=["config",`--${a}`];if(r){i.push("--add")}i.push(e,t);return{commands:i,format:"utf-8",parser(e){return e}}}function getConfigTask(e,t){const r=["config","--null","--show-origin","--get-all",e];if(t){r.splice(1,0,`--${t}`)}return{commands:r,format:"utf-8",parser(t){return configGetParser(t,e)}}}function listConfigTask(e){const t=["config","--list","--show-origin","--null"];if(e){t.push(`--${e}`)}return{commands:t,format:"utf-8",parser(e){return configListParser(e)}}}function config_default(){return{addConfig(e,t,...r){return this._runTask(addConfigTask(e,t,r[0]===true,asConfigScope(r[1],"local")),trailingFunctionArgument(arguments))},getConfig(e,t){return this._runTask(getConfigTask(e,asConfigScope(t,void 0)),trailingFunctionArgument(arguments))},listConfig(...e){return this._runTask(listConfigTask(asConfigScope(e[0],void 0)),trailingFunctionArgument(arguments))}}}var ye;var be=__esm({"src/lib/tasks/config.ts"(){ve();J();ye=(e=>{e["system"]="system";e["global"]="global";e["local"]="local";e["worktree"]="worktree";return e})(ye||{})}});function grepQueryBuilder(...e){return(new Ee).param(...e)}function parseGrep(e){const t=new Set;const r={};forEachLineWithContent(e,(e=>{const[a,i,n]=e.split(C);t.add(a);(r[a]=r[a]||[]).push({line:asNumber(i),path:a,preview:n})}));return{paths:t,results:r}}function grep_default(){return{grep(e){const t=trailingFunctionArgument(arguments);const r=getTrailingOptions(arguments);for(const e of we){if(r.includes(e)){return this._runTask(configurationErrorTask(`git.grep: use of "${e}" is not supported.`),t)}}if(typeof e==="string"){e=grepQueryBuilder().param(e)}const a=["grep","--null","-n","--full-name",...r,...e];return this._runTask({commands:a,format:"utf-8",parser(e){return parseGrep(e)}},t)}}}var we,xe,_e,Ee;var Se=__esm({"src/lib/tasks/grep.ts"(){J();pe();we=["-h"];xe=Symbol("grepQuery");Ee=class{constructor(){this[_e]=[]}*[(_e=xe,Symbol.iterator)](){for(const e of this[xe]){yield e}}and(...e){e.length&&this[xe].push("--and","(",...prefixedArray(e,"-e"),")");return this}param(...e){this[xe].push(...prefixedArray(e,"-e"));return this}}}});var Te={};__export(Te,{ResetMode:()=>ke,getResetMode:()=>getResetMode,resetTask:()=>resetTask});function resetTask(e,t){const r=["reset"];if(isValidResetMode(e)){r.push(`--${e}`)}r.push(...t);return straightThroughStringTask(r)}function getResetMode(e){if(isValidResetMode(e)){return e}switch(typeof e){case"string":case"undefined":return"soft"}return}function isValidResetMode(e){return Ce.includes(e)}var ke,Ce;var Oe=__esm({"src/lib/tasks/reset.ts"(){pe();ke=(e=>{e["MIXED"]="mixed";e["SOFT"]="soft";e["HARD"]="hard";e["MERGE"]="merge";e["KEEP"]="keep";return e})(ke||{});Ce=Array.from(Object.values(ke))}});var Pe={};__export(Pe,{CheckRepoActions:()=>Q,CleanOptions:()=>me,GitConfigScope:()=>ye,GitConstructError:()=>b,GitError:()=>h,GitPluginError:()=>x,GitResponseError:()=>v,ResetMode:()=>ke,TaskConfigurationError:()=>S,grepQueryBuilder:()=>grepQueryBuilder});var Ae=__esm({"src/lib/api.ts"(){w();g();E();y();T();ee();he();be();Se();Oe()}});function abortPlugin(e){if(!e){return}const t={type:"spawn.after",action(t,r){function kill(){r.kill(new x(void 0,"abort","Abort signal received"))}e.addEventListener("abort",kill);r.spawned.on("close",(()=>e.removeEventListener("abort",kill)))}};const r={type:"spawn.before",action(t,r){if(e.aborted){r.kill(new x(void 0,"abort","Abort already signaled"))}}};return[r,t]}var De=__esm({"src/lib/plugins/abort-plugin.ts"(){E()}});function isConfigSwitch(e){return e.trim().toLowerCase()==="-c"}function preventProtocolOverride(e,t){if(!isConfigSwitch(e)){return}if(!/^\s*protocol(.[a-z]+)?.allow/.test(t)){return}throw new x(void 0,"unsafe","Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol")}function blockUnsafeOperationsPlugin({allowUnsafeProtocolOverride:e=false}={}){return{type:"spawn.args",action(t,r){t.forEach(((r,a)=>{const i=adelay(e)))).then(r.done)}return{type:"spawn.after",action(e,t){return __async(this,arguments,(function*(e,{spawned:t,close:r}){var a,i;const n=createEvents();let s=true;let quickClose=()=>void(s=false);(a=t.stdout)==null?void 0:a.on("data",quickClose);(i=t.stderr)==null?void 0:i.on("data",quickClose);t.on("error",quickClose);t.on("close",(e=>n.close(e)));t.on("exit",(e=>n.exit(e)));try{yield n.result;if(s){yield delay(50)}r(n.exitCode)}catch(e){r(n.exitCode,e)}}))}}}var je,Fe;var Ie=__esm({"src/lib/plugins/completion-detection.plugin.ts"(){je=r(9819);J();Fe=(0,je.deferred)().promise}});function isTaskError(e){return!!(e.exitCode&&e.stdErr.length)}function getErrorMessage(e){return Buffer.concat([...e.stdOut,...e.stdErr])}function errorDetectionHandler(e=false,t=isTaskError,r=getErrorMessage){return(a,i)=>{if(!e&&a||!t(i)){return a}return r(i)}}function errorDetectionPlugin(e){return{type:"task.error",action(t,r){const a=e(t.error,{stdErr:r.stdErr,stdOut:r.stdOut,exitCode:r.exitCode});if(Buffer.isBuffer(a)){return{error:new h(void 0,a.toString("utf-8"))}}return{error:a}}}}var $e=__esm({"src/lib/plugins/error-detection.plugin.ts"(){g()}});var Be;var Le=__esm({"src/lib/plugins/plugin-store.ts"(){J();Be=class{constructor(){this.plugins=new Set}add(e){const t=[];asArray(e).forEach((e=>e&&this.plugins.add(append(t,e))));return()=>{t.forEach((e=>this.plugins.delete(e)))}}exec(e,t,r){let a=t;const i=Object.freeze(Object.create(r));for(const t of this.plugins){if(t.type===e){a=t.action(a,i)}}return a}}}});function progressMonitorPlugin(e){const t="--progress";const r=["checkout","clone","fetch","pull","push"];const a={type:"spawn.after",action(r,a){var i;if(!a.commands.includes(t)){return}(i=a.spawned.stderr)==null?void 0:i.on("data",(t=>{const r=/^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(t.toString("utf8"));if(!r){return}e({method:a.method,stage:progressEventStage(r[1]),progress:asNumber(r[2]),processed:asNumber(r[3]),total:asNumber(r[4])})}))}};const i={type:"spawn.args",action(e,a){if(!r.includes(a.method)){return e}return including(e,t)}};return[i,a]}function progressEventStage(e){return String(e.toLowerCase().split(" ",1))||"unknown"}var Me=__esm({"src/lib/plugins/progress-monitor-plugin.ts"(){J()}});var Ue=__esm({"src/lib/plugins/simple-git-plugin.ts"(){}});function spawnOptionsPlugin(e){const t=pick(e,["uid","gid"]);return{type:"spawn.options",action(e){return __spreadValues(__spreadValues({},t),e)}}}var Ge=__esm({"src/lib/plugins/spawn-options-plugin.ts"(){J()}});function timeoutPlugin({block:e}){if(e>0){return{type:"spawn.after",action(t,r){var a,i;let n;function wait(){n&&clearTimeout(n);n=setTimeout(kill,e)}function stop(){var e,t;(e=r.spawned.stdout)==null?void 0:e.off("data",wait);(t=r.spawned.stderr)==null?void 0:t.off("data",wait);r.spawned.off("exit",stop);r.spawned.off("close",stop);n&&clearTimeout(n)}function kill(){stop();r.kill(new x(void 0,"timeout",`block timeout reached`))}(a=r.spawned.stdout)==null?void 0:a.on("data",wait);(i=r.spawned.stderr)==null?void 0:i.on("data",wait);r.spawned.on("exit",stop);r.spawned.on("close",stop);wait()}}}}var Ve=__esm({"src/lib/plugins/timout-plugin.ts"(){E()}});var qe=__esm({"src/lib/plugins/index.ts"(){De();Ne();Re();Ie();$e();Le();Me();Ue();Ge();Ve()}});function createLog(){return(0,ze.default)("simple-git")}function prefixedLogger(e,t,r){if(!t||!String(t).replace(/\s*/,"")){return!r?e:(t,...a)=>{e(t,...a);r(t,...a)}}return(a,...i)=>{e(`%s ${a}`,t,...i);if(r){r(a,...i)}}}function childLoggerName(e,t,{namespace:r}){if(typeof e==="string"){return e}const a=t&&t.namespace||"";if(a.startsWith(r)){return a.substr(r.length+1)}return a||r}function createLogger(e,t,r,a=createLog()){const i=e&&`[${e}]`||"";const n=[];const s=typeof t==="string"?a.extend(t):t;const o=childLoggerName(filterType(t,N),s,a);return step(r);function sibling(t,r){return append(n,createLogger(e,o.replace(/^[^:]+/,t),r,a))}function step(t){const r=t&&`[${t}]`||"";const n=s&&prefixedLogger(s,r)||O;const o=prefixedLogger(a,`${i} ${r}`,n);return Object.assign(s?n:o,{label:e,sibling:sibling,info:o,step:step})}}var ze;var He=__esm({"src/lib/git-logger.ts"(){ze=__toESM(r(8237));J();ze.default.formatters.L=e=>String(F(e)?e.length:"-");ze.default.formatters.B=e=>{if(Buffer.isBuffer(e)){return e.toString("utf8")}return P(e)}}});var Ke,We;var Je=__esm({"src/lib/runners/tasks-pending-queue.ts"(){g();He();Ke=class{constructor(e="GitExecutor"){this.logLabel=e;this._queue=new Map}withProgress(e){return this._queue.get(e)}createProgress(e){const t=Ke.getName(e.commands[0]);const r=createLogger(this.logLabel,t);return{task:e,logger:r,name:t}}push(e){const t=this.createProgress(e);t.logger("Adding task to the queue, commands = %o",e.commands);this._queue.set(e,t);return t}fatal(e){for(const[t,{logger:r}]of Array.from(this._queue.entries())){if(t===e.task){r.info(`Failed %o`,e);r(`Fatal exception, any as-yet un-started tasks run through this executor will not be attempted`)}else{r.info(`A fatal exception occurred in a previous task, the queue has been purged: %o`,e.message)}this.complete(t)}if(this._queue.size!==0){throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`)}}complete(e){const t=this.withProgress(e);if(t){this._queue.delete(e)}}attempt(e){const t=this.withProgress(e);if(!t){throw new h(void 0,"TasksPendingQueue: attempt called for an unknown task")}t.logger("Starting task");return t}static getName(e="empty"){return`task:${e}:${++Ke.counter}`}};We=Ke;We.counter=0}});function pluginContext(e,t){return{method:first(e.commands)||"",commands:t}}function onErrorReceived(e,t){return r=>{t(`[ERROR] child process exception %o`,r);e.push(Buffer.from(String(r.stack),"ascii"))}}function onDataReceived(e,t,r,a){return i=>{r(`%s received %L bytes`,t,i);a(`%B`,i);e.push(i)}}var Ye,Qe;var Xe=__esm({"src/lib/runners/git-executor-chain.ts"(){Ye=r(2081);g();pe();J();Je();Qe=class{constructor(e,t,r){this._executor=e;this._scheduler=t;this._plugins=r;this._chain=Promise.resolve();this._queue=new We}get binary(){return this._executor.binary}get cwd(){return this._cwd||this._executor.cwd}set cwd(e){this._cwd=e}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push(e){this._queue.push(e);return this._chain=this._chain.then((()=>this.attemptTask(e)))}attemptTask(e){return __async(this,null,(function*(){const t=yield this._scheduler.next();const onQueueComplete=()=>this._queue.complete(e);try{const{logger:r}=this._queue.attempt(e);return yield isEmptyTask(e)?this.attemptEmptyTask(e,r):this.attemptRemoteTask(e,r)}catch(t){throw this.onFatalException(e,t)}finally{onQueueComplete();t()}}))}onFatalException(e,t){const r=t instanceof h?Object.assign(t,{task:e}):new h(e,t&&String(t));this._chain=Promise.resolve();this._queue.fatal(r);return r}attemptRemoteTask(e,t){return __async(this,null,(function*(){const r=this._plugins.exec("spawn.args",[...e.commands],pluginContext(e,e.commands));const a=yield this.gitResponse(e,this.binary,r,this.outputHandler,t.step("SPAWN"));const i=yield this.handleTaskData(e,r,a,t.step("HANDLE"));t(`passing response to task's parser as a %s`,e.format);if(isBufferTask(e)){return callTaskParser(e.parser,i)}return callTaskParser(e.parser,i.asStrings())}))}attemptEmptyTask(e,t){return __async(this,null,(function*(){t(`empty task bypassing child process to call to task's parser`);return e.parser(this)}))}handleTaskData(e,t,r,a){const{exitCode:i,rejection:n,stdOut:s,stdErr:o}=r;return new Promise(((p,c)=>{a(`Preparing to handle process response exitCode=%d stdOut=`,i);const{error:l}=this._plugins.exec("task.error",{error:n},__spreadValues(__spreadValues({},pluginContext(e,t)),r));if(l&&e.onError){a.info(`exitCode=%s handling with custom error handler`);return e.onError(r,l,(e=>{a.info(`custom error handler treated as success`);a(`custom error returned a %s`,P(e));p(new L(Array.isArray(e)?Buffer.concat(e):e,Buffer.concat(o)))}),c)}if(l){a.info(`handling as error: exitCode=%s stdErr=%s rejection=%o`,i,o.length,n);return c(l)}a.info(`retrieving task output complete`);p(new L(Buffer.concat(s),Buffer.concat(o)))}))}gitResponse(e,t,r,a,i){return __async(this,null,(function*(){const n=i.sibling("output");const s=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:true},pluginContext(e,e.commands));return new Promise((o=>{const p=[];const c=[];i.info(`%s %o`,t,r);i("%O",s);let l=this._beforeSpawn(e,r);if(l){return o({stdOut:p,stdErr:c,exitCode:9901,rejection:l})}this._plugins.exec("spawn.before",void 0,__spreadProps(__spreadValues({},pluginContext(e,r)),{kill(e){l=e||l}}));const d=(0,Ye.spawn)(t,r,s);d.stdout.on("data",onDataReceived(p,"stdOut",i,n.step("stdOut")));d.stderr.on("data",onDataReceived(c,"stdErr",i,n.step("stdErr")));d.on("error",onErrorReceived(c,i));if(a){i(`Passing child process stdOut/stdErr to custom outputHandler`);a(t,d.stdout,d.stderr,[...r])}this._plugins.exec("spawn.after",void 0,__spreadProps(__spreadValues({},pluginContext(e,r)),{spawned:d,close(e,t){o({stdOut:p,stdErr:c,exitCode:e,rejection:l||t})},kill(e){if(d.killed){return}l=e;d.kill("SIGINT")}}))}))}))}_beforeSpawn(e,t){let r;this._plugins.exec("spawn.before",void 0,__spreadProps(__spreadValues({},pluginContext(e,t)),{kill(e){r=e||r}}));return r}}}});var Ze={};__export(Ze,{GitExecutor:()=>et});var et;var tt=__esm({"src/lib/runners/git-executor.ts"(){Xe();et=class{constructor(e="git",t,r,a){this.binary=e;this.cwd=t;this._scheduler=r;this._plugins=a;this._chain=new Qe(this,this._scheduler,this._plugins)}chain(){return new Qe(this,this._scheduler,this._plugins)}push(e){return this._chain.push(e)}}}});function taskCallback(e,t,r=O){const onSuccess=e=>{r(null,e)};const onError2=t=>{if((t==null?void 0:t.task)===e){r(t instanceof v?addDeprecationNoticeToError(t):t,void 0)}};t.then(onSuccess,onError2)}function addDeprecationNoticeToError(e){let log=e=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${e} should be GitResponseError.git.${e}, this will no longer be available in version 3`);log=O};return Object.create(e,Object.getOwnPropertyNames(e.git).reduce(descriptorReducer,{}));function descriptorReducer(t,r){if(r in e){return t}t[r]={enumerable:false,configurable:false,get(){log(r);return e.git[r]}};return t}}var rt=__esm({"src/lib/task-callback.ts"(){y();J()}});function changeWorkingDirectoryTask(e,t){return adhocExecTask((r=>{if(!folderExists(e)){throw new Error(`Git.cwd: cannot change to non-directory "${e}"`)}return(t||r).cwd=e}))}var it=__esm({"src/lib/tasks/change-working-directory.ts"(){J();pe()}});function parseCommitResult(e){const t={author:null,branch:"",commit:"",root:false,summary:{changes:0,insertions:0,deletions:0}};return parseStringResponse(t,nt,e)}var nt;var st=__esm({"src/lib/parsers/parse-commit.ts"(){J();nt=[new U(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,((e,[t,r,a])=>{e.branch=t;e.commit=a;e.root=!!r})),new U(/\s*Author:\s(.+)/i,((e,[t])=>{const r=t.split("<");const a=r.pop();if(!a||!a.includes("@")){return}e.author={email:a.substr(0,a.length-1),name:r.join("<").trim()}})),new U(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,((e,[t,r,a])=>{e.summary.changes=parseInt(t,10)||0;e.summary.insertions=parseInt(r,10)||0;e.summary.deletions=parseInt(a,10)||0})),new U(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,((e,[t,r,a])=>{e.summary.changes=parseInt(t,10)||0;const i=parseInt(r,10)||0;if(a==="-"){e.summary.deletions=i}else if(a==="+"){e.summary.insertions=i}}))]}});var ot={};__export(ot,{commitTask:()=>commitTask,default:()=>commit_default});function commitTask(e,t,r){const a=["-c","core.abbrev=40","commit",...prefixedArray(e,"-m"),...t,...r];return{commands:a,format:"utf-8",parser:parseCommitResult}}function commit_default(){return{commit(e,...t){const r=trailingFunctionArgument(arguments);const a=rejectDeprecatedSignatures(e)||commitTask(asArray(e),asArray(filterType(t[0],j,[])),[...filterType(t[1],D,[]),...getTrailingOptions(arguments,0,true)]);return this._runTask(a,r)}};function rejectDeprecatedSignatures(e){return!j(e)&&configurationErrorTask(`git.commit: requires the commit message to be supplied as a string/string[]`)}}var pt=__esm({"src/lib/tasks/commit.ts"(){st();J();pe()}});function hashObjectTask(e,t){const r=["hash-object",e];if(t){r.push("-w")}return straightThroughStringTask(r,true)}var ct=__esm({"src/lib/tasks/hash-object.ts"(){pe()}});function parseInit(e,t,r){const a=String(r).trim();let i;if(i=dt.exec(a)){return new lt(e,t,false,i[1])}if(i=ut.exec(a)){return new lt(e,t,true,i[1])}let n="";const s=a.split(" ");while(s.length){const e=s.shift();if(e==="in"){n=s.join(" ");break}}return new lt(e,t,/^re/i.test(a),n)}var lt,dt,ut;var mt=__esm({"src/lib/responses/InitSummary.ts"(){lt=class{constructor(e,t,r,a){this.bare=e;this.path=t;this.existing=r;this.gitDir=a}};dt=/^Init.+ repository in (.+)$/;ut=/^Rein.+ in (.+)$/}});function hasBareCommand(e){return e.includes(ft)}function initTask(e=false,t,r){const a=["init",...r];if(e&&!hasBareCommand(a)){a.splice(1,0,ft)}return{commands:a,format:"utf-8",parser(e){return parseInit(a.includes("--bare"),t,e)}}}var ft;var ht=__esm({"src/lib/tasks/init.ts"(){mt();ft="--bare"}});function logFormatFromCommand(e){for(let t=0;tparseStringResponse(new yt,t,e,false)}var wt,xt,_t,Et,St;var Tt=__esm({"src/lib/parsers/parse-diff-summary.ts"(){vt();bt();J();wt=[new U(/(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,((e,[t,r,a=""])=>{e.files.push({file:t.trim(),changes:asNumber(r),insertions:a.replace(/[^+]/g,"").length,deletions:a.replace(/[^-]/g,"").length,binary:false})})),new U(/(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,((e,[t,r,a])=>{e.files.push({file:t.trim(),before:asNumber(r),after:asNumber(a),binary:true})})),new U(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,((e,[t,r])=>{const a=/(\d+) i/.exec(r);const i=/(\d+) d/.exec(r);e.changed=asNumber(t);e.insertions=asNumber(a==null?void 0:a[1]);e.deletions=asNumber(i==null?void 0:i[1])}))];xt=[new U(/(\d+)\t(\d+)\t(.+)$/,((e,[t,r,a])=>{const i=asNumber(t);const n=asNumber(r);e.changed++;e.insertions+=i;e.deletions+=n;e.files.push({file:a,changes:i+n,insertions:i,deletions:n,binary:false})})),new U(/-\t-\t(.+)$/,((e,[t])=>{e.changed++;e.files.push({file:t,after:0,before:0,binary:true})}))];_t=[new U(/(.+)$/,((e,[t])=>{e.changed++;e.files.push({file:t,changes:0,insertions:0,deletions:0,binary:false})}))];Et=[new U(/([ACDMRTUXB])\s*(.+)$/,((e,[t,r])=>{e.changed++;e.files.push({file:r,changes:0,insertions:0,deletions:0,binary:false})}))];St={[""]:wt,["--stat"]:wt,["--numstat"]:xt,["--name-status"]:Et,["--name-only"]:_t}}});function lineBuilder(e,t){return t.reduce(((t,r,a)=>{t[r]=e[a]||"";return t}),Object.create({diff:null}))}function createListLogSummaryParser(e=Ot,t=Pt,r=""){const a=getDiffParser(r);return function(r){const i=toLinesWithContent(r,true,kt).map((function(r){const i=r.trim().split(Ct);const n=lineBuilder(i[0].trim().split(e),t);if(i.length>1&&!!i[1].trim()){n.diff=a(i[1])}return n}));return{all:i,latest:i.length&&i[0]||null,total:i.length}}}var kt,Ct,Ot,Pt;var At=__esm({"src/lib/parsers/parse-list-log-summary.ts"(){J();Tt();vt();kt="òòòòòò ";Ct=" òò";Ot=" ò ";Pt=["hash","date","message","refs","author_name","author_email"]}});var Dt={};__export(Dt,{diffSummaryTask:()=>diffSummaryTask,validateLogFormatConfig:()=>validateLogFormatConfig});function diffSummaryTask(e){let t=logFormatFromCommand(e);const r=["diff"];if(t===""){t="--stat";r.push("--stat=4096")}r.push(...e);return validateLogFormatConfig(r)||{commands:r,format:"utf-8",parser:getDiffParser(t)}}function validateLogFormatConfig(e){const t=e.filter(isLogFormat);if(t.length>1){return configurationErrorTask(`Summary flags are mutually exclusive - pick one of ${t.join(",")}`)}if(t.length&&e.includes("-z")){return configurationErrorTask(`Summary flag ${t} parsing is not compatible with null termination option '-z'`)}}var Nt=__esm({"src/lib/tasks/diff.ts"(){vt();Tt();pe()}});function prettyFormat(e,t){const r=[];const a=[];Object.keys(e).forEach((t=>{r.push(t);a.push(String(e[t]))}));return[r,a.join(t)]}function userOptions(e){return Object.keys(e).reduce(((t,r)=>{if(!(r in Rt)){t[r]=e[r]}return t}),{})}function parseLogOptions(e={},t=[]){const r=filterType(e.splitter,N,Ot);const a=!filterPrimitives(e.format)&&e.format?e.format:{hash:"%H",date:e.strictDate===false?"%ai":"%aI",message:"%s",refs:"%D",body:e.multiLine?"%B":"%b",author_name:e.mailMap!==false?"%aN":"%an",author_email:e.mailMap!==false?"%aE":"%ae"};const[i,n]=prettyFormat(a,r);const s=[];const o=[`--pretty=format:${kt}${n}${Ct}`,...t];const p=e.n||e["max-count"]||e.maxCount;if(p){o.push(`--max-count=${p}`)}if(e.from||e.to){const t=e.symmetric!==false?"...":"..";s.push(`${e.from||""}${t}${e.to||""}`)}if(N(e.file)){s.push("--follow",e.file)}appendTaskOptions(userOptions(e),o);return{fields:i,splitter:r,commands:[...o,...s]}}function logTask(e,t,r){const a=createListLogSummaryParser(e,t,logFormatFromCommand(r));return{commands:["log",...r],format:"utf-8",parser:a}}function log_default(){return{log(...e){const t=trailingFunctionArgument(arguments);const r=parseLogOptions(trailingOptionsArgument(arguments),filterType(arguments[0],D));const a=rejectDeprecatedSignatures(...e)||validateLogFormatConfig(r.commands)||createLogTask(r);return this._runTask(a,t)}};function createLogTask(e){return logTask(e.splitter,e.fields,e.commands)}function rejectDeprecatedSignatures(e,t){return N(e)&&N(t)&&configurationErrorTask(`git.log(string, string) should be replaced with git.log({ from: string, to: string })`)}}var Rt;var jt=__esm({"src/lib/tasks/log.ts"(){vt();At();J();pe();Nt();Rt=(e=>{e[e["--pretty"]=0]="--pretty";e[e["max-count"]=1]="max-count";e[e["maxCount"]=2]="maxCount";e[e["n"]=3]="n";e[e["file"]=4]="file";e[e["format"]=5]="format";e[e["from"]=6]="from";e[e["to"]=7]="to";e[e["splitter"]=8]="splitter";e[e["symmetric"]=9]="symmetric";e[e["mailMap"]=10]="mailMap";e[e["multiLine"]=11]="multiLine";e[e["strictDate"]=12]="strictDate";return e})(Rt||{})}});var Ft,It;var $t=__esm({"src/lib/responses/MergeSummary.ts"(){Ft=class{constructor(e,t=null,r){this.reason=e;this.file=t;this.meta=r}toString(){return`${this.file}:${this.reason}`}};It=class{constructor(){this.conflicts=[];this.merges=[];this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){if(this.conflicts.length){return`CONFLICTS: ${this.conflicts.join(", ")}`}return"OK"}}}});var Bt,Lt;var Mt=__esm({"src/lib/responses/PullSummary.ts"(){Bt=class{constructor(){this.remoteMessages={all:[]};this.created=[];this.deleted=[];this.files=[];this.deletions={};this.insertions={};this.summary={changes:0,deletions:0,insertions:0}}};Lt=class{constructor(){this.remote="";this.hash={local:"",remote:""};this.branch={local:"",remote:""};this.message=""}toString(){return this.message}}}});function objectEnumerationResult(e){return e.objects=e.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}function asObjectCount(e){const t=/^\s*(\d+)/.exec(e);const r=/delta (\d+)/i.exec(e);return{count:asNumber(t&&t[1]||"0"),delta:asNumber(r&&r[1]||"0")}}var Ut;var Gt=__esm({"src/lib/parsers/parse-remote-objects.ts"(){J();Ut=[new G(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,((e,[t,r])=>{const a=t.toLowerCase();const i=objectEnumerationResult(e.remoteMessages);Object.assign(i,{[a]:asNumber(r)})})),new G(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,((e,[t,r])=>{const a=t.toLowerCase();const i=objectEnumerationResult(e.remoteMessages);Object.assign(i,{[a]:asNumber(r)})})),new G(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,((e,[t,r,a])=>{const i=objectEnumerationResult(e.remoteMessages);i.total=asObjectCount(t);i.reused=asObjectCount(r);i.packReused=asNumber(a)}))]}});function parseRemoteMessages(e,t){return parseStringResponse({remoteMessages:new qt},Vt,t)}var Vt,qt;var zt=__esm({"src/lib/parsers/parse-remote-messages.ts"(){J();Gt();Vt=[new G(/^remote:\s*(.+)$/,((e,[t])=>{e.remoteMessages.all.push(t.trim());return false})),...Ut,new G([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],((e,[t])=>{e.remoteMessages.pullRequestUrl=t})),new G([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],((e,[t,r,a])=>{e.remoteMessages.vulnerabilities={count:asNumber(t),summary:r,url:a}}))];qt=class{constructor(){this.all=[]}}}});function parsePullErrorResult(e,t){const r=parseStringResponse(new Lt,Yt,[e,t]);return r.message&&r}var Ht,Kt,Wt,Jt,Yt,Qt,Xt;var Zt=__esm({"src/lib/parsers/parse-pull.ts"(){Mt();J();zt();Ht=/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/;Kt=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/;Wt=/^(create|delete) mode \d+ (.+)/;Jt=[new U(Ht,((e,[t,r,a])=>{e.files.push(t);if(r){e.insertions[t]=r.length}if(a){e.deletions[t]=a.length}})),new U(Kt,((e,[t,,r,,a])=>{if(r!==void 0||a!==void 0){e.summary.changes=+t||0;e.summary.insertions=+r||0;e.summary.deletions=+a||0;return true}return false})),new U(Wt,((e,[t,r])=>{append(e.files,r);append(t==="create"?e.created:e.deleted,r)}))];Yt=[new U(/^from\s(.+)$/i,((e,[t])=>void(e.remote=t))),new U(/^fatal:\s(.+)$/,((e,[t])=>void(e.message=t))),new U(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,((e,[t,r,a,i])=>{e.branch.local=a;e.hash.local=t;e.branch.remote=i;e.hash.remote=r}))];Qt=(e,t)=>parseStringResponse(new Bt,Jt,[e,t]);Xt=(e,t)=>Object.assign(new Bt,Qt(e,t),parseRemoteMessages(e,t))}});var er,tr,rr;var ar=__esm({"src/lib/parsers/parse-merge.ts"(){$t();J();Zt();er=[new U(/^Auto-merging\s+(.+)$/,((e,[t])=>{e.merges.push(t)})),new U(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,((e,[t,r])=>{e.conflicts.push(new Ft(t,r))})),new U(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,((e,[t,r,a])=>{e.conflicts.push(new Ft(t,r,{deleteRef:a}))})),new U(/^CONFLICT\s+\((.+)\):/,((e,[t])=>{e.conflicts.push(new Ft(t,null))})),new U(/^Automatic merge failed;\s+(.+)$/,((e,[t])=>{e.result=t}))];tr=(e,t)=>Object.assign(rr(e,t),Xt(e,t));rr=e=>parseStringResponse(new It,er,e)}});function mergeTask(e){if(!e.length){return configurationErrorTask("Git.merge requires at least one option")}return{commands:["merge",...e],format:"utf-8",parser(e,t){const r=tr(e,t);if(r.failed){throw new v(r)}return r}}}var ir=__esm({"src/lib/tasks/merge.ts"(){y();ar();pe()}});function pushResultPushedItem(e,t,r){const a=r.includes("deleted");const i=r.includes("tag")||/^refs\/tags/.test(e);const n=!r.includes("new");return{deleted:a,tag:i,branch:!i,new:!n,alreadyUpdated:n,local:e,remote:t}}var nr,sr,pr;var cr=__esm({"src/lib/parsers/parse-push.ts"(){J();zt();nr=[new U(/^Pushing to (.+)$/,((e,[t])=>{e.repo=t})),new U(/^updating local tracking ref '(.+)'/,((e,[t])=>{e.ref=__spreadProps(__spreadValues({},e.ref||{}),{local:t})})),new U(/^[*-=]\s+([^:]+):(\S+)\s+\[(.+)]$/,((e,[t,r,a])=>{e.pushed.push(pushResultPushedItem(t,r,a))})),new U(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,((e,[t,r,a])=>{e.branch=__spreadProps(__spreadValues({},e.branch||{}),{local:t,remote:r,remoteName:a})})),new U(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,((e,[t,r,a,i])=>{e.update={head:{local:t,remote:r},hash:{from:a,to:i}}}))];sr=(e,t)=>{const r=pr(e,t);const a=parseRemoteMessages(e,t);return __spreadValues(__spreadValues({},r),a)};pr=(e,t)=>parseStringResponse({pushed:[]},nr,[e,t])}});var lr={};__export(lr,{pushTagsTask:()=>pushTagsTask,pushTask:()=>pushTask});function pushTagsTask(e={},t){append(t,"--tags");return pushTask(e,t)}function pushTask(e={},t){const r=["push",...t];if(e.branch){r.splice(1,0,e.branch)}if(e.remote){r.splice(1,0,e.remote)}remove(r,"-v");append(r,"--verbose");append(r,"--porcelain");return{commands:r,format:"utf-8",parser:sr}}var dr=__esm({"src/lib/tasks/push.ts"(){cr();J()}});var ur,mr;var fr=__esm({"src/lib/responses/FileStatusSummary.ts"(){ur=/^(.+) -> (.+)$/;mr=class{constructor(e,t,r){this.path=e;this.index=t;this.working_dir=r;if(t+r==="R"){const t=ur.exec(e)||[null,e,e];this.from=t[1]||"";this.path=t[2]||""}}}}});function renamedFile(e){const[t,r]=e.split(C);return{from:r||t,to:t}}function parser2(e,t,r){return[`${e}${t}`,r]}function conflicts(e,...t){return t.map((t=>parser2(e,t,((e,t)=>append(e.conflicted,t)))))}function splitLine(e,t){const r=t.trim();switch(" "){case r.charAt(2):return data(r.charAt(0),r.charAt(1),r.substr(3));case r.charAt(1):return data(" ",r.charAt(0),r.substr(2));default:return}function data(t,r,a){const i=`${t}${r}`;const n=gr.get(i);if(n){n(e,a)}if(i!=="##"&&i!=="!!"){e.files.push(new mr(a.replace(/\0.+$/,""),t,r))}}}var hr,gr,vr;var yr=__esm({"src/lib/responses/StatusSummary.ts"(){J();fr();hr=class{constructor(){this.not_added=[];this.conflicted=[];this.created=[];this.deleted=[];this.ignored=void 0;this.modified=[];this.renamed=[];this.files=[];this.staged=[];this.ahead=0;this.behind=0;this.current=null;this.tracking=null;this.detached=false;this.isClean=()=>!this.files.length}};gr=new Map([parser2(" ","A",((e,t)=>append(e.created,t))),parser2(" ","D",((e,t)=>append(e.deleted,t))),parser2(" ","M",((e,t)=>append(e.modified,t))),parser2("A"," ",((e,t)=>append(e.created,t)&&append(e.staged,t))),parser2("A","M",((e,t)=>append(e.created,t)&&append(e.staged,t)&&append(e.modified,t))),parser2("D"," ",((e,t)=>append(e.deleted,t)&&append(e.staged,t))),parser2("M"," ",((e,t)=>append(e.modified,t)&&append(e.staged,t))),parser2("M","M",((e,t)=>append(e.modified,t)&&append(e.staged,t))),parser2("R"," ",((e,t)=>{append(e.renamed,renamedFile(t))})),parser2("R","M",((e,t)=>{const r=renamedFile(t);append(e.renamed,r);append(e.modified,r.to)})),parser2("!","!",((e,t)=>{append(e.ignored=e.ignored||[],t)})),parser2("?","?",((e,t)=>append(e.not_added,t))),...conflicts("A","A","U"),...conflicts("D","D","U"),...conflicts("U","A","D","U"),["##",(e,t)=>{const r=/ahead (\d+)/;const a=/behind (\d+)/;const i=/^(.+?(?=(?:\.{3}|\s|$)))/;const n=/\.{3}(\S*)/;const s=/\son\s([\S]+)$/;let o;o=r.exec(t);e.ahead=o&&+o[1]||0;o=a.exec(t);e.behind=o&&+o[1]||0;o=i.exec(t);e.current=o&&o[1];o=n.exec(t);e.tracking=o&&o[1];o=s.exec(t);e.current=o&&o[1]||e.current;e.detached=/\(no branch\)/.test(t)}]]);vr=function(e){const t=e.split(C);const r=new hr;for(let e=0,a=t.length;e!br.includes(e)))];return{format:"utf-8",commands:t,parser(e){return vr(e)}}}var br;var wr=__esm({"src/lib/tasks/status.ts"(){yr();br=["--null","-z"]}});function versionResponse(e=0,t=0,r=0,a="",i=true){return Object.defineProperty({major:e,minor:t,patch:r,agent:a,installed:i},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:false,enumerable:false})}function notInstalledResponse(){return versionResponse(0,0,0,"",false)}function version_default(){return{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:versionParser,onError(e,t,r,a){if(e.exitCode===-2){return r(Buffer.from(xr))}a(t)}})}}}function versionParser(e){if(e===xr){return notInstalledResponse()}return parseStringResponse(versionResponse(0,0,0,e),_r,e)}var xr,_r;var Er=__esm({"src/lib/tasks/version.ts"(){J();xr="installed=false";_r=[new U(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,((e,[t,r,a,i=""])=>{Object.assign(e,versionResponse(asNumber(t),asNumber(r),asNumber(a),i))})),new U(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,((e,[t,r,a,i=""])=>{Object.assign(e,versionResponse(asNumber(t),asNumber(r),a,i))}))]}});var Sr={};__export(Sr,{SimpleGitApi:()=>Tr});var Tr;var kr=__esm({"src/lib/simple-git-api.ts"(){rt();it();pt();be();Se();ct();ht();jt();ir();dr();wr();pe();Er();J();Tr=class{constructor(e){this._executor=e}_runTask(e,t){const r=this._executor.chain();const a=r.push(e);if(t){taskCallback(e,a,t)}return Object.create(this,{then:{value:a.then.bind(a)},catch:{value:a.catch.bind(a)},_executor:{value:r}})}add(e){return this._runTask(straightThroughStringTask(["add",...asArray(e)]),trailingFunctionArgument(arguments))}cwd(e){const t=trailingFunctionArgument(arguments);if(typeof e==="string"){return this._runTask(changeWorkingDirectoryTask(e,this._executor),t)}if(typeof(e==null?void 0:e.path)==="string"){return this._runTask(changeWorkingDirectoryTask(e.path,e.root&&this._executor||void 0),t)}return this._runTask(configurationErrorTask("Git.cwd: workingDirectory must be supplied as a string"),t)}hashObject(e,t){return this._runTask(hashObjectTask(e,t===true),trailingFunctionArgument(arguments))}init(e){return this._runTask(initTask(e===true,this._executor.cwd,getTrailingOptions(arguments)),trailingFunctionArgument(arguments))}merge(){return this._runTask(mergeTask(getTrailingOptions(arguments)),trailingFunctionArgument(arguments))}mergeFromTo(e,t){if(!(N(e)&&N(t))){return this._runTask(configurationErrorTask(`Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings`))}return this._runTask(mergeTask([e,t,...getTrailingOptions(arguments)]),trailingFunctionArgument(arguments,false))}outputHandler(e){this._executor.outputHandler=e;return this}push(){const e=pushTask({remote:filterType(arguments[0],N),branch:filterType(arguments[1],N)},getTrailingOptions(arguments));return this._runTask(e,trailingFunctionArgument(arguments))}stash(){return this._runTask(straightThroughStringTask(["stash",...getTrailingOptions(arguments)]),trailingFunctionArgument(arguments))}status(){return this._runTask(statusTask(getTrailingOptions(arguments)),trailingFunctionArgument(arguments))}};Object.assign(Tr.prototype,commit_default(),config_default(),grep_default(),log_default(),version_default())}});var Cr={};__export(Cr,{Scheduler:()=>Ar});var Or,Pr,Ar;var Dr=__esm({"src/lib/runners/scheduler.ts"(){J();Or=r(9819);He();Pr=(()=>{let e=0;return()=>{e++;const{promise:t,done:r}=(0,Or.createDeferred)();return{promise:t,done:r,id:e}}})();Ar=class{constructor(e=2){this.concurrency=e;this.logger=createLogger("","scheduler");this.pending=[];this.running=[];this.logger(`Constructed, concurrency=%s`,e)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency){this.logger(`Schedule attempt ignored, pending=%s running=%s concurrency=%s`,this.pending.length,this.running.length,this.concurrency);return}const e=append(this.running,this.pending.shift());this.logger(`Attempting id=%s`,e.id);e.done((()=>{this.logger(`Completing id=`,e.id);remove(this.running,e);this.schedule()}))}next(){const{promise:e,id:t}=append(this.pending,Pr());this.logger(`Scheduling id=%s`,t);this.schedule();return e}}}});var Nr={};__export(Nr,{applyPatchTask:()=>applyPatchTask});function applyPatchTask(e,t){return straightThroughStringTask(["apply",...t,...e])}var Rr=__esm({"src/lib/tasks/apply-patch.ts"(){pe()}});function branchDeletionSuccess(e,t){return{branch:e,hash:t,success:true}}function branchDeletionFailure(e){return{branch:e,hash:null,success:false}}var jr;var Fr=__esm({"src/lib/responses/BranchDeleteSummary.ts"(){jr=class{constructor(){this.all=[];this.branches={};this.errors=[]}get success(){return!this.errors.length}}}});function hasBranchDeletionError(e,t){return t===1&&$r.test(e)}var Ir,$r,Br,Lr;var Mr=__esm({"src/lib/parsers/parse-branch-delete.ts"(){Fr();J();Ir=/(\S+)\s+\(\S+\s([^)]+)\)/;$r=/^error[^']+'([^']+)'/m;Br=[new U(Ir,((e,[t,r])=>{const a=branchDeletionSuccess(t,r);e.all.push(a);e.branches[t]=a})),new U($r,((e,[t])=>{const r=branchDeletionFailure(t);e.errors.push(r);e.all.push(r);e.branches[t]=r}))];Lr=(e,t)=>parseStringResponse(new jr,Br,[e,t])}});var Ur;var Gr=__esm({"src/lib/responses/BranchSummary.ts"(){Ur=class{constructor(){this.all=[];this.branches={};this.current="";this.detached=false}push(e,t,r,a,i){if(e==="*"){this.detached=t;this.current=r}this.all.push(r);this.branches[r]={current:e==="*",linkedWorkTree:e==="+",name:r,commit:a,label:i}}}}});function branchStatus(e){return e?e.charAt(0):""}function parseBranchSummary(e){return parseStringResponse(new Ur,Vr,e)}var Vr;var qr=__esm({"src/lib/parsers/parse-branch.ts"(){Gr();J();Vr=[new U(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,((e,[t,r,a,i])=>{e.push(branchStatus(t),true,r,a,i)})),new U(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s,((e,[t,r,a,i])=>{e.push(branchStatus(t),false,r,a,i)}))]}});var zr={};__export(zr,{branchLocalTask:()=>branchLocalTask,branchTask:()=>branchTask,containsDeleteBranchCommand:()=>containsDeleteBranchCommand,deleteBranchTask:()=>deleteBranchTask,deleteBranchesTask:()=>deleteBranchesTask});function containsDeleteBranchCommand(e){const t=["-d","-D","--delete"];return e.some((e=>t.includes(e)))}function branchTask(e){const t=containsDeleteBranchCommand(e);const r=["branch",...e];if(r.length===1){r.push("-a")}if(!r.includes("-v")){r.splice(1,0,"-v")}return{format:"utf-8",commands:r,parser(e,r){if(t){return Lr(e,r).all[0]}return parseBranchSummary(e)}}}function branchLocalTask(){const e=parseBranchSummary;return{format:"utf-8",commands:["branch","-v"],parser:e}}function deleteBranchesTask(e,t=false){return{format:"utf-8",commands:["branch","-v",t?"-D":"-d",...e],parser(e,t){return Lr(e,t)},onError({exitCode:e,stdOut:t},r,a,i){if(!hasBranchDeletionError(String(r),e)){return i(r)}a(t)}}}function deleteBranchTask(e,t=false){const r={format:"utf-8",commands:["branch","-v",t?"-D":"-d",e],parser(t,r){return Lr(t,r).branches[e]},onError({exitCode:e,stdErr:t,stdOut:a},i,n,s){if(!hasBranchDeletionError(String(i),e)){return s(i)}throw new v(r.parser(bufferToString(a),bufferToString(t)),String(i))}};return r}var Hr=__esm({"src/lib/tasks/branch.ts"(){y();Mr();qr();J()}});var Kr;var Wr=__esm({"src/lib/responses/CheckIgnore.ts"(){Kr=e=>e.split(/\n/g).map((e=>e.trim())).filter((e=>!!e))}});var Jr={};__export(Jr,{checkIgnoreTask:()=>checkIgnoreTask});function checkIgnoreTask(e){return{commands:["check-ignore",...e],format:"utf-8",parser:Kr}}var Yr=__esm({"src/lib/tasks/check-ignore.ts"(){Wr()}});var Qr={};__export(Qr,{cloneMirrorTask:()=>cloneMirrorTask,cloneTask:()=>cloneTask});function disallowedCommand(e){return/^--upload-pack(=|$)/.test(e)}function cloneTask(e,t,r){const a=["clone",...r];N(e)&&a.push(e);N(t)&&a.push(t);const i=a.find(disallowedCommand);if(i){return configurationErrorTask(`git.fetch: potential exploit argument blocked.`)}return straightThroughStringTask(a)}function cloneMirrorTask(e,t,r){append(r,"--mirror");return cloneTask(e,t,r)}var Xr=__esm({"src/lib/tasks/clone.ts"(){pe();J()}});function parseFetchResult(e,t){const r={raw:e,remote:null,branches:[],tags:[],updated:[],deleted:[]};return parseStringResponse(r,Zr,[e,t])}var Zr;var ea=__esm({"src/lib/parsers/parse-fetch.ts"(){J();Zr=[new U(/From (.+)$/,((e,[t])=>{e.remote=t})),new U(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,((e,[t,r])=>{e.branches.push({name:t,tracking:r})})),new U(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,((e,[t,r])=>{e.tags.push({name:t,tracking:r})})),new U(/- \[deleted]\s+\S+\s*-> (.+)$/,((e,[t])=>{e.deleted.push({tracking:t})})),new U(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,((e,[t,r,a,i])=>{e.updated.push({name:a,tracking:i,to:r,from:t})}))]}});var ta={};__export(ta,{fetchTask:()=>fetchTask});function disallowedCommand2(e){return/^--upload-pack(=|$)/.test(e)}function fetchTask(e,t,r){const a=["fetch",...r];if(e&&t){a.push(e,t)}const i=a.find(disallowedCommand2);if(i){return configurationErrorTask(`git.fetch: potential exploit argument blocked.`)}return{commands:a,format:"utf-8",parser:parseFetchResult}}var ra=__esm({"src/lib/tasks/fetch.ts"(){ea();pe()}});function parseMoveResult(e){return parseStringResponse({moves:[]},aa,e)}var aa;var ia=__esm({"src/lib/parsers/parse-move.ts"(){J();aa=[new U(/^Renaming (.+) to (.+)$/,((e,[t,r])=>{e.moves.push({from:t,to:r})}))]}});var na={};__export(na,{moveTask:()=>moveTask});function moveTask(e,t){return{commands:["mv","-v",...asArray(e),t],format:"utf-8",parser:parseMoveResult}}var sa=__esm({"src/lib/tasks/move.ts"(){ia();J()}});var oa={};__export(oa,{pullTask:()=>pullTask});function pullTask(e,t,r){const a=["pull",...r];if(e&&t){a.splice(1,0,e,t)}return{commands:a,format:"utf-8",parser(e,t){return Xt(e,t)},onError(e,t,r,a){const i=parsePullErrorResult(bufferToString(e.stdOut),bufferToString(e.stdErr));if(i){return a(new v(i))}a(t)}}}var pa=__esm({"src/lib/tasks/pull.ts"(){y();Zt();J()}});function parseGetRemotes(e){const t={};forEach(e,(([e])=>t[e]={name:e}));return Object.values(t)}function parseGetRemotesVerbose(e){const t={};forEach(e,(([e,r,a])=>{if(!t.hasOwnProperty(e)){t[e]={name:e,refs:{fetch:"",push:""}}}if(a&&r){t[e].refs[a.replace(/[^a-z]/g,"")]=r}}));return Object.values(t)}function forEach(e,t){forEachLineWithContent(e,(e=>t(e.split(/\s+/))))}var ca=__esm({"src/lib/responses/GetRemoteSummary.ts"(){J()}});var la={};__export(la,{addRemoteTask:()=>addRemoteTask,getRemotesTask:()=>getRemotesTask,listRemotesTask:()=>listRemotesTask,remoteTask:()=>remoteTask,removeRemoteTask:()=>removeRemoteTask});function addRemoteTask(e,t,r=[]){return straightThroughStringTask(["remote","add",...r,e,t])}function getRemotesTask(e){const t=["remote"];if(e){t.push("-v")}return{commands:t,format:"utf-8",parser:e?parseGetRemotesVerbose:parseGetRemotes}}function listRemotesTask(e=[]){const t=[...e];if(t[0]!=="ls-remote"){t.unshift("ls-remote")}return straightThroughStringTask(t)}function remoteTask(e=[]){const t=[...e];if(t[0]!=="remote"){t.unshift("remote")}return straightThroughStringTask(t)}function removeRemoteTask(e){return straightThroughStringTask(["remote","remove",e])}var da=__esm({"src/lib/tasks/remote.ts"(){ca();pe()}});var ua={};__export(ua,{stashListTask:()=>stashListTask});function stashListTask(e={},t){const r=parseLogOptions(e);const a=["stash","list",...r.commands,...t];const i=createListLogSummaryParser(r.splitter,r.fields,logFormatFromCommand(a));return validateLogFormatConfig(a)||{commands:a,format:"utf-8",parser:i}}var ma=__esm({"src/lib/tasks/stash-list.ts"(){vt();At();Nt();jt()}});var fa={};__export(fa,{addSubModuleTask:()=>addSubModuleTask,initSubModuleTask:()=>initSubModuleTask,subModuleTask:()=>subModuleTask,updateSubModuleTask:()=>updateSubModuleTask});function addSubModuleTask(e,t){return subModuleTask(["add",e,t])}function initSubModuleTask(e){return subModuleTask(["init",...e])}function subModuleTask(e){const t=[...e];if(t[0]!=="submodule"){t.unshift("submodule")}return straightThroughStringTask(t)}function updateSubModuleTask(e){return subModuleTask(["update",...e])}var ha=__esm({"src/lib/tasks/sub-module.ts"(){pe()}});function singleSorted(e,t){const r=isNaN(e);const a=isNaN(t);if(r!==a){return r?1:-1}return r?sorted(e,t):0}function sorted(e,t){return e===t?0:e>t?1:-1}function trimmed(e){return e.trim()}function toNumber(e){if(typeof e==="string"){return parseInt(e.replace(/^\D+/g,""),10)||0}return 0}var ga,va;var ya=__esm({"src/lib/responses/TagList.ts"(){ga=class{constructor(e,t){this.all=e;this.latest=t}};va=function(e,t=false){const r=e.split("\n").map(trimmed).filter(Boolean);if(!t){r.sort((function(e,t){const r=e.split(".");const a=t.split(".");if(r.length===1||a.length===1){return singleSorted(toNumber(r[0]),toNumber(a[0]))}for(let e=0,t=Math.max(r.length,a.length);ee.indexOf(".")>=0));return new ga(r,a)}}});var ba={};__export(ba,{addAnnotatedTagTask:()=>addAnnotatedTagTask,addTagTask:()=>addTagTask,tagListTask:()=>tagListTask});function tagListTask(e=[]){const t=e.some((e=>/^--sort=/.test(e)));return{format:"utf-8",commands:["tag","-l",...e],parser(e){return va(e,t)}}}function addTagTask(e){return{format:"utf-8",commands:["tag",e],parser(){return{name:e}}}}function addAnnotatedTagTask(e,t){return{format:"utf-8",commands:["tag","-a","-m",t,e],parser(){return{name:e}}}}var wa=__esm({"src/lib/tasks/tag.ts"(){ya()}});var xa=__commonJS({"src/git.js"(e,t){var{GitExecutor:r}=(tt(),m(Ze));var{SimpleGitApi:a}=(kr(),m(Sr));var{Scheduler:i}=(Dr(),m(Cr));var{configurationErrorTask:n}=(pe(),m(se));var{asArray:s,filterArray:o,filterPrimitives:p,filterString:c,filterStringOrStringArray:l,filterType:d,getTrailingOptions:u,trailingFunctionArgument:h,trailingOptionsArgument:g}=(J(),m(W));var{applyPatchTask:v}=(Rr(),m(Nr));var{branchTask:y,branchLocalTask:b,deleteBranchesTask:w,deleteBranchTask:x}=(Hr(),m(zr));var{checkIgnoreTask:E}=(Yr(),m(Jr));var{checkIsRepoTask:S}=(ee(),m(Y));var{cloneTask:T,cloneMirrorTask:k}=(Xr(),m(Qr));var{cleanWithOptionsTask:C,isCleanOptionsArray:O}=(he(),m(ce));var{commitTask:P}=(pt(),m(ot));var{diffSummaryTask:A}=(Nt(),m(Dt));var{fetchTask:D}=(ra(),m(ta));var{moveTask:N}=(sa(),m(na));var{pullTask:R}=(pa(),m(oa));var{pushTagsTask:j}=(dr(),m(lr));var{addRemoteTask:F,getRemotesTask:I,listRemotesTask:$,remoteTask:B,removeRemoteTask:L}=(da(),m(la));var{getResetMode:M,resetTask:U}=(Oe(),m(Te));var{stashListTask:G}=(ma(),m(ua));var{addSubModuleTask:V,initSubModuleTask:q,subModuleTask:z,updateSubModuleTask:H}=(ha(),m(fa));var{addAnnotatedTagTask:K,addTagTask:Q,tagListTask:X}=(wa(),m(ba));var{straightThroughBufferTask:Z,straightThroughStringTask:te}=(pe(),m(se));function Git2(e,t){this._executor=new r(e.binary,e.baseDir,new i(e.maxConcurrentProcesses),t);this._trimmed=e.trimmed}(Git2.prototype=Object.create(a.prototype)).constructor=Git2;Git2.prototype.customBinary=function(e){this._executor.binary=e;return this};Git2.prototype.env=function(e,t){if(arguments.length===1&&typeof e==="object"){this._executor.env=e}else{(this._executor.env=this._executor.env||{})[e]=t}return this};Git2.prototype.stashList=function(e){return this._runTask(G(g(arguments)||{},o(e)&&e||[]),h(arguments))};function createCloneTask(e,t,r,a){if(typeof r!=="string"){return n(`git.${e}() requires a string 'repoPath'`)}return t(r,d(a,c),u(arguments))}Git2.prototype.clone=function(){return this._runTask(createCloneTask("clone",T,...arguments),h(arguments))};Git2.prototype.mirror=function(){return this._runTask(createCloneTask("mirror",k,...arguments),h(arguments))};Git2.prototype.mv=function(e,t){return this._runTask(N(e,t),h(arguments))};Git2.prototype.checkoutLatestTag=function(e){var t=this;return this.pull((function(){t.tags((function(r,a){t.checkout(a.latest,e)}))}))};Git2.prototype.pull=function(e,t,r,a){return this._runTask(R(d(e,c),d(t,c),u(arguments)),h(arguments))};Git2.prototype.fetch=function(e,t){return this._runTask(D(d(e,c),d(t,c),u(arguments)),h(arguments))};Git2.prototype.silent=function(e){console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3");return this};Git2.prototype.tags=function(e,t){return this._runTask(X(u(arguments)),h(arguments))};Git2.prototype.rebase=function(){return this._runTask(te(["rebase",...u(arguments)]),h(arguments))};Git2.prototype.reset=function(e){return this._runTask(U(M(e),u(arguments)),h(arguments))};Git2.prototype.revert=function(e){const t=h(arguments);if(typeof e!=="string"){return this._runTask(n("Commit must be a string"),t)}return this._runTask(te(["revert",...u(arguments,0,true),e]),t)};Git2.prototype.addTag=function(e){const t=typeof e==="string"?Q(e):n("Git.addTag requires a tag name");return this._runTask(t,h(arguments))};Git2.prototype.addAnnotatedTag=function(e,t){return this._runTask(K(e,t),h(arguments))};Git2.prototype.checkout=function(){const e=["checkout",...u(arguments,true)];return this._runTask(te(e),h(arguments))};Git2.prototype.checkoutBranch=function(e,t,r){return this.checkout(["-b",e,t],h(arguments))};Git2.prototype.checkoutLocalBranch=function(e,t){return this.checkout(["-b",e],h(arguments))};Git2.prototype.deleteLocalBranch=function(e,t,r){return this._runTask(x(e,typeof t==="boolean"?t:false),h(arguments))};Git2.prototype.deleteLocalBranches=function(e,t,r){return this._runTask(w(e,typeof t==="boolean"?t:false),h(arguments))};Git2.prototype.branch=function(e,t){return this._runTask(y(u(arguments)),h(arguments))};Git2.prototype.branchLocal=function(e){return this._runTask(b(),h(arguments))};Git2.prototype.raw=function(e){const t=!Array.isArray(e);const r=[].slice.call(t?arguments:e,0);for(let e=0;eesModuleFactory,gitExportFactory:()=>gitExportFactory,gitInstanceFactory:()=>gitInstanceFactory});function esModuleFactory(e){return Object.defineProperties(e,{__esModule:{value:true},default:{value:e}})}function gitExportFactory(e){return Object.assign(e.bind(null),Pe)}function gitInstanceFactory(e,t){const r=new Be;const a=createInstanceConfig(e&&(typeof e==="string"?{baseDir:e}:e)||{},t);if(!folderExists(a.baseDir)){throw new b(a,`Cannot use simple-git on a directory that does not exist`)}if(Array.isArray(a.config)){r.add(commandConfigPrefixingPlugin(a.config))}r.add(blockUnsafeOperationsPlugin(a.unsafe));r.add(completionDetectionPlugin(a.completion));a.abort&&r.add(abortPlugin(a.abort));a.progress&&r.add(progressMonitorPlugin(a.progress));a.timeout&&r.add(timeoutPlugin(a.timeout));a.spawnOptions&&r.add(spawnOptionsPlugin(a.spawnOptions));r.add(errorDetectionPlugin(errorDetectionHandler(true)));a.errors&&r.add(errorDetectionPlugin(a.errors));return new Ea(a,r)}var Ea;var Sa=__esm({"src/lib/git-factory.ts"(){Ae();qe();J();Ea=xa()}});var Ta={};__export(Ta,{gitP:()=>gitP});function gitP(...e){let t;let r=Promise.resolve();try{t=gitInstanceFactory(...e)}catch(e){r=Promise.reject(e)}function builderReturn(){return a}function chainReturn(){return r}const a=[...ka,...Ca].reduce(((e,r)=>{const a=Ca.includes(r);const i=a?asyncWrapper(r,t):syncWrapper(r,t,e);const n=a?chainReturn:builderReturn;Object.defineProperty(e,r,{enumerable:false,configurable:false,value:t?i:n});return e}),{});return a;function asyncWrapper(e,t){return function(...a){if(typeof a[a.length]==="function"){throw new TypeError("Promise interface requires that handlers are not supplied inline, trailing function not allowed in call to "+e)}return r.then((function(){return new Promise((function(r,i){const callback=(e,t)=>{if(e){return i(toError(e))}r(t)};a.push(callback);t[e].apply(t,a)}))}))}}function syncWrapper(e,t,r){return(...a)=>{t[e](...a);return r}}}function toError(e){if(e instanceof Error){return e}if(typeof e==="string"){return new Error(e)}return new v(e)}var ka,Ca;var Oa=__esm({"src/lib/runners/promise-wrapped.ts"(){y();Sa();ka=["customBinary","env","outputHandler","silent"];Ca=["add","addAnnotatedTag","addConfig","addRemote","addTag","applyPatch","binaryCatFile","branch","branchLocal","catFile","checkIgnore","checkIsRepo","checkout","checkoutBranch","checkoutLatestTag","checkoutLocalBranch","clean","clone","commit","cwd","deleteLocalBranch","deleteLocalBranches","diff","diffSummary","exec","fetch","getRemotes","init","listConfig","listRemote","log","merge","mergeFromTo","mirror","mv","pull","push","pushTags","raw","rebase","remote","removeRemote","reset","revert","revparse","rm","rmKeepLocal","show","stash","stashList","status","subModule","submoduleAdd","submoduleInit","submoduleUpdate","tag","tags","updateServerInfo"]}});var{gitP:Pa}=(Oa(),m(Ta));var{esModuleFactory:Aa,gitInstanceFactory:Da,gitExportFactory:Na}=(Sa(),m(_a));var Ra=Aa(Na(Da));e.exports=Object.assign(Ra,{gitP:Pa,simpleGit:Ra})},9318:(e,t,r)=>{"use strict";const a=r(2037);const i=r(6224);const n=r(1621);const{env:s}=process;let o;if(n("no-color")||n("no-colors")||n("color=false")||n("color=never")){o=0}else if(n("color")||n("colors")||n("color=true")||n("color=always")){o=1}if("FORCE_COLOR"in s){if(s.FORCE_COLOR==="true"){o=1}else if(s.FORCE_COLOR==="false"){o=0}else{o=s.FORCE_COLOR.length===0?1:Math.min(parseInt(s.FORCE_COLOR,10),3)}}function translateLevel(e){if(e===0){return false}return{level:e,hasBasic:true,has256:e>=2,has16m:e>=3}}function supportsColor(e,t){if(o===0){return 0}if(n("color=16m")||n("color=full")||n("color=truecolor")){return 3}if(n("color=256")){return 2}if(e&&!t&&o===undefined){return 0}const r=o||0;if(s.TERM==="dumb"){return r}if(process.platform==="win32"){const e=a.release().split(".");if(Number(e[0])>=10&&Number(e[2])>=10586){return Number(e[2])>=14931?3:2}return 1}if("CI"in s){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((e=>e in s))||s.CI_NAME==="codeship"){return 1}return r}if("TEAMCITY_VERSION"in s){return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(s.TEAMCITY_VERSION)?1:0}if(s.COLORTERM==="truecolor"){return 3}if("TERM_PROGRAM"in s){const e=parseInt((s.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(s.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(s.TERM)){return 2}if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(s.TERM)){return 1}if("COLORTERM"in s){return 1}return r}function getSupportLevel(e){const t=supportsColor(e,e&&e.isTTY);return translateLevel(t)}e.exports={supportsColor:getSupportLevel,stdout:translateLevel(supportsColor(true,i.isatty(1))),stderr:translateLevel(supportsColor(true,i.isatty(2)))}},8065:(e,t,r)=>{"use strict";const{promisify:a}=r(3837);const i=r(8517);e.exports.fileSync=i.fileSync;const n=a(((e,t)=>i.file(e,((e,r,i,n)=>e?t(e):t(undefined,{path:r,fd:i,cleanup:a(n)})))));e.exports.file=async e=>n(e);e.exports.withFile=async function withFile(t,r){const{path:a,fd:i,cleanup:n}=await e.exports.file(r);try{return await t({path:a,fd:i})}finally{await n()}};e.exports.dirSync=i.dirSync;const s=a(((e,t)=>i.dir(e,((e,r,i)=>e?t(e):t(undefined,{path:r,cleanup:a(i)})))));e.exports.dir=async e=>s(e);e.exports.withDir=async function withDir(t,r){const{path:a,cleanup:i}=await e.exports.dir(r);try{return await t({path:a})}finally{await i()}};e.exports.tmpNameSync=i.tmpNameSync;e.exports.tmpName=a(i.tmpName);e.exports.tmpdir=i.tmpdir;e.exports.setGracefulCleanup=i.setGracefulCleanup},8517:(e,t,r)=>{ +var e;(function(e){(function(t){var r=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:Function("return this;")();var a=makeExporter(e);if(typeof r.Reflect==="undefined"){r.Reflect=e}else{a=makeExporter(r.Reflect,a)}t(a);function makeExporter(e,t){return function(r,a){if(typeof e[r]!=="function"){Object.defineProperty(e,r,{configurable:true,writable:true,value:a})}if(t)t(r,a)}}})((function(e){var t=Object.prototype.hasOwnProperty;var r=typeof Symbol==="function";var a=r&&typeof Symbol.toPrimitive!=="undefined"?Symbol.toPrimitive:"@@toPrimitive";var i=r&&typeof Symbol.iterator!=="undefined"?Symbol.iterator:"@@iterator";var n=typeof Object.create==="function";var s={__proto__:[]}instanceof Array;var o=!n&&!s;var p={create:n?function(){return MakeDictionary(Object.create(null))}:s?function(){return MakeDictionary({__proto__:null})}:function(){return MakeDictionary({})},has:o?function(e,r){return t.call(e,r)}:function(e,t){return t in e},get:o?function(e,r){return t.call(e,r)?e[r]:undefined}:function(e,t){return e[t]}};var c=Object.getPrototypeOf(Function);var l=typeof process==="object"&&process.env&&process.env["REFLECT_METADATA_USE_MAP_POLYFILL"]==="true";var d=!l&&typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:CreateMapPolyfill();var u=!l&&typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:CreateSetPolyfill();var m=!l&&typeof WeakMap==="function"?WeakMap:CreateWeakMapPolyfill();var h=new m;function decorate(e,t,r,a){if(!IsUndefined(r)){if(!IsArray(e))throw new TypeError;if(!IsObject(t))throw new TypeError;if(!IsObject(a)&&!IsUndefined(a)&&!IsNull(a))throw new TypeError;if(IsNull(a))a=undefined;r=ToPropertyKey(r);return DecorateProperty(e,t,r,a)}else{if(!IsArray(e))throw new TypeError;if(!IsConstructor(t))throw new TypeError;return DecorateConstructor(e,t)}}e("decorate",decorate);function metadata(e,t){function decorator(r,a){if(!IsObject(r))throw new TypeError;if(!IsUndefined(a)&&!IsPropertyKey(a))throw new TypeError;OrdinaryDefineOwnMetadata(e,t,r,a)}return decorator}e("metadata",metadata);function defineMetadata(e,t,r,a){if(!IsObject(r))throw new TypeError;if(!IsUndefined(a))a=ToPropertyKey(a);return OrdinaryDefineOwnMetadata(e,t,r,a)}e("defineMetadata",defineMetadata);function hasMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryHasMetadata(e,t,r)}e("hasMetadata",hasMetadata);function hasOwnMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryHasOwnMetadata(e,t,r)}e("hasOwnMetadata",hasOwnMetadata);function getMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryGetMetadata(e,t,r)}e("getMetadata",getMetadata);function getOwnMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryGetOwnMetadata(e,t,r)}e("getOwnMetadata",getOwnMetadata);function getMetadataKeys(e,t){if(!IsObject(e))throw new TypeError;if(!IsUndefined(t))t=ToPropertyKey(t);return OrdinaryMetadataKeys(e,t)}e("getMetadataKeys",getMetadataKeys);function getOwnMetadataKeys(e,t){if(!IsObject(e))throw new TypeError;if(!IsUndefined(t))t=ToPropertyKey(t);return OrdinaryOwnMetadataKeys(e,t)}e("getOwnMetadataKeys",getOwnMetadataKeys);function deleteMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);var a=GetOrCreateMetadataMap(t,r,false);if(IsUndefined(a))return false;if(!a.delete(e))return false;if(a.size>0)return true;var i=h.get(t);i.delete(r);if(i.size>0)return true;h.delete(t);return true}e("deleteMetadata",deleteMetadata);function DecorateConstructor(e,t){for(var r=e.length-1;r>=0;--r){var a=e[r];var i=a(t);if(!IsUndefined(i)&&!IsNull(i)){if(!IsConstructor(i))throw new TypeError;t=i}}return t}function DecorateProperty(e,t,r,a){for(var i=e.length-1;i>=0;--i){var n=e[i];var s=n(t,r,a);if(!IsUndefined(s)&&!IsNull(s)){if(!IsObject(s))throw new TypeError;a=s}}return a}function GetOrCreateMetadataMap(e,t,r){var a=h.get(e);if(IsUndefined(a)){if(!r)return undefined;a=new d;h.set(e,a)}var i=a.get(t);if(IsUndefined(i)){if(!r)return undefined;i=new d;a.set(t,i)}return i}function OrdinaryHasMetadata(e,t,r){var a=OrdinaryHasOwnMetadata(e,t,r);if(a)return true;var i=OrdinaryGetPrototypeOf(t);if(!IsNull(i))return OrdinaryHasMetadata(e,i,r);return false}function OrdinaryHasOwnMetadata(e,t,r){var a=GetOrCreateMetadataMap(t,r,false);if(IsUndefined(a))return false;return ToBoolean(a.has(e))}function OrdinaryGetMetadata(e,t,r){var a=OrdinaryHasOwnMetadata(e,t,r);if(a)return OrdinaryGetOwnMetadata(e,t,r);var i=OrdinaryGetPrototypeOf(t);if(!IsNull(i))return OrdinaryGetMetadata(e,i,r);return undefined}function OrdinaryGetOwnMetadata(e,t,r){var a=GetOrCreateMetadataMap(t,r,false);if(IsUndefined(a))return undefined;return a.get(e)}function OrdinaryDefineOwnMetadata(e,t,r,a){var i=GetOrCreateMetadataMap(r,a,true);i.set(e,t)}function OrdinaryMetadataKeys(e,t){var r=OrdinaryOwnMetadataKeys(e,t);var a=OrdinaryGetPrototypeOf(e);if(a===null)return r;var i=OrdinaryMetadataKeys(a,t);if(i.length<=0)return r;if(r.length<=0)return i;var n=new u;var s=[];for(var o=0,p=r;o=0&&e=this._keys.length){this._index=-1;this._keys=t;this._values=t}else{this._index++}return{value:r,done:false}}return{value:undefined,done:true}};MapIterator.prototype.throw=function(e){if(this._index>=0){this._index=-1;this._keys=t;this._values=t}throw e};MapIterator.prototype.return=function(e){if(this._index>=0){this._index=-1;this._keys=t;this._values=t}return{value:e,done:true}};return MapIterator}();return function(){function Map(){this._keys=[];this._values=[];this._cacheKey=e;this._cacheIndex=-2}Object.defineProperty(Map.prototype,"size",{get:function(){return this._keys.length},enumerable:true,configurable:true});Map.prototype.has=function(e){return this._find(e,false)>=0};Map.prototype.get=function(e){var t=this._find(e,false);return t>=0?this._values[t]:undefined};Map.prototype.set=function(e,t){var r=this._find(e,true);this._values[r]=t;return this};Map.prototype.delete=function(t){var r=this._find(t,false);if(r>=0){var a=this._keys.length;for(var i=r+1;i{const a=r(9491);const i=r(1017);const n=r(7147);let s=undefined;try{s=r(1957)}catch(e){}const o={nosort:true,silent:true};let p=0;const c=process.platform==="win32";const defaults=e=>{const t=["unlink","chmod","stat","lstat","rmdir","readdir"];t.forEach((t=>{e[t]=e[t]||n[t];t=t+"Sync";e[t]=e[t]||n[t]}));e.maxBusyTries=e.maxBusyTries||3;e.emfileWait=e.emfileWait||1e3;if(e.glob===false){e.disableGlob=true}if(e.disableGlob!==true&&s===undefined){throw Error("glob dependency not found, set `options.disableGlob = true` if intentional")}e.disableGlob=e.disableGlob||false;e.glob=e.glob||o};const rimraf=(e,t,r)=>{if(typeof t==="function"){r=t;t={}}a(e,"rimraf: missing path");a.equal(typeof e,"string","rimraf: path should be a string");a.equal(typeof r,"function","rimraf: callback function required");a(t,"rimraf: invalid options argument provided");a.equal(typeof t,"object","rimraf: options should be object");defaults(t);let i=0;let n=null;let o=0;const next=e=>{n=n||e;if(--o===0)r(n)};const afterGlob=(e,a)=>{if(e)return r(e);o=a.length;if(o===0)return r();a.forEach((e=>{const CB=r=>{if(r){if((r.code==="EBUSY"||r.code==="ENOTEMPTY"||r.code==="EPERM")&&irimraf_(e,t,CB)),i*100)}if(r.code==="EMFILE"&&primraf_(e,t,CB)),p++)}if(r.code==="ENOENT")r=null}p=0;next(r)};rimraf_(e,t,CB)}))};if(t.disableGlob||!s.hasMagic(e))return afterGlob(null,[e]);t.lstat(e,((r,a)=>{if(!r)return afterGlob(null,[e]);s(e,t.glob,afterGlob)}))};const rimraf_=(e,t,r)=>{a(e);a(t);a(typeof r==="function");t.lstat(e,((a,i)=>{if(a&&a.code==="ENOENT")return r(null);if(a&&a.code==="EPERM"&&c)fixWinEPERM(e,t,a,r);if(i&&i.isDirectory())return rmdir(e,t,a,r);t.unlink(e,(a=>{if(a){if(a.code==="ENOENT")return r(null);if(a.code==="EPERM")return c?fixWinEPERM(e,t,a,r):rmdir(e,t,a,r);if(a.code==="EISDIR")return rmdir(e,t,a,r)}return r(a)}))}))};const fixWinEPERM=(e,t,r,i)=>{a(e);a(t);a(typeof i==="function");t.chmod(e,438,(a=>{if(a)i(a.code==="ENOENT"?null:r);else t.stat(e,((a,n)=>{if(a)i(a.code==="ENOENT"?null:r);else if(n.isDirectory())rmdir(e,t,r,i);else t.unlink(e,i)}))}))};const fixWinEPERMSync=(e,t,r)=>{a(e);a(t);try{t.chmodSync(e,438)}catch(e){if(e.code==="ENOENT")return;else throw r}let i;try{i=t.statSync(e)}catch(e){if(e.code==="ENOENT")return;else throw r}if(i.isDirectory())rmdirSync(e,t,r);else t.unlinkSync(e)};const rmdir=(e,t,r,i)=>{a(e);a(t);a(typeof i==="function");t.rmdir(e,(a=>{if(a&&(a.code==="ENOTEMPTY"||a.code==="EEXIST"||a.code==="EPERM"))rmkids(e,t,i);else if(a&&a.code==="ENOTDIR")i(r);else i(a)}))};const rmkids=(e,t,r)=>{a(e);a(t);a(typeof r==="function");t.readdir(e,((a,n)=>{if(a)return r(a);let s=n.length;if(s===0)return t.rmdir(e,r);let o;n.forEach((a=>{rimraf(i.join(e,a),t,(a=>{if(o)return;if(a)return r(o=a);if(--s===0)t.rmdir(e,r)}))}))}))};const rimrafSync=(e,t)=>{t=t||{};defaults(t);a(e,"rimraf: missing path");a.equal(typeof e,"string","rimraf: path should be a string");a(t,"rimraf: missing options");a.equal(typeof t,"object","rimraf: options should be object");let r;if(t.disableGlob||!s.hasMagic(e)){r=[e]}else{try{t.lstatSync(e);r=[e]}catch(a){r=s.sync(e,t.glob)}}if(!r.length)return;for(let e=0;e{a(e);a(t);try{t.rmdirSync(e)}catch(a){if(a.code==="ENOENT")return;if(a.code==="ENOTDIR")throw r;if(a.code==="ENOTEMPTY"||a.code==="EEXIST"||a.code==="EPERM")rmkidsSync(e,t)}};const rmkidsSync=(e,t)=>{a(e);a(t);t.readdirSync(e).forEach((r=>rimrafSync(i.join(e,r),t)));const r=c?100:1;let n=0;do{let a=true;try{const i=t.rmdirSync(e,t);a=false;return i}finally{if(++n{var a=Object.create;var i=Object.defineProperty;var n=Object.defineProperties;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertyNames;var c=Object.getOwnPropertySymbols;var l=Object.getPrototypeOf;var d=Object.prototype.hasOwnProperty;var u=Object.prototype.propertyIsEnumerable;var __defNormalProp=(e,t,r)=>t in e?i(e,t,{enumerable:true,configurable:true,writable:true,value:r}):e[t]=r;var __spreadValues=(e,t)=>{for(var r in t||(t={}))if(d.call(t,r))__defNormalProp(e,r,t[r]);if(c)for(var r of c(t)){if(u.call(t,r))__defNormalProp(e,r,t[r])}return e};var __spreadProps=(e,t)=>n(e,o(t));var __markAsModule=e=>i(e,"__esModule",{value:true});var __esm=(e,t)=>function __init(){return e&&(t=(0,e[p(e)[0]])(e=0)),t};var __commonJS=(e,t)=>function __require(){return t||(0,e[p(e)[0]])((t={exports:{}}).exports,t),t.exports};var __export=(e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:true})};var __reExport=(e,t,r,a)=>{if(t&&typeof t==="object"||typeof t==="function"){for(let n of p(t))if(!d.call(e,n)&&(r||n!=="default"))i(e,n,{get:()=>t[n],enumerable:!(a=s(t,n))||a.enumerable})}return e};var __toESM=(e,t)=>__reExport(__markAsModule(i(e!=null?a(l(e)):{},"default",!t&&e&&e.__esModule?{get:()=>e.default,enumerable:true}:{value:e,enumerable:true})),e);var m=(e=>(t,r)=>e&&e.get(t)||(r=__reExport(__markAsModule({}),t,1),e&&e.set(t,r),r))(typeof WeakMap!=="undefined"?new WeakMap:0);var __async=(e,t,r)=>new Promise(((a,i)=>{var fulfilled=e=>{try{step(r.next(e))}catch(e){i(e)}};var rejected=e=>{try{step(r.throw(e))}catch(e){i(e)}};var step=e=>e.done?a(e.value):Promise.resolve(e.value).then(fulfilled,rejected);step((r=r.apply(e,t)).next())}));var h;var g=__esm({"src/lib/errors/git-error.ts"(){h=class extends Error{constructor(e,t){super(t);this.task=e;Object.setPrototypeOf(this,new.target.prototype)}}}});var v;var y=__esm({"src/lib/errors/git-response-error.ts"(){g();v=class extends h{constructor(e,t){super(void 0,t||String(e));this.git=e}}}});var b;var w=__esm({"src/lib/errors/git-construct-error.ts"(){g();b=class extends h{constructor(e,t){super(void 0,t);this.config=e}}}});var x;var E=__esm({"src/lib/errors/git-plugin-error.ts"(){g();x=class extends h{constructor(e,t,r){super(e,r);this.task=e;this.plugin=t;Object.setPrototypeOf(this,new.target.prototype)}}}});var S;var T=__esm({"src/lib/errors/task-configuration-error.ts"(){g();S=class extends h{constructor(e){super(void 0,e)}}}});function asFunction(e){return typeof e==="function"?e:O}function isUserFunction(e){return typeof e==="function"&&e!==O}function splitOn(e,t){const r=e.indexOf(t);if(r<=0){return[e,""]}return[e.substr(0,r),e.substr(r+1)]}function first(e,t=0){return isArrayLike(e)&&e.length>t?e[t]:void 0}function last(e,t=0){if(isArrayLike(e)&&e.length>t){return e[e.length-1-t]}}function isArrayLike(e){return!!(e&&typeof e.length==="number")}function toLinesWithContent(e="",t=true,r="\n"){return e.split(r).reduce(((e,r)=>{const a=t?r.trim():r;if(a){e.push(a)}return e}),[])}function forEachLineWithContent(e,t){return toLinesWithContent(e,true).map((e=>t(e)))}function folderExists(e){return(0,k.exists)(e,k.FOLDER)}function append(e,t){if(Array.isArray(e)){if(!e.includes(t)){e.push(t)}}else{e.add(t)}return t}function including(e,t){if(Array.isArray(e)&&!e.includes(t)){e.push(t)}return e}function remove(e,t){if(Array.isArray(e)){const r=e.indexOf(t);if(r>=0){e.splice(r,1)}}else{e.delete(t)}return t}function asArray(e){return Array.isArray(e)?e:[e]}function asStringArray(e){return asArray(e).map(String)}function asNumber(e,t=0){if(e==null){return t}const r=parseInt(e,10);return isNaN(r)?t:r}function prefixedArray(e,t){const r=[];for(let a=0,i=e.length;at in e?{[t]:e[t]}:{})))}function delay(e=0){return new Promise((t=>setTimeout(t,e)))}var k,C,O,P;var A=__esm({"src/lib/utils/util.ts"(){k=r(4751);C="\0";O=()=>{};P=Object.prototype.toString.call.bind(Object.prototype.toString)}});function filterType(e,t,r){if(t(e)){return e}return arguments.length>2?r:void 0}function filterPrimitives(e,t){return/number|string|boolean/.test(typeof e)&&(!t||!t.includes(typeof e))}function filterPlainObject(e){return!!e&&P(e)==="[object Object]"}function filterFunction(e){return typeof e==="function"}var D,N,R,j,F;var I=__esm({"src/lib/utils/argument-filters.ts"(){A();D=e=>Array.isArray(e);N=e=>typeof e==="string";R=e=>Array.isArray(e)&&e.every(N);j=e=>N(e)||Array.isArray(e)&&e.every(N);F=e=>{if(e==null||"number|boolean|function".includes(typeof e)){return false}return Array.isArray(e)||typeof e==="string"||typeof e.length==="number"}}});var $;var B=__esm({"src/lib/utils/exit-codes.ts"(){$=(e=>{e[e["SUCCESS"]=0]="SUCCESS";e[e["ERROR"]=1]="ERROR";e[e["NOT_FOUND"]=-2]="NOT_FOUND";e[e["UNCLEAN"]=128]="UNCLEAN";return e})($||{})}});var L;var M=__esm({"src/lib/utils/git-output-streams.ts"(){L=class{constructor(e,t){this.stdOut=e;this.stdErr=t}asStrings(){return new L(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}});var U,G;var V=__esm({"src/lib/utils/line-parser.ts"(){U=class{constructor(e,t){this.matches=[];this.parse=(e,t)=>{this.resetMatches();if(!this._regExp.every(((t,r)=>this.addMatch(t,r,e(r))))){return false}return this.useMatches(t,this.prepareMatches())!==false};this._regExp=Array.isArray(e)?e:[e];if(t){this.useMatches=t}}useMatches(e,t){throw new Error(`LineParser:useMatches not implemented`)}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(e,t,r){const a=r&&e.exec(r);if(a){this.pushMatch(t,a)}return!!a}pushMatch(e,t){this.matches.push(...t.slice(1))}};G=class extends U{addMatch(e,t,r){return/^remote:\s/.test(String(r))&&super.addMatch(e,t,r)}pushMatch(e,t){if(e>0||t.length>1){super.pushMatch(e,t)}}}}});function createInstanceConfig(...e){const t=process.cwd();const r=Object.assign(__spreadValues({baseDir:t},q),...e.filter((e=>typeof e==="object"&&e)));r.baseDir=r.baseDir||t;r.trimmed=r.trimmed===true;return r}var q;var z=__esm({"src/lib/utils/simple-git-options.ts"(){q={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:false}}});function appendTaskOptions(e,t=[]){if(!filterPlainObject(e)){return t}return Object.keys(e).reduce(((t,r)=>{const a=e[r];if(filterPrimitives(a,["boolean"])){t.push(r+"="+a)}else{t.push(r)}return t}),t)}function getTrailingOptions(e,t=0,r=false){const a=[];for(let r=0,i=t<0?e.length:t;r{for(let i=toLinesWithContent(r,a),n=0,s=i.length;n{if(n+e>=s){return}return i[n+e]};t.some((({parse:t})=>t(line,e)))}}));return e}var K=__esm({"src/lib/utils/task-parser.ts"(){A()}});var W={};__export(W,{ExitCodes:()=>$,GitOutputStreams:()=>L,LineParser:()=>U,NOOP:()=>O,NULL:()=>C,RemoteLineParser:()=>G,append:()=>append,appendTaskOptions:()=>appendTaskOptions,asArray:()=>asArray,asFunction:()=>asFunction,asNumber:()=>asNumber,asStringArray:()=>asStringArray,bufferToString:()=>bufferToString,callTaskParser:()=>callTaskParser,createInstanceConfig:()=>createInstanceConfig,delay:()=>delay,filterArray:()=>D,filterFunction:()=>filterFunction,filterHasLength:()=>F,filterPlainObject:()=>filterPlainObject,filterPrimitives:()=>filterPrimitives,filterString:()=>N,filterStringArray:()=>R,filterStringOrStringArray:()=>j,filterType:()=>filterType,first:()=>first,folderExists:()=>folderExists,forEachLineWithContent:()=>forEachLineWithContent,getTrailingOptions:()=>getTrailingOptions,including:()=>including,isUserFunction:()=>isUserFunction,last:()=>last,objectToString:()=>P,parseStringResponse:()=>parseStringResponse,pick:()=>pick,prefixedArray:()=>prefixedArray,remove:()=>remove,splitOn:()=>splitOn,toLinesWithContent:()=>toLinesWithContent,trailingFunctionArgument:()=>trailingFunctionArgument,trailingOptionsArgument:()=>trailingOptionsArgument});var J=__esm({"src/lib/utils/index.ts"(){I();B();M();V();z();H();K();A()}});var Y={};__export(Y,{CheckRepoActions:()=>Q,checkIsBareRepoTask:()=>checkIsBareRepoTask,checkIsRepoRootTask:()=>checkIsRepoRootTask,checkIsRepoTask:()=>checkIsRepoTask});function checkIsRepoTask(e){switch(e){case"bare":return checkIsBareRepoTask();case"root":return checkIsRepoRootTask()}const t=["rev-parse","--is-inside-work-tree"];return{commands:t,format:"utf-8",onError:X,parser:Z}}function checkIsRepoRootTask(){const e=["rev-parse","--git-dir"];return{commands:e,format:"utf-8",onError:X,parser(e){return/^\.(git)?$/.test(e.trim())}}}function checkIsBareRepoTask(){const e=["rev-parse","--is-bare-repository"];return{commands:e,format:"utf-8",onError:X,parser:Z}}function isNotRepoMessage(e){return/(Not a git repository|Kein Git-Repository)/i.test(String(e))}var Q,X,Z;var ee=__esm({"src/lib/tasks/check-is-repo.ts"(){J();Q=(e=>{e["BARE"]="bare";e["IN_TREE"]="tree";e["IS_REPO_ROOT"]="root";return e})(Q||{});X=({exitCode:e},t,r,a)=>{if(e===128&&isNotRepoMessage(t)){return r(Buffer.from("false"))}a(t)};Z=e=>e.trim()==="true"}});function cleanSummaryParser(e,t){const r=new te(e);const a=e?ae:re;toLinesWithContent(t).forEach((e=>{const t=e.replace(a,"");r.paths.push(t);(ie.test(t)?r.folders:r.files).push(t)}));return r}var te,re,ae,ie;var ne=__esm({"src/lib/responses/CleanSummary.ts"(){J();te=class{constructor(e){this.dryRun=e;this.paths=[];this.files=[];this.folders=[]}};re=/^[a-z]+\s*/i;ae=/^[a-z]+\s+[a-z]+\s*/i;ie=/\/$/}});var se={};__export(se,{EMPTY_COMMANDS:()=>oe,adhocExecTask:()=>adhocExecTask,configurationErrorTask:()=>configurationErrorTask,isBufferTask:()=>isBufferTask,isEmptyTask:()=>isEmptyTask,straightThroughBufferTask:()=>straightThroughBufferTask,straightThroughStringTask:()=>straightThroughStringTask});function adhocExecTask(e){return{commands:oe,format:"empty",parser:e}}function configurationErrorTask(e){return{commands:oe,format:"empty",parser(){throw typeof e==="string"?new S(e):e}}}function straightThroughStringTask(e,t=false){return{commands:e,format:"utf-8",parser(e){return t?String(e).trim():e}}}function straightThroughBufferTask(e){return{commands:e,format:"buffer",parser(e){return e}}}function isBufferTask(e){return e.format==="buffer"}function isEmptyTask(e){return e.format==="empty"||!e.commands.length}var oe;var pe=__esm({"src/lib/tasks/task.ts"(){T();oe=[]}});var ce={};__export(ce,{CONFIG_ERROR_INTERACTIVE_MODE:()=>le,CONFIG_ERROR_MODE_REQUIRED:()=>de,CONFIG_ERROR_UNKNOWN_OPTION:()=>ue,CleanOptions:()=>me,cleanTask:()=>cleanTask,cleanWithOptionsTask:()=>cleanWithOptionsTask,isCleanOptionsArray:()=>isCleanOptionsArray});function cleanWithOptionsTask(e,t){const{cleanMode:r,options:a,valid:i}=getCleanOptions(e);if(!r){return configurationErrorTask(de)}if(!i.options){return configurationErrorTask(ue+JSON.stringify(e))}a.push(...t);if(a.some(isInteractiveMode)){return configurationErrorTask(le)}return cleanTask(r,a)}function cleanTask(e,t){const r=["clean",`-${e}`,...t];return{commands:r,format:"utf-8",parser(t){return cleanSummaryParser(e==="n",t)}}}function isCleanOptionsArray(e){return Array.isArray(e)&&e.every((e=>fe.has(e)))}function getCleanOptions(e){let t;let r=[];let a={cleanMode:false,options:true};e.replace(/[^a-z]i/g,"").split("").forEach((e=>{if(isCleanMode(e)){t=e;a.cleanMode=true}else{a.options=a.options&&isKnownOption(r[r.length]=`-${e}`)}}));return{cleanMode:t,options:r,valid:a}}function isCleanMode(e){return e==="f"||e==="n"}function isKnownOption(e){return/^-[a-z]$/i.test(e)&&fe.has(e.charAt(1))}function isInteractiveMode(e){if(/^-[^\-]/.test(e)){return e.indexOf("i")>0}return e==="--interactive"}var le,de,ue,me,fe;var he=__esm({"src/lib/tasks/clean.ts"(){ne();J();pe();le="Git clean interactive mode is not supported";de='Git clean mode parameter ("n" or "f") is required';ue="Git clean unknown option found in: ";me=(e=>{e["DRY_RUN"]="n";e["FORCE"]="f";e["IGNORED_INCLUDED"]="x";e["IGNORED_ONLY"]="X";e["EXCLUDING"]="e";e["QUIET"]="q";e["RECURSIVE"]="d";return e})(me||{});fe=new Set(["i",...asStringArray(Object.values(me))])}});function configListParser(e){const t=new ge;for(const r of configParser(e)){t.addValue(r.file,String(r.key),r.value)}return t}function configGetParser(e,t){let r=null;const a=[];const i=new Map;for(const n of configParser(e,t)){if(n.key!==t){continue}a.push(r=n.value);if(!i.has(n.file)){i.set(n.file,[])}i.get(n.file).push(r)}return{key:t,paths:Array.from(i.keys()),scopes:i,value:r,values:a}}function configFilePath(e){return e.replace(/^(file):/,"")}function*configParser(e,t=null){const r=e.split("\0");for(let e=0,a=r.length-1;eObject.assign(e,this.values[t])),{})}return this._all}addFile(e){if(!(e in this.values)){const t=last(this.files);this.values[e]=t?Object.create(this.values[t]):{};this.files.push(e)}return this.values[e]}addValue(e,t,r){const a=this.addFile(e);if(!a.hasOwnProperty(t)){a[t]=r}else if(Array.isArray(a[t])){a[t].push(r)}else{a[t]=[a[t],r]}this._all=void 0}}}});function asConfigScope(e,t){if(typeof e==="string"&&ye.hasOwnProperty(e)){return e}return t}function addConfigTask(e,t,r,a){const i=["config",`--${a}`];if(r){i.push("--add")}i.push(e,t);return{commands:i,format:"utf-8",parser(e){return e}}}function getConfigTask(e,t){const r=["config","--null","--show-origin","--get-all",e];if(t){r.splice(1,0,`--${t}`)}return{commands:r,format:"utf-8",parser(t){return configGetParser(t,e)}}}function listConfigTask(e){const t=["config","--list","--show-origin","--null"];if(e){t.push(`--${e}`)}return{commands:t,format:"utf-8",parser(e){return configListParser(e)}}}function config_default(){return{addConfig(e,t,...r){return this._runTask(addConfigTask(e,t,r[0]===true,asConfigScope(r[1],"local")),trailingFunctionArgument(arguments))},getConfig(e,t){return this._runTask(getConfigTask(e,asConfigScope(t,void 0)),trailingFunctionArgument(arguments))},listConfig(...e){return this._runTask(listConfigTask(asConfigScope(e[0],void 0)),trailingFunctionArgument(arguments))}}}var ye;var be=__esm({"src/lib/tasks/config.ts"(){ve();J();ye=(e=>{e["system"]="system";e["global"]="global";e["local"]="local";e["worktree"]="worktree";return e})(ye||{})}});function grepQueryBuilder(...e){return(new Ee).param(...e)}function parseGrep(e){const t=new Set;const r={};forEachLineWithContent(e,(e=>{const[a,i,n]=e.split(C);t.add(a);(r[a]=r[a]||[]).push({line:asNumber(i),path:a,preview:n})}));return{paths:t,results:r}}function grep_default(){return{grep(e){const t=trailingFunctionArgument(arguments);const r=getTrailingOptions(arguments);for(const e of we){if(r.includes(e)){return this._runTask(configurationErrorTask(`git.grep: use of "${e}" is not supported.`),t)}}if(typeof e==="string"){e=grepQueryBuilder().param(e)}const a=["grep","--null","-n","--full-name",...r,...e];return this._runTask({commands:a,format:"utf-8",parser(e){return parseGrep(e)}},t)}}}var we,xe,_e,Ee;var Se=__esm({"src/lib/tasks/grep.ts"(){J();pe();we=["-h"];xe=Symbol("grepQuery");Ee=class{constructor(){this[_e]=[]}*[(_e=xe,Symbol.iterator)](){for(const e of this[xe]){yield e}}and(...e){e.length&&this[xe].push("--and","(",...prefixedArray(e,"-e"),")");return this}param(...e){this[xe].push(...prefixedArray(e,"-e"));return this}}}});var Te={};__export(Te,{ResetMode:()=>ke,getResetMode:()=>getResetMode,resetTask:()=>resetTask});function resetTask(e,t){const r=["reset"];if(isValidResetMode(e)){r.push(`--${e}`)}r.push(...t);return straightThroughStringTask(r)}function getResetMode(e){if(isValidResetMode(e)){return e}switch(typeof e){case"string":case"undefined":return"soft"}return}function isValidResetMode(e){return Ce.includes(e)}var ke,Ce;var Oe=__esm({"src/lib/tasks/reset.ts"(){pe();ke=(e=>{e["MIXED"]="mixed";e["SOFT"]="soft";e["HARD"]="hard";e["MERGE"]="merge";e["KEEP"]="keep";return e})(ke||{});Ce=Array.from(Object.values(ke))}});var Pe={};__export(Pe,{CheckRepoActions:()=>Q,CleanOptions:()=>me,GitConfigScope:()=>ye,GitConstructError:()=>b,GitError:()=>h,GitPluginError:()=>x,GitResponseError:()=>v,ResetMode:()=>ke,TaskConfigurationError:()=>S,grepQueryBuilder:()=>grepQueryBuilder});var Ae=__esm({"src/lib/api.ts"(){w();g();E();y();T();ee();he();be();Se();Oe()}});function abortPlugin(e){if(!e){return}const t={type:"spawn.after",action(t,r){function kill(){r.kill(new x(void 0,"abort","Abort signal received"))}e.addEventListener("abort",kill);r.spawned.on("close",(()=>e.removeEventListener("abort",kill)))}};const r={type:"spawn.before",action(t,r){if(e.aborted){r.kill(new x(void 0,"abort","Abort already signaled"))}}};return[r,t]}var De=__esm({"src/lib/plugins/abort-plugin.ts"(){E()}});function isConfigSwitch(e){return typeof e==="string"&&e.trim().toLowerCase()==="-c"}function preventProtocolOverride(e,t){if(!isConfigSwitch(e)){return}if(!/^\s*protocol(.[a-z]+)?.allow/.test(t)){return}throw new x(void 0,"unsafe","Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol")}function preventUploadPack(e,t){if(/^\s*--(upload|receive)-pack/.test(e)){throw new x(void 0,"unsafe",`Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack`)}if(t==="clone"&&/^\s*-u\b/.test(e)){throw new x(void 0,"unsafe",`Use of clone with option -u is not permitted without enabling allowUnsafePack`)}if(t==="push"&&/^\s*--exec\b/.test(e)){throw new x(void 0,"unsafe",`Use of push with option --exec is not permitted without enabling allowUnsafePack`)}}function blockUnsafeOperationsPlugin({allowUnsafeProtocolOverride:e=false,allowUnsafePack:t=false}={}){return{type:"spawn.args",action(r,a){r.forEach(((i,n)=>{const s=ndelay(e)))).then(r.done)}return{type:"spawn.after",action(e,t){return __async(this,arguments,(function*(e,{spawned:t,close:r}){var a,i;const n=createEvents();let s=true;let quickClose=()=>void(s=false);(a=t.stdout)==null?void 0:a.on("data",quickClose);(i=t.stderr)==null?void 0:i.on("data",quickClose);t.on("error",quickClose);t.on("close",(e=>n.close(e)));t.on("exit",(e=>n.exit(e)));try{yield n.result;if(s){yield delay(50)}r(n.exitCode)}catch(e){r(n.exitCode,e)}}))}}}var je,Fe;var Ie=__esm({"src/lib/plugins/completion-detection.plugin.ts"(){je=r(9819);J();Fe=(0,je.deferred)().promise}});function isTaskError(e){return!!(e.exitCode&&e.stdErr.length)}function getErrorMessage(e){return Buffer.concat([...e.stdOut,...e.stdErr])}function errorDetectionHandler(e=false,t=isTaskError,r=getErrorMessage){return(a,i)=>{if(!e&&a||!t(i)){return a}return r(i)}}function errorDetectionPlugin(e){return{type:"task.error",action(t,r){const a=e(t.error,{stdErr:r.stdErr,stdOut:r.stdOut,exitCode:r.exitCode});if(Buffer.isBuffer(a)){return{error:new h(void 0,a.toString("utf-8"))}}return{error:a}}}}var $e=__esm({"src/lib/plugins/error-detection.plugin.ts"(){g()}});var Be;var Le=__esm({"src/lib/plugins/plugin-store.ts"(){J();Be=class{constructor(){this.plugins=new Set}add(e){const t=[];asArray(e).forEach((e=>e&&this.plugins.add(append(t,e))));return()=>{t.forEach((e=>this.plugins.delete(e)))}}exec(e,t,r){let a=t;const i=Object.freeze(Object.create(r));for(const t of this.plugins){if(t.type===e){a=t.action(a,i)}}return a}}}});function progressMonitorPlugin(e){const t="--progress";const r=["checkout","clone","fetch","pull","push"];const a={type:"spawn.after",action(r,a){var i;if(!a.commands.includes(t)){return}(i=a.spawned.stderr)==null?void 0:i.on("data",(t=>{const r=/^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(t.toString("utf8"));if(!r){return}e({method:a.method,stage:progressEventStage(r[1]),progress:asNumber(r[2]),processed:asNumber(r[3]),total:asNumber(r[4])})}))}};const i={type:"spawn.args",action(e,a){if(!r.includes(a.method)){return e}return including(e,t)}};return[i,a]}function progressEventStage(e){return String(e.toLowerCase().split(" ",1))||"unknown"}var Me=__esm({"src/lib/plugins/progress-monitor-plugin.ts"(){J()}});var Ue=__esm({"src/lib/plugins/simple-git-plugin.ts"(){}});function spawnOptionsPlugin(e){const t=pick(e,["uid","gid"]);return{type:"spawn.options",action(e){return __spreadValues(__spreadValues({},t),e)}}}var Ge=__esm({"src/lib/plugins/spawn-options-plugin.ts"(){J()}});function timeoutPlugin({block:e}){if(e>0){return{type:"spawn.after",action(t,r){var a,i;let n;function wait(){n&&clearTimeout(n);n=setTimeout(kill,e)}function stop(){var e,t;(e=r.spawned.stdout)==null?void 0:e.off("data",wait);(t=r.spawned.stderr)==null?void 0:t.off("data",wait);r.spawned.off("exit",stop);r.spawned.off("close",stop);n&&clearTimeout(n)}function kill(){stop();r.kill(new x(void 0,"timeout",`block timeout reached`))}(a=r.spawned.stdout)==null?void 0:a.on("data",wait);(i=r.spawned.stderr)==null?void 0:i.on("data",wait);r.spawned.on("exit",stop);r.spawned.on("close",stop);wait()}}}}var Ve=__esm({"src/lib/plugins/timout-plugin.ts"(){E()}});var qe=__esm({"src/lib/plugins/index.ts"(){De();Ne();Re();Ie();$e();Le();Me();Ue();Ge();Ve()}});function createLog(){return(0,ze.default)("simple-git")}function prefixedLogger(e,t,r){if(!t||!String(t).replace(/\s*/,"")){return!r?e:(t,...a)=>{e(t,...a);r(t,...a)}}return(a,...i)=>{e(`%s ${a}`,t,...i);if(r){r(a,...i)}}}function childLoggerName(e,t,{namespace:r}){if(typeof e==="string"){return e}const a=t&&t.namespace||"";if(a.startsWith(r)){return a.substr(r.length+1)}return a||r}function createLogger(e,t,r,a=createLog()){const i=e&&`[${e}]`||"";const n=[];const s=typeof t==="string"?a.extend(t):t;const o=childLoggerName(filterType(t,N),s,a);return step(r);function sibling(t,r){return append(n,createLogger(e,o.replace(/^[^:]+/,t),r,a))}function step(t){const r=t&&`[${t}]`||"";const n=s&&prefixedLogger(s,r)||O;const o=prefixedLogger(a,`${i} ${r}`,n);return Object.assign(s?n:o,{label:e,sibling:sibling,info:o,step:step})}}var ze;var He=__esm({"src/lib/git-logger.ts"(){ze=__toESM(r(8237));J();ze.default.formatters.L=e=>String(F(e)?e.length:"-");ze.default.formatters.B=e=>{if(Buffer.isBuffer(e)){return e.toString("utf8")}return P(e)}}});var Ke,We;var Je=__esm({"src/lib/runners/tasks-pending-queue.ts"(){g();He();Ke=class{constructor(e="GitExecutor"){this.logLabel=e;this._queue=new Map}withProgress(e){return this._queue.get(e)}createProgress(e){const t=Ke.getName(e.commands[0]);const r=createLogger(this.logLabel,t);return{task:e,logger:r,name:t}}push(e){const t=this.createProgress(e);t.logger("Adding task to the queue, commands = %o",e.commands);this._queue.set(e,t);return t}fatal(e){for(const[t,{logger:r}]of Array.from(this._queue.entries())){if(t===e.task){r.info(`Failed %o`,e);r(`Fatal exception, any as-yet un-started tasks run through this executor will not be attempted`)}else{r.info(`A fatal exception occurred in a previous task, the queue has been purged: %o`,e.message)}this.complete(t)}if(this._queue.size!==0){throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`)}}complete(e){const t=this.withProgress(e);if(t){this._queue.delete(e)}}attempt(e){const t=this.withProgress(e);if(!t){throw new h(void 0,"TasksPendingQueue: attempt called for an unknown task")}t.logger("Starting task");return t}static getName(e="empty"){return`task:${e}:${++Ke.counter}`}};We=Ke;We.counter=0}});function pluginContext(e,t){return{method:first(e.commands)||"",commands:t}}function onErrorReceived(e,t){return r=>{t(`[ERROR] child process exception %o`,r);e.push(Buffer.from(String(r.stack),"ascii"))}}function onDataReceived(e,t,r,a){return i=>{r(`%s received %L bytes`,t,i);a(`%B`,i);e.push(i)}}var Ye,Qe;var Xe=__esm({"src/lib/runners/git-executor-chain.ts"(){Ye=r(2081);g();pe();J();Je();Qe=class{constructor(e,t,r){this._executor=e;this._scheduler=t;this._plugins=r;this._chain=Promise.resolve();this._queue=new We}get binary(){return this._executor.binary}get cwd(){return this._cwd||this._executor.cwd}set cwd(e){this._cwd=e}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push(e){this._queue.push(e);return this._chain=this._chain.then((()=>this.attemptTask(e)))}attemptTask(e){return __async(this,null,(function*(){const t=yield this._scheduler.next();const onQueueComplete=()=>this._queue.complete(e);try{const{logger:r}=this._queue.attempt(e);return yield isEmptyTask(e)?this.attemptEmptyTask(e,r):this.attemptRemoteTask(e,r)}catch(t){throw this.onFatalException(e,t)}finally{onQueueComplete();t()}}))}onFatalException(e,t){const r=t instanceof h?Object.assign(t,{task:e}):new h(e,t&&String(t));this._chain=Promise.resolve();this._queue.fatal(r);return r}attemptRemoteTask(e,t){return __async(this,null,(function*(){const r=this._plugins.exec("spawn.args",[...e.commands],pluginContext(e,e.commands));const a=yield this.gitResponse(e,this.binary,r,this.outputHandler,t.step("SPAWN"));const i=yield this.handleTaskData(e,r,a,t.step("HANDLE"));t(`passing response to task's parser as a %s`,e.format);if(isBufferTask(e)){return callTaskParser(e.parser,i)}return callTaskParser(e.parser,i.asStrings())}))}attemptEmptyTask(e,t){return __async(this,null,(function*(){t(`empty task bypassing child process to call to task's parser`);return e.parser(this)}))}handleTaskData(e,t,r,a){const{exitCode:i,rejection:n,stdOut:s,stdErr:o}=r;return new Promise(((p,c)=>{a(`Preparing to handle process response exitCode=%d stdOut=`,i);const{error:l}=this._plugins.exec("task.error",{error:n},__spreadValues(__spreadValues({},pluginContext(e,t)),r));if(l&&e.onError){a.info(`exitCode=%s handling with custom error handler`);return e.onError(r,l,(e=>{a.info(`custom error handler treated as success`);a(`custom error returned a %s`,P(e));p(new L(Array.isArray(e)?Buffer.concat(e):e,Buffer.concat(o)))}),c)}if(l){a.info(`handling as error: exitCode=%s stdErr=%s rejection=%o`,i,o.length,n);return c(l)}a.info(`retrieving task output complete`);p(new L(Buffer.concat(s),Buffer.concat(o)))}))}gitResponse(e,t,r,a,i){return __async(this,null,(function*(){const n=i.sibling("output");const s=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:true},pluginContext(e,e.commands));return new Promise((o=>{const p=[];const c=[];i.info(`%s %o`,t,r);i("%O",s);let l=this._beforeSpawn(e,r);if(l){return o({stdOut:p,stdErr:c,exitCode:9901,rejection:l})}this._plugins.exec("spawn.before",void 0,__spreadProps(__spreadValues({},pluginContext(e,r)),{kill(e){l=e||l}}));const d=(0,Ye.spawn)(t,r,s);d.stdout.on("data",onDataReceived(p,"stdOut",i,n.step("stdOut")));d.stderr.on("data",onDataReceived(c,"stdErr",i,n.step("stdErr")));d.on("error",onErrorReceived(c,i));if(a){i(`Passing child process stdOut/stdErr to custom outputHandler`);a(t,d.stdout,d.stderr,[...r])}this._plugins.exec("spawn.after",void 0,__spreadProps(__spreadValues({},pluginContext(e,r)),{spawned:d,close(e,t){o({stdOut:p,stdErr:c,exitCode:e,rejection:l||t})},kill(e){if(d.killed){return}l=e;d.kill("SIGINT")}}))}))}))}_beforeSpawn(e,t){let r;this._plugins.exec("spawn.before",void 0,__spreadProps(__spreadValues({},pluginContext(e,t)),{kill(e){r=e||r}}));return r}}}});var Ze={};__export(Ze,{GitExecutor:()=>et});var et;var tt=__esm({"src/lib/runners/git-executor.ts"(){Xe();et=class{constructor(e="git",t,r,a){this.binary=e;this.cwd=t;this._scheduler=r;this._plugins=a;this._chain=new Qe(this,this._scheduler,this._plugins)}chain(){return new Qe(this,this._scheduler,this._plugins)}push(e){return this._chain.push(e)}}}});function taskCallback(e,t,r=O){const onSuccess=e=>{r(null,e)};const onError2=t=>{if((t==null?void 0:t.task)===e){r(t instanceof v?addDeprecationNoticeToError(t):t,void 0)}};t.then(onSuccess,onError2)}function addDeprecationNoticeToError(e){let log=e=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${e} should be GitResponseError.git.${e}, this will no longer be available in version 3`);log=O};return Object.create(e,Object.getOwnPropertyNames(e.git).reduce(descriptorReducer,{}));function descriptorReducer(t,r){if(r in e){return t}t[r]={enumerable:false,configurable:false,get(){log(r);return e.git[r]}};return t}}var rt=__esm({"src/lib/task-callback.ts"(){y();J()}});function changeWorkingDirectoryTask(e,t){return adhocExecTask((r=>{if(!folderExists(e)){throw new Error(`Git.cwd: cannot change to non-directory "${e}"`)}return(t||r).cwd=e}))}var it=__esm({"src/lib/tasks/change-working-directory.ts"(){J();pe()}});function checkoutTask(e){const t=["checkout",...e];if(t[1]==="-b"&&t.includes("-B")){t[1]=remove(t,"-B")}return straightThroughStringTask(t)}function checkout_default(){return{checkout(){return this._runTask(checkoutTask(getTrailingOptions(arguments,1)),trailingFunctionArgument(arguments))},checkoutBranch(e,t){return this._runTask(checkoutTask(["-b",e,t,...getTrailingOptions(arguments)]),trailingFunctionArgument(arguments))},checkoutLocalBranch(e){return this._runTask(checkoutTask(["-b",e,...getTrailingOptions(arguments)]),trailingFunctionArgument(arguments))}}}var nt=__esm({"src/lib/tasks/checkout.ts"(){J();pe()}});function parseCommitResult(e){const t={author:null,branch:"",commit:"",root:false,summary:{changes:0,insertions:0,deletions:0}};return parseStringResponse(t,st,e)}var st;var ot=__esm({"src/lib/parsers/parse-commit.ts"(){J();st=[new U(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,((e,[t,r,a])=>{e.branch=t;e.commit=a;e.root=!!r})),new U(/\s*Author:\s(.+)/i,((e,[t])=>{const r=t.split("<");const a=r.pop();if(!a||!a.includes("@")){return}e.author={email:a.substr(0,a.length-1),name:r.join("<").trim()}})),new U(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,((e,[t,r,a])=>{e.summary.changes=parseInt(t,10)||0;e.summary.insertions=parseInt(r,10)||0;e.summary.deletions=parseInt(a,10)||0})),new U(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,((e,[t,r,a])=>{e.summary.changes=parseInt(t,10)||0;const i=parseInt(r,10)||0;if(a==="-"){e.summary.deletions=i}else if(a==="+"){e.summary.insertions=i}}))]}});function commitTask(e,t,r){const a=["-c","core.abbrev=40","commit",...prefixedArray(e,"-m"),...t,...r];return{commands:a,format:"utf-8",parser:parseCommitResult}}function commit_default(){return{commit(e,...t){const r=trailingFunctionArgument(arguments);const a=rejectDeprecatedSignatures(e)||commitTask(asArray(e),asArray(filterType(t[0],j,[])),[...filterType(t[1],D,[]),...getTrailingOptions(arguments,0,true)]);return this._runTask(a,r)}};function rejectDeprecatedSignatures(e){return!j(e)&&configurationErrorTask(`git.commit: requires the commit message to be supplied as a string/string[]`)}}var pt=__esm({"src/lib/tasks/commit.ts"(){ot();J();pe()}});function hashObjectTask(e,t){const r=["hash-object",e];if(t){r.push("-w")}return straightThroughStringTask(r,true)}var ct=__esm({"src/lib/tasks/hash-object.ts"(){pe()}});function parseInit(e,t,r){const a=String(r).trim();let i;if(i=dt.exec(a)){return new lt(e,t,false,i[1])}if(i=ut.exec(a)){return new lt(e,t,true,i[1])}let n="";const s=a.split(" ");while(s.length){const e=s.shift();if(e==="in"){n=s.join(" ");break}}return new lt(e,t,/^re/i.test(a),n)}var lt,dt,ut;var mt=__esm({"src/lib/responses/InitSummary.ts"(){lt=class{constructor(e,t,r,a){this.bare=e;this.path=t;this.existing=r;this.gitDir=a}};dt=/^Init.+ repository in (.+)$/;ut=/^Rein.+ in (.+)$/}});function hasBareCommand(e){return e.includes(ft)}function initTask(e=false,t,r){const a=["init",...r];if(e&&!hasBareCommand(a)){a.splice(1,0,ft)}return{commands:a,format:"utf-8",parser(e){return parseInit(a.includes("--bare"),t,e)}}}var ft;var ht=__esm({"src/lib/tasks/init.ts"(){mt();ft="--bare"}});function logFormatFromCommand(e){for(let t=0;tparseStringResponse(new yt,t,e,false)}var wt,xt,_t,Et,St;var Tt=__esm({"src/lib/parsers/parse-diff-summary.ts"(){vt();bt();J();wt=[new U(/(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,((e,[t,r,a=""])=>{e.files.push({file:t.trim(),changes:asNumber(r),insertions:a.replace(/[^+]/g,"").length,deletions:a.replace(/[^-]/g,"").length,binary:false})})),new U(/(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,((e,[t,r,a])=>{e.files.push({file:t.trim(),before:asNumber(r),after:asNumber(a),binary:true})})),new U(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,((e,[t,r])=>{const a=/(\d+) i/.exec(r);const i=/(\d+) d/.exec(r);e.changed=asNumber(t);e.insertions=asNumber(a==null?void 0:a[1]);e.deletions=asNumber(i==null?void 0:i[1])}))];xt=[new U(/(\d+)\t(\d+)\t(.+)$/,((e,[t,r,a])=>{const i=asNumber(t);const n=asNumber(r);e.changed++;e.insertions+=i;e.deletions+=n;e.files.push({file:a,changes:i+n,insertions:i,deletions:n,binary:false})})),new U(/-\t-\t(.+)$/,((e,[t])=>{e.changed++;e.files.push({file:t,after:0,before:0,binary:true})}))];_t=[new U(/(.+)$/,((e,[t])=>{e.changed++;e.files.push({file:t,changes:0,insertions:0,deletions:0,binary:false})}))];Et=[new U(/([ACDMRTUXB])\s*(.+)$/,((e,[t,r])=>{e.changed++;e.files.push({file:r,changes:0,insertions:0,deletions:0,binary:false})}))];St={[""]:wt,["--stat"]:wt,["--numstat"]:xt,["--name-status"]:Et,["--name-only"]:_t}}});function lineBuilder(e,t){return t.reduce(((t,r,a)=>{t[r]=e[a]||"";return t}),Object.create({diff:null}))}function createListLogSummaryParser(e=Ot,t=Pt,r=""){const a=getDiffParser(r);return function(r){const i=toLinesWithContent(r,true,kt).map((function(r){const i=r.trim().split(Ct);const n=lineBuilder(i[0].trim().split(e),t);if(i.length>1&&!!i[1].trim()){n.diff=a(i[1])}return n}));return{all:i,latest:i.length&&i[0]||null,total:i.length}}}var kt,Ct,Ot,Pt;var At=__esm({"src/lib/parsers/parse-list-log-summary.ts"(){J();Tt();vt();kt="òòòòòò ";Ct=" òò";Ot=" ò ";Pt=["hash","date","message","refs","author_name","author_email"]}});var Dt={};__export(Dt,{diffSummaryTask:()=>diffSummaryTask,validateLogFormatConfig:()=>validateLogFormatConfig});function diffSummaryTask(e){let t=logFormatFromCommand(e);const r=["diff"];if(t===""){t="--stat";r.push("--stat=4096")}r.push(...e);return validateLogFormatConfig(r)||{commands:r,format:"utf-8",parser:getDiffParser(t)}}function validateLogFormatConfig(e){const t=e.filter(isLogFormat);if(t.length>1){return configurationErrorTask(`Summary flags are mutually exclusive - pick one of ${t.join(",")}`)}if(t.length&&e.includes("-z")){return configurationErrorTask(`Summary flag ${t} parsing is not compatible with null termination option '-z'`)}}var Nt=__esm({"src/lib/tasks/diff.ts"(){vt();Tt();pe()}});function prettyFormat(e,t){const r=[];const a=[];Object.keys(e).forEach((t=>{r.push(t);a.push(String(e[t]))}));return[r,a.join(t)]}function userOptions(e){return Object.keys(e).reduce(((t,r)=>{if(!(r in Rt)){t[r]=e[r]}return t}),{})}function parseLogOptions(e={},t=[]){const r=filterType(e.splitter,N,Ot);const a=!filterPrimitives(e.format)&&e.format?e.format:{hash:"%H",date:e.strictDate===false?"%ai":"%aI",message:"%s",refs:"%D",body:e.multiLine?"%B":"%b",author_name:e.mailMap!==false?"%aN":"%an",author_email:e.mailMap!==false?"%aE":"%ae"};const[i,n]=prettyFormat(a,r);const s=[];const o=[`--pretty=format:${kt}${n}${Ct}`,...t];const p=e.n||e["max-count"]||e.maxCount;if(p){o.push(`--max-count=${p}`)}if(e.from||e.to){const t=e.symmetric!==false?"...":"..";s.push(`${e.from||""}${t}${e.to||""}`)}if(N(e.file)){s.push("--follow",e.file)}appendTaskOptions(userOptions(e),o);return{fields:i,splitter:r,commands:[...o,...s]}}function logTask(e,t,r){const a=createListLogSummaryParser(e,t,logFormatFromCommand(r));return{commands:["log",...r],format:"utf-8",parser:a}}function log_default(){return{log(...e){const t=trailingFunctionArgument(arguments);const r=parseLogOptions(trailingOptionsArgument(arguments),filterType(arguments[0],D));const a=rejectDeprecatedSignatures(...e)||validateLogFormatConfig(r.commands)||createLogTask(r);return this._runTask(a,t)}};function createLogTask(e){return logTask(e.splitter,e.fields,e.commands)}function rejectDeprecatedSignatures(e,t){return N(e)&&N(t)&&configurationErrorTask(`git.log(string, string) should be replaced with git.log({ from: string, to: string })`)}}var Rt;var jt=__esm({"src/lib/tasks/log.ts"(){vt();At();J();pe();Nt();Rt=(e=>{e[e["--pretty"]=0]="--pretty";e[e["max-count"]=1]="max-count";e[e["maxCount"]=2]="maxCount";e[e["n"]=3]="n";e[e["file"]=4]="file";e[e["format"]=5]="format";e[e["from"]=6]="from";e[e["to"]=7]="to";e[e["splitter"]=8]="splitter";e[e["symmetric"]=9]="symmetric";e[e["mailMap"]=10]="mailMap";e[e["multiLine"]=11]="multiLine";e[e["strictDate"]=12]="strictDate";return e})(Rt||{})}});var Ft,It;var $t=__esm({"src/lib/responses/MergeSummary.ts"(){Ft=class{constructor(e,t=null,r){this.reason=e;this.file=t;this.meta=r}toString(){return`${this.file}:${this.reason}`}};It=class{constructor(){this.conflicts=[];this.merges=[];this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){if(this.conflicts.length){return`CONFLICTS: ${this.conflicts.join(", ")}`}return"OK"}}}});var Bt,Lt;var Mt=__esm({"src/lib/responses/PullSummary.ts"(){Bt=class{constructor(){this.remoteMessages={all:[]};this.created=[];this.deleted=[];this.files=[];this.deletions={};this.insertions={};this.summary={changes:0,deletions:0,insertions:0}}};Lt=class{constructor(){this.remote="";this.hash={local:"",remote:""};this.branch={local:"",remote:""};this.message=""}toString(){return this.message}}}});function objectEnumerationResult(e){return e.objects=e.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}function asObjectCount(e){const t=/^\s*(\d+)/.exec(e);const r=/delta (\d+)/i.exec(e);return{count:asNumber(t&&t[1]||"0"),delta:asNumber(r&&r[1]||"0")}}var Ut;var Gt=__esm({"src/lib/parsers/parse-remote-objects.ts"(){J();Ut=[new G(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,((e,[t,r])=>{const a=t.toLowerCase();const i=objectEnumerationResult(e.remoteMessages);Object.assign(i,{[a]:asNumber(r)})})),new G(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,((e,[t,r])=>{const a=t.toLowerCase();const i=objectEnumerationResult(e.remoteMessages);Object.assign(i,{[a]:asNumber(r)})})),new G(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,((e,[t,r,a])=>{const i=objectEnumerationResult(e.remoteMessages);i.total=asObjectCount(t);i.reused=asObjectCount(r);i.packReused=asNumber(a)}))]}});function parseRemoteMessages(e,t){return parseStringResponse({remoteMessages:new qt},Vt,t)}var Vt,qt;var zt=__esm({"src/lib/parsers/parse-remote-messages.ts"(){J();Gt();Vt=[new G(/^remote:\s*(.+)$/,((e,[t])=>{e.remoteMessages.all.push(t.trim());return false})),...Ut,new G([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],((e,[t])=>{e.remoteMessages.pullRequestUrl=t})),new G([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],((e,[t,r,a])=>{e.remoteMessages.vulnerabilities={count:asNumber(t),summary:r,url:a}}))];qt=class{constructor(){this.all=[]}}}});function parsePullErrorResult(e,t){const r=parseStringResponse(new Lt,Yt,[e,t]);return r.message&&r}var Ht,Kt,Wt,Jt,Yt,Qt,Xt;var Zt=__esm({"src/lib/parsers/parse-pull.ts"(){Mt();J();zt();Ht=/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/;Kt=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/;Wt=/^(create|delete) mode \d+ (.+)/;Jt=[new U(Ht,((e,[t,r,a])=>{e.files.push(t);if(r){e.insertions[t]=r.length}if(a){e.deletions[t]=a.length}})),new U(Kt,((e,[t,,r,,a])=>{if(r!==void 0||a!==void 0){e.summary.changes=+t||0;e.summary.insertions=+r||0;e.summary.deletions=+a||0;return true}return false})),new U(Wt,((e,[t,r])=>{append(e.files,r);append(t==="create"?e.created:e.deleted,r)}))];Yt=[new U(/^from\s(.+)$/i,((e,[t])=>void(e.remote=t))),new U(/^fatal:\s(.+)$/,((e,[t])=>void(e.message=t))),new U(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,((e,[t,r,a,i])=>{e.branch.local=a;e.hash.local=t;e.branch.remote=i;e.hash.remote=r}))];Qt=(e,t)=>parseStringResponse(new Bt,Jt,[e,t]);Xt=(e,t)=>Object.assign(new Bt,Qt(e,t),parseRemoteMessages(e,t))}});var er,tr,rr;var ar=__esm({"src/lib/parsers/parse-merge.ts"(){$t();J();Zt();er=[new U(/^Auto-merging\s+(.+)$/,((e,[t])=>{e.merges.push(t)})),new U(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,((e,[t,r])=>{e.conflicts.push(new Ft(t,r))})),new U(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,((e,[t,r,a])=>{e.conflicts.push(new Ft(t,r,{deleteRef:a}))})),new U(/^CONFLICT\s+\((.+)\):/,((e,[t])=>{e.conflicts.push(new Ft(t,null))})),new U(/^Automatic merge failed;\s+(.+)$/,((e,[t])=>{e.result=t}))];tr=(e,t)=>Object.assign(rr(e,t),Xt(e,t));rr=e=>parseStringResponse(new It,er,e)}});function mergeTask(e){if(!e.length){return configurationErrorTask("Git.merge requires at least one option")}return{commands:["merge",...e],format:"utf-8",parser(e,t){const r=tr(e,t);if(r.failed){throw new v(r)}return r}}}var ir=__esm({"src/lib/tasks/merge.ts"(){y();ar();pe()}});function pushResultPushedItem(e,t,r){const a=r.includes("deleted");const i=r.includes("tag")||/^refs\/tags/.test(e);const n=!r.includes("new");return{deleted:a,tag:i,branch:!i,new:!n,alreadyUpdated:n,local:e,remote:t}}var nr,sr,pr;var cr=__esm({"src/lib/parsers/parse-push.ts"(){J();zt();nr=[new U(/^Pushing to (.+)$/,((e,[t])=>{e.repo=t})),new U(/^updating local tracking ref '(.+)'/,((e,[t])=>{e.ref=__spreadProps(__spreadValues({},e.ref||{}),{local:t})})),new U(/^[*-=]\s+([^:]+):(\S+)\s+\[(.+)]$/,((e,[t,r,a])=>{e.pushed.push(pushResultPushedItem(t,r,a))})),new U(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,((e,[t,r,a])=>{e.branch=__spreadProps(__spreadValues({},e.branch||{}),{local:t,remote:r,remoteName:a})})),new U(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,((e,[t,r,a,i])=>{e.update={head:{local:t,remote:r},hash:{from:a,to:i}}}))];sr=(e,t)=>{const r=pr(e,t);const a=parseRemoteMessages(e,t);return __spreadValues(__spreadValues({},r),a)};pr=(e,t)=>parseStringResponse({pushed:[]},nr,[e,t])}});var lr={};__export(lr,{pushTagsTask:()=>pushTagsTask,pushTask:()=>pushTask});function pushTagsTask(e={},t){append(t,"--tags");return pushTask(e,t)}function pushTask(e={},t){const r=["push",...t];if(e.branch){r.splice(1,0,e.branch)}if(e.remote){r.splice(1,0,e.remote)}remove(r,"-v");append(r,"--verbose");append(r,"--porcelain");return{commands:r,format:"utf-8",parser:sr}}var dr=__esm({"src/lib/tasks/push.ts"(){cr();J()}});var ur,mr;var fr=__esm({"src/lib/responses/FileStatusSummary.ts"(){ur=/^(.+) -> (.+)$/;mr=class{constructor(e,t,r){this.path=e;this.index=t;this.working_dir=r;if(t+r==="R"){const t=ur.exec(e)||[null,e,e];this.from=t[1]||"";this.path=t[2]||""}}}}});function renamedFile(e){const[t,r]=e.split(C);return{from:r||t,to:t}}function parser2(e,t,r){return[`${e}${t}`,r]}function conflicts(e,...t){return t.map((t=>parser2(e,t,((e,t)=>append(e.conflicted,t)))))}function splitLine(e,t){const r=t.trim();switch(" "){case r.charAt(2):return data(r.charAt(0),r.charAt(1),r.substr(3));case r.charAt(1):return data(" ",r.charAt(0),r.substr(2));default:return}function data(t,r,a){const i=`${t}${r}`;const n=gr.get(i);if(n){n(e,a)}if(i!=="##"&&i!=="!!"){e.files.push(new mr(a.replace(/\0.+$/,""),t,r))}}}var hr,gr,vr;var yr=__esm({"src/lib/responses/StatusSummary.ts"(){J();fr();hr=class{constructor(){this.not_added=[];this.conflicted=[];this.created=[];this.deleted=[];this.ignored=void 0;this.modified=[];this.renamed=[];this.files=[];this.staged=[];this.ahead=0;this.behind=0;this.current=null;this.tracking=null;this.detached=false;this.isClean=()=>!this.files.length}};gr=new Map([parser2(" ","A",((e,t)=>append(e.created,t))),parser2(" ","D",((e,t)=>append(e.deleted,t))),parser2(" ","M",((e,t)=>append(e.modified,t))),parser2("A"," ",((e,t)=>append(e.created,t)&&append(e.staged,t))),parser2("A","M",((e,t)=>append(e.created,t)&&append(e.staged,t)&&append(e.modified,t))),parser2("D"," ",((e,t)=>append(e.deleted,t)&&append(e.staged,t))),parser2("M"," ",((e,t)=>append(e.modified,t)&&append(e.staged,t))),parser2("M","M",((e,t)=>append(e.modified,t)&&append(e.staged,t))),parser2("R"," ",((e,t)=>{append(e.renamed,renamedFile(t))})),parser2("R","M",((e,t)=>{const r=renamedFile(t);append(e.renamed,r);append(e.modified,r.to)})),parser2("!","!",((e,t)=>{append(e.ignored=e.ignored||[],t)})),parser2("?","?",((e,t)=>append(e.not_added,t))),...conflicts("A","A","U"),...conflicts("D","D","U"),...conflicts("U","A","D","U"),["##",(e,t)=>{const r=/ahead (\d+)/;const a=/behind (\d+)/;const i=/^(.+?(?=(?:\.{3}|\s|$)))/;const n=/\.{3}(\S*)/;const s=/\son\s([\S]+)$/;let o;o=r.exec(t);e.ahead=o&&+o[1]||0;o=a.exec(t);e.behind=o&&+o[1]||0;o=i.exec(t);e.current=o&&o[1];o=n.exec(t);e.tracking=o&&o[1];o=s.exec(t);e.current=o&&o[1]||e.current;e.detached=/\(no branch\)/.test(t)}]]);vr=function(e){const t=e.split(C);const r=new hr;for(let e=0,a=t.length;e!br.includes(e)))];return{format:"utf-8",commands:t,parser(e){return vr(e)}}}var br;var wr=__esm({"src/lib/tasks/status.ts"(){yr();br=["--null","-z"]}});function versionResponse(e=0,t=0,r=0,a="",i=true){return Object.defineProperty({major:e,minor:t,patch:r,agent:a,installed:i},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:false,enumerable:false})}function notInstalledResponse(){return versionResponse(0,0,0,"",false)}function version_default(){return{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:versionParser,onError(e,t,r,a){if(e.exitCode===-2){return r(Buffer.from(xr))}a(t)}})}}}function versionParser(e){if(e===xr){return notInstalledResponse()}return parseStringResponse(versionResponse(0,0,0,e),_r,e)}var xr,_r;var Er=__esm({"src/lib/tasks/version.ts"(){J();xr="installed=false";_r=[new U(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,((e,[t,r,a,i=""])=>{Object.assign(e,versionResponse(asNumber(t),asNumber(r),asNumber(a),i))})),new U(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,((e,[t,r,a,i=""])=>{Object.assign(e,versionResponse(asNumber(t),asNumber(r),a,i))}))]}});var Sr={};__export(Sr,{SimpleGitApi:()=>Tr});var Tr;var kr=__esm({"src/lib/simple-git-api.ts"(){rt();it();nt();pt();be();Se();ct();ht();jt();ir();dr();wr();pe();Er();J();Tr=class{constructor(e){this._executor=e}_runTask(e,t){const r=this._executor.chain();const a=r.push(e);if(t){taskCallback(e,a,t)}return Object.create(this,{then:{value:a.then.bind(a)},catch:{value:a.catch.bind(a)},_executor:{value:r}})}add(e){return this._runTask(straightThroughStringTask(["add",...asArray(e)]),trailingFunctionArgument(arguments))}cwd(e){const t=trailingFunctionArgument(arguments);if(typeof e==="string"){return this._runTask(changeWorkingDirectoryTask(e,this._executor),t)}if(typeof(e==null?void 0:e.path)==="string"){return this._runTask(changeWorkingDirectoryTask(e.path,e.root&&this._executor||void 0),t)}return this._runTask(configurationErrorTask("Git.cwd: workingDirectory must be supplied as a string"),t)}hashObject(e,t){return this._runTask(hashObjectTask(e,t===true),trailingFunctionArgument(arguments))}init(e){return this._runTask(initTask(e===true,this._executor.cwd,getTrailingOptions(arguments)),trailingFunctionArgument(arguments))}merge(){return this._runTask(mergeTask(getTrailingOptions(arguments)),trailingFunctionArgument(arguments))}mergeFromTo(e,t){if(!(N(e)&&N(t))){return this._runTask(configurationErrorTask(`Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings`))}return this._runTask(mergeTask([e,t,...getTrailingOptions(arguments)]),trailingFunctionArgument(arguments,false))}outputHandler(e){this._executor.outputHandler=e;return this}push(){const e=pushTask({remote:filterType(arguments[0],N),branch:filterType(arguments[1],N)},getTrailingOptions(arguments));return this._runTask(e,trailingFunctionArgument(arguments))}stash(){return this._runTask(straightThroughStringTask(["stash",...getTrailingOptions(arguments)]),trailingFunctionArgument(arguments))}status(){return this._runTask(statusTask(getTrailingOptions(arguments)),trailingFunctionArgument(arguments))}};Object.assign(Tr.prototype,checkout_default(),commit_default(),config_default(),grep_default(),log_default(),version_default())}});var Cr={};__export(Cr,{Scheduler:()=>Ar});var Or,Pr,Ar;var Dr=__esm({"src/lib/runners/scheduler.ts"(){J();Or=r(9819);He();Pr=(()=>{let e=0;return()=>{e++;const{promise:t,done:r}=(0,Or.createDeferred)();return{promise:t,done:r,id:e}}})();Ar=class{constructor(e=2){this.concurrency=e;this.logger=createLogger("","scheduler");this.pending=[];this.running=[];this.logger(`Constructed, concurrency=%s`,e)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency){this.logger(`Schedule attempt ignored, pending=%s running=%s concurrency=%s`,this.pending.length,this.running.length,this.concurrency);return}const e=append(this.running,this.pending.shift());this.logger(`Attempting id=%s`,e.id);e.done((()=>{this.logger(`Completing id=`,e.id);remove(this.running,e);this.schedule()}))}next(){const{promise:e,id:t}=append(this.pending,Pr());this.logger(`Scheduling id=%s`,t);this.schedule();return e}}}});var Nr={};__export(Nr,{applyPatchTask:()=>applyPatchTask});function applyPatchTask(e,t){return straightThroughStringTask(["apply",...t,...e])}var Rr=__esm({"src/lib/tasks/apply-patch.ts"(){pe()}});function branchDeletionSuccess(e,t){return{branch:e,hash:t,success:true}}function branchDeletionFailure(e){return{branch:e,hash:null,success:false}}var jr;var Fr=__esm({"src/lib/responses/BranchDeleteSummary.ts"(){jr=class{constructor(){this.all=[];this.branches={};this.errors=[]}get success(){return!this.errors.length}}}});function hasBranchDeletionError(e,t){return t===1&&$r.test(e)}var Ir,$r,Br,Lr;var Mr=__esm({"src/lib/parsers/parse-branch-delete.ts"(){Fr();J();Ir=/(\S+)\s+\(\S+\s([^)]+)\)/;$r=/^error[^']+'([^']+)'/m;Br=[new U(Ir,((e,[t,r])=>{const a=branchDeletionSuccess(t,r);e.all.push(a);e.branches[t]=a})),new U($r,((e,[t])=>{const r=branchDeletionFailure(t);e.errors.push(r);e.all.push(r);e.branches[t]=r}))];Lr=(e,t)=>parseStringResponse(new jr,Br,[e,t])}});var Ur;var Gr=__esm({"src/lib/responses/BranchSummary.ts"(){Ur=class{constructor(){this.all=[];this.branches={};this.current="";this.detached=false}push(e,t,r,a,i){if(e==="*"){this.detached=t;this.current=r}this.all.push(r);this.branches[r]={current:e==="*",linkedWorkTree:e==="+",name:r,commit:a,label:i}}}}});function branchStatus(e){return e?e.charAt(0):""}function parseBranchSummary(e){return parseStringResponse(new Ur,Vr,e)}var Vr;var qr=__esm({"src/lib/parsers/parse-branch.ts"(){Gr();J();Vr=[new U(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,((e,[t,r,a,i])=>{e.push(branchStatus(t),true,r,a,i)})),new U(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s,((e,[t,r,a,i])=>{e.push(branchStatus(t),false,r,a,i)}))]}});var zr={};__export(zr,{branchLocalTask:()=>branchLocalTask,branchTask:()=>branchTask,containsDeleteBranchCommand:()=>containsDeleteBranchCommand,deleteBranchTask:()=>deleteBranchTask,deleteBranchesTask:()=>deleteBranchesTask});function containsDeleteBranchCommand(e){const t=["-d","-D","--delete"];return e.some((e=>t.includes(e)))}function branchTask(e){const t=containsDeleteBranchCommand(e);const r=["branch",...e];if(r.length===1){r.push("-a")}if(!r.includes("-v")){r.splice(1,0,"-v")}return{format:"utf-8",commands:r,parser(e,r){if(t){return Lr(e,r).all[0]}return parseBranchSummary(e)}}}function branchLocalTask(){const e=parseBranchSummary;return{format:"utf-8",commands:["branch","-v"],parser:e}}function deleteBranchesTask(e,t=false){return{format:"utf-8",commands:["branch","-v",t?"-D":"-d",...e],parser(e,t){return Lr(e,t)},onError({exitCode:e,stdOut:t},r,a,i){if(!hasBranchDeletionError(String(r),e)){return i(r)}a(t)}}}function deleteBranchTask(e,t=false){const r={format:"utf-8",commands:["branch","-v",t?"-D":"-d",e],parser(t,r){return Lr(t,r).branches[e]},onError({exitCode:e,stdErr:t,stdOut:a},i,n,s){if(!hasBranchDeletionError(String(i),e)){return s(i)}throw new v(r.parser(bufferToString(a),bufferToString(t)),String(i))}};return r}var Hr=__esm({"src/lib/tasks/branch.ts"(){y();Mr();qr();J()}});var Kr;var Wr=__esm({"src/lib/responses/CheckIgnore.ts"(){Kr=e=>e.split(/\n/g).map((e=>e.trim())).filter((e=>!!e))}});var Jr={};__export(Jr,{checkIgnoreTask:()=>checkIgnoreTask});function checkIgnoreTask(e){return{commands:["check-ignore",...e],format:"utf-8",parser:Kr}}var Yr=__esm({"src/lib/tasks/check-ignore.ts"(){Wr()}});var Qr={};__export(Qr,{cloneMirrorTask:()=>cloneMirrorTask,cloneTask:()=>cloneTask});function disallowedCommand(e){return/^--upload-pack(=|$)/.test(e)}function cloneTask(e,t,r){const a=["clone",...r];N(e)&&a.push(e);N(t)&&a.push(t);const i=a.find(disallowedCommand);if(i){return configurationErrorTask(`git.fetch: potential exploit argument blocked.`)}return straightThroughStringTask(a)}function cloneMirrorTask(e,t,r){append(r,"--mirror");return cloneTask(e,t,r)}var Xr=__esm({"src/lib/tasks/clone.ts"(){pe();J()}});function parseFetchResult(e,t){const r={raw:e,remote:null,branches:[],tags:[],updated:[],deleted:[]};return parseStringResponse(r,Zr,[e,t])}var Zr;var ea=__esm({"src/lib/parsers/parse-fetch.ts"(){J();Zr=[new U(/From (.+)$/,((e,[t])=>{e.remote=t})),new U(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,((e,[t,r])=>{e.branches.push({name:t,tracking:r})})),new U(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,((e,[t,r])=>{e.tags.push({name:t,tracking:r})})),new U(/- \[deleted]\s+\S+\s*-> (.+)$/,((e,[t])=>{e.deleted.push({tracking:t})})),new U(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,((e,[t,r,a,i])=>{e.updated.push({name:a,tracking:i,to:r,from:t})}))]}});var ta={};__export(ta,{fetchTask:()=>fetchTask});function disallowedCommand2(e){return/^--upload-pack(=|$)/.test(e)}function fetchTask(e,t,r){const a=["fetch",...r];if(e&&t){a.push(e,t)}const i=a.find(disallowedCommand2);if(i){return configurationErrorTask(`git.fetch: potential exploit argument blocked.`)}return{commands:a,format:"utf-8",parser:parseFetchResult}}var ra=__esm({"src/lib/tasks/fetch.ts"(){ea();pe()}});function parseMoveResult(e){return parseStringResponse({moves:[]},aa,e)}var aa;var ia=__esm({"src/lib/parsers/parse-move.ts"(){J();aa=[new U(/^Renaming (.+) to (.+)$/,((e,[t,r])=>{e.moves.push({from:t,to:r})}))]}});var na={};__export(na,{moveTask:()=>moveTask});function moveTask(e,t){return{commands:["mv","-v",...asArray(e),t],format:"utf-8",parser:parseMoveResult}}var sa=__esm({"src/lib/tasks/move.ts"(){ia();J()}});var oa={};__export(oa,{pullTask:()=>pullTask});function pullTask(e,t,r){const a=["pull",...r];if(e&&t){a.splice(1,0,e,t)}return{commands:a,format:"utf-8",parser(e,t){return Xt(e,t)},onError(e,t,r,a){const i=parsePullErrorResult(bufferToString(e.stdOut),bufferToString(e.stdErr));if(i){return a(new v(i))}a(t)}}}var pa=__esm({"src/lib/tasks/pull.ts"(){y();Zt();J()}});function parseGetRemotes(e){const t={};forEach(e,(([e])=>t[e]={name:e}));return Object.values(t)}function parseGetRemotesVerbose(e){const t={};forEach(e,(([e,r,a])=>{if(!t.hasOwnProperty(e)){t[e]={name:e,refs:{fetch:"",push:""}}}if(a&&r){t[e].refs[a.replace(/[^a-z]/g,"")]=r}}));return Object.values(t)}function forEach(e,t){forEachLineWithContent(e,(e=>t(e.split(/\s+/))))}var ca=__esm({"src/lib/responses/GetRemoteSummary.ts"(){J()}});var la={};__export(la,{addRemoteTask:()=>addRemoteTask,getRemotesTask:()=>getRemotesTask,listRemotesTask:()=>listRemotesTask,remoteTask:()=>remoteTask,removeRemoteTask:()=>removeRemoteTask});function addRemoteTask(e,t,r=[]){return straightThroughStringTask(["remote","add",...r,e,t])}function getRemotesTask(e){const t=["remote"];if(e){t.push("-v")}return{commands:t,format:"utf-8",parser:e?parseGetRemotesVerbose:parseGetRemotes}}function listRemotesTask(e=[]){const t=[...e];if(t[0]!=="ls-remote"){t.unshift("ls-remote")}return straightThroughStringTask(t)}function remoteTask(e=[]){const t=[...e];if(t[0]!=="remote"){t.unshift("remote")}return straightThroughStringTask(t)}function removeRemoteTask(e){return straightThroughStringTask(["remote","remove",e])}var da=__esm({"src/lib/tasks/remote.ts"(){ca();pe()}});var ua={};__export(ua,{stashListTask:()=>stashListTask});function stashListTask(e={},t){const r=parseLogOptions(e);const a=["stash","list",...r.commands,...t];const i=createListLogSummaryParser(r.splitter,r.fields,logFormatFromCommand(a));return validateLogFormatConfig(a)||{commands:a,format:"utf-8",parser:i}}var ma=__esm({"src/lib/tasks/stash-list.ts"(){vt();At();Nt();jt()}});var fa={};__export(fa,{addSubModuleTask:()=>addSubModuleTask,initSubModuleTask:()=>initSubModuleTask,subModuleTask:()=>subModuleTask,updateSubModuleTask:()=>updateSubModuleTask});function addSubModuleTask(e,t){return subModuleTask(["add",e,t])}function initSubModuleTask(e){return subModuleTask(["init",...e])}function subModuleTask(e){const t=[...e];if(t[0]!=="submodule"){t.unshift("submodule")}return straightThroughStringTask(t)}function updateSubModuleTask(e){return subModuleTask(["update",...e])}var ha=__esm({"src/lib/tasks/sub-module.ts"(){pe()}});function singleSorted(e,t){const r=isNaN(e);const a=isNaN(t);if(r!==a){return r?1:-1}return r?sorted(e,t):0}function sorted(e,t){return e===t?0:e>t?1:-1}function trimmed(e){return e.trim()}function toNumber(e){if(typeof e==="string"){return parseInt(e.replace(/^\D+/g,""),10)||0}return 0}var ga,va;var ya=__esm({"src/lib/responses/TagList.ts"(){ga=class{constructor(e,t){this.all=e;this.latest=t}};va=function(e,t=false){const r=e.split("\n").map(trimmed).filter(Boolean);if(!t){r.sort((function(e,t){const r=e.split(".");const a=t.split(".");if(r.length===1||a.length===1){return singleSorted(toNumber(r[0]),toNumber(a[0]))}for(let e=0,t=Math.max(r.length,a.length);ee.indexOf(".")>=0));return new ga(r,a)}}});var ba={};__export(ba,{addAnnotatedTagTask:()=>addAnnotatedTagTask,addTagTask:()=>addTagTask,tagListTask:()=>tagListTask});function tagListTask(e=[]){const t=e.some((e=>/^--sort=/.test(e)));return{format:"utf-8",commands:["tag","-l",...e],parser(e){return va(e,t)}}}function addTagTask(e){return{format:"utf-8",commands:["tag",e],parser(){return{name:e}}}}function addAnnotatedTagTask(e,t){return{format:"utf-8",commands:["tag","-a","-m",t,e],parser(){return{name:e}}}}var wa=__esm({"src/lib/tasks/tag.ts"(){ya()}});var xa=__commonJS({"src/git.js"(e,t){var{GitExecutor:r}=(tt(),m(Ze));var{SimpleGitApi:a}=(kr(),m(Sr));var{Scheduler:i}=(Dr(),m(Cr));var{configurationErrorTask:n}=(pe(),m(se));var{asArray:s,filterArray:o,filterPrimitives:p,filterString:c,filterStringOrStringArray:l,filterType:d,getTrailingOptions:u,trailingFunctionArgument:h,trailingOptionsArgument:g}=(J(),m(W));var{applyPatchTask:v}=(Rr(),m(Nr));var{branchTask:y,branchLocalTask:b,deleteBranchesTask:w,deleteBranchTask:x}=(Hr(),m(zr));var{checkIgnoreTask:E}=(Yr(),m(Jr));var{checkIsRepoTask:S}=(ee(),m(Y));var{cloneTask:T,cloneMirrorTask:k}=(Xr(),m(Qr));var{cleanWithOptionsTask:C,isCleanOptionsArray:O}=(he(),m(ce));var{diffSummaryTask:P}=(Nt(),m(Dt));var{fetchTask:A}=(ra(),m(ta));var{moveTask:D}=(sa(),m(na));var{pullTask:N}=(pa(),m(oa));var{pushTagsTask:R}=(dr(),m(lr));var{addRemoteTask:j,getRemotesTask:F,listRemotesTask:I,remoteTask:$,removeRemoteTask:B}=(da(),m(la));var{getResetMode:L,resetTask:M}=(Oe(),m(Te));var{stashListTask:U}=(ma(),m(ua));var{addSubModuleTask:G,initSubModuleTask:V,subModuleTask:q,updateSubModuleTask:z}=(ha(),m(fa));var{addAnnotatedTagTask:H,addTagTask:K,tagListTask:Q}=(wa(),m(ba));var{straightThroughBufferTask:X,straightThroughStringTask:Z}=(pe(),m(se));function Git2(e,t){this._executor=new r(e.binary,e.baseDir,new i(e.maxConcurrentProcesses),t);this._trimmed=e.trimmed}(Git2.prototype=Object.create(a.prototype)).constructor=Git2;Git2.prototype.customBinary=function(e){this._executor.binary=e;return this};Git2.prototype.env=function(e,t){if(arguments.length===1&&typeof e==="object"){this._executor.env=e}else{(this._executor.env=this._executor.env||{})[e]=t}return this};Git2.prototype.stashList=function(e){return this._runTask(U(g(arguments)||{},o(e)&&e||[]),h(arguments))};function createCloneTask(e,t,r,a){if(typeof r!=="string"){return n(`git.${e}() requires a string 'repoPath'`)}return t(r,d(a,c),u(arguments))}Git2.prototype.clone=function(){return this._runTask(createCloneTask("clone",T,...arguments),h(arguments))};Git2.prototype.mirror=function(){return this._runTask(createCloneTask("mirror",k,...arguments),h(arguments))};Git2.prototype.mv=function(e,t){return this._runTask(D(e,t),h(arguments))};Git2.prototype.checkoutLatestTag=function(e){var t=this;return this.pull((function(){t.tags((function(r,a){t.checkout(a.latest,e)}))}))};Git2.prototype.pull=function(e,t,r,a){return this._runTask(N(d(e,c),d(t,c),u(arguments)),h(arguments))};Git2.prototype.fetch=function(e,t){return this._runTask(A(d(e,c),d(t,c),u(arguments)),h(arguments))};Git2.prototype.silent=function(e){console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3");return this};Git2.prototype.tags=function(e,t){return this._runTask(Q(u(arguments)),h(arguments))};Git2.prototype.rebase=function(){return this._runTask(Z(["rebase",...u(arguments)]),h(arguments))};Git2.prototype.reset=function(e){return this._runTask(M(L(e),u(arguments)),h(arguments))};Git2.prototype.revert=function(e){const t=h(arguments);if(typeof e!=="string"){return this._runTask(n("Commit must be a string"),t)}return this._runTask(Z(["revert",...u(arguments,0,true),e]),t)};Git2.prototype.addTag=function(e){const t=typeof e==="string"?K(e):n("Git.addTag requires a tag name");return this._runTask(t,h(arguments))};Git2.prototype.addAnnotatedTag=function(e,t){return this._runTask(H(e,t),h(arguments))};Git2.prototype.deleteLocalBranch=function(e,t,r){return this._runTask(x(e,typeof t==="boolean"?t:false),h(arguments))};Git2.prototype.deleteLocalBranches=function(e,t,r){return this._runTask(w(e,typeof t==="boolean"?t:false),h(arguments))};Git2.prototype.branch=function(e,t){return this._runTask(y(u(arguments)),h(arguments))};Git2.prototype.branchLocal=function(e){return this._runTask(b(),h(arguments))};Git2.prototype.raw=function(e){const t=!Array.isArray(e);const r=[].slice.call(t?arguments:e,0);for(let e=0;eesModuleFactory,gitExportFactory:()=>gitExportFactory,gitInstanceFactory:()=>gitInstanceFactory});function esModuleFactory(e){return Object.defineProperties(e,{__esModule:{value:true},default:{value:e}})}function gitExportFactory(e){return Object.assign(e.bind(null),Pe)}function gitInstanceFactory(e,t){const r=new Be;const a=createInstanceConfig(e&&(typeof e==="string"?{baseDir:e}:e)||{},t);if(!folderExists(a.baseDir)){throw new b(a,`Cannot use simple-git on a directory that does not exist`)}if(Array.isArray(a.config)){r.add(commandConfigPrefixingPlugin(a.config))}r.add(blockUnsafeOperationsPlugin(a.unsafe));r.add(completionDetectionPlugin(a.completion));a.abort&&r.add(abortPlugin(a.abort));a.progress&&r.add(progressMonitorPlugin(a.progress));a.timeout&&r.add(timeoutPlugin(a.timeout));a.spawnOptions&&r.add(spawnOptionsPlugin(a.spawnOptions));r.add(errorDetectionPlugin(errorDetectionHandler(true)));a.errors&&r.add(errorDetectionPlugin(a.errors));return new Ea(a,r)}var Ea;var Sa=__esm({"src/lib/git-factory.ts"(){Ae();qe();J();Ea=xa()}});var Ta={};__export(Ta,{gitP:()=>gitP});function gitP(...e){let t;let r=Promise.resolve();try{t=gitInstanceFactory(...e)}catch(e){r=Promise.reject(e)}function builderReturn(){return a}function chainReturn(){return r}const a=[...ka,...Ca].reduce(((e,r)=>{const a=Ca.includes(r);const i=a?asyncWrapper(r,t):syncWrapper(r,t,e);const n=a?chainReturn:builderReturn;Object.defineProperty(e,r,{enumerable:false,configurable:false,value:t?i:n});return e}),{});return a;function asyncWrapper(e,t){return function(...a){if(typeof a[a.length]==="function"){throw new TypeError("Promise interface requires that handlers are not supplied inline, trailing function not allowed in call to "+e)}return r.then((function(){return new Promise((function(r,i){const callback=(e,t)=>{if(e){return i(toError(e))}r(t)};a.push(callback);t[e].apply(t,a)}))}))}}function syncWrapper(e,t,r){return(...a)=>{t[e](...a);return r}}}function toError(e){if(e instanceof Error){return e}if(typeof e==="string"){return new Error(e)}return new v(e)}var ka,Ca;var Oa=__esm({"src/lib/runners/promise-wrapped.ts"(){y();Sa();ka=["customBinary","env","outputHandler","silent"];Ca=["add","addAnnotatedTag","addConfig","addRemote","addTag","applyPatch","binaryCatFile","branch","branchLocal","catFile","checkIgnore","checkIsRepo","checkout","checkoutBranch","checkoutLatestTag","checkoutLocalBranch","clean","clone","commit","cwd","deleteLocalBranch","deleteLocalBranches","diff","diffSummary","exec","fetch","getRemotes","init","listConfig","listRemote","log","merge","mergeFromTo","mirror","mv","pull","push","pushTags","raw","rebase","remote","removeRemote","reset","revert","revparse","rm","rmKeepLocal","show","stash","stashList","status","subModule","submoduleAdd","submoduleInit","submoduleUpdate","tag","tags","updateServerInfo"]}});var{gitP:Pa}=(Oa(),m(Ta));var{esModuleFactory:Aa,gitInstanceFactory:Da,gitExportFactory:Na}=(Sa(),m(_a));var Ra=Aa(Na(Da));e.exports=Object.assign(Ra,{gitP:Pa,simpleGit:Ra})},9318:(e,t,r)=>{"use strict";const a=r(2037);const i=r(6224);const n=r(1621);const{env:s}=process;let o;if(n("no-color")||n("no-colors")||n("color=false")||n("color=never")){o=0}else if(n("color")||n("colors")||n("color=true")||n("color=always")){o=1}if("FORCE_COLOR"in s){if(s.FORCE_COLOR==="true"){o=1}else if(s.FORCE_COLOR==="false"){o=0}else{o=s.FORCE_COLOR.length===0?1:Math.min(parseInt(s.FORCE_COLOR,10),3)}}function translateLevel(e){if(e===0){return false}return{level:e,hasBasic:true,has256:e>=2,has16m:e>=3}}function supportsColor(e,t){if(o===0){return 0}if(n("color=16m")||n("color=full")||n("color=truecolor")){return 3}if(n("color=256")){return 2}if(e&&!t&&o===undefined){return 0}const r=o||0;if(s.TERM==="dumb"){return r}if(process.platform==="win32"){const e=a.release().split(".");if(Number(e[0])>=10&&Number(e[2])>=10586){return Number(e[2])>=14931?3:2}return 1}if("CI"in s){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((e=>e in s))||s.CI_NAME==="codeship"){return 1}return r}if("TEAMCITY_VERSION"in s){return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(s.TEAMCITY_VERSION)?1:0}if(s.COLORTERM==="truecolor"){return 3}if("TERM_PROGRAM"in s){const e=parseInt((s.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(s.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(s.TERM)){return 2}if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(s.TERM)){return 1}if("COLORTERM"in s){return 1}return r}function getSupportLevel(e){const t=supportsColor(e,e&&e.isTTY);return translateLevel(t)}e.exports={supportsColor:getSupportLevel,stdout:translateLevel(supportsColor(true,i.isatty(1))),stderr:translateLevel(supportsColor(true,i.isatty(2)))}},8065:(e,t,r)=>{"use strict";const{promisify:a}=r(3837);const i=r(8517);e.exports.fileSync=i.fileSync;const n=a(((e,t)=>i.file(e,((e,r,i,n)=>e?t(e):t(undefined,{path:r,fd:i,cleanup:a(n)})))));e.exports.file=async e=>n(e);e.exports.withFile=async function withFile(t,r){const{path:a,fd:i,cleanup:n}=await e.exports.file(r);try{return await t({path:a,fd:i})}finally{await n()}};e.exports.dirSync=i.dirSync;const s=a(((e,t)=>i.dir(e,((e,r,i)=>e?t(e):t(undefined,{path:r,cleanup:a(i)})))));e.exports.dir=async e=>s(e);e.exports.withDir=async function withDir(t,r){const{path:a,cleanup:i}=await e.exports.dir(r);try{return await t({path:a})}finally{await i()}};e.exports.tmpNameSync=i.tmpNameSync;e.exports.tmpName=a(i.tmpName);e.exports.tmpdir=i.tmpdir;e.exports.setGracefulCleanup=i.setGracefulCleanup},8517:(e,t,r)=>{ /*! * Tmp * @@ -48,4 +48,4 @@ var e;(function(e){(function(t){var r=typeof global==="object"?global:typeof sel */ const a=r(7147);const i=r(2037);const n=r(1017);const s=r(6113);const o={fs:a.constants,os:i.constants};const p=r(4959);const c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",l=/XXXXXX/,d=3,u=(o.O_CREAT||o.fs.O_CREAT)|(o.O_EXCL||o.fs.O_EXCL)|(o.O_RDWR||o.fs.O_RDWR),m=i.platform()==="win32",h=o.EBADF||o.os.errno.EBADF,g=o.ENOENT||o.os.errno.ENOENT,v=448,y=384,b="exit",w=[],x=a.rmdirSync.bind(a),E=p.sync;let S=false;function tmpName(e,t){const r=_parseArguments(e,t),i=r[0],n=r[1];try{_assertAndSanitizeOptions(i)}catch(e){return n(e)}let s=i.tries;(function _getUniqueName(){try{const e=_generateTmpName(i);a.stat(e,(function(t){if(!t){if(s-- >0)return _getUniqueName();return n(new Error("Could not get a unique tmp filename, max tries reached "+e))}n(null,e)}))}catch(e){n(e)}})()}function tmpNameSync(e){const t=_parseArguments(e),r=t[0];_assertAndSanitizeOptions(r);let i=r.tries;do{const e=_generateTmpName(r);try{a.statSync(e)}catch(t){return e}}while(i-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function file(e,t){const r=_parseArguments(e,t),i=r[0],n=r[1];tmpName(i,(function _tmpNameCreated(e,t){if(e)return n(e);a.open(t,u,i.mode||y,(function _fileCreated(e,r){if(e)return n(e);if(i.discardDescriptor){return a.close(r,(function _discardCallback(e){return n(e,t,undefined,_prepareTmpFileRemoveCallback(t,-1,i,false))}))}else{const e=i.discardDescriptor||i.detachDescriptor;n(null,t,r,_prepareTmpFileRemoveCallback(t,e?-1:r,i,false))}}))}))}function fileSync(e){const t=_parseArguments(e),r=t[0];const i=r.discardDescriptor||r.detachDescriptor;const n=tmpNameSync(r);var s=a.openSync(n,u,r.mode||y);if(r.discardDescriptor){a.closeSync(s);s=undefined}return{name:n,fd:s,removeCallback:_prepareTmpFileRemoveCallback(n,i?-1:s,r,true)}}function dir(e,t){const r=_parseArguments(e,t),i=r[0],n=r[1];tmpName(i,(function _tmpNameCreated(e,t){if(e)return n(e);a.mkdir(t,i.mode||v,(function _dirCreated(e){if(e)return n(e);n(null,t,_prepareTmpDirRemoveCallback(t,i,false))}))}))}function dirSync(e){const t=_parseArguments(e),r=t[0];const i=tmpNameSync(r);a.mkdirSync(i,r.mode||v);return{name:i,removeCallback:_prepareTmpDirRemoveCallback(i,r,true)}}function _removeFileAsync(e,t){const _handler=function(e){if(e&&!_isENOENT(e)){return t(e)}t()};if(0<=e[0])a.close(e[0],(function(){a.unlink(e[1],_handler)}));else a.unlink(e[1],_handler)}function _removeFileSync(e){let t=null;try{if(0<=e[0])a.closeSync(e[0])}catch(e){if(!_isEBADF(e)&&!_isENOENT(e))throw e}finally{try{a.unlinkSync(e[1])}catch(e){if(!_isENOENT(e))t=e}}if(t!==null){throw t}}function _prepareTmpFileRemoveCallback(e,t,r,a){const i=_prepareRemoveCallback(_removeFileSync,[t,e],a);const n=_prepareRemoveCallback(_removeFileAsync,[t,e],a,i);if(!r.keep)w.unshift(i);return a?i:n}function _prepareTmpDirRemoveCallback(e,t,r){const i=t.unsafeCleanup?p:a.rmdir.bind(a);const n=t.unsafeCleanup?E:x;const s=_prepareRemoveCallback(n,e,r);const o=_prepareRemoveCallback(i,e,r,s);if(!t.keep)w.unshift(s);return r?s:o}function _prepareRemoveCallback(e,t,r,a){let i=false;return function _cleanupCallback(n){if(!i){const s=a||_cleanupCallback;const o=w.indexOf(s);if(o>=0)w.splice(o,1);i=true;if(r||e===x||e===E){return e(t)}else{return e(t,n||function(){})}}}}function _garbageCollector(){if(!S)return;while(w.length){try{w[0]()}catch(e){}}}function _randomChars(e){let t=[],r=null;try{r=s.randomBytes(e)}catch(t){r=s.pseudoRandomBytes(e)}for(var a=0;a{"use strict";var a=r(5477);var i=r(2020);var n={TRANSITIONAL:0,NONTRANSITIONAL:1};function normalize(e){return e.split("\0").map((function(e){return e.normalize("NFC")})).join("\0")}function findStatus(e){var t=0;var r=i.length-1;while(t<=r){var a=Math.floor((t+r)/2);var n=i[a];if(n[0][0]<=e&&n[0][1]>=e){return n}else if(n[0][0]>e){r=a-1}else{t=a+1}}return null}var s=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function countSymbols(e){return e.replace(s,"_").length}function mapChars(e,t,r){var a=false;var i="";var s=countSymbols(e);for(var o=0;o253||o.length===0){n.error=true}for(var p=0;p63||s.length===0){n.error=true;break}}}if(n.error)return null;return s.join(".")};e.exports.toUnicode=function(e,t){var r=processing(e,t,n.NONTRANSITIONAL);return{domain:r.string,error:r.error}};e.exports.PROCESSING_OPTIONS=n},4294:(e,t,r)=>{e.exports=r(4219)},4219:(e,t,r)=>{"use strict";var a=r(1808);var i=r(4404);var n=r(3685);var s=r(5687);var o=r(2361);var p=r(9491);var c=r(3837);t.httpOverHttp=httpOverHttp;t.httpsOverHttp=httpsOverHttp;t.httpOverHttps=httpOverHttps;t.httpsOverHttps=httpsOverHttps;function httpOverHttp(e){var t=new TunnelingAgent(e);t.request=n.request;return t}function httpsOverHttp(e){var t=new TunnelingAgent(e);t.request=n.request;t.createSocket=createSecureSocket;t.defaultPort=443;return t}function httpOverHttps(e){var t=new TunnelingAgent(e);t.request=s.request;return t}function httpsOverHttps(e){var t=new TunnelingAgent(e);t.request=s.request;t.createSocket=createSecureSocket;t.defaultPort=443;return t}function TunnelingAgent(e){var t=this;t.options=e||{};t.proxyOptions=t.options.proxy||{};t.maxSockets=t.options.maxSockets||n.Agent.defaultMaxSockets;t.requests=[];t.sockets=[];t.on("free",(function onFree(e,r,a,i){var n=toOptions(r,a,i);for(var s=0,o=t.requests.length;s=this.maxSockets){i.requests.push(n);return}i.createSocket(n,(function(t){t.on("free",onFree);t.on("close",onCloseOrRemove);t.on("agentRemove",onCloseOrRemove);e.onSocket(t);function onFree(){i.emit("free",t,n)}function onCloseOrRemove(e){i.removeSocket(t);t.removeListener("free",onFree);t.removeListener("close",onCloseOrRemove);t.removeListener("agentRemove",onCloseOrRemove)}}))};TunnelingAgent.prototype.createSocket=function createSocket(e,t){var r=this;var a={};r.sockets.push(a);var i=mergeOptions({},r.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:false,headers:{host:e.host+":"+e.port}});if(e.localAddress){i.localAddress=e.localAddress}if(i.proxyAuth){i.headers=i.headers||{};i.headers["Proxy-Authorization"]="Basic "+new Buffer(i.proxyAuth).toString("base64")}l("making CONNECT request");var n=r.request(i);n.useChunkedEncodingByDefault=false;n.once("response",onResponse);n.once("upgrade",onUpgrade);n.once("connect",onConnect);n.once("error",onError);n.end();function onResponse(e){e.upgrade=true}function onUpgrade(e,t,r){process.nextTick((function(){onConnect(e,t,r)}))}function onConnect(i,s,o){n.removeAllListeners();s.removeAllListeners();if(i.statusCode!==200){l("tunneling socket could not be established, statusCode=%d",i.statusCode);s.destroy();var p=new Error("tunneling socket could not be established, "+"statusCode="+i.statusCode);p.code="ECONNRESET";e.request.emit("error",p);r.removeSocket(a);return}if(o.length>0){l("got illegal response body from proxy");s.destroy();var p=new Error("got illegal response body from proxy");p.code="ECONNRESET";e.request.emit("error",p);r.removeSocket(a);return}l("tunneling connection has established");r.sockets[r.sockets.indexOf(a)]=s;return t(s)}function onError(t){n.removeAllListeners();l("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var i=new Error("tunneling socket could not be established, "+"cause="+t.message);i.code="ECONNRESET";e.request.emit("error",i);r.removeSocket(a)}};TunnelingAgent.prototype.removeSocket=function removeSocket(e){var t=this.sockets.indexOf(e);if(t===-1){return}this.sockets.splice(t,1);var r=this.requests.shift();if(r){this.createSocket(r,(function(e){r.request.onSocket(e)}))}};function createSecureSocket(e,t){var r=this;TunnelingAgent.prototype.createSocket.call(r,e,(function(a){var n=e.request.getHeader("host");var s=mergeOptions({},r.options,{socket:a,servername:n?n.replace(/:.*$/,""):e.host});var o=i.connect(0,s);r.sockets[r.sockets.indexOf(a)]=o;t(o)}))}function toOptions(e,t,r){if(typeof e==="string"){return{host:e,port:t,localAddress:r}}return e}function mergeOptions(e){for(var t=1,r=arguments.length;t{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ContainerInstance=void 0;const a=r(5430);const i=r(7107);const n=r(9466);const s=r(8548);const o=r(9197);class ContainerInstance{constructor(e){this.services=[];this.id=e}has(e){return!!this.findService(e)}get(e){const t=a.Container.of(undefined);const r=t.findService(e);const n=this.findService(e);if(r&&r.global===true)return this.getServiceValue(r);if(n)return this.getServiceValue(n);if(r&&this!==t){const e={...r};e.value=o.EMPTY_VALUE;this.set(e);const t=this.getServiceValue(e);this.set({...e,value:t});return t}if(r)return this.getServiceValue(r);throw new i.ServiceNotFoundError(e)}getMany(e){return this.findAllServices(e).map((e=>this.getServiceValue(e)))}set(e,t){if(e instanceof Array){e.forEach((e=>this.set(e)));return this}if(typeof e==="string"||e instanceof s.Token){return this.set({id:e,type:null,value:t,factory:undefined,global:false,multiple:false,eager:false,transient:false})}if(typeof e==="function"){return this.set({id:e,type:e,value:t,factory:undefined,global:false,multiple:false,eager:false,transient:false})}const r={id:new s.Token("UNREACHABLE"),type:null,factory:undefined,value:o.EMPTY_VALUE,global:false,multiple:false,eager:false,transient:false,...e};const a=this.findService(r.id);if(a&&a.multiple!==true){Object.assign(a,r)}else{this.services.push(r)}if(r.eager){this.get(r.id)}return this}remove(e){if(Array.isArray(e)){e.forEach((e=>this.remove(e)))}else{this.services=this.services.filter((t=>{if(t.id===e){this.destroyServiceInstance(t);return false}return true}))}return this}reset(e={strategy:"resetValue"}){switch(e.strategy){case"resetValue":this.services.forEach((e=>this.destroyServiceInstance(e)));break;case"resetServices":this.services.forEach((e=>this.destroyServiceInstance(e)));this.services=[];break;default:throw new Error("Received invalid reset strategy.")}return this}findAllServices(e){return this.services.filter((t=>t.id===e))}findService(e){return this.services.find((t=>t.id===e))}getServiceValue(e){var t;let r=o.EMPTY_VALUE;if(e.value!==o.EMPTY_VALUE){return e.value}if(!e.factory&&!e.type){throw new n.CannotInstantiateValueError(e.id)}if(e.factory){if(e.factory instanceof Array){let t;try{t=this.get(e.factory[0])}catch(r){if(r instanceof i.ServiceNotFoundError){t=new e.factory[0]}else{throw r}}r=t[e.factory[1]](this,e.id)}else{r=e.factory(this,e.id)}}if(!e.factory&&e.type){const a=e.type;const i=((t=Reflect)===null||t===void 0?void 0:t.getMetadata("design:paramtypes",a))||[];const n=this.initializeParams(a,i);n.push(this);r=new a(...n)}if(!e.transient&&r!==o.EMPTY_VALUE){e.value=r}if(r===o.EMPTY_VALUE){throw new n.CannotInstantiateValueError(e.id)}if(e.type){this.applyPropertyHandlers(e.type,r)}return r}initializeParams(e,t){return t.map(((t,r)=>{const i=a.Container.handlers.find((t=>(t.object===e||t.object===Object.getPrototypeOf(e))&&t.index===r));if(i)return i.value(this);if(t&&t.name&&!this.isPrimitiveParamType(t.name)){return this.get(t)}return undefined}))}isPrimitiveParamType(e){return["string","boolean","number","object"].includes(e.toLowerCase())}applyPropertyHandlers(e,t){a.Container.handlers.forEach((r=>{if(typeof r.index==="number")return;if(r.object.constructor!==e&&!(e.prototype instanceof r.object.constructor))return;if(r.propertyName){t[r.propertyName]=r.value(this)}}))}destroyServiceInstance(e,t=false){const r=t||!!e.type||!!e.factory;if(r){if(typeof(e===null||e===void 0?void 0:e.value)["destroy"]==="function"){try{e.value.destroy()}catch(e){}}e.value=o.EMPTY_VALUE}}}t.ContainerInstance=ContainerInstance},5430:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Container=void 0;const a=r(294);class Container{static of(e="default"){if(e==="default")return this.globalInstance;let t=this.instances.find((t=>t.id===e));if(!t){t=new a.ContainerInstance(e);this.instances.push(t)}return t}static has(e){return this.globalInstance.has(e)}static get(e){return this.globalInstance.get(e)}static getMany(e){return this.globalInstance.getMany(e)}static set(e,t){this.globalInstance.set(e,t);return this}static remove(e){this.globalInstance.remove(e);return this}static reset(e="default"){if(e=="default"){this.globalInstance.reset();this.instances.forEach((e=>e.reset()))}else{const t=this.instances.find((t=>t.id===e));if(t){t.reset();this.instances.splice(this.instances.indexOf(t),1)}}return this}static registerHandler(e){this.handlers.push(e);return this}static import(e){return this}}t.Container=Container;Container.handlers=[];Container.globalInstance=new a.ContainerInstance("default");Container.instances=[]},2158:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.InjectMany=void 0;const a=r(5430);const i=r(5188);const n=r(1504);function InjectMany(e){return function(t,r,s){const o=n.resolveToTypeWrapper(e,t,r,s);if(o===undefined||o.eagerType===undefined||o.eagerType===Object){throw new i.CannotInjectValueError(t,r)}a.Container.registerHandler({object:t,propertyName:r,index:s,value:e=>{const a=o.lazyType();if(a===undefined||a===Object){throw new i.CannotInjectValueError(t,r)}return e.getMany(a)}})}}t.InjectMany=InjectMany},3859:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Inject=void 0;const a=r(5430);const i=r(5188);const n=r(1504);function Inject(e){return function(t,r,s){const o=n.resolveToTypeWrapper(e,t,r,s);if(o===undefined||o.eagerType===undefined||o.eagerType===Object){throw new i.CannotInjectValueError(t,r)}a.Container.registerHandler({object:t,propertyName:r,index:s,value:e=>{const a=o.lazyType();if(a===undefined||a===Object){throw new i.CannotInjectValueError(t,r)}return e.get(a)}})}}t.Inject=Inject},8363:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Service=void 0;const a=r(5430);const i=r(8548);const n=r(9197);function Service(e){return t=>{const r={id:t,type:t,factory:undefined,multiple:false,global:false,eager:false,transient:false,value:n.EMPTY_VALUE};if(e instanceof i.Token||typeof e==="string"){r.id=e}else if(e){r.id=e.id||t;r.factory=e.factory||undefined;r.multiple=e.multiple||false;r.global=e.global||false;r.eager=e.eager||false;r.transient=e.transient||false}a.Container.set(r)}}t.Service=Service},9197:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.EMPTY_VALUE=void 0;t.EMPTY_VALUE=Symbol("EMPTY_VALUE")},5188:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CannotInjectValueError=void 0;class CannotInjectValueError extends Error{constructor(e,t){super();this.target=e;this.propertyName=t;this.name="CannotInjectValueError"}get message(){return`Cannot inject value into "${this.target.constructor.name}.${this.propertyName}". `+`Please make sure you setup reflect-metadata properly and you don't use interfaces without service tokens as injection value.`}}t.CannotInjectValueError=CannotInjectValueError},9466:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CannotInstantiateValueError=void 0;const a=r(8548);class CannotInstantiateValueError extends Error{constructor(e){var t,r;super();this.name="CannotInstantiateValueError";this.normalizedIdentifier="";if(typeof e==="string"){this.normalizedIdentifier=e}else if(e instanceof a.Token){this.normalizedIdentifier=`Token<${e.name||"UNSET_NAME"}>`}else if(e&&(e.name||((t=e.prototype)===null||t===void 0?void 0:t.name))){this.normalizedIdentifier=`MaybeConstructable<${e.name}>`||`MaybeConstructable<${(r=e.prototype)===null||r===void 0?void 0:r.name}>`}}get message(){return`Cannot instantiate the requested value for the "${this.normalizedIdentifier}" identifier. `+`The related metadata doesn't contain a factory or a type to instantiate.`}}t.CannotInstantiateValueError=CannotInstantiateValueError},7107:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ServiceNotFoundError=void 0;const a=r(8548);class ServiceNotFoundError extends Error{constructor(e){var t,r;super();this.name="ServiceNotFoundError";this.normalizedIdentifier="";if(typeof e==="string"){this.normalizedIdentifier=e}else if(e instanceof a.Token){this.normalizedIdentifier=`Token<${e.name||"UNSET_NAME"}>`}else if(e&&(e.name||((t=e.prototype)===null||t===void 0?void 0:t.name))){this.normalizedIdentifier=`MaybeConstructable<${e.name}>`||`MaybeConstructable<${(r=e.prototype)===null||r===void 0?void 0:r.name}>`}}get message(){return`Service with "${this.normalizedIdentifier}" identifier was not found in the container. `+`Register it before usage via explicitly calling the "Container.set" function or using the "@Service()" decorator.`}}t.ServiceNotFoundError=ServiceNotFoundError},3802:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))a(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});t.Token=t.Container=t.ContainerInstance=void 0;const n=r(5430);i(r(2158),t);i(r(3859),t);i(r(8363),t);i(r(5188),t);i(r(9466),t);i(r(7107),t);var s=r(294);Object.defineProperty(t,"ContainerInstance",{enumerable:true,get:function(){return s.ContainerInstance}});var o=r(5430);Object.defineProperty(t,"Container",{enumerable:true,get:function(){return o.Container}});var p=r(8548);Object.defineProperty(t,"Token",{enumerable:true,get:function(){return p.Token}});t["default"]=n.Container},8548:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Token=void 0;class Token{constructor(e){this.name=e}}t.Token=Token},1504:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.resolveToTypeWrapper=void 0;const a=r(8548);function resolveToTypeWrapper(e,t,r,i){let n;if(e&&typeof e==="string"||e instanceof a.Token){n={eagerType:e,lazyType:()=>e}}if(e&&typeof e==="function"){n={eagerType:null,lazyType:()=>e()}}if(!e&&r){const e=Reflect.getMetadata("design:type",t,r);n={eagerType:e,lazyType:()=>e}}if(!e&&typeof i=="number"&&Number.isInteger(i)){const e=Reflect.getMetadata("design:paramtypes",t,r);const a=e===null||e===void 0?void 0:e[i];n={eagerType:a,lazyType:()=>a}}return n}t.resolveToTypeWrapper=resolveToTypeWrapper},5030:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function getUserAgent(){if(typeof navigator==="object"&&"userAgent"in navigator){return navigator.userAgent}if(typeof process==="object"&&"version"in process){return`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`}return""}t.getUserAgent=getUserAgent},9046:(e,t)=>{"use strict";t.fromCallback=function(e){return Object.defineProperty((function(...t){if(typeof t[t.length-1]==="function")e.apply(this,t);else{return new Promise(((r,a)=>{e.call(this,...t,((e,t)=>e!=null?a(e):r(t)))}))}}),"name",{value:e.name})};t.fromPromise=function(e){return Object.defineProperty((function(...t){const r=t[t.length-1];if(typeof r!=="function")return e.apply(this,t);else e.apply(this,t.slice(0,-1)).then((e=>r(null,e)),r)}),"name",{value:e.name})}},20:function(e,t){ /** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ -(function(e,r){true?r(t):0})(this,(function(e){"use strict";function merge(){for(var e=arguments.length,t=Array(e),r=0;r1){t[0]=t[0].slice(0,-1);var a=t.length-1;for(var i=1;i= 0x80 (not a basic code point)","invalid-input":"Invalid input"};var y=n-s;var b=Math.floor;var w=String.fromCharCode;function error$1(e){throw new RangeError(v[e])}function map(e,t){var r=[];var a=e.length;while(a--){r[a]=t(e[a])}return r}function mapDomain(e,t){var r=e.split("@");var a="";if(r.length>1){a=r[0]+"@";e=r[1]}e=e.replace(g,".");var i=e.split(".");var n=map(i,t).join(".");return a+n}function ucs2decode(e){var t=[];var r=0;var a=e.length;while(r=55296&&i<=56319&&r>1;e+=b(e/t);for(;e>y*o>>1;a+=n){e=b(e/y)}return b(a+(y+1)*e/(e+p))};var k=function decode(e){var t=[];var r=e.length;var a=0;var p=d;var c=l;var m=e.lastIndexOf(u);if(m<0){m=0}for(var h=0;h=128){error$1("not-basic")}t.push(e.charCodeAt(h))}for(var g=m>0?m+1:0;g=r){error$1("invalid-input")}var x=E(e.charCodeAt(g++));if(x>=n||x>b((i-a)/y)){error$1("overflow")}a+=x*y;var S=w<=c?s:w>=c+o?o:w-c;if(xb(i/k)){error$1("overflow")}y*=k}var C=t.length+1;c=T(a-v,C,v==0);if(b(a/C)>i-p){error$1("overflow")}p+=b(a/C);a%=C;t.splice(a++,0,p)}return String.fromCodePoint.apply(String,t)};var C=function encode(e){var t=[];e=ucs2decode(e);var r=e.length;var a=d;var p=0;var c=l;var m=true;var h=false;var g=undefined;try{for(var v=e[Symbol.iterator](),y;!(m=(y=v.next()).done);m=true){var x=y.value;if(x<128){t.push(w(x))}}}catch(e){h=true;g=e}finally{try{if(!m&&v.return){v.return()}}finally{if(h){throw g}}}var E=t.length;var k=E;if(E){t.push(u)}while(k=a&&Rb((i-p)/j)){error$1("overflow")}p+=(C-a)*j;a=C;var F=true;var I=false;var $=undefined;try{for(var B=e[Symbol.iterator](),L;!(F=(L=B.next()).done);F=true){var M=L.value;if(Mi){error$1("overflow")}if(M==a){var U=p;for(var G=n;;G+=n){var V=G<=c?s:G>=c+o?o:G-c;if(U>6|192).toString(16).toUpperCase()+"%"+(t&63|128).toString(16).toUpperCase();else r="%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(t&63|128).toString(16).toUpperCase();return r}function pctDecChars(e){var t="";var r=0;var a=e.length;while(r=194&&i<224){if(a-r>=6){var n=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((i&31)<<6|n&63)}else{t+=e.substr(r,6)}r+=6}else if(i>=224){if(a-r>=9){var s=parseInt(e.substr(r+4,2),16);var o=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((i&15)<<12|(s&63)<<6|o&63)}else{t+=e.substr(r,9)}r+=9}else{t+=e.substr(r,3);r+=3}}return t}function _normalizeComponentEncoding(e,t){function decodeUnreserved(e){var r=pctDecChars(e);return!r.match(t.UNRESERVED)?e:r}if(e.scheme)e.scheme=String(e.scheme).replace(t.PCT_ENCODED,decodeUnreserved).toLowerCase().replace(t.NOT_SCHEME,"");if(e.userinfo!==undefined)e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,decodeUnreserved).replace(t.NOT_USERINFO,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.host!==undefined)e.host=String(e.host).replace(t.PCT_ENCODED,decodeUnreserved).toLowerCase().replace(t.NOT_HOST,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.path!==undefined)e.path=String(e.path).replace(t.PCT_ENCODED,decodeUnreserved).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.query!==undefined)e.query=String(e.query).replace(t.PCT_ENCODED,decodeUnreserved).replace(t.NOT_QUERY,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.fragment!==undefined)e.fragment=String(e.fragment).replace(t.PCT_ENCODED,decodeUnreserved).replace(t.NOT_FRAGMENT,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);return e}function _stripLeadingZeros(e){return e.replace(/^0*(.*)/,"$1")||"0"}function _normalizeIPv4(e,t){var r=e.match(t.IPV4ADDRESS)||[];var i=a(r,2),n=i[1];if(n){return n.split(".").map(_stripLeadingZeros).join(".")}else{return e}}function _normalizeIPv6(e,t){var r=e.match(t.IPV6ADDRESS)||[];var i=a(r,3),n=i[1],s=i[2];if(n){var o=n.toLowerCase().split("::").reverse(),p=a(o,2),c=p[0],l=p[1];var d=l?l.split(":").map(_stripLeadingZeros):[];var u=c.split(":").map(_stripLeadingZeros);var m=t.IPV4ADDRESS.test(u[u.length-1]);var h=m?7:8;var g=u.length-h;var v=Array(h);for(var y=0;y1){var E=v.slice(0,w.index);var S=v.slice(w.index+w.length);x=E.join(":")+"::"+S.join(":")}else{x=v.join(":")}if(s){x+="%"+s}return x}else{return e}}var N=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i;var R="".match(/(){0}/)[1]===undefined;function parse(e){var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i={};var n=a.iri!==false?r:t;if(a.reference==="suffix")e=(a.scheme?a.scheme+":":"")+"//"+e;var s=e.match(N);if(s){if(R){i.scheme=s[1];i.userinfo=s[3];i.host=s[4];i.port=parseInt(s[5],10);i.path=s[6]||"";i.query=s[7];i.fragment=s[8];if(isNaN(i.port)){i.port=s[5]}}else{i.scheme=s[1]||undefined;i.userinfo=e.indexOf("@")!==-1?s[3]:undefined;i.host=e.indexOf("//")!==-1?s[4]:undefined;i.port=parseInt(s[5],10);i.path=s[6]||"";i.query=e.indexOf("?")!==-1?s[7]:undefined;i.fragment=e.indexOf("#")!==-1?s[8]:undefined;if(isNaN(i.port)){i.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?s[4]:undefined}}if(i.host){i.host=_normalizeIPv6(_normalizeIPv4(i.host,n),n)}if(i.scheme===undefined&&i.userinfo===undefined&&i.host===undefined&&i.port===undefined&&!i.path&&i.query===undefined){i.reference="same-document"}else if(i.scheme===undefined){i.reference="relative"}else if(i.fragment===undefined){i.reference="absolute"}else{i.reference="uri"}if(a.reference&&a.reference!=="suffix"&&a.reference!==i.reference){i.error=i.error||"URI is not a "+a.reference+" reference."}var o=D[(a.scheme||i.scheme||"").toLowerCase()];if(!a.unicodeSupport&&(!o||!o.unicodeSupport)){if(i.host&&(a.domainHost||o&&o.domainHost)){try{i.host=A.toASCII(i.host.replace(n.PCT_ENCODED,pctDecChars).toLowerCase())}catch(e){i.error=i.error||"Host's domain name can not be converted to ASCII via punycode: "+e}}_normalizeComponentEncoding(i,t)}else{_normalizeComponentEncoding(i,n)}if(o&&o.parse){o.parse(i,a)}}else{i.error=i.error||"URI can not be parsed."}return i}function _recomposeAuthority(e,a){var i=a.iri!==false?r:t;var n=[];if(e.userinfo!==undefined){n.push(e.userinfo);n.push("@")}if(e.host!==undefined){n.push(_normalizeIPv6(_normalizeIPv4(String(e.host),i),i).replace(i.IPV6ADDRESS,(function(e,t,r){return"["+t+(r?"%25"+r:"")+"]"})))}if(typeof e.port==="number"||typeof e.port==="string"){n.push(":");n.push(String(e.port))}return n.length?n.join(""):undefined}var j=/^\.\.?\//;var F=/^\/\.(\/|$)/;var I=/^\/\.\.(\/|$)/;var $=/^\/?(?:.|\n)*?(?=\/|$)/;function removeDotSegments(e){var t=[];while(e.length){if(e.match(j)){e=e.replace(j,"")}else if(e.match(F)){e=e.replace(F,"/")}else if(e.match(I)){e=e.replace(I,"/");t.pop()}else if(e==="."||e===".."){e=""}else{var r=e.match($);if(r){var a=r[0];e=e.slice(a.length);t.push(a)}else{throw new Error("Unexpected dot segment condition")}}}return t.join("")}function serialize(e){var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=a.iri?r:t;var n=[];var s=D[(a.scheme||e.scheme||"").toLowerCase()];if(s&&s.serialize)s.serialize(e,a);if(e.host){if(i.IPV6ADDRESS.test(e.host)){}else if(a.domainHost||s&&s.domainHost){try{e.host=!a.iri?A.toASCII(e.host.replace(i.PCT_ENCODED,pctDecChars).toLowerCase()):A.toUnicode(e.host)}catch(t){e.error=e.error||"Host's domain name can not be converted to "+(!a.iri?"ASCII":"Unicode")+" via punycode: "+t}}}_normalizeComponentEncoding(e,i);if(a.reference!=="suffix"&&e.scheme){n.push(e.scheme);n.push(":")}var o=_recomposeAuthority(e,a);if(o!==undefined){if(a.reference!=="suffix"){n.push("//")}n.push(o);if(e.path&&e.path.charAt(0)!=="/"){n.push("/")}}if(e.path!==undefined){var p=e.path;if(!a.absolutePath&&(!s||!s.absolutePath)){p=removeDotSegments(p)}if(o===undefined){p=p.replace(/^\/\//,"/%2F")}n.push(p)}if(e.query!==undefined){n.push("?");n.push(e.query)}if(e.fragment!==undefined){n.push("#");n.push(e.fragment)}return n.join("")}function resolveComponents(e,t){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var a=arguments[3];var i={};if(!a){e=parse(serialize(e,r),r);t=parse(serialize(t,r),r)}r=r||{};if(!r.tolerant&&t.scheme){i.scheme=t.scheme;i.userinfo=t.userinfo;i.host=t.host;i.port=t.port;i.path=removeDotSegments(t.path||"");i.query=t.query}else{if(t.userinfo!==undefined||t.host!==undefined||t.port!==undefined){i.userinfo=t.userinfo;i.host=t.host;i.port=t.port;i.path=removeDotSegments(t.path||"");i.query=t.query}else{if(!t.path){i.path=e.path;if(t.query!==undefined){i.query=t.query}else{i.query=e.query}}else{if(t.path.charAt(0)==="/"){i.path=removeDotSegments(t.path)}else{if((e.userinfo!==undefined||e.host!==undefined||e.port!==undefined)&&!e.path){i.path="/"+t.path}else if(!e.path){i.path=t.path}else{i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path}i.path=removeDotSegments(i.path)}i.query=t.query}i.userinfo=e.userinfo;i.host=e.host;i.port=e.port}i.scheme=e.scheme}i.fragment=t.fragment;return i}function resolve(e,t,r){var a=assign({scheme:"null"},r);return serialize(resolveComponents(parse(e,a),parse(t,a),a,true),a)}function normalize(e,t){if(typeof e==="string"){e=serialize(parse(e,t),t)}else if(typeOf(e)==="object"){e=parse(serialize(e,t),t)}return e}function equal(e,t,r){if(typeof e==="string"){e=serialize(parse(e,r),r)}else if(typeOf(e)==="object"){e=serialize(e,r)}if(typeof t==="string"){t=serialize(parse(t,r),r)}else if(typeOf(t)==="object"){t=serialize(t,r)}return e===t}function escapeComponent(e,a){return e&&e.toString().replace(!a||!a.iri?t.ESCAPE:r.ESCAPE,pctEncChar)}function unescapeComponent(e,a){return e&&e.toString().replace(!a||!a.iri?t.PCT_ENCODED:r.PCT_ENCODED,pctDecChars)}var B={scheme:"http",domainHost:true,parse:function parse(e,t){if(!e.host){e.error=e.error||"HTTP URIs must have a host."}return e},serialize:function serialize(e,t){var r=String(e.scheme).toLowerCase()==="https";if(e.port===(r?443:80)||e.port===""){e.port=undefined}if(!e.path){e.path="/"}return e}};var L={scheme:"https",domainHost:B.domainHost,parse:B.parse,serialize:B.serialize};function isSecure(e){return typeof e.secure==="boolean"?e.secure:String(e.scheme).toLowerCase()==="wss"}var M={scheme:"ws",domainHost:true,parse:function parse(e,t){var r=e;r.secure=isSecure(r);r.resourceName=(r.path||"/")+(r.query?"?"+r.query:"");r.path=undefined;r.query=undefined;return r},serialize:function serialize(e,t){if(e.port===(isSecure(e)?443:80)||e.port===""){e.port=undefined}if(typeof e.secure==="boolean"){e.scheme=e.secure?"wss":"ws";e.secure=undefined}if(e.resourceName){var r=e.resourceName.split("?"),i=a(r,2),n=i[0],s=i[1];e.path=n&&n!=="/"?n:undefined;e.query=s;e.resourceName=undefined}e.fragment=undefined;return e}};var U={scheme:"wss",domainHost:M.domainHost,parse:M.parse,serialize:M.serialize};var G={};var V=true;var q="[A-Za-z0-9\\-\\.\\_\\~"+(V?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]";var z="[0-9A-Fa-f]";var H=subexp(subexp("%[EFef]"+z+"%"+z+z+"%"+z+z)+"|"+subexp("%[89A-Fa-f]"+z+"%"+z+z)+"|"+subexp("%"+z+z));var K="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]";var W="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]";var J=merge(W,'[\\"\\\\]');var Y="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]";var Q=new RegExp(q,"g");var X=new RegExp(H,"g");var Z=new RegExp(merge("[^]",K,"[\\.]",'[\\"]',J),"g");var ee=new RegExp(merge("[^]",q,Y),"g");var te=ee;function decodeUnreserved(e){var t=pctDecChars(e);return!t.match(Q)?e:t}var re={scheme:"mailto",parse:function parse$$1(e,t){var r=e;var a=r.to=r.path?r.path.split(","):[];r.path=undefined;if(r.query){var i=false;var n={};var s=r.query.split("&");for(var o=0,p=s.length;o{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"v1",{enumerable:true,get:function(){return a.default}});Object.defineProperty(t,"v3",{enumerable:true,get:function(){return i.default}});Object.defineProperty(t,"v4",{enumerable:true,get:function(){return n.default}});Object.defineProperty(t,"v5",{enumerable:true,get:function(){return s.default}});Object.defineProperty(t,"NIL",{enumerable:true,get:function(){return o.default}});Object.defineProperty(t,"version",{enumerable:true,get:function(){return p.default}});Object.defineProperty(t,"validate",{enumerable:true,get:function(){return c.default}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return l.default}});Object.defineProperty(t,"parse",{enumerable:true,get:function(){return d.default}});var a=_interopRequireDefault(r(8628));var i=_interopRequireDefault(r(6409));var n=_interopRequireDefault(r(5122));var s=_interopRequireDefault(r(9120));var o=_interopRequireDefault(r(5332));var p=_interopRequireDefault(r(1595));var c=_interopRequireDefault(r(6900));var l=_interopRequireDefault(r(8950));var d=_interopRequireDefault(r(2746));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},4569:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function md5(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return a.default.createHash("md5").update(e).digest()}var i=md5;t["default"]=i},5332:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r="00000000-0000-0000-0000-000000000000";t["default"]=r},2746:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function parse(e){if(!(0,a.default)(e)){throw TypeError("Invalid UUID")}let t;const r=new Uint8Array(16);r[0]=(t=parseInt(e.slice(0,8),16))>>>24;r[1]=t>>>16&255;r[2]=t>>>8&255;r[3]=t&255;r[4]=(t=parseInt(e.slice(9,13),16))>>>8;r[5]=t&255;r[6]=(t=parseInt(e.slice(14,18),16))>>>8;r[7]=t&255;r[8]=(t=parseInt(e.slice(19,23),16))>>>8;r[9]=t&255;r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255;r[11]=t/4294967296&255;r[12]=t>>>24&255;r[13]=t>>>16&255;r[14]=t>>>8&255;r[15]=t&255;return r}var i=parse;t["default"]=i},814:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;t["default"]=r},807:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=rng;var a=_interopRequireDefault(r(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const i=new Uint8Array(256);let n=i.length;function rng(){if(n>i.length-16){a.default.randomFillSync(i);n=0}return i.slice(n,n+=16)}},5274:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function sha1(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return a.default.createHash("sha1").update(e).digest()}var i=sha1;t["default"]=i},8950:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const i=[];for(let e=0;e<256;++e){i.push((e+256).toString(16).substr(1))}function stringify(e,t=0){const r=(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase();if(!(0,a.default)(r)){throw TypeError("Stringified UUID is invalid")}return r}var n=stringify;t["default"]=n},8628:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(807));var i=_interopRequireDefault(r(8950));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let n;let s;let o=0;let p=0;function v1(e,t,r){let c=t&&r||0;const l=t||new Array(16);e=e||{};let d=e.node||n;let u=e.clockseq!==undefined?e.clockseq:s;if(d==null||u==null){const t=e.random||(e.rng||a.default)();if(d==null){d=n=[t[0]|1,t[1],t[2],t[3],t[4],t[5]]}if(u==null){u=s=(t[6]<<8|t[7])&16383}}let m=e.msecs!==undefined?e.msecs:Date.now();let h=e.nsecs!==undefined?e.nsecs:p+1;const g=m-o+(h-p)/1e4;if(g<0&&e.clockseq===undefined){u=u+1&16383}if((g<0||m>o)&&e.nsecs===undefined){h=0}if(h>=1e4){throw new Error("uuid.v1(): Can't create more than 10M uuids/sec")}o=m;p=h;s=u;m+=122192928e5;const v=((m&268435455)*1e4+h)%4294967296;l[c++]=v>>>24&255;l[c++]=v>>>16&255;l[c++]=v>>>8&255;l[c++]=v&255;const y=m/4294967296*1e4&268435455;l[c++]=y>>>8&255;l[c++]=y&255;l[c++]=y>>>24&15|16;l[c++]=y>>>16&255;l[c++]=u>>>8|128;l[c++]=u&255;for(let e=0;e<6;++e){l[c+e]=d[e]}return t||(0,i.default)(l)}var c=v1;t["default"]=c},6409:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(5998));var i=_interopRequireDefault(r(4569));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const n=(0,a.default)("v3",48,i.default);var s=n;t["default"]=s},5998:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;t.URL=t.DNS=void 0;var a=_interopRequireDefault(r(8950));var i=_interopRequireDefault(r(2746));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function stringToBytes(e){e=unescape(encodeURIComponent(e));const t=[];for(let r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(807));var i=_interopRequireDefault(r(8950));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function v4(e,t,r){e=e||{};const n=e.random||(e.rng||a.default)();n[6]=n[6]&15|64;n[8]=n[8]&63|128;if(t){r=r||0;for(let e=0;e<16;++e){t[r+e]=n[e]}return t}return(0,i.default)(n)}var n=v4;t["default"]=n},9120:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(5998));var i=_interopRequireDefault(r(5274));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const n=(0,a.default)("v5",80,i.default);var s=n;t["default"]=s},6900:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(814));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function validate(e){return typeof e==="string"&&a.default.test(e)}var i=validate;t["default"]=i},1595:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function version(e){if(!(0,a.default)(e)){throw TypeError("Invalid UUID")}return parseInt(e.substr(14,1),16)}var i=version;t["default"]=i},4886:e=>{"use strict";var t={};e.exports=t;function sign(e){return e<0?-1:1}function evenRound(e){if(e%1===.5&&(e&1)===0){return Math.floor(e)}else{return Math.round(e)}}function createNumberConversion(e,t){if(!t.unsigned){--e}const r=t.unsigned?0:-Math.pow(2,e);const a=Math.pow(2,e)-1;const i=t.moduloBitLength?Math.pow(2,t.moduloBitLength):Math.pow(2,e);const n=t.moduloBitLength?Math.pow(2,t.moduloBitLength-1):Math.pow(2,e-1);return function(e,s){if(!s)s={};let o=+e;if(s.enforceRange){if(!Number.isFinite(o)){throw new TypeError("Argument is not a finite number")}o=sign(o)*Math.floor(Math.abs(o));if(oa){throw new TypeError("Argument is not in byte range")}return o}if(!isNaN(o)&&s.clamp){o=evenRound(o);if(oa)o=a;return o}if(!Number.isFinite(o)||o===0){return 0}o=sign(o)*Math.floor(Math.abs(o));o=o%i;if(!t.unsigned&&o>=n){return o-i}else if(t.unsigned){if(o<0){o+=i}else if(o===-0){return 0}}return o}}t["void"]=function(){return undefined};t["boolean"]=function(e){return!!e};t["byte"]=createNumberConversion(8,{unsigned:false});t["octet"]=createNumberConversion(8,{unsigned:true});t["short"]=createNumberConversion(16,{unsigned:false});t["unsigned short"]=createNumberConversion(16,{unsigned:true});t["long"]=createNumberConversion(32,{unsigned:false});t["unsigned long"]=createNumberConversion(32,{unsigned:true});t["long long"]=createNumberConversion(32,{unsigned:false,moduloBitLength:64});t["unsigned long long"]=createNumberConversion(32,{unsigned:true,moduloBitLength:64});t["double"]=function(e){const t=+e;if(!Number.isFinite(t)){throw new TypeError("Argument is not a finite floating-point value")}return t};t["unrestricted double"]=function(e){const t=+e;if(isNaN(t)){throw new TypeError("Argument is NaN")}return t};t["float"]=t["double"];t["unrestricted float"]=t["unrestricted double"];t["DOMString"]=function(e,t){if(!t)t={};if(t.treatNullAsEmptyString&&e===null){return""}return String(e)};t["ByteString"]=function(e,t){const r=String(e);let a=undefined;for(let e=0;(a=r.codePointAt(e))!==undefined;++e){if(a>255){throw new TypeError("Argument is not a valid bytestring")}}return r};t["USVString"]=function(e){const t=String(e);const r=t.length;const a=[];for(let e=0;e57343){a.push(String.fromCodePoint(i))}else if(56320<=i&&i<=57343){a.push(String.fromCodePoint(65533))}else{if(e===r-1){a.push(String.fromCodePoint(65533))}else{const r=t.charCodeAt(e+1);if(56320<=r&&r<=57343){const t=i&1023;const n=r&1023;a.push(String.fromCodePoint((2<<15)+(2<<9)*t+n));++e}else{a.push(String.fromCodePoint(65533))}}}}return a.join("")};t["Date"]=function(e,t){if(!(e instanceof Date)){throw new TypeError("Argument is not a Date object")}if(isNaN(e)){return undefined}return e};t["RegExp"]=function(e,t){if(!(e instanceof RegExp)){e=new RegExp(e)}return e}},7537:(e,t,r)=>{"use strict";const a=r(5996);t.implementation=class URLImpl{constructor(e){const t=e[0];const r=e[1];let i=null;if(r!==undefined){i=a.basicURLParse(r);if(i==="failure"){throw new TypeError("Invalid base URL")}}const n=a.basicURLParse(t,{baseURL:i});if(n==="failure"){throw new TypeError("Invalid URL")}this._url=n}get href(){return a.serializeURL(this._url)}set href(e){const t=a.basicURLParse(e);if(t==="failure"){throw new TypeError("Invalid URL")}this._url=t}get origin(){return a.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(e){a.basicURLParse(e+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(e){if(a.cannotHaveAUsernamePasswordPort(this._url)){return}a.setTheUsername(this._url,e)}get password(){return this._url.password}set password(e){if(a.cannotHaveAUsernamePasswordPort(this._url)){return}a.setThePassword(this._url,e)}get host(){const e=this._url;if(e.host===null){return""}if(e.port===null){return a.serializeHost(e.host)}return a.serializeHost(e.host)+":"+a.serializeInteger(e.port)}set host(e){if(this._url.cannotBeABaseURL){return}a.basicURLParse(e,{url:this._url,stateOverride:"host"})}get hostname(){if(this._url.host===null){return""}return a.serializeHost(this._url.host)}set hostname(e){if(this._url.cannotBeABaseURL){return}a.basicURLParse(e,{url:this._url,stateOverride:"hostname"})}get port(){if(this._url.port===null){return""}return a.serializeInteger(this._url.port)}set port(e){if(a.cannotHaveAUsernamePasswordPort(this._url)){return}if(e===""){this._url.port=null}else{a.basicURLParse(e,{url:this._url,stateOverride:"port"})}}get pathname(){if(this._url.cannotBeABaseURL){return this._url.path[0]}if(this._url.path.length===0){return""}return"/"+this._url.path.join("/")}set pathname(e){if(this._url.cannotBeABaseURL){return}this._url.path=[];a.basicURLParse(e,{url:this._url,stateOverride:"path start"})}get search(){if(this._url.query===null||this._url.query===""){return""}return"?"+this._url.query}set search(e){const t=this._url;if(e===""){t.query=null;return}const r=e[0]==="?"?e.substring(1):e;t.query="";a.basicURLParse(r,{url:t,stateOverride:"query"})}get hash(){if(this._url.fragment===null||this._url.fragment===""){return""}return"#"+this._url.fragment}set hash(e){if(e===""){this._url.fragment=null;return}const t=e[0]==="#"?e.substring(1):e;this._url.fragment="";a.basicURLParse(t,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}},3394:(e,t,r)=>{"use strict";const a=r(4886);const i=r(3185);const n=r(7537);const s=i.implSymbol;function URL(t){if(!this||this[s]||!(this instanceof URL)){throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.")}if(arguments.length<1){throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.")}const r=[];for(let e=0;e{"use strict";t.URL=r(3394)["interface"];t.serializeURL=r(5996).serializeURL;t.serializeURLOrigin=r(5996).serializeURLOrigin;t.basicURLParse=r(5996).basicURLParse;t.setTheUsername=r(5996).setTheUsername;t.setThePassword=r(5996).setThePassword;t.serializeHost=r(5996).serializeHost;t.serializeInteger=r(5996).serializeInteger;t.parseURL=r(5996).parseURL},5996:(e,t,r)=>{"use strict";const a=r(5477);const i=r(4256);const n={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443};const s=Symbol("failure");function countSymbols(e){return a.ucs2.decode(e).length}function at(e,t){const r=e[t];return isNaN(r)?undefined:String.fromCodePoint(r)}function isASCIIDigit(e){return e>=48&&e<=57}function isASCIIAlpha(e){return e>=65&&e<=90||e>=97&&e<=122}function isASCIIAlphanumeric(e){return isASCIIAlpha(e)||isASCIIDigit(e)}function isASCIIHex(e){return isASCIIDigit(e)||e>=65&&e<=70||e>=97&&e<=102}function isSingleDot(e){return e==="."||e.toLowerCase()==="%2e"}function isDoubleDot(e){e=e.toLowerCase();return e===".."||e==="%2e."||e===".%2e"||e==="%2e%2e"}function isWindowsDriveLetterCodePoints(e,t){return isASCIIAlpha(e)&&(t===58||t===124)}function isWindowsDriveLetterString(e){return e.length===2&&isASCIIAlpha(e.codePointAt(0))&&(e[1]===":"||e[1]==="|")}function isNormalizedWindowsDriveLetterString(e){return e.length===2&&isASCIIAlpha(e.codePointAt(0))&&e[1]===":"}function containsForbiddenHostCodePoint(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/)!==-1}function containsForbiddenHostCodePointExcludingPercent(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)!==-1}function isSpecialScheme(e){return n[e]!==undefined}function isSpecial(e){return isSpecialScheme(e.scheme)}function defaultPort(e){return n[e]}function percentEncode(e){let t=e.toString(16).toUpperCase();if(t.length===1){t="0"+t}return"%"+t}function utf8PercentEncode(e){const t=new Buffer(e);let r="";for(let e=0;e126}const o=new Set([32,34,35,60,62,63,96,123,125]);function isPathPercentEncode(e){return isC0ControlPercentEncode(e)||o.has(e)}const p=new Set([47,58,59,61,64,91,92,93,94,124]);function isUserinfoPercentEncode(e){return isPathPercentEncode(e)||p.has(e)}function percentEncodeChar(e,t){const r=String.fromCodePoint(e);if(t(e)){return utf8PercentEncode(r)}return r}function parseIPv4Number(e){let t=10;if(e.length>=2&&e.charAt(0)==="0"&&e.charAt(1).toLowerCase()==="x"){e=e.substring(2);t=16}else if(e.length>=2&&e.charAt(0)==="0"){e=e.substring(1);t=8}if(e===""){return 0}const r=t===10?/[^0-9]/:t===16?/[^0-9A-Fa-f]/:/[^0-7]/;if(r.test(e)){return s}return parseInt(e,t)}function parseIPv4(e){const t=e.split(".");if(t[t.length-1]===""){if(t.length>1){t.pop()}}if(t.length>4){return e}const r=[];for(const a of t){if(a===""){return e}const t=parseIPv4Number(a);if(t===s){return e}r.push(t)}for(let e=0;e255){return s}}if(r[r.length-1]>=Math.pow(256,5-r.length)){return s}let a=r.pop();let i=0;for(const e of r){a+=e*Math.pow(256,3-i);++i}return a}function serializeIPv4(e){let t="";let r=e;for(let e=1;e<=4;++e){t=String(r%256)+t;if(e!==4){t="."+t}r=Math.floor(r/256)}return t}function parseIPv6(e){const t=[0,0,0,0,0,0,0,0];let r=0;let i=null;let n=0;e=a.ucs2.decode(e);if(e[n]===58){if(e[n+1]!==58){return s}n+=2;++r;i=r}while(n6){return s}let a=0;while(e[n]!==undefined){let i=null;if(a>0){if(e[n]===46&&a<4){++n}else{return s}}if(!isASCIIDigit(e[n])){return s}while(isASCIIDigit(e[n])){const t=parseInt(at(e,n));if(i===null){i=t}else if(i===0){return s}else{i=i*10+t}if(i>255){return s}++n}t[r]=t[r]*256+i;++a;if(a===2||a===4){++r}}if(a!==4){return s}break}else if(e[n]===58){++n;if(e[n]===undefined){return s}}else if(e[n]!==undefined){return s}t[r]=a;++r}if(i!==null){let e=r-i;r=7;while(r!==0&&e>0){const a=t[i+e-1];t[i+e-1]=t[r];t[r]=a;--r;--e}}else if(i===null&&r!==8){return s}return t}function serializeIPv6(e){let t="";const r=findLongestZeroSequence(e);const a=r.idx;let i=false;for(let r=0;r<=7;++r){if(i&&e[r]===0){continue}else if(i){i=false}if(a===r){const e=r===0?"::":":";t+=e;i=true;continue}t+=e[r].toString(16);if(r!==7){t+=":"}}return t}function parseHost(e,t){if(e[0]==="["){if(e[e.length-1]!=="]"){return s}return parseIPv6(e.substring(1,e.length-1))}if(!t){return parseOpaqueHost(e)}const r=utf8PercentDecode(e);const a=i.toASCII(r,false,i.PROCESSING_OPTIONS.NONTRANSITIONAL,false);if(a===null){return s}if(containsForbiddenHostCodePoint(a)){return s}const n=parseIPv4(a);if(typeof n==="number"||n===s){return n}return a}function parseOpaqueHost(e){if(containsForbiddenHostCodePointExcludingPercent(e)){return s}let t="";const r=a.ucs2.decode(e);for(let e=0;er){t=a;r=i}a=null;i=0}else{if(a===null){a=n}++i}}if(i>r){t=a;r=i}return{idx:t,len:r}}function serializeHost(e){if(typeof e==="number"){return serializeIPv4(e)}if(e instanceof Array){return"["+serializeIPv6(e)+"]"}return e}function trimControlChars(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}function trimTabAndNewline(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}function shortenPath(e){const t=e.path;if(t.length===0){return}if(e.scheme==="file"&&t.length===1&&isNormalizedWindowsDriveLetter(t[0])){return}t.pop()}function includesCredentials(e){return e.username!==""||e.password!==""}function cannotHaveAUsernamePasswordPort(e){return e.host===null||e.host===""||e.cannotBeABaseURL||e.scheme==="file"}function isNormalizedWindowsDriveLetter(e){return/^[A-Za-z]:$/.test(e)}function URLStateMachine(e,t,r,i,n){this.pointer=0;this.input=e;this.base=t||null;this.encodingOverride=r||"utf-8";this.stateOverride=n;this.url=i;this.failure=false;this.parseError=false;if(!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:false};const e=trimControlChars(this.input);if(e!==this.input){this.parseError=true}this.input=e}const o=trimTabAndNewline(this.input);if(o!==this.input){this.parseError=true}this.input=o;this.state=n||"scheme start";this.buffer="";this.atFlag=false;this.arrFlag=false;this.passwordTokenSeenFlag=false;this.input=a.ucs2.decode(this.input);for(;this.pointer<=this.input.length;++this.pointer){const e=this.input[this.pointer];const t=isNaN(e)?undefined:String.fromCodePoint(e);const r=this["parse "+this.state](e,t);if(!r){break}else if(r===s){this.failure=true;break}}}URLStateMachine.prototype["parse scheme start"]=function parseSchemeStart(e,t){if(isASCIIAlpha(e)){this.buffer+=t.toLowerCase();this.state="scheme"}else if(!this.stateOverride){this.state="no scheme";--this.pointer}else{this.parseError=true;return s}return true};URLStateMachine.prototype["parse scheme"]=function parseScheme(e,t){if(isASCIIAlphanumeric(e)||e===43||e===45||e===46){this.buffer+=t.toLowerCase()}else if(e===58){if(this.stateOverride){if(isSpecial(this.url)&&!isSpecialScheme(this.buffer)){return false}if(!isSpecial(this.url)&&isSpecialScheme(this.buffer)){return false}if((includesCredentials(this.url)||this.url.port!==null)&&this.buffer==="file"){return false}if(this.url.scheme==="file"&&(this.url.host===""||this.url.host===null)){return false}}this.url.scheme=this.buffer;this.buffer="";if(this.stateOverride){return false}if(this.url.scheme==="file"){if(this.input[this.pointer+1]!==47||this.input[this.pointer+2]!==47){this.parseError=true}this.state="file"}else if(isSpecial(this.url)&&this.base!==null&&this.base.scheme===this.url.scheme){this.state="special relative or authority"}else if(isSpecial(this.url)){this.state="special authority slashes"}else if(this.input[this.pointer+1]===47){this.state="path or authority";++this.pointer}else{this.url.cannotBeABaseURL=true;this.url.path.push("");this.state="cannot-be-a-base-URL path"}}else if(!this.stateOverride){this.buffer="";this.state="no scheme";this.pointer=-1}else{this.parseError=true;return s}return true};URLStateMachine.prototype["parse no scheme"]=function parseNoScheme(e){if(this.base===null||this.base.cannotBeABaseURL&&e!==35){return s}else if(this.base.cannotBeABaseURL&&e===35){this.url.scheme=this.base.scheme;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.url.cannotBeABaseURL=true;this.state="fragment"}else if(this.base.scheme==="file"){this.state="file";--this.pointer}else{this.state="relative";--this.pointer}return true};URLStateMachine.prototype["parse special relative or authority"]=function parseSpecialRelativeOrAuthority(e){if(e===47&&this.input[this.pointer+1]===47){this.state="special authority ignore slashes";++this.pointer}else{this.parseError=true;this.state="relative";--this.pointer}return true};URLStateMachine.prototype["parse path or authority"]=function parsePathOrAuthority(e){if(e===47){this.state="authority"}else{this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse relative"]=function parseRelative(e){this.url.scheme=this.base.scheme;if(isNaN(e)){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query=this.base.query}else if(e===47){this.state="relative slash"}else if(e===63){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query="";this.state="query"}else if(e===35){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.state="fragment"}else if(isSpecial(this.url)&&e===92){this.parseError=true;this.state="relative slash"}else{this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice(0,this.base.path.length-1);this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse relative slash"]=function parseRelativeSlash(e){if(isSpecial(this.url)&&(e===47||e===92)){if(e===92){this.parseError=true}this.state="special authority ignore slashes"}else if(e===47){this.state="authority"}else{this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse special authority slashes"]=function parseSpecialAuthoritySlashes(e){if(e===47&&this.input[this.pointer+1]===47){this.state="special authority ignore slashes";++this.pointer}else{this.parseError=true;this.state="special authority ignore slashes";--this.pointer}return true};URLStateMachine.prototype["parse special authority ignore slashes"]=function parseSpecialAuthorityIgnoreSlashes(e){if(e!==47&&e!==92){this.state="authority";--this.pointer}else{this.parseError=true}return true};URLStateMachine.prototype["parse authority"]=function parseAuthority(e,t){if(e===64){this.parseError=true;if(this.atFlag){this.buffer="%40"+this.buffer}this.atFlag=true;const e=countSymbols(this.buffer);for(let t=0;tMath.pow(2,16)-1){this.parseError=true;return s}this.url.port=e===defaultPort(this.url.scheme)?null:e;this.buffer=""}if(this.stateOverride){return false}this.state="path start";--this.pointer}else{this.parseError=true;return s}return true};const c=new Set([47,92,63,35]);URLStateMachine.prototype["parse file"]=function parseFile(e){this.url.scheme="file";if(e===47||e===92){if(e===92){this.parseError=true}this.state="file slash"}else if(this.base!==null&&this.base.scheme==="file"){if(isNaN(e)){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query=this.base.query}else if(e===63){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query="";this.state="query"}else if(e===35){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.state="fragment"}else{if(this.input.length-this.pointer-1===0||!isWindowsDriveLetterCodePoints(e,this.input[this.pointer+1])||this.input.length-this.pointer-1>=2&&!c.has(this.input[this.pointer+2])){this.url.host=this.base.host;this.url.path=this.base.path.slice();shortenPath(this.url)}else{this.parseError=true}this.state="path";--this.pointer}}else{this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse file slash"]=function parseFileSlash(e){if(e===47||e===92){if(e===92){this.parseError=true}this.state="file host"}else{if(this.base!==null&&this.base.scheme==="file"){if(isNormalizedWindowsDriveLetterString(this.base.path[0])){this.url.path.push(this.base.path[0])}else{this.url.host=this.base.host}}this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse file host"]=function parseFileHost(e,t){if(isNaN(e)||e===47||e===92||e===63||e===35){--this.pointer;if(!this.stateOverride&&isWindowsDriveLetterString(this.buffer)){this.parseError=true;this.state="path"}else if(this.buffer===""){this.url.host="";if(this.stateOverride){return false}this.state="path start"}else{let e=parseHost(this.buffer,isSpecial(this.url));if(e===s){return s}if(e==="localhost"){e=""}this.url.host=e;if(this.stateOverride){return false}this.buffer="";this.state="path start"}}else{this.buffer+=t}return true};URLStateMachine.prototype["parse path start"]=function parsePathStart(e){if(isSpecial(this.url)){if(e===92){this.parseError=true}this.state="path";if(e!==47&&e!==92){--this.pointer}}else if(!this.stateOverride&&e===63){this.url.query="";this.state="query"}else if(!this.stateOverride&&e===35){this.url.fragment="";this.state="fragment"}else if(e!==undefined){this.state="path";if(e!==47){--this.pointer}}return true};URLStateMachine.prototype["parse path"]=function parsePath(e){if(isNaN(e)||e===47||isSpecial(this.url)&&e===92||!this.stateOverride&&(e===63||e===35)){if(isSpecial(this.url)&&e===92){this.parseError=true}if(isDoubleDot(this.buffer)){shortenPath(this.url);if(e!==47&&!(isSpecial(this.url)&&e===92)){this.url.path.push("")}}else if(isSingleDot(this.buffer)&&e!==47&&!(isSpecial(this.url)&&e===92)){this.url.path.push("")}else if(!isSingleDot(this.buffer)){if(this.url.scheme==="file"&&this.url.path.length===0&&isWindowsDriveLetterString(this.buffer)){if(this.url.host!==""&&this.url.host!==null){this.parseError=true;this.url.host=""}this.buffer=this.buffer[0]+":"}this.url.path.push(this.buffer)}this.buffer="";if(this.url.scheme==="file"&&(e===undefined||e===63||e===35)){while(this.url.path.length>1&&this.url.path[0]===""){this.parseError=true;this.url.path.shift()}}if(e===63){this.url.query="";this.state="query"}if(e===35){this.url.fragment="";this.state="fragment"}}else{if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.buffer+=percentEncodeChar(e,isPathPercentEncode)}return true};URLStateMachine.prototype["parse cannot-be-a-base-URL path"]=function parseCannotBeABaseURLPath(e){if(e===63){this.url.query="";this.state="query"}else if(e===35){this.url.fragment="";this.state="fragment"}else{if(!isNaN(e)&&e!==37){this.parseError=true}if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}if(!isNaN(e)){this.url.path[0]=this.url.path[0]+percentEncodeChar(e,isC0ControlPercentEncode)}}return true};URLStateMachine.prototype["parse query"]=function parseQuery(e,t){if(isNaN(e)||!this.stateOverride&&e===35){if(!isSpecial(this.url)||this.url.scheme==="ws"||this.url.scheme==="wss"){this.encodingOverride="utf-8"}const t=new Buffer(this.buffer);for(let e=0;e126||t[e]===34||t[e]===35||t[e]===60||t[e]===62){this.url.query+=percentEncode(t[e])}else{this.url.query+=String.fromCodePoint(t[e])}}this.buffer="";if(e===35){this.url.fragment="";this.state="fragment"}}else{if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.buffer+=t}return true};URLStateMachine.prototype["parse fragment"]=function parseFragment(e){if(isNaN(e)){}else if(e===0){this.parseError=true}else{if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.url.fragment+=percentEncodeChar(e,isC0ControlPercentEncode)}return true};function serializeURL(e,t){let r=e.scheme+":";if(e.host!==null){r+="//";if(e.username!==""||e.password!==""){r+=e.username;if(e.password!==""){r+=":"+e.password}r+="@"}r+=serializeHost(e.host);if(e.port!==null){r+=":"+e.port}}else if(e.host===null&&e.scheme==="file"){r+="//"}if(e.cannotBeABaseURL){r+=e.path[0]}else{for(const t of e.path){r+="/"+t}}if(e.query!==null){r+="?"+e.query}if(!t&&e.fragment!==null){r+="#"+e.fragment}return r}function serializeOrigin(e){let t=e.scheme+"://";t+=serializeHost(e.host);if(e.port!==null){t+=":"+e.port}return t}e.exports.serializeURL=serializeURL;e.exports.serializeURLOrigin=function(t){switch(t.scheme){case"blob":try{return e.exports.serializeURLOrigin(e.exports.parseURL(t.path[0]))}catch(e){return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return serializeOrigin({scheme:t.scheme,host:t.host,port:t.port});case"file":return"file://";default:return"null"}};e.exports.basicURLParse=function(e,t){if(t===undefined){t={}}const r=new URLStateMachine(e,t.baseURL,t.encodingOverride,t.url,t.stateOverride);if(r.failure){return"failure"}return r.url};e.exports.setTheUsername=function(e,t){e.username="";const r=a.ucs2.decode(t);for(let t=0;t{"use strict";e.exports.mixin=function mixin(e,t){const r=Object.getOwnPropertyNames(t);for(let a=0;a{e.exports=wrappy;function wrappy(e,t){if(e&&t)return wrappy(e)(t);if(typeof e!=="function")throw new TypeError("need wrapper function");Object.keys(e).forEach((function(t){wrapper[t]=e[t]}));return wrapper;function wrapper(){var t=new Array(arguments.length);for(var r=0;r{if(e.result===l.ExecutionResult.NOT_OK){this.logger.error(`Failed to execute ${e.command} :`);e.errorMessage.split("\n").forEach((e=>this.logger.error(e)))}}))}printNodeExecutionFailure(e){e.forEach((e=>{if(this.commandExecutionFailure(e.executeCommandResults)){this.logger.error(`Failed to execute commands for ${e.node.project}`);this.printExecutionFailure(e.executeCommandResults)}}))}archiveArtifactsFailure(e){return!!e.find((e=>e.status==="rejected"))}nodeExecutionFailure(e){return e.reduce(((e,t)=>e||this.commandExecutionFailure(t.executeCommandResults)),false)}commandExecutionFailure(e){return!!e.find((e=>e.result===l.ExecutionResult.NOT_OK))}}t.Runner=Runner},6759:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.constants=void 0;t.constants={CONTAINER:{ENTRY_POINT:"entry-point"},GITHUB:{TOKEN:"token"}}},6848:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.EntryPoint=void 0;var r;(function(e){e[e["CLI"]=0]="CLI";e[e["GITHUB_EVENT"]=1]="GITHUB_EVENT"})(r=t.EntryPoint||(t.EntryPoint={}))},293:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.InvalidInput=t.NotFoundError=void 0;class NotFoundError extends Error{}t.NotFoundError=NotFoundError;class InvalidInput extends Error{}t.InvalidInput=InvalidInput},4396:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ExecutionResult=void 0;var r;(function(e){e["OK"]="OK";e["NOT_OK"]="NOT OK";e["SKIP"]="SKIP"})(r=t.ExecutionResult||(t.ExecutionResult={}))},6696:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ExecutionPhase=void 0;var r;(function(e){e["BEFORE"]="before";e["CURRENT"]="commands";e["AFTER"]="after"})(r=t.ExecutionPhase||(t.ExecutionPhase={}))},3947:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.defaultFlowResult=void 0;t.defaultFlowResult={checkoutInfo:[],artifactUploadResults:[],executionResult:{before:[],after:[],commands:[]}}},8373:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.defaultInputValues=t.LoggerLevel=t.FlowType=void 0;var r;(function(e){e["CROSS_PULL_REQUEST"]="cross_pr";e["FULL_DOWNSTREAM"]="full_downstream";e["SINGLE_PULL_REQUEST"]="single_pr";e["BRANCH"]="branch"})(r=t.FlowType||(t.FlowType={}));var a;(function(e){e[e["INFO"]=0]="INFO";e[e["TRACE"]=1]="TRACE";e[e["DEBUG"]=2]="DEBUG"})(a=t.LoggerLevel||(t.LoggerLevel={}));t.defaultInputValues={definitionFile:"",skipExecution:false,skipCheckout:false,skipParallelCheckout:false,loggerLevel:a.INFO}},6196:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.NodeExecutionLevel=void 0;var r;(function(e){e["UPSTREAM"]="upstream";e["CURRENT"]="current";e["DOWNSTREAM"]="downstream"})(r=t.NodeExecutionLevel||(t.NodeExecutionLevel={}))},5129:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.ActionArguments=void 0;const o=r(8373);const p=s(r(2186));const c=s(r(3802));const l=r(8081);const d=r(293);let u=class ActionArguments{getFlowType(e){switch(e){case"pull-request":return o.FlowType.CROSS_PULL_REQUEST;case"fdb":return o.FlowType.FULL_DOWNSTREAM;case"single":return o.FlowType.SINGLE_PULL_REQUEST;case"branch":return o.FlowType.BRANCH;default:throw new d.InvalidInput("Invalid flow-type")}}getLoggerLevel(e){switch(e){case"info":case"":return o.LoggerLevel.INFO;case"debug":return o.LoggerLevel.DEBUG;case"trace":return o.LoggerLevel.TRACE;default:throw new d.InvalidInput("Invalid logger-level")}}getAdditionalFlags(e){if(e===""){return{}}const t={};e.trim().split(";").forEach((e=>{const r=e.trim().split(" ");if(r[0].startsWith("--")){r[0]=r[0].substring(2)}else if(r[0].startsWith("-")){r[0]=r[0].substring(1)}if(r.length===1){t[r[0]]=true}else{t[r[0]]=r.slice(1).join(" ")}}));return t}parse(){const e={definitionFile:p.getInput("definition-file"),flowType:this.getFlowType(p.getInput("flow-type")),skipExecution:p.getBooleanInput("skip-execution"),skipParallelCheckout:p.getBooleanInput("skip-parallel-checkout"),skipProjectCheckout:p.getInput("skip-project-checkout").split(",").map((e=>e.trim())),skipProjectExecution:p.getInput("skip-project-execution").split(",").map((e=>e.trim())),skipCheckout:p.getBooleanInput("skip-checkout"),startProject:p.getInput("starting-project"),loggerLevel:this.getLoggerLevel(p.getInput("logger-level")),annotationsPrefix:p.getInput("annotations-prefix"),customCommandTreatment:p.getInput("custom-command-treatment")===""?[]:p.getInput("custom-command-treatment").split(","),...this.getAdditionalFlags(p.getInput("additional-flags"))};c.default.get(l.InputService).updateInputs(e)}};u=n([(0,c.Service)()],u);t.ActionArguments=u},7774:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.ArtifactService=void 0;const p=s(r(3802));const c=r(8114);const l=r(8501);const d=r(9837);let u=class ArtifactService{constructor(){this.uploadService=p.default.get(l.UploadService);this.logger=p.default.get(d.LoggerService).logger}getNodesToArchive(e,t){const r=t.archiveArtifacts?.dependencies??c.ArchiveDependencies.NONE;let a;switch(r){case c.ArchiveDependencies.NONE:a=t.archiveArtifacts?[t]:[];break;case c.ArchiveDependencies.ALL:a=e.filter((e=>!!e.archiveArtifacts));break;default:a=e.filter((e=>e.archiveArtifacts&&(r.includes(e.project)||e.project===t.project)))}return a}async uploadNodes(e,t){const r=this.getNodesToArchive(e,t);this.logger.info(r.length>0?`Archiving artifacts for ${r.map((e=>e.project))}`:"No artifacts to archive");const a=r.map((async e=>{this.logger.info(`Project [${e.project}]. Uploading artifacts...`);return this.uploadService.upload(e.archiveArtifacts,e.project)}));const i=await Promise.allSettled(a);i.forEach((e=>{if(e.status==="fulfilled"){if(e.value.artifactItems.length>0){this.logger.info(`Artifact ${e.value.artifactName} uploaded ${e.value.artifactItems.length} files: ${e.value.artifactItems}`)}if(e.value.failedItems.length>0){this.logger.info(`Artifact ${e.value.artifactName} failed to upload ${e.value.failedItems.length} files: ${e.value.failedItems}`)}}else{this.logger.info(`Failure in uploading artifacts for one or more nodes: ${e.reason}`)}}));return i}};u=n([(0,p.Service)(),o("design:paramtypes",[])],u);t.ArtifactService=u},8501:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var p=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.UploadService=void 0;const c=r(8090);const l=p(r(1017));const d=s(r(3802));const u=r(7147);const m=r(3837);const h=r(9837);const g=r(8114);const v=s(r(2605));const y=r(8410);const b=(0,m.promisify)(u.stat);let w=class UploadService{constructor(){this.logger=d.default.get(h.LoggerService).logger}validateArtifactName(e){return e.replace(/[/\s":<>*?\\]/g,"_")}getMultiPathLCA(e){if(e.length<2){throw new Error("At least two search paths must be provided")}const t=[];const r=[];let a=Number.MAX_SAFE_INTEGER;for(const t of e){const e=l.default.normalize(t).split(l.default.sep);a=Math.min(a,e.length);r.push(e)}if(e[0].startsWith(l.default.sep)){t.push(l.default.sep)}for(let e=0;e1){this.logger.info("Multiple search paths detected. Calculating the least common ancestor of all paths");const t=this.getMultiPathLCA(e);this.logger.info(`The least common ancestor is ${t}. This will be the root directory of the artifact`);return t}if(t.length===1&&e[0]===t[0]){return l.default.dirname(t[0])}return e[0]}async findFilesToUpload(e,t={followSymbolicLinks:true,implicitDescendants:true,omitBrokenSymbolicLinks:true}){const r=[];const a=await(0,c.create)(e,t);const i=await a.glob();const n=new Set;for(const e of i){const t=await b(e);if(!t.isDirectory()){r.push(e);if(n.has(e.toLowerCase())){this.logger.info(`Uploads are case insensitive: ${e} was detected that it will be overwritten by another file with the same path`)}else{n.add(e.toLowerCase())}}}const s=this.getRootDir(a.getSearchPaths(),r);return{filesToUpload:r,rootDirectory:s}}noFileFound(e,t){switch(e["if-no-files-found"]){case g.IfNoFile.ERROR:throw(0,y.logAndThrow)(`No files were found with the provided path: ${t}. No artifacts will be uploaded.`);case g.IfNoFile.IGNORE:this.logger.info(`No files were found with the provided path: ${t}. No artifacts will be uploaded.`);break;case g.IfNoFile.WARN:default:this.logger.warn(`No files were found with the provided path: ${t}. No artifacts will be uploaded.`)}}async upload(e,t){const r=e.paths.filter((e=>e.path)).reduce(((e,t)=>e.concat(t.path,"\n")),"");const{filesToUpload:a,rootDirectory:i}=await this.findFilesToUpload(r);const n=this.validateArtifactName(e.name??t);if(a.length===0){this.noFileFound(e,r);return{artifactName:n,artifactItems:[],failedItems:[],size:0}}else{this.logger.debug(`With the provided path (${r}), there will be ${a.length} file(s) uploaded`);this.logger.debug(`Root artifact directory is ${i}`);return v.create().uploadArtifact(n,a,i,{continueOnError:false})}}};w=n([(0,d.Service)(),o("design:paramtypes",[])],w);t.UploadService=w},5173:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var p=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.CheckoutService=void 0;const c=r(6229);const l=r(9837);const d=r(8114);const u=s(r(3802));const m=r(5630);const h=p(r(1017));const g=r(8031);const v=r(7616);const y=r(8410);const b=r(293);let w=class CheckoutService{constructor(){this.config=u.default.get(c.ConfigurationService);this.logger=u.default.get(l.LoggerService).logger}getProjectDir(e){return h.default.join(this.config.getRootFolder(),e.project.replace(/[/\s]/g,"_"))}async cloneNode(e){const t=[];e.clone?.forEach((r=>{t.push((0,m.copy)(this.getProjectDir(e),h.default.join(this.config.getRootFolder(),r)))}));await Promise.all(t)}async checkoutNode(e){if(this.config.skipCheckout(e)){this.logger.debug(`[${e.project}] Checkout skipped`);return undefined}const t=await this.getCheckoutInfo(e);this.logger.debug(`[${e.project}] CheckoutInfo - ${JSON.stringify(t)}`);const r=u.default.get(v.GitCLIService);const a=this.config.getCloneUrl(t.targetGroup,t.targetName);await r.clone(a,t.repoDir,t.targetBranch).catch((r=>{this.logger.debug(JSON.stringify(r));(0,y.logAndThrow)(`[${e.project}] Error cloning ${t.targetGroup}/${t.targetName} and switching to target branch ${t.targetBranch}`)}));if(t.merge){this.logger.debug(`[${e.project}] Merging ${t.sourceGroup}/${t.sourceName}:${t.sourceBranch}\n into ${t.targetGroup}/${t.targetName}:${t.targetBranch}`);const a=this.config.getCloneUrl(t.sourceGroup,t.sourceName);await r.merge(t.repoDir,a,t.sourceBranch).catch((r=>{this.logger.debug(JSON.stringify(r));(0,y.logAndThrow)(`[${e.project}] Error merging ${t.sourceGroup}/${t.sourceName}:${t.sourceBranch}\n into ${t.targetGroup}/${t.targetName}:${t.targetBranch}`)}))}await this.cloneNode(e);this.logger.debug(`[${e.project}] Checked out`);return t}async getCheckoutInfo(e){const t=u.default.get(g.GithubAPIService);const r=this.config.getStarterNode();const a=this.config.getTargetProject();const i={mappedBranch:(0,d.getMappedTarget)(r.project,r.mapping,e.project,e.mapping,a.branch),name:e.project.split("/")[1],group:e.project.split("/")[0]};const n=this.config.getSourceProject();const s=await t.getForkName(i.group,n.group,i.name).then((async e=>{const r=await t.hasPullRequest(i.group,i.name,`${n.group}/${e}:${n.branch}`,i.mappedBranch);return{forkName:e,hasPullRequest:r}})).catch((e=>{if(e instanceof b.NotFoundError){return{forkName:"",hasPullRequest:false}}throw e}));if(s.hasPullRequest){return{sourceBranch:n.branch,sourceGroup:n.group,sourceName:s.forkName,targetBranch:i.mappedBranch,targetGroup:i.group,targetName:i.name,repoDir:this.getProjectDir(e),merge:true}}const o=await t.hasPullRequest(i.group,i.name,`${i.group}:${n.branch}`,i.mappedBranch);if(o){return{sourceBranch:n.branch,sourceGroup:i.group,sourceName:i.name,targetBranch:i.mappedBranch,targetGroup:i.group,targetName:i.name,repoDir:this.getProjectDir(e),merge:true}}return{sourceBranch:i.mappedBranch,sourceGroup:i.group,sourceName:i.name,targetBranch:i.mappedBranch,targetGroup:i.group,targetName:i.name,repoDir:this.getProjectDir(e),merge:false}}async checkoutDefinitionTreeSequential(){const e=[];for(const t of this.config.nodeChain){const r=await this.checkoutNode(t);e.push({node:t,checkoutInfo:r})}return e}async checkoutDefinitionTreeParallel(){return Promise.all(this.config.nodeChain.map((async e=>this.checkoutNode(e).then((t=>({node:e,checkoutInfo:t}))))))}async checkoutDefinitionTree(){return this.config.skipParallelCheckout()?this.checkoutDefinitionTreeSequential():this.checkoutDefinitionTreeParallel()}};w=n([(0,u.Service)(),o("design:paramtypes",[])],w);t.CheckoutService=w},4303:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.ExecuteCommandService=void 0;const p=s(r(3802));const c=r(4396);const l=r(5676);const d=r(9425);const u=r(9837);const m=r(6229);const h=r(6196);let g=class ExecuteCommandService{constructor(e,t,r){this._commandTreatmentDelegator=e;this._commandExecutorDelegator=t;this._configurationService=r}async executeCommand(e,t){const r=this._commandTreatmentDelegator.treatCommand(e,this._configurationService.getTreatmentOptions());return this._commandExecutorDelegator.executeCommand(r,t)}async executeChainCommands(e,t){const r=[];for(const{node:a,cwd:i}of e){const e=this.getNodeCommands(a,t,this._configurationService.getNodeExecutionLevel(a));r.push(await this.executeNodeCommands(a,e??[],this._configurationService.skipExecution(a),i))}return r}getNodeCommands(e,t,r){const a=e[`${t}`];let i;if(a){i=a[`${r}`].length?a[`${r}`]:a[`${h.NodeExecutionLevel.CURRENT}`]}if(!a){p.default.get(u.LoggerService).logger.debug(`No commands defined for project ${e.project} and phase ${t}`)}else if(!i||!i.length){const a=r!==h.NodeExecutionLevel.CURRENT?`${r} or ${h.NodeExecutionLevel.CURRENT}`:h.NodeExecutionLevel.CURRENT;p.default.get(u.LoggerService).logger.debug(`No commands defined for project ${e.project} phase ${t} and level ${a}`)}return i}async executeNodeCommands(e,t,r,a){const i={node:e,executeCommandResults:[]};for(const e of t){i.executeCommandResults.push(r?{startingDate:Date.now(),endingDate:Date.now(),command:e,result:c.ExecutionResult.SKIP,errorMessage:"",time:0}:await this.executeCommand(e,a))}return i}};g=n([(0,p.Service)(),o("design:paramtypes",[l.CommandTreatmentDelegator,d.CommandExecutorDelegator,m.ConfigurationService])],g);t.ExecuteCommandService=g},652:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.BashExecutor=void 0;const i=r(1514);const n=r(3802);let s=class BashExecutor{async execute(e,t){await(0,i.exec)(e,[],{cwd:t})}};s=a([(0,n.Service)()],s);t.BashExecutor=s},9425:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.CommandExecutorDelegator=void 0;const p=s(r(3802));const c=r(652);const l=r(7019);const d=r(4396);const u=r(9837);const m=r(3678);let h=class CommandExecutorDelegator{constructor(e,t){this._bashExecutor=e;this._exportExecutor=t}async executeCommand(e,t){const r=process.hrtime();const a=Date.now();let i;let n="";try{this.isExport(e)?await this._exportExecutor.execute(e,t):await this._bashExecutor.execute(e,t);i=d.ExecutionResult.OK}catch(t){n=t instanceof Error?t.message:"unknown";p.default.get(u.LoggerService).logger.error(`Error executing command ${e}. ${n}`);i=d.ExecutionResult.NOT_OK}return{startingDate:a,command:e,result:i,errorMessage:n,endingDate:Date.now(),time:(0,m.hrtimeToMs)(r)}}isExport(e){return e.trim().match(/^export .*=/)!==null}};h=n([(0,p.Service)(),o("design:paramtypes",[c.BashExecutor,l.ExportExecutor])],h);t.CommandExecutorDelegator=h},7019:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.ExportExecutor=void 0;const o=r(1514);const p=s(r(3802));const c=r(9837);let l=class ExportExecutor{async execute(e,t){const r=new ExpressionCommand(e);process.env[r.variable]=await this.executeExpression(r.expression,t);p.default.get(c.LoggerService).logger.debug(`The variable \`${r.variable}\` has been set to the env with the value \`${process.env[r.variable]}\``)}async executeExpression(e,t){const r=e.match(/`(.*)`/);const a=r?r[1]:undefined;if(a){let e="";const r={listeners:{stdout:t=>{e+=t.toString()}},cwd:t};await(0,o.exec)(a,[],r);return e}return e.replace(/['"]+/g,"")}};l=n([(0,p.Service)()],l);t.ExportExecutor=l;class ExpressionCommand{constructor(e){const t=this.getCommandArray(e);this._variable=t[1];this._expression=t[2]}getCommandArray(e){const t=e.match(/^export (\w+)=(.*)/);if(!t||t.length!==3){const t=`The export command ${e} is not properly defined. It should be something like "export VARIBLE=expression". Please fix it an try again.`;p.default.get(c.LoggerService).logger.error(t);throw new Error(t)}return t}get variable(){return this._variable}get expression(){return this._expression}}},4191:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CommandBuilder=void 0;class CommandBuilder{constructor(e,t){this.treatedCommand=e;this.options=t}treat(e){this.treatedCommand=e.treat(this.treatedCommand,this.options);return this}build(){return this.treatedCommand}}t.CommandBuilder=CommandBuilder},5676:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var i=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.CommandTreatmentDelegator=void 0;const n=r(3802);const s=r(4191);const o=r(3735);const p=r(6741);const c=r(6495);let l=class CommandTreatmentDelegator{constructor(e,t,r){this._environmentCommandTreatment=e;this._mavenCommandTreatment=t;this._regexCommandTreatment=r}treatCommand(e,t){return new s.CommandBuilder(e,t).treat(this._environmentCommandTreatment).treat(this._mavenCommandTreatment).treat(this._regexCommandTreatment).build()}};l=a([(0,n.Service)(),i("design:paramtypes",[o.EnvironmentCommandTreatment,p.MavenCommandTreatment,c.RegexCommandTreatment])],l);t.CommandTreatmentDelegator=l},3735:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.EnvironmentCommandTreatment=void 0;const i=r(3802);let n=class EnvironmentCommandTreatment{treat(e,t){const r=this.getVariablesFromCommand(e);return r?.length>0?r.reduce(((e,t)=>e.replace(t[0],process.env[t[1]]??"")),e):e}getVariablesFromCommand(e){return[...e.matchAll(/\${{ env\.(\w+) }}/g)]}};n=a([(0,i.Service)()],n);t.EnvironmentCommandTreatment=n},6741:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.MavenCommandTreatment=void 0;const i=r(3802);let n=class MavenCommandTreatment{treat(e,t){return!this.isMavenCommand(e,t?.mavenBinary)?e:`${e} -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B`}isMavenCommand(e,t="mvn"){return new RegExp(`.*${t} .*`).test(e)}};n=a([(0,i.Service)()],n);t.MavenCommandTreatment=n},6495:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o;Object.defineProperty(t,"__esModule",{value:true});t.RegexCommandTreatment=void 0;const p=s(r(3802));const c=r(9837);let l=o=class RegexCommandTreatment{treat(e,t){if(t?.replaceExpressions){p.default.get(c.LoggerService).logger.debug(`[${o.name}] Replacing command: \`${e}\` by expressions: '${t.replaceExpressions}'`);const r=t.replaceExpressions.reduce(((e,t)=>this.treatReplaceEx(e,t)),e);p.default.get(c.LoggerService).logger.debug(r===e?`[${o.name}] No replacement for \`${e}\``:`[${o.name}] Replaced to: \`${r}\``);return r}else{return e}}treatReplaceEx(e,t){const r=this.getReplacementExpression(t);return e.replace(r.regEx,r.replace)}getReplacementExpression(e){const t=e.split("||");return new ReplacementExpression(this.createRegex(t[0]),t[1])}createRegex(e){const[,t,r]=e.split("/");if(t){return r?new RegExp(t,r):new RegExp(t)}return new RegExp(e)}};l=o=n([(0,p.Service)()],l);t.RegexCommandTreatment=l;class ReplacementExpression{constructor(e,t){this._regEx=e;this._replace=t}get regEx(){return this._regEx}get replace(){return this._replace}}},1055:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.ActionConfiguration=void 0;const i=r(6759);const n=r(332);const s=r(8410);const o=a(r(3802));const p=r(3977);const c=r(8373);class ActionConfiguration extends n.BaseConfiguration{loadProject(){if(this.parsedInputs.flowType===c.FlowType.BRANCH){const e=this.parsedInputs.startProject??this.gitConfiguration.repository;const t=e.split("/");const r={branch:this.parsedInputs.branch??this.gitConfiguration.ref,repository:e,name:t[t.length-1],group:this.parsedInputs.group??t[0]};return{source:r,target:r}}else{return super.loadProject()}}loadGitConfiguration(){const e=process.env.GITHUB_SERVER_URL?process.env.GITHUB_SERVER_URL.replace(/\/$/,""):"https://github.com";return{action:process.env.GITHUB_ACTION,actor:process.env.GITHUB_ACTOR,author:process.env.GITHUB_AUTHOR,serverUrl:e,serverUrlWithToken:e.replace("://",`://${o.default.get(i.constants.GITHUB.TOKEN)}@`),jobId:process.env.GITHUB_JOB,ref:process.env.GITHUB_REF,workflow:process.env.GITHUB_WORKFLOW,repository:process.env.GITHUB_REPOSITORY}}async loadGitEvent(){if(this.parsedInputs.flowType===c.FlowType.BRANCH){return{}}if(process.env.GITHUB_EVENT_PATH){this.logger.debug("Getting pull request information");const e=await(0,p.readFile)(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"});return JSON.parse(e).pull_request}(0,s.logAndThrow)("Make sure you are running it in a github environment")}loadToken(){if(process.env.GITHUB_TOKEN){o.default.set(i.constants.GITHUB.TOKEN,process.env.GITHUB_TOKEN)}else{(0,s.logAndThrow)("A github token is needed")}}getFlowType(){return this.parsedInputs.flowType}}t.ActionConfiguration=ActionConfiguration},332:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.BaseConfiguration=void 0;const i=r(8373);const n=r(8081);const s=r(9837);const o=r(8410);const p=a(r(3802));class BaseConfiguration{constructor(){this.logger=p.default.get(s.LoggerService).logger;this._parsedInputs=i.defaultInputValues;this._gitEventData={};this._gitConfiguration={};this._sourceProject={};this._targetProject={}}async init(){this._parsedInputs=this.loadParsedInput();this.loadToken();this._gitEventData=await this.loadGitEvent();this._gitConfiguration=this.loadGitConfiguration();const{source:e,target:t}=this.loadProject();this._sourceProject=e;this._targetProject=t}get gitEventData(){return this._gitEventData}get gitConfiguration(){return this._gitConfiguration}get sourceProject(){return this._sourceProject}get targetProject(){return this._targetProject}get parsedInputs(){return this._parsedInputs}loadProject(){return{source:{branch:this.gitEventData.head.ref,repository:this.gitEventData.head.repo?.full_name,name:this.gitEventData.head.repo?.name,group:this.gitEventData.head.repo?.owner.login},target:{branch:this.gitEventData.base.ref,repository:this.gitEventData.base.repo.full_name,name:this.gitEventData.base.repo.name,group:this.gitEventData.base.repo.owner.login}}}loadParsedInput(){const e=p.default.get(n.InputService).inputs;e.customCommandTreatment?.forEach((e=>{if(e.split("||").length!==2){(0,o.logAndThrow)("Invalid format for custom command treatment. Required format: Regex||ReplaceRegex")}}));if(e.startProject&&e.startProject.split("/").length!==2){(0,o.logAndThrow)("Invalid start project. Start project must be of the form OWNER/PROJECT")}this.logger.debug(`Received input: ${JSON.stringify(e)}`);return e}}t.BaseConfiguration=BaseConfiguration},2336:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.CLIConfiguration=void 0;const i=r(6759);const n=r(8373);const s=r(332);const o=r(2322);const p=r(8410);const c=a(r(3802));class CLIConfiguration extends s.BaseConfiguration{loadProject(){if(this.parsedInputs.CLISubCommand===n.FlowType.BRANCH){const e=this.parsedInputs.startProject.split("/");const t={branch:this.parsedInputs.branch,name:e[e.length-1],group:this.parsedInputs.group??e[0],repository:this.parsedInputs.startProject};return{source:t,target:t}}else{return super.loadProject()}}loadGitConfiguration(){const e=process.env.GITHUB_SERVER_URL?process.env.GITHUB_SERVER_URL.replace(/\/$/,""):"https://github.com";let t={serverUrl:e,serverUrlWithToken:e.replace("://",`://${c.default.get(i.constants.GITHUB.TOKEN)}@`)};if(this.parsedInputs.CLISubCommand===n.FlowType.BRANCH){const e=this.parsedInputs.group??this.parsedInputs.startProject?.split("/")[0];if(!e){(0,p.logAndThrow)("Specify group option or set project name as GROUP_NAME/REPO_NAME")}t={...t,actor:e,ref:this.parsedInputs.branch}}return t}async loadGitEvent(){if(this.parsedInputs.CLISubCommand===n.FlowType.BRANCH){return{}}if(!this.parsedInputs.url){(0,p.logAndThrow)("If running from the CLI, event url needs to be defined")}const e=/^https?:\/\/.+\/([^/\s]+)\/([^/\s]+)\/pull\/(\d+)$/;const t=this.parsedInputs.url.match(e);if(t){this.logger.debug("Getting pull request information");try{const{data:e}=await c.default.get(o.OctokitService).octokit.pulls.get({owner:t[1],repo:t[2],pull_number:parseInt(t[3])});return e}catch(e){(0,p.logAndThrow)(`Invalid event url ${this.parsedInputs.url}`)}}(0,p.logAndThrow)(`Invalid event url ${this.parsedInputs.url}. URL must be a github pull request event url or a github tree url`)}loadToken(){if(this.parsedInputs.token){c.default.set(i.constants.GITHUB.TOKEN,this.parsedInputs.token)}else if(process.env.GITHUB_TOKEN){c.default.set(i.constants.GITHUB.TOKEN,process.env.GITHUB_TOKEN)}else{(0,p.logAndThrow)("A github token is needed")}}getFlowType(){const e=this.parsedInputs.CLISubCommand;if(Object.values(n.FlowType).includes(e)){return e}(0,p.logAndThrow)("The CLI subcommand is a tool commaand. No flow defined")}}t.CLIConfiguration=CLIConfiguration},6229:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.ConfigurationService=void 0;const p=s(r(3802));const c=r(6196);const l=r(6759);const d=r(6848);const u=r(2336);const m=r(1055);const h=r(8410);const g=r(8373);const v=r(6012);let y=class ConfigurationService{constructor(){switch(p.default.get(l.constants.CONTAINER.ENTRY_POINT)){case d.EntryPoint.CLI:this.configuration=new u.CLIConfiguration;break;case d.EntryPoint.GITHUB_EVENT:this.configuration=new m.ActionConfiguration;break;default:(0,h.logAndThrow)("Invalid entrypoint. Please contact with the administrator or report and issue to build-chain tool repository")}this._nodeChain=[];this._definitionFile={version:"2.1"}}get nodeChain(){return this._nodeChain}get definitionFile(){return this._definitionFile}async init(){await this.configuration.init();const e=new v.DefinitionFileReader(this.configuration);this._definitionFile=await e.getDefinitionFile();this._nodeChain=await e.generateNodeChain(this.getStarterProjectName())}getStarterProjectName(){const e=this.configuration.parsedInputs.startProject??process.env.GITHUB_REPOSITORY;if(!e){(0,h.logAndThrow)("Start project needs to be defined or build chain must be run in a Github environment")}return e}isNodeStarter(e){return e.project===this.getStarterProjectName()}getStarterNode(){const e=this.nodeChain.find((e=>this.isNodeStarter(e)));if(!e){(0,h.logAndThrow)(`There's no project ${this.getStarterProjectName()} in the chain\n This is normally due the project starting the job (or the one selected to behave like so it's not in the project tree information.\n Please choose a different project like starter or define the project ${this.getStarterProjectName()} in the tree.`)}return e}getNodeExecutionLevel(e){const t=this.nodeChain.indexOf(this.getStarterNode());const r=this.nodeChain.indexOf(e);if(rt){return c.NodeExecutionLevel.DOWNSTREAM}else{return c.NodeExecutionLevel.CURRENT}}skipExecution(e){if(this.configuration.parsedInputs.skipExecution){return true}return this.configuration.parsedInputs.skipProjectExecution?this.configuration.parsedInputs.skipProjectExecution.includes(e.project):false}skipCheckout(e){if(this.configuration.parsedInputs.skipCheckout){return true}return this.configuration.parsedInputs.skipProjectCheckout?this.configuration.parsedInputs.skipProjectCheckout.includes(e.project):false}skipParallelCheckout(){return this.configuration.parsedInputs.skipParallelCheckout}getTreatmentOptions(){if(this.configuration.parsedInputs.customCommandTreatment){return{replaceExpressions:this.configuration.parsedInputs.customCommandTreatment}}return{}}getTargetProject(){return this.configuration.targetProject}getSourceProject(){return this.configuration.sourceProject}getRootFolder(){return this.configuration.parsedInputs.outputFolder??process.env.GITHUB_WORKSPACE??process.cwd()}getFlowType(){return this.configuration.getFlowType()}getCloneUrl(e,t){if(process.env.ACT){return`${process.env.ACT_REPO}${e}/${t}`}return`${this.configuration.gitConfiguration.serverUrlWithToken}/${e}/${t}`}getPre(){return this.definitionFile.pre}getPost(){return this.definitionFile.post}getDefinitionFileUrl(){return this.configuration.parsedInputs.definitionFile}getEventUrl(){return this.getFlowType()===g.FlowType.BRANCH?"":this.configuration.gitEventData.html_url}};y=n([(0,p.Service)(),o("design:paramtypes",[])],y);t.ConfigurationService=y},6012:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.DefinitionFileReader=void 0;const i=r(6759);const n=r(8373);const s=r(9837);const o=r(8410);const p=r(8114);const c=a(r(3802));class DefinitionFileReader{constructor(e){this.configuration=e;this.logger=c.default.get(s.LoggerService).logger}async generateNodeChainWithOptions(e,t){let r;switch(this.configuration.getFlowType()){case n.FlowType.BRANCH:{if(this.configuration.parsedInputs.fullProjectDependencyTree){r=await(0,p.getOrderedListForProject)(this.configuration.parsedInputs.definitionFile,e,t)}else{const a=await(0,p.getTreeForProject)(this.configuration.parsedInputs.definitionFile,e,t);if(!a){throw new Error("Starting project not found")}r=(0,p.parentChainFromNode)(a)}break}case n.FlowType.CROSS_PULL_REQUEST:{const t=await(0,p.getTreeForProject)(this.configuration.parsedInputs.definitionFile,e);if(!t){throw new Error("Starting project not found")}r=(0,p.parentChainFromNode)(t);break}case n.FlowType.FULL_DOWNSTREAM:{r=await(0,p.getOrderedListForProject)(this.configuration.parsedInputs.definitionFile,e,t);break}case n.FlowType.SINGLE_PULL_REQUEST:{const a=await(0,p.getTreeForProject)(this.configuration.parsedInputs.definitionFile,e,t);if(!a){throw new Error("Starting project not found")}r=[a]}}return r}async getDefinitionFile(){try{return(0,p.readDefinitionFile)(this.configuration.parsedInputs.definitionFile,{...this.configuration.sourceProject,token:c.default.get(i.constants.GITHUB.TOKEN)})}catch(e){this.logger.debug("Did not find correct definition on file, trying target")}try{return(0,p.readDefinitionFile)(this.configuration.parsedInputs.definitionFile,{...this.configuration.targetProject,token:c.default.get(i.constants.GITHUB.TOKEN)})}catch(e){(0,o.logAndThrow)("Invalid definition file")}}async generateNodeChain(e){try{return await this.generateNodeChainWithOptions(e,{...this.configuration.sourceProject,token:c.default.get(i.constants.GITHUB.TOKEN)})}catch(e){this.logger.debug("Did not find correct definition on file, trying target")}try{return await this.generateNodeChainWithOptions(e,{...this.configuration.targetProject,token:c.default.get(i.constants.GITHUB.TOKEN)})}catch(e){(0,o.logAndThrow)("Invalid definition file")}}}t.DefinitionFileReader=DefinitionFileReader},6298:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.FlowService=void 0;const p=r(4396);const c=r(6696);const l=r(7774);const d=r(5173);const u=r(4303);const m=r(6229);const h=r(9837);const g=s(r(3802));let v=class FlowService{constructor(){this.configService=g.default.get(m.ConfigurationService);this.checkoutService=g.default.get(d.CheckoutService);this.executor=g.default.get(u.ExecuteCommandService);this.artifactService=g.default.get(l.ArtifactService);this.logger=g.default.get(h.LoggerService).logger}async run(){this.logger.startGroup("Execution Plan");this.printExecutionPlan();this.logger.endGroup();this.logger.startGroup(`Checking out ${this.configService.getStarterProjectName()} and its dependencies`);const e=await this.checkoutService.checkoutDefinitionTree();this.logger.info("Checkout summary");this.printCheckoutSummary(e);this.logger.endGroup();const t=this.configService.nodeChain.map((t=>({node:t,cwd:e.find((e=>e.node.project===t.project)).checkoutInfo?.repoDir})));const r=await this.executeAndPrint(t,c.ExecutionPhase.BEFORE);const a=await this.executeAndPrint(t,c.ExecutionPhase.CURRENT);const i=await this.executeAndPrint(t,c.ExecutionPhase.AFTER);this.logger.startGroup("Uploading artifacts");const n=await this.artifactService.uploadNodes(this.configService.nodeChain,this.configService.getStarterNode());this.logger.endGroup();return{checkoutInfo:e,artifactUploadResults:n,executionResult:{after:i,commands:a,before:r}}}printExecutionPlan(){this.logger.info(`${this.configService.nodeChain.length} projects will be executed`);this.configService.nodeChain.forEach((e=>{const t=this.configService.getNodeExecutionLevel(e);this.logger.info(`[${e.project}]`);this.logger.info(`\t Level type: ${t}`);if(this.configService.skipExecution(e)){this.logger.info("\t No command will be executed (this project will be skipped)")}else{const r=this.executor.getNodeCommands(e,c.ExecutionPhase.BEFORE,t);const a=this.executor.getNodeCommands(e,c.ExecutionPhase.CURRENT,t);const i=this.executor.getNodeCommands(e,c.ExecutionPhase.AFTER,t);if(r?.length){this.logger.info(`\t [${c.ExecutionPhase.BEFORE}]`);this.logger.info(`\t\t ${r.join("\n")}`)}if(a?.length){this.logger.info(`\t [${c.ExecutionPhase.CURRENT}]`);this.logger.info(`\t\t ${a.join("\n")}`)}if(i?.length){this.logger.info(`\t [${c.ExecutionPhase.AFTER}]`);this.logger.info(`\t\t ${i.join("\n")}`)}}}))}printCheckoutSummary(e){e.forEach((e=>{this.logger.info(`[${e.node.project}]`);if(e.checkoutInfo){this.logger.info(`\t Project taken from ${e.checkoutInfo.targetGroup}/${e.checkoutInfo.targetName}:${e.checkoutInfo.targetBranch}`);if(e.checkoutInfo.merge){this.logger.info(`\t Merged ${e.checkoutInfo.sourceGroup}/${e.checkoutInfo.sourceName}:${e.checkoutInfo.sourceBranch} into branch ${e.checkoutInfo.targetBranch}`)}}else{this.logger.info("\t This project wasn't checked out")}}))}printExecutionSummary(e){e.forEach((e=>{this.logger.info(`[${e.node.project}]`);if(!e.executeCommandResults.length){this.logger.info("\t No commands were found for this project")}e.executeCommandResults.forEach((e=>{this.logger.info(`\t [${e.result}] ${e.command} [Executed in ${e.time} ms]`);if(e.result===p.ExecutionResult.NOT_OK){this.logger.info(`\t\t Error: ${e.errorMessage}`)}}))}))}async executeAndPrint(e,t){this.logger.startGroup(`Executing ${t}`);const r=await this.executor.executeChainCommands(e,t);this.logger.info(`Execution summary for phase ${t}`);this.printExecutionSummary(r);this.logger.endGroup();return r}};v=n([(0,g.Service)(),o("design:paramtypes",[])],v);t.FlowService=v},7616:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var p=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.GitCLIService=void 0;const c=p(r(9103));const l=s(r(3802));const d=p(r(7147));const u=r(9837);let m=class GitCLIService{constructor(){this.logger=l.default.get(u.LoggerService).logger}git(e,t){const r={...e?{baseDir:e}:{},...t?{errors:t}:{}};return(0,c.default)(r).addConfig("user.name","Github").addConfig("user.email","noreply@github.com")}async version(){const e=await(0,c.default)().raw("version");const t=e.match(/(\d+\.\d+(\.\d+)?)/);return t?t[1]:undefined}async clone(e,t,r){if(!d.default.existsSync(t)){await(0,c.default)().clone(e,t,["--quiet","--shallow-submodules","--no-tags","--branch",r])}else{this.logger.warn(`Folder ${t} already exist. Won't clone`)}}async fetch(e,t){await this.git(e).fetch("origin",t,["--quiet"])}async getCommonAncestor(e,...t){if(t.length===1){return t[0]}else if(t.length<1){throw new Error("empty refs!")}const errorHandler=(e,t)=>{if(t.exitCode===1||t.exitCode===0){return}if(e){return e}return Buffer.concat([...t.stdOut,...t.stdErr])};return(await this.git(e,errorHandler).raw("merge-base","--octopus",...t)).trim()}async getReachableParentCommits(e,t){return(await this.git(e).raw("rev-list","--parents",`${t}..HEAD`)).split(/\n/g).map((e=>e.split(/ /g).slice(1))).flat()}async merge(e,t,r){await this.git(e).pull(t,r,["--no-rebase","--allow-unrelated-histories"])}async head(e){return this.git(e).raw("show-ref","--head","-s","/HEAD")}async sha(e,t){return this.git(e).raw("show-ref","-s",`refs/remotes/origin/${t}`)}async rename(e,t){await this.git(e).branch(["--move",t])}async rebase(e,t){await this.git(e).rebase(["--quiet","--autosquash",t])}async push(e,t,r){const a=["--quiet"];if(t){a.push("--force-with-lease")}await this.git(e).push("origin",r,a)}};m=n([(0,l.Service)(),o("design:paramtypes",[])],m);t.GitCLIService=m},8031:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.GithubAPIService=void 0;const p=r(293);const c=r(2322);const l=r(9837);const d=r(8410);const u=s(r(3802));let m=class GithubAPIService{constructor(){this.logger=u.default.get(l.LoggerService).logger;this.octokit=u.default.get(c.OctokitService).octokit}async doesBranchExist(e,t,r){try{await this.octokit.repos.getBranch({owner:e,repo:t,branch:r});return true}catch(a){this.logger.warn(`project github.com/${e}/${t}:${r} does not exist. It's not necessarily an error.`);return false}}async hasPullRequest(e,t,r,a){let i={owner:e,repo:t,state:"open"};if(!a&&!r){(0,d.logAndThrow)(`[${e}/${t}] Either head or base needs to be defined while requesting pull request information`)}if(a){i={...i,base:a}}if(r){i={...i,head:r}}try{const{status:e,data:t}=await this.octokit.pulls.list(i);return e===200&&t.length>0}catch(i){let n=`Error getting pull request list from https://api.github.com/repos/${e}/${t}/pulls?state=open`;if(a){n+=`&base=${a}`}if(r){n+=`&head=${r}`}this.logger.error(n);throw i}}async getForkName(e,t,r){try{if(e===t){await this.octokit.repos.get({owner:t,repo:r});return r}else{for await(const a of this.octokit.paginate.iterator(this.octokit.repos.listForks,{owner:e,repo:r})){const e=a.data.find((e=>e.owner.login===t));if(e){return e.name}}throw new p.NotFoundError}}catch(a){this.logger.error(`Error getting fork name for ${e}/${r} where owner is ${t}`);throw a}}};m=n([(0,u.Service)(),o("design:paramtypes",[])],m);t.GithubAPIService=m},2322:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.OctokitService=void 0;const p=r(6759);const c=r(5375);const l=s(r(3802));const d=r(3764);let u=class OctokitService{constructor(){const e=process.env["http_proxy"];this._octokit=new c.Octokit({auth:l.default.get(p.constants.GITHUB.TOKEN),userAgent:"kiegroup/github-build-chain-action",request:{agent:e?new d.HttpProxyAgent(e):undefined}})}get octokit(){return this._octokit}};u=n([(0,l.Service)(),o("design:paramtypes",[])],u);t.OctokitService=u},8081:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.InputService=void 0;const i=r(8373);const n=r(3802);let s=class InputService{constructor(){this._inputs=i.defaultInputValues}get inputs(){return this._inputs}updateInputs(e){this._inputs={...this.inputs,...e}}};s=a([(0,n.Service)()],s);t.InputService=s},361:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.JobSummaryService=void 0;const p=s(r(3802));const c=s(r(2186));const l=r(6229);const d=r(8373);const u=r(7616);const m=r(4396);const h=r(6696);let g=class JobSummaryService{constructor(){this.configService=p.default.get(l.ConfigurationService);this.gitService=p.default.get(u.GitCLIService)}async generateSummary(e,t,r){const a=this.configService.getFlowType();if(a===d.FlowType.BRANCH){return}const i=c.summary.emptyBuffer().addRaw("You can copy paste the following commands to locally execute build chain tool.",true).addCodeBlock(`npm i ${process.env.npm_package_name}@${process.env.npm_package_version} -g build-chain-action -f ${this.configService.getDefinitionFileUrl()} build ${a} -u ${this.configService.getEventUrl()}`).addEOL().addRaw(`**Git Version**: \`${await this.gitService.version()}\``,true).addRaw("> **_Notice_**: The `GITHUB_TOKEN` should be set in the environment.",true).stringify();const n=this.constructExecutionResult(e.executionResult.before,e.checkoutInfo);const s=this.constructExecutionResult(e.executionResult.commands,e.checkoutInfo);const o=this.constructExecutionResult(e.executionResult.after,e.checkoutInfo);const p=this.constructPrePostResult(t);const l=this.constructPrePostResult(r);await c.summary.emptyBuffer().addHeading("Build Chain Execution Summary").addEOL().addRaw(`**Project Starting the Job:** [${this.configService.getStarterProjectName()}](https://github.com/${this.configService.getStarterProjectName()})`,true).addRaw(`

Pre

${p}
`,true).addRaw(`

Execution phase: ${h.ExecutionPhase.BEFORE}

${n}
`,true).addRaw(`

Execution phase: ${h.ExecutionPhase.CURRENT}

${s}
`,true).addRaw(`

Execution phase: ${h.ExecutionPhase.AFTER}

${o}
`,true).addRaw(`

Post

${l}
`,true).addRaw(`

Local Execution

${i}
`,true).write()}constructPrePostResult(e){const t=[{data:"Command",header:true},{data:"Execution Result",header:true},{data:"Execution Time",header:true}];const r=e.map((e=>[e.command,this.getExecutionResultString(e.result),`${e.time}`]));return c.summary.emptyBuffer().addTable([t,...r]).stringify()}constructExecutionResult(e,t){const r=[{data:"Project",header:true},{data:"Source",header:true},{data:"Target",header:true},{data:"Merged",header:true},{data:"Execution Result",header:true},{data:"Avg Execution Time",header:true}];return c.summary.emptyBuffer().addTable([r,...this.getExecutionResultData(e,t)]).addEOL().addRaw("```mermaid",true).addRaw(this.constructGraph(e),true).addRaw("```",true).stringify()}getExecutionResult(e){return e.find((e=>e.result!==m.ExecutionResult.OK))?.result??m.ExecutionResult.OK}getExecutionResultString(e){switch(e){case m.ExecutionResult.NOT_OK:return"❌";case m.ExecutionResult.SKIP:return"⛔";default:return"✅"}}getExecutionResultData(e,t){return e.map((e=>{const r=t.find((t=>t.node.project===e.node.project)).checkoutInfo;const a=this.getExecutionResultString(this.getExecutionResult(e.executeCommandResults));return[e.node.project,r?`${r.targetGroup}/${r.targetName}:${r.targetBranch}`:"checkout skipped",r?`${r.sourceGroup}/${r.sourceName}:${r.sourceBranch}`:"checkout skipped",r?.merge?"✅":"❌",a,e.executeCommandResults.length>0?`${e.executeCommandResults.reduce(((e,t)=>e+t.time),0)/e.executeCommandResults.length}`:"0"]}))}constructGraph(e){return`flowchart LR;\n ${e.map((e=>{const t=this.getExecutionResult(e.executeCommandResults);let r="okClass";switch(t){case m.ExecutionResult.NOT_OK:r="errorClass";break;case m.ExecutionResult.SKIP:r="noEntry";break}return`${e.node.project}:::${r}`})).join("==>")}\n ${e.map((e=>`click ${e.node.project} 'https://github.com/${e.node.project}'`)).join("\n\t\t\t\t")}\n classDef okClass fill:#218838,stroke:#1e7e34,color: #fff,border-radius: 4px\n classDef errorClass fill:#dc3545,stroke:#dc3545,color: #fff,border-radius: 4px\n classDef noEntry fill:#6c757d,stroke:#6c757d,color: #fff,border-radius: 4px`}};g=n([(0,p.Service)(),o("design:paramtypes",[])],g);t.JobSummaryService=g},8140:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.BaseLoggerService=void 0;const i=r(8373);const n=r(8081);const s=r(8416);const o=a(r(3802));class BaseLoggerService{constructor(){this._logger=new s.Logger;this.input=o.default.get(n.InputService)}debug(e){if(this.input.inputs.loggerLevel==i.LoggerLevel.DEBUG){this._logger.log("[DEBUG]",e)}}info(e){this._logger.log("[INFO]",e)}trace(e){if(this.input.inputs.loggerLevel==i.LoggerLevel.TRACE){this._logger.log("[TRACE]",e)}}warn(e){this._logger.log("[WARN]",e)}error(e){this._logger.log("[ERROR]",e)}get logger(){return this._logger}}t.BaseLoggerService=BaseLoggerService},8625:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CLILoggerService=void 0;const a=r(8140);class CLILoggerService extends a.BaseLoggerService{constructor(){super()}endGroup(){super.logger.emptyLine()}startGroup(e){super.logger.log("#",e)}}t.CLILoggerService=CLILoggerService},418:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.GithubActionLoggerService=void 0;const s=r(8140);const o=n(r(2186));class GithubActionLoggerService extends s.BaseLoggerService{constructor(){super()}endGroup(){o.endGroup()}startGroup(e){o.startGroup(e)}}t.GithubActionLoggerService=GithubActionLoggerService},9837:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.LoggerService=void 0;const p=r(6759);const c=r(6848);const l=r(8625);const d=r(418);const u=s(r(3802));let m=class LoggerService{constructor(){const e=u.default.get(p.constants.CONTAINER.ENTRY_POINT);switch(e){case c.EntryPoint.CLI:this._logger=new l.CLILoggerService;break;case c.EntryPoint.GITHUB_EVENT:this._logger=new d.GithubActionLoggerService;break;default:throw new Error(`No LoggerService defined for ${e}`)}}get logger(){return this._logger}};m=n([(0,u.Service)(),o("design:paramtypes",[])],m);t.LoggerService=m},8416:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Logger=void 0;class Logger{log(e,...t){console.log.apply(console,[e,...t])}emptyLine(){this.log("","")}}t.Logger=Logger},3063:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var i=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var n=this&&this.__param||function(e,t){return function(r,a){t(r,a,e)}};Object.defineProperty(t,"__esModule",{value:true});t.PostExecutor=void 0;const s=r(6165);const o=r(3802);let p=class PostExecutor extends s.PrePostExecutor{constructor(e){super();this.executionSuccess=e}async run(){const e=this.configService.getPost();let t=[];if(e){this.logger.startGroup("Executing post section");if(this.executionSuccess){this.logger.info("execution result is OK, so 'success' and 'always' sections will be executed");if(e.success){t=await this.execute(e.success)}}else{this.logger.info("execution result is NOT OK, so 'failure' and 'always' sections will be executed");if(e.failure){t=await this.execute(e.failure)}}if(e.always){t=[...t,...await this.execute(e.always)]}this.logger.endGroup()}return t}};p=a([(0,o.Service)(),n(0,(0,o.Inject)("post.executionSuccess")),i("design:paramtypes",[Boolean])],p);t.PostExecutor=p},6165:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.PrePostExecutor=void 0;const i=r(4303);const n=r(6229);const s=r(9837);const o=a(r(3802));class PrePostExecutor{constructor(){this.configService=o.default.get(n.ConfigurationService);this.logger=o.default.get(s.LoggerService).logger;this.executeService=o.default.get(i.ExecuteCommandService)}async execute(e){const t=[];if(Array.isArray(e)){for(const r of e){t.push(await this.executeService.executeCommand(r,process.cwd()))}}else{t.push(await this.executeService.executeCommand(e,process.cwd()))}return t}}t.PrePostExecutor=PrePostExecutor},7814:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.PreExecutor=void 0;const i=r(6165);const n=r(3802);let s=class PreExecutor extends i.PrePostExecutor{async run(){const e=this.configService.getPre();let t=[];if(e){this.logger.startGroup("Executing pre section");t=await this.execute(e);this.logger.endGroup()}return t}};s=a([(0,n.Service)()],s);t.PreExecutor=s},3678:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.hrtimeToMs=t.formatDate=void 0;function formatDate(e){return`${e.getFullYear()}${e.getMonth()}${e.getDate()}${e.getHours()}${e.getMinutes()}${e.getSeconds()}`}t.formatDate=formatDate;function hrtimeToMs(e,t=process.hrtime(e)){return t[0]*1e3+t[1]/1e6}t.hrtimeToMs=hrtimeToMs},8410:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.logAndThrow=void 0;const i=r(9837);const n=a(r(3802));function logAndThrow(e){n.default.get(i.LoggerService).logger.error(e);throw new Error(e)}t.logAndThrow=logAndThrow},2877:module=>{module.exports=eval("require")("encoding")},9491:e=>{"use strict";e.exports=require("assert")},2081:e=>{"use strict";e.exports=require("child_process")},2057:e=>{"use strict";e.exports=require("constants")},6113:e=>{"use strict";e.exports=require("crypto")},2361:e=>{"use strict";e.exports=require("events")},7147:e=>{"use strict";e.exports=require("fs")},3292:e=>{"use strict";e.exports=require("fs/promises")},3685:e=>{"use strict";e.exports=require("http")},5687:e=>{"use strict";e.exports=require("https")},1808:e=>{"use strict";e.exports=require("net")},3977:e=>{"use strict";e.exports=require("node:fs/promises")},2037:e=>{"use strict";e.exports=require("os")},1017:e=>{"use strict";e.exports=require("path")},4074:e=>{"use strict";e.exports=require("perf_hooks")},5477:e=>{"use strict";e.exports=require("punycode")},2781:e=>{"use strict";e.exports=require("stream")},1576:e=>{"use strict";e.exports=require("string_decoder")},9512:e=>{"use strict";e.exports=require("timers")},4404:e=>{"use strict";e.exports=require("tls")},6224:e=>{"use strict";e.exports=require("tty")},7310:e=>{"use strict";e.exports=require("url")},3837:e=>{"use strict";e.exports=require("util")},9796:e=>{"use strict";e.exports=require("zlib")},8109:(e,t,r)=>{"use strict";var a=r(1399);var i=r(9338);var n=r(2986);var s=r(2289);var o=r(45);function composeCollection(e,t,r,p,c){let l;switch(r.type){case"block-map":{l=n.resolveBlockMap(e,t,r,c);break}case"block-seq":{l=s.resolveBlockSeq(e,t,r,c);break}case"flow-collection":{l=o.resolveFlowCollection(e,t,r,c);break}}if(!p)return l;const d=t.directives.tagName(p.source,(e=>c(p,"TAG_RESOLVE_FAILED",e)));if(!d)return l;const u=l.constructor;if(d==="!"||d===u.tagName){l.tag=u.tagName;return l}const m=a.isMap(l)?"map":"seq";let h=t.schema.tags.find((e=>e.collection===m&&e.tag===d));if(!h){const e=t.schema.knownTags[d];if(e&&e.collection===m){t.schema.tags.push(Object.assign({},e,{default:false}));h=e}else{c(p,"TAG_RESOLVE_FAILED",`Unresolved tag: ${d}`,true);l.tag=d;return l}}const g=h.resolve(l,(e=>c(p,"TAG_RESOLVE_FAILED",e)),t.options);const v=a.isNode(g)?g:new i.Scalar(g);v.range=l.range;v.tag=d;if(h?.format)v.format=h.format;return v}t.composeCollection=composeCollection},5050:(e,t,r)=>{"use strict";var a=r(42);var i=r(8676);var n=r(1250);var s=r(6985);function composeDoc(e,t,{offset:r,start:o,value:p,end:c},l){const d=Object.assign({_directives:t},e);const u=new a.Document(undefined,d);const m={atRoot:true,directives:u.directives,options:u.options,schema:u.schema};const h=s.resolveProps(o,{indicator:"doc-start",next:p??c?.[0],offset:r,onError:l,startOnNewline:true});if(h.found){u.directives.docStart=true;if(p&&(p.type==="block-map"||p.type==="block-seq")&&!h.hasNewline)l(h.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}u.contents=p?i.composeNode(m,p,h,l):i.composeEmptyNode(m,h.end,o,null,h,l);const g=u.contents.range[2];const v=n.resolveEnd(c,g,false,l);if(v.comment)u.comment=v.comment;u.range=[r,g,v.offset];return u}t.composeDoc=composeDoc},8676:(e,t,r)=>{"use strict";var a=r(5639);var i=r(8109);var n=r(4766);var s=r(1250);var o=r(8781);const p={composeNode:composeNode,composeEmptyNode:composeEmptyNode};function composeNode(e,t,r,a){const{spaceBefore:s,comment:o,anchor:c,tag:l}=r;let d;let u=true;switch(t.type){case"alias":d=composeAlias(e,t,a);if(c||l)a(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":d=n.composeScalar(e,t,l,a);if(c)d.anchor=c.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":d=i.composeCollection(p,e,t,l,a);if(c)d.anchor=c.source.substring(1);break;default:{const i=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;a(t,"UNEXPECTED_TOKEN",i);d=composeEmptyNode(e,t.offset,undefined,null,r,a);u=false}}if(c&&d.anchor==="")a(c,"BAD_ALIAS","Anchor cannot be an empty string");if(s)d.spaceBefore=true;if(o){if(t.type==="scalar"&&t.source==="")d.comment=o;else d.commentBefore=o}if(e.options.keepSourceTokens&&u)d.srcToken=t;return d}function composeEmptyNode(e,t,r,a,{spaceBefore:i,comment:s,anchor:p,tag:c,end:l},d){const u={type:"scalar",offset:o.emptyScalarPosition(t,r,a),indent:-1,source:""};const m=n.composeScalar(e,u,c,d);if(p){m.anchor=p.source.substring(1);if(m.anchor==="")d(p,"BAD_ALIAS","Anchor cannot be an empty string")}if(i)m.spaceBefore=true;if(s){m.comment=s;m.range[2]=l}return m}function composeAlias({options:e},{offset:t,source:r,end:i},n){const o=new a.Alias(r.substring(1));if(o.source==="")n(t,"BAD_ALIAS","Alias cannot be an empty string");if(o.source.endsWith(":"))n(t+r.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",true);const p=t+r.length;const c=s.resolveEnd(i,p,e.strict,n);o.range=[t,p,c.offset];if(c.comment)o.comment=c.comment;return o}t.composeEmptyNode=composeEmptyNode;t.composeNode=composeNode},4766:(e,t,r)=>{"use strict";var a=r(1399);var i=r(9338);var n=r(9485);var s=r(7578);function composeScalar(e,t,r,o){const{value:p,type:c,comment:l,range:d}=t.type==="block-scalar"?n.resolveBlockScalar(t,e.options.strict,o):s.resolveFlowScalar(t,e.options.strict,o);const u=r?e.directives.tagName(r.source,(e=>o(r,"TAG_RESOLVE_FAILED",e))):null;const m=r&&u?findScalarTagByName(e.schema,p,u,r,o):t.type==="scalar"?findScalarTagByTest(e,p,t,o):e.schema[a.SCALAR];let h;try{const n=m.resolve(p,(e=>o(r??t,"TAG_RESOLVE_FAILED",e)),e.options);h=a.isScalar(n)?n:new i.Scalar(n)}catch(e){const a=e instanceof Error?e.message:String(e);o(r??t,"TAG_RESOLVE_FAILED",a);h=new i.Scalar(p)}h.range=d;h.source=p;if(c)h.type=c;if(u)h.tag=u;if(m.format)h.format=m.format;if(l)h.comment=l;return h}function findScalarTagByName(e,t,r,i,n){if(r==="!")return e[a.SCALAR];const s=[];for(const t of e.tags){if(!t.collection&&t.tag===r){if(t.default&&t.test)s.push(t);else return t}}for(const e of s)if(e.test?.test(t))return e;const o=e.knownTags[r];if(o&&!o.collection){e.tags.push(Object.assign({},o,{default:false,test:undefined}));return o}n(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${r}`,r!=="tag:yaml.org,2002:str");return e[a.SCALAR]}function findScalarTagByTest({directives:e,schema:t},r,i,n){const s=t.tags.find((e=>e.default&&e.test?.test(r)))||t[a.SCALAR];if(t.compat){const o=t.compat.find((e=>e.default&&e.test?.test(r)))??t[a.SCALAR];if(s.tag!==o.tag){const t=e.tagString(s.tag);const r=e.tagString(o.tag);const a=`Value may be parsed as either ${t} or ${r}`;n(i,"TAG_RESOLVE_FAILED",a,true)}}return s}t.composeScalar=composeScalar},9493:(e,t,r)=>{"use strict";var a=r(5400);var i=r(42);var n=r(4236);var s=r(1399);var o=r(5050);var p=r(1250);function getErrorPos(e){if(typeof e==="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];const{offset:t,source:r}=e;return[t,t+(typeof r==="string"?r.length:1)]}function parsePrelude(e){let t="";let r=false;let a=false;for(let i=0;i{const i=getErrorPos(e);if(a)this.warnings.push(new n.YAMLWarning(i,t,r));else this.errors.push(new n.YAMLParseError(i,t,r))};this.directives=new a.Directives({version:e.version||"1.2"});this.options=e}decorate(e,t){const{comment:r,afterEmptyLine:a}=parsePrelude(this.prelude);if(r){const i=e.contents;if(t){e.comment=e.comment?`${e.comment}\n${r}`:r}else if(a||e.directives.docStart||!i){e.commentBefore=r}else if(s.isCollection(i)&&!i.flow&&i.items.length>0){let e=i.items[0];if(s.isPair(e))e=e.key;const t=e.commentBefore;e.commentBefore=t?`${r}\n${t}`:r}else{const e=i.commentBefore;i.commentBefore=e?`${r}\n${e}`:r}}if(t){Array.prototype.push.apply(e.errors,this.errors);Array.prototype.push.apply(e.warnings,this.warnings)}else{e.errors=this.errors;e.warnings=this.warnings}this.prelude=[];this.errors=[];this.warnings=[]}streamInfo(){return{comment:parsePrelude(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=false,r=-1){for(const t of e)yield*this.next(t);yield*this.end(t,r)}*next(e){if(process.env.LOG_STREAM)console.dir(e,{depth:null});switch(e.type){case"directive":this.directives.add(e.source,((t,r,a)=>{const i=getErrorPos(e);i[0]+=t;this.onError(i,"BAD_DIRECTIVE",r,a)}));this.prelude.push(e.source);this.atDirectives=true;break;case"document":{const t=o.composeDoc(this.options,this.directives,e,this.onError);if(this.atDirectives&&!t.directives.docStart)this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line");this.decorate(t,false);if(this.doc)yield this.doc;this.doc=t;this.atDirectives=false;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{const t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message;const r=new n.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",t);if(this.atDirectives||!this.doc)this.errors.push(r);else this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){const t="Unexpected doc-end without preceding document";this.errors.push(new n.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",t));break}this.doc.directives.docEnd=true;const t=p.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);this.decorate(this.doc,true);if(t.comment){const e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new n.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=false,t=-1){if(this.doc){this.decorate(this.doc,true);yield this.doc;this.doc=null}else if(e){const e=Object.assign({_directives:this.directives},this.options);const r=new i.Document(undefined,e);if(this.atDirectives)this.onError(t,"MISSING_CHAR","Missing directives-end indicator line");r.range=[0,t,t];this.decorate(r,false);yield r}}}t.Composer=Composer},2986:(e,t,r)=>{"use strict";var a=r(246);var i=r(6011);var n=r(6985);var s=r(976);var o=r(3669);var p=r(6899);const c="All mapping items must start at the same column";function resolveBlockMap({composeNode:e,composeEmptyNode:t},r,l,d){const u=new i.YAMLMap(r.schema);if(r.atRoot)r.atRoot=false;let m=l.offset;let h=null;for(const i of l.items){const{start:g,key:v,sep:y,value:b}=i;const w=n.resolveProps(g,{indicator:"explicit-key-ind",next:v??y?.[0],offset:m,onError:d,startOnNewline:true});const x=!w.found;if(x){if(v){if(v.type==="block-seq")d(m,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key");else if("indent"in v&&v.indent!==l.indent)d(m,"BAD_INDENT",c)}if(!w.anchor&&!w.tag&&!y){h=w.end;if(w.comment){if(u.comment)u.comment+="\n"+w.comment;else u.comment=w.comment}continue}if(w.hasNewlineAfterProp||s.containsNewline(v)){d(v??g[g.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}}else if(w.found?.indent!==l.indent){d(m,"BAD_INDENT",c)}const E=w.end;const S=v?e(r,v,w,d):t(r,E,g,null,w,d);if(r.schema.compat)o.flowIndentCheck(l.indent,v,d);if(p.mapIncludes(r,u.items,S))d(E,"DUPLICATE_KEY","Map keys must be unique");const T=n.resolveProps(y??[],{indicator:"map-value-ind",next:b,offset:S.range[2],onError:d,startOnNewline:!v||v.type==="block-scalar"});m=T.end;if(T.found){if(x){if(b?.type==="block-map"&&!T.hasNewline)d(m,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(r.options.strict&&w.start{"use strict";var a=r(9338);function resolveBlockScalar(e,t,r){const i=e.offset;const n=parseBlockScalarHeader(e,t,r);if(!n)return{value:"",type:null,comment:"",range:[i,i,i]};const s=n.mode===">"?a.Scalar.BLOCK_FOLDED:a.Scalar.BLOCK_LITERAL;const o=e.source?splitLines(e.source):[];let p=o.length;for(let e=o.length-1;e>=0;--e){const t=o[e][1];if(t===""||t==="\r")p=e;else break}if(p===0){const t=n.chomp==="+"&&o.length>0?"\n".repeat(Math.max(1,o.length-1)):"";let r=i+n.length;if(e.source)r+=e.source.length;return{value:t,type:s,comment:n.comment,range:[i,r,r]}}let c=e.indent+n.indent;let l=e.offset+n.length;let d=0;for(let e=0;ec)c=t.length}else{if(t.length=p;--e){if(o[e][0].length>c)p=e+1}let u="";let m="";let h=false;for(let e=0;ec||i[0]==="\t"){if(m===" ")m="\n";else if(!h&&m==="\n")m="\n\n";u+=m+t.slice(c)+i;m="\n";h=true}else if(i===""){if(m==="\n")u+="\n";else m="\n"}else{u+=m+i;m=" ";h=false}}switch(n.chomp){case"-":break;case"+":for(let e=p;e{"use strict";var a=r(5161);var i=r(6985);var n=r(3669);function resolveBlockSeq({composeNode:e,composeEmptyNode:t},r,s,o){const p=new a.YAMLSeq(r.schema);if(r.atRoot)r.atRoot=false;let c=s.offset;let l=null;for(const{start:a,value:d}of s.items){const u=i.resolveProps(a,{indicator:"seq-item-ind",next:d,offset:c,onError:o,startOnNewline:true});if(!u.found){if(u.anchor||u.tag||d){if(d&&d.type==="block-seq")o(u.end,"BAD_INDENT","All sequence items must start at the same column");else o(c,"MISSING_CHAR","Sequence item without - indicator")}else{l=u.end;if(u.comment)p.comment=u.comment;continue}}const m=d?e(r,d,u,o):t(r,u.end,a,null,u,o);if(r.schema.compat)n.flowIndentCheck(s.indent,d,o);c=m.range[2];p.items.push(m)}p.range=[s.offset,c,l??c];return p}t.resolveBlockSeq=resolveBlockSeq},1250:(e,t)=>{"use strict";function resolveEnd(e,t,r,a){let i="";if(e){let n=false;let s="";for(const o of e){const{source:e,type:p}=o;switch(p){case"space":n=true;break;case"comment":{if(r&&!n)a(o,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const t=e.substring(1)||" ";if(!i)i=t;else i+=s+t;s="";break}case"newline":if(i)s+=e;n=true;break;default:a(o,"UNEXPECTED_TOKEN",`Unexpected ${p} at node end`)}t+=e.length}}return{comment:i,offset:t}}t.resolveEnd=resolveEnd},45:(e,t,r)=>{"use strict";var a=r(1399);var i=r(246);var n=r(6011);var s=r(5161);var o=r(1250);var p=r(6985);var c=r(976);var l=r(6899);const d="Block collections are not allowed within flow collections";const isBlock=e=>e&&(e.type==="block-map"||e.type==="block-seq");function resolveFlowCollection({composeNode:e,composeEmptyNode:t},r,u,m){const h=u.start.source==="{";const g=h?"flow map":"flow sequence";const v=h?new n.YAMLMap(r.schema):new s.YAMLSeq(r.schema);v.flow=true;const y=r.atRoot;if(y)r.atRoot=false;let b=u.offset+u.start.source.length;for(let s=0;s0){const e=o.resolveEnd(E,S,r.options.strict,m);if(e.comment){if(v.comment)v.comment+="\n"+e.comment;else v.comment=e.comment}v.range=[u.offset,S,e.offset]}else{v.range=[u.offset,S,S]}return v}t.resolveFlowCollection=resolveFlowCollection},7578:(e,t,r)=>{"use strict";var a=r(9338);var i=r(1250);function resolveFlowScalar(e,t,r){const{offset:n,type:s,source:o,end:p}=e;let c;let l;const _onError=(e,t,a)=>r(n+e,t,a);switch(s){case"scalar":c=a.Scalar.PLAIN;l=plainValue(o,_onError);break;case"single-quoted-scalar":c=a.Scalar.QUOTE_SINGLE;l=singleQuotedValue(o,_onError);break;case"double-quoted-scalar":c=a.Scalar.QUOTE_DOUBLE;l=doubleQuotedValue(o,_onError);break;default:r(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`);return{value:"",type:null,comment:"",range:[n,n+o.length,n+o.length]}}const d=n+o.length;const u=i.resolveEnd(p,d,t,r);return{value:l,type:c,comment:u.comment,range:[n,d,u.offset]}}function plainValue(e,t){let r="";switch(e[0]){case"\t":r="a tab character";break;case",":r="flow indicator character ,";break;case"%":r="directive indicator character %";break;case"|":case">":{r=`block scalar indicator ${e[0]}`;break}case"@":case"`":{r=`reserved character ${e[0]}`;break}}if(r)t(0,"BAD_SCALAR_START",`Plain value cannot start with ${r}`);return foldLines(e)}function singleQuotedValue(e,t){if(e[e.length-1]!=="'"||e.length===1)t(e.length,"MISSING_CHAR","Missing closing 'quote");return foldLines(e.slice(1,-1)).replace(/''/g,"'")}function foldLines(e){let t,r;try{t=new RegExp("(.*?)(?t?e.slice(t,a+1):i}else{r+=i}}if(e[e.length-1]!=='"'||e.length===1)t(e.length,"MISSING_CHAR",'Missing closing "quote');return r}function foldNewline(e,t){let r="";let a=e[t+1];while(a===" "||a==="\t"||a==="\n"||a==="\r"){if(a==="\r"&&e[t+2]!=="\n")break;if(a==="\n")r+="\n";t+=1;a=e[t+1]}if(!r)r=" ";return{fold:r,offset:t}}const n={0:"\0",a:"",b:"\b",e:"",f:"\f",n:"\n",r:"\r",t:"\t",v:"\v",N:"…",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function parseCharCode(e,t,r,a){const i=e.substr(t,r);const n=i.length===r&&/^[0-9a-fA-F]+$/.test(i);const s=n?parseInt(i,16):NaN;if(isNaN(s)){const i=e.substr(t-2,r+2);a(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${i}`);return i}return String.fromCodePoint(s)}t.resolveFlowScalar=resolveFlowScalar},6985:(e,t)=>{"use strict";function resolveProps(e,{flow:t,indicator:r,next:a,offset:i,onError:n,startOnNewline:s}){let o=false;let p=s;let c=s;let l="";let d="";let u=false;let m=false;let h=false;let g=null;let v=null;let y=null;let b=null;let w=null;for(const a of e){if(h){if(a.type!=="space"&&a.type!=="newline"&&a.type!=="comma")n(a.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");h=false}switch(a.type){case"space":if(!t&&p&&r!=="doc-start"&&a.source[0]==="\t")n(a,"TAB_AS_INDENT","Tabs are not allowed as indentation");c=true;break;case"comment":{if(!c)n(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const e=a.source.substring(1)||" ";if(!l)l=e;else l+=d+e;d="";p=false;break}case"newline":if(p){if(l)l+=a.source;else o=true}else d+=a.source;p=true;u=true;if(g||v)m=true;c=true;break;case"anchor":if(g)n(a,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(a.source.endsWith(":"))n(a.offset+a.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",true);g=a;if(w===null)w=a.offset;p=false;c=false;h=true;break;case"tag":{if(v)n(a,"MULTIPLE_TAGS","A node can have at most one tag");v=a;if(w===null)w=a.offset;p=false;c=false;h=true;break}case r:if(g||v)n(a,"BAD_PROP_ORDER",`Anchors and tags must be after the ${a.source} indicator`);if(b)n(a,"UNEXPECTED_TOKEN",`Unexpected ${a.source} in ${t??"collection"}`);b=a;p=false;c=false;break;case"comma":if(t){if(y)n(a,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`);y=a;p=false;c=false;break}default:n(a,"UNEXPECTED_TOKEN",`Unexpected ${a.type} token`);p=false;c=false}}const x=e[e.length-1];const E=x?x.offset+x.source.length:i;if(h&&a&&a.type!=="space"&&a.type!=="newline"&&a.type!=="comma"&&(a.type!=="scalar"||a.source!==""))n(a.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");return{comma:y,found:b,spaceBefore:o,comment:l,hasNewline:u,hasNewlineAfterProp:m,anchor:g,tag:v,end:E,start:w??E}}t.resolveProps=resolveProps},976:(e,t)=>{"use strict";function containsNewline(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes("\n"))return true;if(e.end)for(const t of e.end)if(t.type==="newline")return true;return false;case"flow-collection":for(const t of e.items){for(const e of t.start)if(e.type==="newline")return true;if(t.sep)for(const e of t.sep)if(e.type==="newline")return true;if(containsNewline(t.key)||containsNewline(t.value))return true}return false;default:return true}}t.containsNewline=containsNewline},8781:(e,t)=>{"use strict";function emptyScalarPosition(e,t,r){if(t){if(r===null)r=t.length;for(let a=r-1;a>=0;--a){let r=t[a];switch(r.type){case"space":case"comment":case"newline":e-=r.source.length;continue}r=t[++a];while(r?.type==="space"){e+=r.source.length;r=t[++a]}break}}return e}t.emptyScalarPosition=emptyScalarPosition},3669:(e,t,r)=>{"use strict";var a=r(976);function flowIndentCheck(e,t,r){if(t?.type==="flow-collection"){const i=t.end[0];if(i.indent===e&&(i.source==="]"||i.source==="}")&&a.containsNewline(t)){const e="Flow end indicator should be more indented than parent";r(i,"BAD_INDENT",e,true)}}}t.flowIndentCheck=flowIndentCheck},6899:(e,t,r)=>{"use strict";var a=r(1399);function mapIncludes(e,t,r){const{uniqueKeys:i}=e.options;if(i===false)return false;const n=typeof i==="function"?i:(t,r)=>t===r||a.isScalar(t)&&a.isScalar(r)&&t.value===r.value&&!(t.value==="<<"&&e.schema.merge);return t.some((e=>n(e.key,r)))}t.mapIncludes=mapIncludes},42:(e,t,r)=>{"use strict";var a=r(5639);var i=r(3466);var n=r(1399);var s=r(246);var o=r(2463);var p=r(6831);var c=r(8409);var l=r(5225);var d=r(8459);var u=r(3412);var m=r(9652);var h=r(5400);class Document{constructor(e,t,r){this.commentBefore=null;this.comment=null;this.errors=[];this.warnings=[];Object.defineProperty(this,n.NODE_TYPE,{value:n.DOC});let a=null;if(typeof t==="function"||Array.isArray(t)){a=t}else if(r===undefined&&t){r=t;t=undefined}const i=Object.assign({intAsBigInt:false,keepSourceTokens:false,logLevel:"warn",prettyErrors:true,strict:true,uniqueKeys:true,version:"1.2"},r);this.options=i;let{version:s}=i;if(r?._directives){this.directives=r._directives.atDocument();if(this.directives.yaml.explicit)s=this.directives.yaml.version}else this.directives=new h.Directives({version:s});this.setSchema(s,r);if(e===undefined)this.contents=null;else{this.contents=this.createNode(e,a,r)}}clone(){const e=Object.create(Document.prototype,{[n.NODE_TYPE]:{value:n.DOC}});e.commentBefore=this.commentBefore;e.comment=this.comment;e.errors=this.errors.slice();e.warnings=this.warnings.slice();e.options=Object.assign({},this.options);if(this.directives)e.directives=this.directives.clone();e.schema=this.schema.clone();e.contents=n.isNode(this.contents)?this.contents.clone(e.schema):this.contents;if(this.range)e.range=this.range.slice();return e}add(e){if(assertCollection(this.contents))this.contents.add(e)}addIn(e,t){if(assertCollection(this.contents))this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){const r=d.anchorNames(this);e.anchor=!t||r.has(t)?d.findNewAnchor(t||"a",r):t}return new a.Alias(e.anchor)}createNode(e,t,r){let a=undefined;if(typeof t==="function"){e=t.call({"":e},"",e);a=t}else if(Array.isArray(t)){const keyToStr=e=>typeof e==="number"||e instanceof String||e instanceof Number;const e=t.filter(keyToStr).map(String);if(e.length>0)t=t.concat(e);a=t}else if(r===undefined&&t){r=t;t=undefined}const{aliasDuplicateObjects:i,anchorPrefix:s,flow:o,keepUndefined:p,onTagObj:c,tag:l}=r??{};const{onAnchor:u,setAnchors:h,sourceObjects:g}=d.createNodeAnchors(this,s||"a");const v={aliasDuplicateObjects:i??true,keepUndefined:p??false,onAnchor:u,onTagObj:c,replacer:a,schema:this.schema,sourceObjects:g};const y=m.createNode(e,l,v);if(o&&n.isCollection(y))y.flow=true;h();return y}createPair(e,t,r={}){const a=this.createNode(e,null,r);const i=this.createNode(t,null,r);return new s.Pair(a,i)}delete(e){return assertCollection(this.contents)?this.contents.delete(e):false}deleteIn(e){if(i.isEmptyPath(e)){if(this.contents==null)return false;this.contents=null;return true}return assertCollection(this.contents)?this.contents.deleteIn(e):false}get(e,t){return n.isCollection(this.contents)?this.contents.get(e,t):undefined}getIn(e,t){if(i.isEmptyPath(e))return!t&&n.isScalar(this.contents)?this.contents.value:this.contents;return n.isCollection(this.contents)?this.contents.getIn(e,t):undefined}has(e){return n.isCollection(this.contents)?this.contents.has(e):false}hasIn(e){if(i.isEmptyPath(e))return this.contents!==undefined;return n.isCollection(this.contents)?this.contents.hasIn(e):false}set(e,t){if(this.contents==null){this.contents=i.collectionFromPath(this.schema,[e],t)}else if(assertCollection(this.contents)){this.contents.set(e,t)}}setIn(e,t){if(i.isEmptyPath(e))this.contents=t;else if(this.contents==null){this.contents=i.collectionFromPath(this.schema,Array.from(e),t)}else if(assertCollection(this.contents)){this.contents.setIn(e,t)}}setSchema(e,t={}){if(typeof e==="number")e=String(e);let r;switch(e){case"1.1":if(this.directives)this.directives.yaml.version="1.1";else this.directives=new h.Directives({version:"1.1"});r={merge:true,resolveKnownTags:false,schema:"yaml-1.1"};break;case"1.2":case"next":if(this.directives)this.directives.yaml.version=e;else this.directives=new h.Directives({version:e});r={merge:false,resolveKnownTags:true,schema:"core"};break;case null:if(this.directives)delete this.directives;r=null;break;default:{const t=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(r)this.schema=new p.Schema(Object.assign(r,t));else throw new Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:r,maxAliasCount:a,onAnchor:i,reviver:n}={}){const s={anchors:new Map,doc:this,keep:!e,mapAsMap:r===true,mapKeyWarned:false,maxAliasCount:typeof a==="number"?a:100,stringify:c.stringify};const p=o.toJS(this.contents,t??"",s);if(typeof i==="function")for(const{count:e,res:t}of s.anchors.values())i(t,e);return typeof n==="function"?u.applyReviver(n,{"":p},"",p):p}toJSON(e,t){return this.toJS({json:true,jsonArg:e,mapAsMap:false,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){const t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return l.stringifyDocument(this,e)}}function assertCollection(e){if(n.isCollection(e))return true;throw new Error("Expected a YAML collection as document contents")}t.Document=Document},8459:(e,t,r)=>{"use strict";var a=r(1399);var i=r(6796);function anchorIsValid(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const t=JSON.stringify(e);const r=`Anchor must not contain whitespace or control characters: ${t}`;throw new Error(r)}return true}function anchorNames(e){const t=new Set;i.visit(e,{Value(e,r){if(r.anchor)t.add(r.anchor)}});return t}function findNewAnchor(e,t){for(let r=1;true;++r){const a=`${e}${r}`;if(!t.has(a))return a}}function createNodeAnchors(e,t){const r=[];const i=new Map;let n=null;return{onAnchor:a=>{r.push(a);if(!n)n=anchorNames(e);const i=findNewAnchor(t,n);n.add(i);return i},setAnchors:()=>{for(const e of r){const t=i.get(e);if(typeof t==="object"&&t.anchor&&(a.isScalar(t.node)||a.isCollection(t.node))){t.node.anchor=t.anchor}else{const t=new Error("Failed to resolve repeated object (this should not happen)");t.source=e;throw t}}},sourceObjects:i}}t.anchorIsValid=anchorIsValid;t.anchorNames=anchorNames;t.createNodeAnchors=createNodeAnchors;t.findNewAnchor=findNewAnchor},3412:(e,t)=>{"use strict";function applyReviver(e,t,r,a){if(a&&typeof a==="object"){if(Array.isArray(a)){for(let t=0,r=a.length;t{"use strict";var a=r(5639);var i=r(1399);var n=r(9338);const s="tag:yaml.org,2002:";function findTagObject(e,t,r){if(t){const e=r.filter((e=>e.tag===t));const a=e.find((e=>!e.format))??e[0];if(!a)throw new Error(`Tag ${t} not found`);return a}return r.find((t=>t.identify?.(e)&&!t.format))}function createNode(e,t,r){if(i.isDocument(e))e=e.contents;if(i.isNode(e))return e;if(i.isPair(e)){const t=r.schema[i.MAP].createNode?.(r.schema,null,r);t.items.push(e);return t}if(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt!=="undefined"&&e instanceof BigInt){e=e.valueOf()}const{aliasDuplicateObjects:o,onAnchor:p,onTagObj:c,schema:l,sourceObjects:d}=r;let u=undefined;if(o&&e&&typeof e==="object"){u=d.get(e);if(u){if(!u.anchor)u.anchor=p(e);return new a.Alias(u.anchor)}else{u={anchor:null,node:null};d.set(e,u)}}if(t?.startsWith("!!"))t=s+t.slice(2);let m=findTagObject(e,t,l.tags);if(!m){if(e&&typeof e.toJSON==="function"){e=e.toJSON()}if(!e||typeof e!=="object"){const t=new n.Scalar(e);if(u)u.node=t;return t}m=e instanceof Map?l[i.MAP]:Symbol.iterator in Object(e)?l[i.SEQ]:l[i.MAP]}if(c){c(m);delete r.onTagObj}const h=m?.createNode?m.createNode(r.schema,e,r):new n.Scalar(e);if(t)h.tag=t;if(u)u.node=h;return h}t.createNode=createNode},5400:(e,t,r)=>{"use strict";var a=r(1399);var i=r(6796);const n={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"};const escapeTagName=e=>e.replace(/[!,[\]{}]/g,(e=>n[e]));class Directives{constructor(e,t){this.docStart=null;this.docEnd=false;this.yaml=Object.assign({},Directives.defaultYaml,e);this.tags=Object.assign({},Directives.defaultTags,t)}clone(){const e=new Directives(this.yaml,this.tags);e.docStart=this.docStart;return e}atDocument(){const e=new Directives(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=true;break;case"1.2":this.atNextDocument=false;this.yaml={explicit:Directives.defaultYaml.explicit,version:"1.2"};this.tags=Object.assign({},Directives.defaultTags);break}return e}add(e,t){if(this.atNextDocument){this.yaml={explicit:Directives.defaultYaml.explicit,version:"1.1"};this.tags=Object.assign({},Directives.defaultTags);this.atNextDocument=false}const r=e.trim().split(/[ \t]+/);const a=r.shift();switch(a){case"%TAG":{if(r.length!==2){t(0,"%TAG directive should contain exactly two parts");if(r.length<2)return false}const[e,a]=r;this.tags[e]=a;return true}case"%YAML":{this.yaml.explicit=true;if(r.length!==1){t(0,"%YAML directive should contain exactly one part");return false}const[e]=r;if(e==="1.1"||e==="1.2"){this.yaml.version=e;return true}else{const r=/^\d+\.\d+$/.test(e);t(6,`Unsupported YAML version ${e}`,r);return false}}default:t(0,`Unknown directive ${a}`,true);return false}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!"){t(`Not a valid tag: ${e}`);return null}if(e[1]==="<"){const r=e.slice(2,-1);if(r==="!"||r==="!!"){t(`Verbatim tags aren't resolved, so ${e} is invalid.`);return null}if(e[e.length-1]!==">")t("Verbatim tags must end with a >");return r}const[,r,a]=e.match(/^(.*!)([^!]*)$/);if(!a)t(`The ${e} tag has no suffix`);const i=this.tags[r];if(i)return i+decodeURIComponent(a);if(r==="!")return e;t(`Could not resolve tag: ${e}`);return null}tagString(e){for(const[t,r]of Object.entries(this.tags)){if(e.startsWith(r))return t+escapeTagName(e.substring(r.length))}return e[0]==="!"?e:`!<${e}>`}toString(e){const t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[];const r=Object.entries(this.tags);let n;if(e&&r.length>0&&a.isNode(e.contents)){const t={};i.visit(e.contents,((e,r)=>{if(a.isNode(r)&&r.tag)t[r.tag]=true}));n=Object.keys(t)}else n=[];for(const[a,i]of r){if(a==="!!"&&i==="tag:yaml.org,2002:")continue;if(!e||n.some((e=>e.startsWith(i))))t.push(`%TAG ${a} ${i}`)}return t.join("\n")}}Directives.defaultYaml={explicit:false,version:"1.2"};Directives.defaultTags={"!!":"tag:yaml.org,2002:"};t.Directives=Directives},4236:(e,t)=>{"use strict";class YAMLError extends Error{constructor(e,t,r,a){super();this.name=e;this.code=r;this.message=a;this.pos=t}}class YAMLParseError extends YAMLError{constructor(e,t,r){super("YAMLParseError",e,t,r)}}class YAMLWarning extends YAMLError{constructor(e,t,r){super("YAMLWarning",e,t,r)}}const prettifyError=(e,t)=>r=>{if(r.pos[0]===-1)return;r.linePos=r.pos.map((e=>t.linePos(e)));const{line:a,col:i}=r.linePos[0];r.message+=` at line ${a}, column ${i}`;let n=i-1;let s=e.substring(t.lineStarts[a-1],t.lineStarts[a]).replace(/[\n\r]+$/,"");if(n>=60&&s.length>80){const e=Math.min(n-39,s.length-79);s="…"+s.substring(e);n-=e-1}if(s.length>80)s=s.substring(0,79)+"…";if(a>1&&/^ *$/.test(s.substring(0,n))){let r=e.substring(t.lineStarts[a-2],t.lineStarts[a-1]);if(r.length>80)r=r.substring(0,79)+"…\n";s=r+s}if(/[^ ]/.test(s)){let e=1;const t=r.linePos[1];if(t&&t.line===a&&t.col>i){e=Math.min(t.col-i,80-n)}const o=" ".repeat(n)+"^".repeat(e);r.message+=`:\n\n${s}\n${o}\n`}};t.YAMLError=YAMLError;t.YAMLParseError=YAMLParseError;t.YAMLWarning=YAMLWarning;t.prettifyError=prettifyError},4083:(e,t,r)=>{"use strict";var a=r(9493);var i=r(42);var n=r(6831);var s=r(4236);var o=r(5639);var p=r(1399);var c=r(246);var l=r(9338);var d=r(6011);var u=r(5161);var m=r(9169);var h=r(5976);var g=r(1929);var v=r(3328);var y=r(8649);var b=r(6796);t.Composer=a.Composer;t.Document=i.Document;t.Schema=n.Schema;t.YAMLError=s.YAMLError;t.YAMLParseError=s.YAMLParseError;t.YAMLWarning=s.YAMLWarning;t.Alias=o.Alias;t.isAlias=p.isAlias;t.isCollection=p.isCollection;t.isDocument=p.isDocument;t.isMap=p.isMap;t.isNode=p.isNode;t.isPair=p.isPair;t.isScalar=p.isScalar;t.isSeq=p.isSeq;t.Pair=c.Pair;t.Scalar=l.Scalar;t.YAMLMap=d.YAMLMap;t.YAMLSeq=u.YAMLSeq;t.CST=m;t.Lexer=h.Lexer;t.LineCounter=g.LineCounter;t.Parser=v.Parser;t.parse=y.parse;t.parseAllDocuments=y.parseAllDocuments;t.parseDocument=y.parseDocument;t.stringify=y.stringify;t.visit=b.visit;t.visitAsync=b.visitAsync},6909:(e,t)=>{"use strict";function debug(e,...t){if(e==="debug")console.log(...t)}function warn(e,t){if(e==="debug"||e==="warn"){if(typeof process!=="undefined"&&process.emitWarning)process.emitWarning(t);else console.warn(t)}}t.debug=debug;t.warn=warn},5639:(e,t,r)=>{"use strict";var a=r(8459);var i=r(6796);var n=r(1399);class Alias extends n.NodeBase{constructor(e){super(n.ALIAS);this.source=e;Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e){let t=undefined;i.visit(e,{Node:(e,r)=>{if(r===this)return i.visit.BREAK;if(r.anchor===this.source)t=r}});return t}toJSON(e,t){if(!t)return{source:this.source};const{anchors:r,doc:a,maxAliasCount:i}=t;const n=this.resolve(a);if(!n){const e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(e)}const s=r.get(n);if(!s||s.res===undefined){const e="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(e)}if(i>=0){s.count+=1;if(s.aliasCount===0)s.aliasCount=getAliasCount(a,n,r);if(s.count*s.aliasCount>i){const e="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(e)}}return s.res}toString(e,t,r){const i=`*${this.source}`;if(e){a.anchorIsValid(this.source);if(e.options.verifyAliasOrder&&!e.anchors.has(this.source)){const e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(e)}if(e.implicitKey)return`${i} `}return i}}function getAliasCount(e,t,r){if(n.isAlias(t)){const a=t.resolve(e);const i=r&&a&&r.get(a);return i?i.count*i.aliasCount:0}else if(n.isCollection(t)){let a=0;for(const i of t.items){const t=getAliasCount(e,i,r);if(t>a)a=t}return a}else if(n.isPair(t)){const a=getAliasCount(e,t.key,r);const i=getAliasCount(e,t.value,r);return Math.max(a,i)}return 1}t.Alias=Alias},3466:(e,t,r)=>{"use strict";var a=r(9652);var i=r(1399);function collectionFromPath(e,t,r){let i=r;for(let e=t.length-1;e>=0;--e){const r=t[e];if(typeof r==="number"&&Number.isInteger(r)&&r>=0){const e=[];e[r]=i;i=e}else{i=new Map([[r,i]])}}return a.createNode(i,undefined,{aliasDuplicateObjects:false,keepUndefined:false,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const isEmptyPath=e=>e==null||typeof e==="object"&&!!e[Symbol.iterator]().next().done;class Collection extends i.NodeBase{constructor(e,t){super(e);Object.defineProperty(this,"schema",{value:t,configurable:true,enumerable:false,writable:true})}clone(e){const t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(e)t.schema=e;t.items=t.items.map((t=>i.isNode(t)||i.isPair(t)?t.clone(e):t));if(this.range)t.range=this.range.slice();return t}addIn(e,t){if(isEmptyPath(e))this.add(t);else{const[r,...a]=e;const n=this.get(r,true);if(i.isCollection(n))n.addIn(a,t);else if(n===undefined&&this.schema)this.set(r,collectionFromPath(this.schema,a,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}deleteIn(e){const[t,...r]=e;if(r.length===0)return this.delete(t);const a=this.get(t,true);if(i.isCollection(a))return a.deleteIn(r);else throw new Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){const[r,...a]=e;const n=this.get(r,true);if(a.length===0)return!t&&i.isScalar(n)?n.value:n;else return i.isCollection(n)?n.getIn(a,t):undefined}hasAllNullValues(e){return this.items.every((t=>{if(!i.isPair(t))return false;const r=t.value;return r==null||e&&i.isScalar(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag}))}hasIn(e){const[t,...r]=e;if(r.length===0)return this.has(t);const a=this.get(t,true);return i.isCollection(a)?a.hasIn(r):false}setIn(e,t){const[r,...a]=e;if(a.length===0){this.set(r,t)}else{const e=this.get(r,true);if(i.isCollection(e))e.setIn(a,t);else if(e===undefined&&this.schema)this.set(r,collectionFromPath(this.schema,a,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}}Collection.maxFlowStringSingleLineLength=60;t.Collection=Collection;t.collectionFromPath=collectionFromPath;t.isEmptyPath=isEmptyPath},1399:(e,t)=>{"use strict";const r=Symbol.for("yaml.alias");const a=Symbol.for("yaml.document");const i=Symbol.for("yaml.map");const n=Symbol.for("yaml.pair");const s=Symbol.for("yaml.scalar");const o=Symbol.for("yaml.seq");const p=Symbol.for("yaml.node.type");const isAlias=e=>!!e&&typeof e==="object"&&e[p]===r;const isDocument=e=>!!e&&typeof e==="object"&&e[p]===a;const isMap=e=>!!e&&typeof e==="object"&&e[p]===i;const isPair=e=>!!e&&typeof e==="object"&&e[p]===n;const isScalar=e=>!!e&&typeof e==="object"&&e[p]===s;const isSeq=e=>!!e&&typeof e==="object"&&e[p]===o;function isCollection(e){if(e&&typeof e==="object")switch(e[p]){case i:case o:return true}return false}function isNode(e){if(e&&typeof e==="object")switch(e[p]){case r:case i:case s:case o:return true}return false}const hasAnchor=e=>(isScalar(e)||isCollection(e))&&!!e.anchor;class NodeBase{constructor(e){Object.defineProperty(this,p,{value:e})}clone(){const e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(this.range)e.range=this.range.slice();return e}}t.ALIAS=r;t.DOC=a;t.MAP=i;t.NODE_TYPE=p;t.NodeBase=NodeBase;t.PAIR=n;t.SCALAR=s;t.SEQ=o;t.hasAnchor=hasAnchor;t.isAlias=isAlias;t.isCollection=isCollection;t.isDocument=isDocument;t.isMap=isMap;t.isNode=isNode;t.isPair=isPair;t.isScalar=isScalar;t.isSeq=isSeq},246:(e,t,r)=>{"use strict";var a=r(9652);var i=r(4875);var n=r(4676);var s=r(1399);function createPair(e,t,r){const i=a.createNode(e,undefined,r);const n=a.createNode(t,undefined,r);return new Pair(i,n)}class Pair{constructor(e,t=null){Object.defineProperty(this,s.NODE_TYPE,{value:s.PAIR});this.key=e;this.value=t}clone(e){let{key:t,value:r}=this;if(s.isNode(t))t=t.clone(e);if(s.isNode(r))r=r.clone(e);return new Pair(t,r)}toJSON(e,t){const r=t?.mapAsMap?new Map:{};return n.addPairToJSMap(t,r,this)}toString(e,t,r){return e?.doc?i.stringifyPair(this,e,t,r):JSON.stringify(this)}}t.Pair=Pair;t.createPair=createPair},9338:(e,t,r)=>{"use strict";var a=r(1399);var i=r(2463);const isScalarValue=e=>!e||typeof e!=="function"&&typeof e!=="object";class Scalar extends a.NodeBase{constructor(e){super(a.SCALAR);this.value=e}toJSON(e,t){return t?.keep?this.value:i.toJS(this.value,e,t)}toString(){return String(this.value)}}Scalar.BLOCK_FOLDED="BLOCK_FOLDED";Scalar.BLOCK_LITERAL="BLOCK_LITERAL";Scalar.PLAIN="PLAIN";Scalar.QUOTE_DOUBLE="QUOTE_DOUBLE";Scalar.QUOTE_SINGLE="QUOTE_SINGLE";t.Scalar=Scalar;t.isScalarValue=isScalarValue},6011:(e,t,r)=>{"use strict";var a=r(2466);var i=r(4676);var n=r(3466);var s=r(1399);var o=r(246);var p=r(9338);function findPair(e,t){const r=s.isScalar(t)?t.value:t;for(const a of e){if(s.isPair(a)){if(a.key===t||a.key===r)return a;if(s.isScalar(a.key)&&a.key.value===r)return a}}return undefined}class YAMLMap extends n.Collection{constructor(e){super(s.MAP,e);this.items=[]}static get tagName(){return"tag:yaml.org,2002:map"}add(e,t){let r;if(s.isPair(e))r=e;else if(!e||typeof e!=="object"||!("key"in e)){r=new o.Pair(e,e?.value)}else r=new o.Pair(e.key,e.value);const a=findPair(this.items,r.key);const i=this.schema?.sortMapEntries;if(a){if(!t)throw new Error(`Key ${r.key} already set`);if(s.isScalar(a.value)&&p.isScalarValue(r.value))a.value.value=r.value;else a.value=r.value}else if(i){const e=this.items.findIndex((e=>i(r,e)<0));if(e===-1)this.items.push(r);else this.items.splice(e,0,r)}else{this.items.push(r)}}delete(e){const t=findPair(this.items,e);if(!t)return false;const r=this.items.splice(this.items.indexOf(t),1);return r.length>0}get(e,t){const r=findPair(this.items,e);const a=r?.value;return(!t&&s.isScalar(a)?a.value:a)??undefined}has(e){return!!findPair(this.items,e)}set(e,t){this.add(new o.Pair(e,t),true)}toJSON(e,t,r){const a=r?new r:t?.mapAsMap?new Map:{};if(t?.onCreate)t.onCreate(a);for(const e of this.items)i.addPairToJSMap(t,a,e);return a}toString(e,t,r){if(!e)return JSON.stringify(this);for(const e of this.items){if(!s.isPair(e))throw new Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`)}if(!e.allNullValues&&this.hasAllNullValues(false))e=Object.assign({},e,{allNullValues:true});return a.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:t})}}t.YAMLMap=YAMLMap;t.findPair=findPair},5161:(e,t,r)=>{"use strict";var a=r(2466);var i=r(3466);var n=r(1399);var s=r(9338);var o=r(2463);class YAMLSeq extends i.Collection{constructor(e){super(n.SEQ,e);this.items=[]}static get tagName(){return"tag:yaml.org,2002:seq"}add(e){this.items.push(e)}delete(e){const t=asItemIndex(e);if(typeof t!=="number")return false;const r=this.items.splice(t,1);return r.length>0}get(e,t){const r=asItemIndex(e);if(typeof r!=="number")return undefined;const a=this.items[r];return!t&&n.isScalar(a)?a.value:a}has(e){const t=asItemIndex(e);return typeof t==="number"&&t=0?t:null}t.YAMLSeq=YAMLSeq},4676:(e,t,r)=>{"use strict";var a=r(6909);var i=r(8409);var n=r(1399);var s=r(9338);var o=r(2463);const p="<<";function addPairToJSMap(e,t,{key:r,value:a}){if(e?.doc.schema.merge&&isMergeKey(r)){a=n.isAlias(a)?a.resolve(e.doc):a;if(n.isSeq(a))for(const r of a.items)mergeToJSMap(e,t,r);else if(Array.isArray(a))for(const r of a)mergeToJSMap(e,t,r);else mergeToJSMap(e,t,a)}else{const i=o.toJS(r,"",e);if(t instanceof Map){t.set(i,o.toJS(a,i,e))}else if(t instanceof Set){t.add(i)}else{const n=stringifyKey(r,i,e);const s=o.toJS(a,n,e);if(n in t)Object.defineProperty(t,n,{value:s,writable:true,enumerable:true,configurable:true});else t[n]=s}}return t}const isMergeKey=e=>e===p||n.isScalar(e)&&e.value===p&&(!e.type||e.type===s.Scalar.PLAIN);function mergeToJSMap(e,t,r){const a=e&&n.isAlias(r)?r.resolve(e.doc):r;if(!n.isMap(a))throw new Error("Merge sources must be maps or map aliases");const i=a.toJSON(null,e,Map);for(const[e,r]of i){if(t instanceof Map){if(!t.has(e))t.set(e,r)}else if(t instanceof Set){t.add(e)}else if(!Object.prototype.hasOwnProperty.call(t,e)){Object.defineProperty(t,e,{value:r,writable:true,enumerable:true,configurable:true})}}return t}function stringifyKey(e,t,r){if(t===null)return"";if(typeof t!=="object")return String(t);if(n.isNode(e)&&r&&r.doc){const t=i.createStringifyContext(r.doc,{});t.anchors=new Set;for(const e of r.anchors.keys())t.anchors.add(e.anchor);t.inFlow=true;t.inStringifyKey=true;const n=e.toString(t);if(!r.mapKeyWarned){let e=JSON.stringify(n);if(e.length>40)e=e.substring(0,36)+'..."';a.warn(r.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`);r.mapKeyWarned=true}return n}return JSON.stringify(t)}t.addPairToJSMap=addPairToJSMap},2463:(e,t,r)=>{"use strict";var a=r(1399);function toJS(e,t,r){if(Array.isArray(e))return e.map(((e,t)=>toJS(e,String(t),r)));if(e&&typeof e.toJSON==="function"){if(!r||!a.hasAnchor(e))return e.toJSON(t,r);const i={aliasCount:0,count:1,res:undefined};r.anchors.set(e,i);r.onCreate=e=>{i.res=e;delete r.onCreate};const n=e.toJSON(t,r);if(r.onCreate)r.onCreate(n);return n}if(typeof e==="bigint"&&!r?.keep)return Number(e);return e}t.toJS=toJS},9027:(e,t,r)=>{"use strict";var a=r(9485);var i=r(7578);var n=r(4236);var s=r(6226);function resolveAsScalar(e,t=true,r){if(e){const _onError=(e,t,a)=>{const i=typeof e==="number"?e:Array.isArray(e)?e[0]:e.offset;if(r)r(i,t,a);else throw new n.YAMLParseError([i,i+1],t,a)};switch(e.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return i.resolveFlowScalar(e,t,_onError);case"block-scalar":return a.resolveBlockScalar(e,t,_onError)}}return null}function createScalarToken(e,t){const{implicitKey:r=false,indent:a,inFlow:i=false,offset:n=-1,type:o="PLAIN"}=t;const p=s.stringifyString({type:o,value:e},{implicitKey:r,indent:a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:true,lineWidth:-1}});const c=t.end??[{type:"newline",offset:-1,indent:a,source:"\n"}];switch(p[0]){case"|":case">":{const e=p.indexOf("\n");const t=p.substring(0,e);const r=p.substring(e+1)+"\n";const i=[{type:"block-scalar-header",offset:n,indent:a,source:t}];if(!addEndtoBlockProps(i,c))i.push({type:"newline",offset:-1,indent:a,source:"\n"});return{type:"block-scalar",offset:n,indent:a,props:i,source:r}}case'"':return{type:"double-quoted-scalar",offset:n,indent:a,source:p,end:c};case"'":return{type:"single-quoted-scalar",offset:n,indent:a,source:p,end:c};default:return{type:"scalar",offset:n,indent:a,source:p,end:c}}}function setScalarValue(e,t,r={}){let{afterKey:a=false,implicitKey:i=false,inFlow:n=false,type:o}=r;let p="indent"in e?e.indent:null;if(a&&typeof p==="number")p+=2;if(!o)switch(e.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{const t=e.props[0];if(t.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=t.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}const c=s.stringifyString({type:o,value:t},{implicitKey:i||p===null,indent:p!==null&&p>0?" ".repeat(p):"",inFlow:n,options:{blockQuote:true,lineWidth:-1}});switch(c[0]){case"|":case">":setBlockScalarValue(e,c);break;case'"':setFlowScalarValue(e,c,"double-quoted-scalar");break;case"'":setFlowScalarValue(e,c,"single-quoted-scalar");break;default:setFlowScalarValue(e,c,"scalar")}}function setBlockScalarValue(e,t){const r=t.indexOf("\n");const a=t.substring(0,r);const i=t.substring(r+1)+"\n";if(e.type==="block-scalar"){const t=e.props[0];if(t.type!=="block-scalar-header")throw new Error("Invalid block scalar header");t.source=a;e.source=i}else{const{offset:t}=e;const r="indent"in e?e.indent:-1;const n=[{type:"block-scalar-header",offset:t,indent:r,source:a}];if(!addEndtoBlockProps(n,"end"in e?e.end:undefined))n.push({type:"newline",offset:-1,indent:r,source:"\n"});for(const t of Object.keys(e))if(t!=="type"&&t!=="offset")delete e[t];Object.assign(e,{type:"block-scalar",indent:r,props:n,source:i})}}function addEndtoBlockProps(e,t){if(t)for(const r of t)switch(r.type){case"space":case"comment":e.push(r);break;case"newline":e.push(r);return true}return false}function setFlowScalarValue(e,t,r){switch(e.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":e.type=r;e.source=t;break;case"block-scalar":{const a=e.props.slice(1);let i=t.length;if(e.props[0].type==="block-scalar-header")i-=e.props[0].source.length;for(const e of a)e.offset+=i;delete e.props;Object.assign(e,{type:r,source:t,end:a});break}case"block-map":case"block-seq":{const a=e.offset+t.length;const i={type:"newline",offset:a,indent:e.indent,source:"\n"};delete e.items;Object.assign(e,{type:r,source:t,end:[i]});break}default:{const a="indent"in e?e.indent:-1;const i="end"in e&&Array.isArray(e.end)?e.end.filter((e=>e.type==="space"||e.type==="comment"||e.type==="newline")):[];for(const t of Object.keys(e))if(t!=="type"&&t!=="offset")delete e[t];Object.assign(e,{type:r,indent:a,source:t,end:i})}}}t.createScalarToken=createScalarToken;t.resolveAsScalar=resolveAsScalar;t.setScalarValue=setScalarValue},6307:(e,t)=>{"use strict";const stringify=e=>"type"in e?stringifyToken(e):stringifyItem(e);function stringifyToken(e){switch(e.type){case"block-scalar":{let t="";for(const r of e.props)t+=stringifyToken(r);return t+e.source}case"block-map":case"block-seq":{let t="";for(const r of e.items)t+=stringifyItem(r);return t}case"flow-collection":{let t=e.start.source;for(const r of e.items)t+=stringifyItem(r);for(const r of e.end)t+=r.source;return t}case"document":{let t=stringifyItem(e);if(e.end)for(const r of e.end)t+=r.source;return t}default:{let t=e.source;if("end"in e&&e.end)for(const r of e.end)t+=r.source;return t}}}function stringifyItem({start:e,key:t,sep:r,value:a}){let i="";for(const t of e)i+=t.source;if(t)i+=stringifyToken(t);if(r)for(const e of r)i+=e.source;if(a)i+=stringifyToken(a);return i}t.stringify=stringify},8497:(e,t)=>{"use strict";const r=Symbol("break visit");const a=Symbol("skip children");const i=Symbol("remove item");function visit(e,t){if("type"in e&&e.type==="document")e={start:e.start,value:e.value};_visit(Object.freeze([]),e,t)}visit.BREAK=r;visit.SKIP=a;visit.REMOVE=i;visit.itemAtPath=(e,t)=>{let r=e;for(const[e,a]of t){const t=r?.[e];if(t&&"items"in t){r=t.items[a]}else return undefined}return r};visit.parentCollection=(e,t)=>{const r=visit.itemAtPath(e,t.slice(0,-1));const a=t[t.length-1][0];const i=r?.[a];if(i&&"items"in i)return i;throw new Error("Parent collection not found")};function _visit(e,t,a){let n=a(t,e);if(typeof n==="symbol")return n;for(const s of["key","value"]){const o=t[s];if(o&&"items"in o){for(let t=0;t{"use strict";var a=r(9027);var i=r(6307);var n=r(8497);const s="\ufeff";const o="";const p="";const c="";const isCollection=e=>!!e&&"items"in e;const isScalar=e=>!!e&&(e.type==="scalar"||e.type==="single-quoted-scalar"||e.type==="double-quoted-scalar"||e.type==="block-scalar");function prettyToken(e){switch(e){case s:return"";case o:return"";case p:return"";case c:return"";default:return JSON.stringify(e)}}function tokenType(e){switch(e){case s:return"byte-order-mark";case o:return"doc-mode";case p:return"flow-error-end";case c:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case"\n":case"\r\n":return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case"\t":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}t.createScalarToken=a.createScalarToken;t.resolveAsScalar=a.resolveAsScalar;t.setScalarValue=a.setScalarValue;t.stringify=i.stringify;t.visit=n.visit;t.BOM=s;t.DOCUMENT=o;t.FLOW_END=p;t.SCALAR=c;t.isCollection=isCollection;t.isScalar=isScalar;t.prettyToken=prettyToken;t.tokenType=tokenType},5976:(e,t,r)=>{"use strict";var a=r(9169);function isEmpty(e){switch(e){case undefined:case" ":case"\n":case"\r":case"\t":return true;default:return false}}const i="0123456789ABCDEFabcdef".split("");const n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()".split("");const s=",[]{}".split("");const o=" ,[]{}\n\r\t".split("");const isNotAnchorChar=e=>!e||o.includes(e);class Lexer{constructor(){this.atEnd=false;this.blockScalarIndent=-1;this.blockScalarKeep=false;this.buffer="";this.flowKey=false;this.flowLevel=0;this.indentNext=0;this.indentValue=0;this.lineEndPos=null;this.next=null;this.pos=0}*lex(e,t=false){if(e){this.buffer=this.buffer?this.buffer+e:e;this.lineEndPos=null}this.atEnd=!t;let r=this.next??"stream";while(r&&(t||this.hasChars(1)))r=yield*this.parseNext(r)}atLineEnd(){let e=this.pos;let t=this.buffer[e];while(t===" "||t==="\t")t=this.buffer[++e];if(!t||t==="#"||t==="\n")return true;if(t==="\r")return this.buffer[e+1]==="\n";return false}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let r=0;while(t===" ")t=this.buffer[++r+e];if(t==="\r"){const t=this.buffer[r+e+1];if(t==="\n"||!t&&!this.atEnd)return e+r+1}return t==="\n"||r>=this.indentNext||!t&&!this.atEnd?e+r:-1}if(t==="-"||t==="."){const t=this.buffer.substr(e,3);if((t==="---"||t==="...")&&isEmpty(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;if(typeof e!=="number"||e!==-1&&ethis.indentValue&&!isEmpty(this.charAt(1)))this.indentNext=this.indentValue;return yield*this.parseBlockStart()}*parseBlockStart(){const[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&isEmpty(t)){const e=(yield*this.pushCount(1))+(yield*this.pushSpaces(true));this.indentNext=this.indentValue+1;this.indentValue+=e;return yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(true);const e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case undefined:yield*this.pushNewline();return yield*this.parseLineStart();case"{":case"[":yield*this.pushCount(1);this.flowKey=false;this.flowLevel=1;return"flow";case"}":case"]":yield*this.pushCount(1);return"doc";case"*":yield*this.pushUntil(isNotAnchorChar);return"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":t+=(yield*this.parseBlockScalarHeader());t+=(yield*this.pushSpaces(true));yield*this.pushCount(e.length-t);yield*this.pushNewline();return yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t;let r=-1;do{e=yield*this.pushNewline();if(e>0){t=yield*this.pushSpaces(false);this.indentValue=r=t}else{t=0}t+=(yield*this.pushSpaces(true))}while(e+t>0);const i=this.getLine();if(i===null)return this.setNext("flow");if(r!==-1&&r"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil((e=>isEmpty(e)||e==="#"))}*parseBlockScalar(){let e=this.pos-1;let t=0;let r;e:for(let a=this.pos;r=this.buffer[a];++a){switch(r){case" ":t+=1;break;case"\n":e=a;t=0;break;case"\r":{const e=this.buffer[a+1];if(!e&&!this.atEnd)return this.setNext("block-scalar");if(e==="\n")break}default:break e}}if(!r&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){if(this.blockScalarIndent===-1)this.indentNext=t;else this.indentNext+=this.blockScalarIndent;do{const t=this.continueScalar(e+1);if(t===-1)break;e=this.buffer.indexOf("\n",t)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}if(!this.blockScalarKeep){do{let r=e-1;let a=this.buffer[r];if(a==="\r")a=this.buffer[--r];const i=r;while(a===" "||a==="\t")a=this.buffer[--r];if(a==="\n"&&r>=this.pos&&r+1+t>i)e=r;else break}while(true)}yield a.SCALAR;yield*this.pushToIndex(e+1,true);return yield*this.parseLineStart()}*parsePlainScalar(){const e=this.flowLevel>0;let t=this.pos-1;let r=this.pos-1;let i;while(i=this.buffer[++r]){if(i===":"){const a=this.buffer[r+1];if(isEmpty(a)||e&&a===",")break;t=r}else if(isEmpty(i)){let a=this.buffer[r+1];if(i==="\r"){if(a==="\n"){r+=1;i="\n";a=this.buffer[r+1]}else t=r}if(a==="#"||e&&s.includes(a))break;if(i==="\n"){const e=this.continueScalar(r+1);if(e===-1)break;r=Math.max(r,e-2)}}else{if(e&&s.includes(i))break;t=r}}if(!i&&!this.atEnd)return this.setNext("plain-scalar");yield a.SCALAR;yield*this.pushToIndex(t+1,true);return e?"flow":"doc"}*pushCount(e){if(e>0){yield this.buffer.substr(this.pos,e);this.pos+=e;return e}return 0}*pushToIndex(e,t){const r=this.buffer.slice(this.pos,e);if(r){yield r;this.pos+=r.length;return r.length}else if(t)yield"";return 0}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(true))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(isNotAnchorChar))+(yield*this.pushSpaces(true))+(yield*this.pushIndicators());case"-":case"?":case":":{const e=this.flowLevel>0;const t=this.charAt(1);if(isEmpty(t)||e&&s.includes(t)){if(!e)this.indentNext=this.indentValue+1;else if(this.flowKey)this.flowKey=false;return(yield*this.pushCount(1))+(yield*this.pushSpaces(true))+(yield*this.pushIndicators())}}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2;let t=this.buffer[e];while(!isEmpty(t)&&t!==">")t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,false)}else{let e=this.pos+1;let t=this.buffer[e];while(t){if(n.includes(t))t=this.buffer[++e];else if(t==="%"&&i.includes(this.buffer[e+1])&&i.includes(this.buffer[e+2])){t=this.buffer[e+=3]}else break}return yield*this.pushToIndex(e,false)}}*pushNewline(){const e=this.buffer[this.pos];if(e==="\n")return yield*this.pushCount(1);else if(e==="\r"&&this.charAt(1)==="\n")return yield*this.pushCount(2);else return 0}*pushSpaces(e){let t=this.pos-1;let r;do{r=this.buffer[++t]}while(r===" "||e&&r==="\t");const a=t-this.pos;if(a>0){yield this.buffer.substr(this.pos,a);this.pos=t}return a}*pushUntil(e){let t=this.pos;let r=this.buffer[t];while(!e(r))r=this.buffer[++t];return yield*this.pushToIndex(t,false)}}t.Lexer=Lexer},1929:(e,t)=>{"use strict";class LineCounter{constructor(){this.lineStarts=[];this.addNewLine=e=>this.lineStarts.push(e);this.linePos=e=>{let t=0;let r=this.lineStarts.length;while(t>1;if(this.lineStarts[a]{"use strict";var a=r(9169);var i=r(5976);function includesToken(e,t){for(let r=0;r=0){switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}}while(e[++t]?.type==="space"){}return e.splice(t,e.length)}function fixFlowSeqItems(e){if(e.start.type==="flow-seq-start"){for(const t of e.items){if(t.sep&&!t.value&&!includesToken(t.start,"explicit-key-ind")&&!includesToken(t.sep,"map-value-ind")){if(t.key)t.value=t.key;delete t.key;if(isFlowToken(t.value)){if(t.value.end)Array.prototype.push.apply(t.value.end,t.sep);else t.value.end=t.sep}else Array.prototype.push.apply(t.start,t.sep);delete t.sep}}}}class Parser{constructor(e){this.atNewLine=true;this.atScalar=false;this.indent=0;this.offset=0;this.onKeyLine=false;this.stack=[];this.source="";this.type="";this.lexer=new i.Lexer;this.onNewLine=e}*parse(e,t=false){if(this.onNewLine&&this.offset===0)this.onNewLine(0);for(const r of this.lexer.lex(e,t))yield*this.next(r);if(!t)yield*this.end()}*next(e){this.source=e;if(process.env.LOG_TOKENS)console.log("|",a.prettyToken(e));if(this.atScalar){this.atScalar=false;yield*this.step();this.offset+=e.length;return}const t=a.tokenType(e);if(!t){const t=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:t,source:e});this.offset+=e.length}else if(t==="scalar"){this.atNewLine=false;this.atScalar=true;this.type="scalar"}else{this.type=t;yield*this.step();switch(t){case"newline":this.atNewLine=true;this.indent=0;if(this.onNewLine)this.onNewLine(this.offset+e.length);break;case"space":if(this.atNewLine&&e[0]===" ")this.indent+=e.length;break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":if(this.atNewLine)this.indent+=e.length;break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=false}this.offset+=e.length}}*end(){while(this.stack.length>0)yield*this.pop()}get sourceToken(){const e={type:this.type,offset:this.offset,indent:this.indent,source:this.source};return e}*step(){const e=this.peek(1);if(this.type==="doc-end"&&(!e||e.type!=="doc-end")){while(this.stack.length>0)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){const t=e??this.stack.pop();if(!t){const e="Tried to pop an empty stack";yield{type:"error",offset:this.offset,source:"",message:e}}else if(this.stack.length===0){yield t}else{const e=this.peek(1);if(t.type==="block-scalar"){t.indent="indent"in e?e.indent:0}else if(t.type==="flow-collection"&&e.type==="document"){t.indent=0}if(t.type==="flow-collection")fixFlowSeqItems(t);switch(e.type){case"document":e.value=t;break;case"block-scalar":e.props.push(t);break;case"block-map":{const r=e.items[e.items.length-1];if(r.value){e.items.push({start:[],key:t,sep:[]});this.onKeyLine=true;return}else if(r.sep){r.value=t}else{Object.assign(r,{key:t,sep:[]});this.onKeyLine=!includesToken(r.start,"explicit-key-ind");return}break}case"block-seq":{const r=e.items[e.items.length-1];if(r.value)e.items.push({start:[],value:t});else r.value=t;break}case"flow-collection":{const r=e.items[e.items.length-1];if(!r||r.value)e.items.push({start:[],key:t,sep:[]});else if(r.sep)r.value=t;else Object.assign(r,{key:t,sep:[]});return}default:yield*this.pop();yield*this.pop(t)}if((e.type==="document"||e.type==="block-map"||e.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){const r=t.items[t.items.length-1];if(r&&!r.sep&&!r.value&&r.start.length>0&&findNonEmptyIndex(r.start)===-1&&(t.indent===0||r.start.every((e=>e.type!=="comment"||e.indent=e.indent){const r=!this.onKeyLine&&this.indent===e.indent&&t.sep;let a=[];if(r&&t.sep&&!t.value){const r=[];for(let a=0;ae.indent)r.length=0;break;default:r.length=0}}if(r.length>=2)a=t.sep.splice(r[1])}switch(this.type){case"anchor":case"tag":if(r||t.value){a.push(this.sourceToken);e.items.push({start:a});this.onKeyLine=true}else if(t.sep){t.sep.push(this.sourceToken)}else{t.start.push(this.sourceToken)}return;case"explicit-key-ind":if(!t.sep&&!includesToken(t.start,"explicit-key-ind")){t.start.push(this.sourceToken)}else if(r||t.value){a.push(this.sourceToken);e.items.push({start:a})}else{this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]})}this.onKeyLine=true;return;case"map-value-ind":if(includesToken(t.start,"explicit-key-ind")){if(!t.sep){if(includesToken(t.start,"newline")){Object.assign(t,{key:null,sep:[this.sourceToken]})}else{const e=getFirstKeyStartProps(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}}else if(t.value){e.items.push({start:[],key:null,sep:[this.sourceToken]})}else if(includesToken(t.sep,"map-value-ind")){this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]})}else if(isFlowToken(t.key)&&!includesToken(t.sep,"newline")){const e=getFirstKeyStartProps(t.start);const r=t.key;const a=t.sep;a.push(this.sourceToken);delete t.key,delete t.sep;this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:e,key:r,sep:a}]})}else if(a.length>0){t.sep=t.sep.concat(a,this.sourceToken)}else{t.sep.push(this.sourceToken)}}else{if(!t.sep){Object.assign(t,{key:null,sep:[this.sourceToken]})}else if(t.value||r){e.items.push({start:a,key:null,sep:[this.sourceToken]})}else if(includesToken(t.sep,"map-value-ind")){this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]})}else{t.sep.push(this.sourceToken)}}this.onKeyLine=true;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const i=this.flowScalar(this.type);if(r||t.value){e.items.push({start:a,key:i,sep:[]});this.onKeyLine=true}else if(t.sep){this.stack.push(i)}else{Object.assign(t,{key:i,sep:[]});this.onKeyLine=true}return}default:{const i=this.startBlockValue(e);if(i){if(r&&i.type!=="block-seq"&&includesToken(t.start,"explicit-key-ind")){e.items.push({start:a})}this.stack.push(i);return}}}}yield*this.pop();yield*this.step()}*blockSequence(e){const t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){const r="end"in t.value?t.value.end:undefined;const a=Array.isArray(r)?r[r.length-1]:undefined;if(a?.type==="comment")r?.push(this.sourceToken);else e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){const r=e.items[e.items.length-2];const a=r?.value?.end;if(Array.isArray(a)){Array.prototype.push.apply(a,t.start);a.push(this.sourceToken);e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;if(t.value||includesToken(t.start,"seq-item-ind"))e.items.push({start:[this.sourceToken]});else t.start.push(this.sourceToken);return}if(this.indent>e.indent){const t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop();yield*this.step()}*flowCollection(e){const t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let e;do{yield*this.pop();e=this.peek(1)}while(e&&e.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":if(!t||t.sep)e.items.push({start:[this.sourceToken]});else t.start.push(this.sourceToken);return;case"map-value-ind":if(!t||t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":if(!t||t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const r=this.flowScalar(this.type);if(!t||t.value)e.items.push({start:[],key:r,sep:[]});else if(t.sep)this.stack.push(r);else Object.assign(t,{key:r,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}const r=this.startBlockValue(e);if(r)this.stack.push(r);else{yield*this.pop();yield*this.step()}}else{const t=this.peek(2);if(t.type==="block-map"&&(this.type==="map-value-ind"&&t.indent===e.indent||this.type==="newline"&&!t.items[t.items.length-1].sep)){yield*this.pop();yield*this.step()}else if(this.type==="map-value-ind"&&t.type!=="flow-collection"){const r=getPrevProps(t);const a=getFirstKeyStartProps(r);fixFlowSeqItems(e);const i=e.end.splice(1,e.end.length);i.push(this.sourceToken);const n={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:a,key:e,sep:i}]};this.onKeyLine=true;this.stack[this.stack.length-1]=n}else{yield*this.lineEnd(e)}}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf("\n")+1;while(e!==0){this.onNewLine(this.offset+e);e=this.source.indexOf("\n",e)+1}}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=true;const t=getPrevProps(e);const r=getFirstKeyStartProps(t);r.push(this.sourceToken);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r}]}}case"map-value-ind":{this.onKeyLine=true;const t=getPrevProps(e);const r=getFirstKeyStartProps(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){if(this.type!=="comment")return false;if(this.indent<=t)return false;return e.every((e=>e.type==="newline"||e.type==="space"))}*documentEnd(e){if(this.type!=="doc-mode"){if(e.end)e.end.push(this.sourceToken);else e.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop();yield*this.step();break;case"newline":this.onKeyLine=false;case"space":case"comment":default:if(e.end)e.end.push(this.sourceToken);else e.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}t.Parser=Parser},8649:(e,t,r)=>{"use strict";var a=r(9493);var i=r(42);var n=r(4236);var s=r(6909);var o=r(1929);var p=r(3328);function parseOptions(e){const t=e.prettyErrors!==false;const r=e.lineCounter||t&&new o.LineCounter||null;return{lineCounter:r,prettyErrors:t}}function parseAllDocuments(e,t={}){const{lineCounter:r,prettyErrors:i}=parseOptions(t);const s=new p.Parser(r?.addNewLine);const o=new a.Composer(t);const c=Array.from(o.compose(s.parse(e)));if(i&&r)for(const t of c){t.errors.forEach(n.prettifyError(e,r));t.warnings.forEach(n.prettifyError(e,r))}if(c.length>0)return c;return Object.assign([],{empty:true},o.streamInfo())}function parseDocument(e,t={}){const{lineCounter:r,prettyErrors:i}=parseOptions(t);const s=new p.Parser(r?.addNewLine);const o=new a.Composer(t);let c=null;for(const t of o.compose(s.parse(e),true,e.length)){if(!c)c=t;else if(c.options.logLevel!=="silent"){c.errors.push(new n.YAMLParseError(t.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}}if(i&&r){c.errors.forEach(n.prettifyError(e,r));c.warnings.forEach(n.prettifyError(e,r))}return c}function parse(e,t,r){let a=undefined;if(typeof t==="function"){a=t}else if(r===undefined&&t&&typeof t==="object"){r=t}const i=parseDocument(e,r);if(!i)return null;i.warnings.forEach((e=>s.warn(i.options.logLevel,e)));if(i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];else i.errors=[]}return i.toJS(Object.assign({reviver:a},r))}function stringify(e,t,r){let a=null;if(typeof t==="function"||Array.isArray(t)){a=t}else if(r===undefined&&t){r=t}if(typeof r==="string")r=r.length;if(typeof r==="number"){const e=Math.round(r);r=e<1?undefined:e>8?{indent:8}:{indent:e}}if(e===undefined){const{keepUndefined:e}=r??t??{};if(!e)return undefined}return new i.Document(e,a,r).toString(r)}t.parse=parse;t.parseAllDocuments=parseAllDocuments;t.parseDocument=parseDocument;t.stringify=stringify},6831:(e,t,r)=>{"use strict";var a=r(1399);var i=r(83);var n=r(1693);var s=r(2201);var o=r(4138);const sortMapEntriesByKey=(e,t)=>e.keyt.key?1:0;class Schema{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:p,schema:c,sortMapEntries:l,toStringDefaults:d}){this.compat=Array.isArray(e)?o.getTags(e,"compat"):e?o.getTags(null,e):null;this.merge=!!r;this.name=typeof c==="string"&&c||"core";this.knownTags=p?o.coreKnownTags:{};this.tags=o.getTags(t,this.name);this.toStringOptions=d??null;Object.defineProperty(this,a.MAP,{value:i.map});Object.defineProperty(this,a.SCALAR,{value:s.string});Object.defineProperty(this,a.SEQ,{value:n.seq});this.sortMapEntries=typeof l==="function"?l:l===true?sortMapEntriesByKey:null}clone(){const e=Object.create(Schema.prototype,Object.getOwnPropertyDescriptors(this));e.tags=this.tags.slice();return e}}t.Schema=Schema},83:(e,t,r)=>{"use strict";var a=r(1399);var i=r(246);var n=r(6011);function createMap(e,t,r){const{keepUndefined:a,replacer:s}=r;const o=new n.YAMLMap(e);const add=(e,n)=>{if(typeof s==="function")n=s.call(t,e,n);else if(Array.isArray(s)&&!s.includes(e))return;if(n!==undefined||a)o.items.push(i.createPair(e,n,r))};if(t instanceof Map){for(const[e,r]of t)add(e,r)}else if(t&&typeof t==="object"){for(const e of Object.keys(t))add(e,t[e])}if(typeof e.sortMapEntries==="function"){o.items.sort(e.sortMapEntries)}return o}const s={collection:"map",createNode:createMap,default:true,nodeClass:n.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(e,t){if(!a.isMap(e))t("Expected a mapping for this tag");return e}};t.map=s},6703:(e,t,r)=>{"use strict";var a=r(9338);const i={identify:e=>e==null,createNode:()=>new a.Scalar(null),default:true,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new a.Scalar(null),stringify:({source:e},t)=>typeof e==="string"&&i.test.test(e)?e:t.options.nullStr};t.nullTag=i},1693:(e,t,r)=>{"use strict";var a=r(9652);var i=r(1399);var n=r(5161);function createSeq(e,t,r){const{replacer:i}=r;const s=new n.YAMLSeq(e);if(t&&Symbol.iterator in Object(t)){let e=0;for(let n of t){if(typeof i==="function"){const r=t instanceof Set?n:String(e++);n=i.call(t,r,n)}s.items.push(a.createNode(n,undefined,r))}}return s}const s={collection:"seq",createNode:createSeq,default:true,nodeClass:n.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(e,t){if(!i.isSeq(e))t("Expected a sequence for this tag");return e}};t.seq=s},2201:(e,t,r)=>{"use strict";var a=r(6226);const i={identify:e=>typeof e==="string",default:true,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,r,i){t=Object.assign({actualString:true},t);return a.stringifyString(e,t,r,i)}};t.string=i},2045:(e,t,r)=>{"use strict";var a=r(9338);const i={identify:e=>typeof e==="boolean",default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new a.Scalar(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},r){if(e&&i.test.test(e)){const r=e[0]==="t"||e[0]==="T";if(t===r)return e}return t?r.options.trueStr:r.options.falseStr}};t.boolTag=i},6810:(e,t,r)=>{"use strict";var a=r(9338);var i=r(4174);const n={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN))$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:i.stringifyNumber};const s={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():i.stringifyNumber(e)}};const o={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new a.Scalar(parseFloat(e));const r=e.indexOf(".");if(r!==-1&&e[e.length-1]==="0")t.minFractionDigits=e.length-r-1;return t},stringify:i.stringifyNumber};t.float=o;t.floatExp=s;t.floatNaN=n},3019:(e,t,r)=>{"use strict";var a=r(4174);const intIdentify=e=>typeof e==="bigint"||Number.isInteger(e);const intResolve=(e,t,r,{intAsBigInt:a})=>a?BigInt(e):parseInt(e.substring(t),r);function intStringify(e,t,r){const{value:i}=e;if(intIdentify(i)&&i>=0)return r+i.toString(t);return a.stringifyNumber(e)}const i={identify:e=>intIdentify(e)&&e>=0,default:true,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,r)=>intResolve(e,2,8,r),stringify:e=>intStringify(e,8,"0o")};const n={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,r)=>intResolve(e,0,10,r),stringify:a.stringifyNumber};const s={identify:e=>intIdentify(e)&&e>=0,default:true,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,r)=>intResolve(e,2,16,r),stringify:e=>intStringify(e,16,"0x")};t.int=n;t.intHex=s;t.intOct=i},27:(e,t,r)=>{"use strict";var a=r(83);var i=r(6703);var n=r(1693);var s=r(2201);var o=r(2045);var p=r(6810);var c=r(3019);const l=[a.map,n.seq,s.string,i.nullTag,o.boolTag,c.intOct,c.int,c.intHex,p.floatNaN,p.floatExp,p.float];t.schema=l},4545:(e,t,r)=>{"use strict";var a=r(9338);var i=r(83);var n=r(1693);function intIdentify(e){return typeof e==="bigint"||Number.isInteger(e)}const stringifyJSON=({value:e})=>JSON.stringify(e);const s=[{identify:e=>typeof e==="string",default:true,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:stringifyJSON},{identify:e=>e==null,createNode:()=>new a.Scalar(null),default:true,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:stringifyJSON},{identify:e=>typeof e==="boolean",default:true,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:e=>e==="true",stringify:stringifyJSON},{identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:r})=>r?BigInt(e):parseInt(e,10),stringify:({value:e})=>intIdentify(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:stringifyJSON}];const o={default:true,tag:"",test:/^/,resolve(e,t){t(`Unresolved plain scalar ${JSON.stringify(e)}`);return e}};const p=[i.map,n.seq].concat(s,o);t.schema=p},4138:(e,t,r)=>{"use strict";var a=r(83);var i=r(6703);var n=r(1693);var s=r(2201);var o=r(2045);var p=r(6810);var c=r(3019);var l=r(27);var d=r(4545);var u=r(5724);var m=r(8974);var h=r(9841);var g=r(5389);var v=r(7847);var y=r(1156);const b=new Map([["core",l.schema],["failsafe",[a.map,n.seq,s.string]],["json",d.schema],["yaml11",g.schema],["yaml-1.1",g.schema]]);const w={binary:u.binary,bool:o.boolTag,float:p.float,floatExp:p.floatExp,floatNaN:p.floatNaN,floatTime:y.floatTime,int:c.int,intHex:c.intHex,intOct:c.intOct,intTime:y.intTime,map:a.map,null:i.nullTag,omap:m.omap,pairs:h.pairs,seq:n.seq,set:v.set,timestamp:y.timestamp};const x={"tag:yaml.org,2002:binary":u.binary,"tag:yaml.org,2002:omap":m.omap,"tag:yaml.org,2002:pairs":h.pairs,"tag:yaml.org,2002:set":v.set,"tag:yaml.org,2002:timestamp":y.timestamp};function getTags(e,t){let r=b.get(t);if(!r){if(Array.isArray(e))r=[];else{const e=Array.from(b.keys()).filter((e=>e!=="yaml11")).map((e=>JSON.stringify(e))).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}}if(Array.isArray(e)){for(const t of e)r=r.concat(t)}else if(typeof e==="function"){r=e(r.slice())}return r.map((e=>{if(typeof e!=="string")return e;const t=w[e];if(t)return t;const r=Object.keys(w).map((e=>JSON.stringify(e))).join(", ");throw new Error(`Unknown custom tag "${e}"; use one of ${r}`)}))}t.coreKnownTags=x;t.getTags=getTags},5724:(e,t,r)=>{"use strict";var a=r(9338);var i=r(6226);const n={identify:e=>e instanceof Uint8Array,default:false,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof Buffer==="function"){return Buffer.from(e,"base64")}else if(typeof atob==="function"){const t=atob(e.replace(/[\n\r]/g,""));const r=new Uint8Array(t.length);for(let e=0;e{"use strict";var a=r(9338);function boolStringify({value:e,source:t},r){const a=e?i:n;if(t&&a.test.test(t))return t;return e?r.options.trueStr:r.options.falseStr}const i={identify:e=>e===true,default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new a.Scalar(true),stringify:boolStringify};const n={identify:e=>e===false,default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:()=>new a.Scalar(false),stringify:boolStringify};t.falseTag=n;t.trueTag=i},8035:(e,t,r)=>{"use strict";var a=r(9338);var i=r(4174);const n={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:i.stringifyNumber};const s={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():i.stringifyNumber(e)}};const o={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const t=new a.Scalar(parseFloat(e.replace(/_/g,"")));const r=e.indexOf(".");if(r!==-1){const a=e.substring(r+1).replace(/_/g,"");if(a[a.length-1]==="0")t.minFractionDigits=a.length}return t},stringify:i.stringifyNumber};t.float=o;t.floatExp=s;t.floatNaN=n},9503:(e,t,r)=>{"use strict";var a=r(4174);const intIdentify=e=>typeof e==="bigint"||Number.isInteger(e);function intResolve(e,t,r,{intAsBigInt:a}){const i=e[0];if(i==="-"||i==="+")t+=1;e=e.substring(t).replace(/_/g,"");if(a){switch(r){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const t=BigInt(e);return i==="-"?BigInt(-1)*t:t}const n=parseInt(e,r);return i==="-"?-1*n:n}function intStringify(e,t,r){const{value:i}=e;if(intIdentify(i)){const e=i.toString(t);return i<0?"-"+r+e.substr(1):r+e}return a.stringifyNumber(e)}const i={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,r)=>intResolve(e,2,2,r),stringify:e=>intStringify(e,2,"0b")};const n={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,r)=>intResolve(e,1,8,r),stringify:e=>intStringify(e,8,"0")};const s={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,r)=>intResolve(e,0,10,r),stringify:a.stringifyNumber};const o={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,r)=>intResolve(e,2,16,r),stringify:e=>intStringify(e,16,"0x")};t.int=s;t.intBin=i;t.intHex=o;t.intOct=n},8974:(e,t,r)=>{"use strict";var a=r(5161);var i=r(2463);var n=r(1399);var s=r(6011);var o=r(9841);class YAMLOMap extends a.YAMLSeq{constructor(){super();this.add=s.YAMLMap.prototype.add.bind(this);this.delete=s.YAMLMap.prototype.delete.bind(this);this.get=s.YAMLMap.prototype.get.bind(this);this.has=s.YAMLMap.prototype.has.bind(this);this.set=s.YAMLMap.prototype.set.bind(this);this.tag=YAMLOMap.tag}toJSON(e,t){if(!t)return super.toJSON(e);const r=new Map;if(t?.onCreate)t.onCreate(r);for(const e of this.items){let a,s;if(n.isPair(e)){a=i.toJS(e.key,"",t);s=i.toJS(e.value,a,t)}else{a=i.toJS(e,"",t)}if(r.has(a))throw new Error("Ordered maps must not include duplicate keys");r.set(a,s)}return r}}YAMLOMap.tag="tag:yaml.org,2002:omap";const p={collection:"seq",identify:e=>e instanceof Map,nodeClass:YAMLOMap,default:false,tag:"tag:yaml.org,2002:omap",resolve(e,t){const r=o.resolvePairs(e,t);const a=[];for(const{key:e}of r.items){if(n.isScalar(e)){if(a.includes(e.value)){t(`Ordered maps must not include duplicate keys: ${e.value}`)}else{a.push(e.value)}}}return Object.assign(new YAMLOMap,r)},createNode(e,t,r){const a=o.createPairs(e,t,r);const i=new YAMLOMap;i.items=a.items;return i}};t.YAMLOMap=YAMLOMap;t.omap=p},9841:(e,t,r)=>{"use strict";var a=r(1399);var i=r(246);var n=r(9338);var s=r(5161);function resolvePairs(e,t){if(a.isSeq(e)){for(let r=0;r1)t("Each pair must have its own sequence indicator");const e=s.items[0]||new i.Pair(new n.Scalar(null));if(s.commentBefore)e.key.commentBefore=e.key.commentBefore?`${s.commentBefore}\n${e.key.commentBefore}`:s.commentBefore;if(s.comment){const t=e.value??e.key;t.comment=t.comment?`${s.comment}\n${t.comment}`:s.comment}s=e}e.items[r]=a.isPair(s)?s:new i.Pair(s)}}else t("Expected a sequence for this tag");return e}function createPairs(e,t,r){const{replacer:a}=r;const n=new s.YAMLSeq(e);n.tag="tag:yaml.org,2002:pairs";let o=0;if(t&&Symbol.iterator in Object(t))for(let e of t){if(typeof a==="function")e=a.call(t,String(o++),e);let s,p;if(Array.isArray(e)){if(e.length===2){s=e[0];p=e[1]}else throw new TypeError(`Expected [key, value] tuple: ${e}`)}else if(e&&e instanceof Object){const t=Object.keys(e);if(t.length===1){s=t[0];p=e[s]}else throw new TypeError(`Expected { key: value } tuple: ${e}`)}else{s=e}n.items.push(i.createPair(s,p,r))}return n}const o={collection:"seq",default:false,tag:"tag:yaml.org,2002:pairs",resolve:resolvePairs,createNode:createPairs};t.createPairs=createPairs;t.pairs=o;t.resolvePairs=resolvePairs},5389:(e,t,r)=>{"use strict";var a=r(83);var i=r(6703);var n=r(1693);var s=r(2201);var o=r(5724);var p=r(2631);var c=r(8035);var l=r(9503);var d=r(8974);var u=r(9841);var m=r(7847);var h=r(1156);const g=[a.map,n.seq,s.string,i.nullTag,p.trueTag,p.falseTag,l.intBin,l.intOct,l.int,l.intHex,c.floatNaN,c.floatExp,c.float,o.binary,d.omap,u.pairs,m.set,h.intTime,h.floatTime,h.timestamp];t.schema=g},7847:(e,t,r)=>{"use strict";var a=r(1399);var i=r(246);var n=r(6011);class YAMLSet extends n.YAMLMap{constructor(e){super(e);this.tag=YAMLSet.tag}add(e){let t;if(a.isPair(e))t=e;else if(e&&typeof e==="object"&&"key"in e&&"value"in e&&e.value===null)t=new i.Pair(e.key,null);else t=new i.Pair(e,null);const r=n.findPair(this.items,t.key);if(!r)this.items.push(t)}get(e,t){const r=n.findPair(this.items,e);return!t&&a.isPair(r)?a.isScalar(r.key)?r.key.value:r.key:r}set(e,t){if(typeof t!=="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);const r=n.findPair(this.items,e);if(r&&!t){this.items.splice(this.items.indexOf(r),1)}else if(!r&&t){this.items.push(new i.Pair(e))}}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(true))return super.toString(Object.assign({},e,{allNullValues:true}),t,r);else throw new Error("Set items must all have null values")}}YAMLSet.tag="tag:yaml.org,2002:set";const s={collection:"map",identify:e=>e instanceof Set,nodeClass:YAMLSet,default:false,tag:"tag:yaml.org,2002:set",resolve(e,t){if(a.isMap(e)){if(e.hasAllNullValues(true))return Object.assign(new YAMLSet,e);else t("Set items must all have null values")}else t("Expected a mapping for this tag");return e},createNode(e,t,r){const{replacer:a}=r;const n=new YAMLSet(e);if(t&&Symbol.iterator in Object(t))for(let e of t){if(typeof a==="function")e=a.call(t,e,e);n.items.push(i.createPair(e,null,r))}return n}};t.YAMLSet=YAMLSet;t.set=s},1156:(e,t,r)=>{"use strict";var a=r(4174);function parseSexagesimal(e,t){const r=e[0];const a=r==="-"||r==="+"?e.substring(1):e;const num=e=>t?BigInt(e):Number(e);const i=a.replace(/_/g,"").split(":").reduce(((e,t)=>e*num(60)+num(t)),num(0));return r==="-"?num(-1)*i:i}function stringifySexagesimal(e){let{value:t}=e;let num=e=>e;if(typeof t==="bigint")num=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return a.stringifyNumber(e);let r="";if(t<0){r="-";t*=num(-1)}const i=num(60);const n=[t%i];if(t<60){n.unshift(0)}else{t=(t-n[0])/i;n.unshift(t%i);if(t>=60){t=(t-n[0])/i;n.unshift(t)}}return r+n.map((e=>e<10?"0"+String(e):String(e))).join(":").replace(/000000\d*$/,"")}const i={identify:e=>typeof e==="bigint"||Number.isInteger(e),default:true,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:r})=>parseSexagesimal(e,r),stringify:stringifySexagesimal};const n={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>parseSexagesimal(e,false),stringify:stringifySexagesimal};const s={identify:e=>e instanceof Date,default:true,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"+"(?:"+"(?:t|T|[ \\t]+)"+"([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)"+"(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?"+")?$"),resolve(e){const t=e.match(s.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,r,a,i,n,o,p]=t.map(Number);const c=t[7]?Number((t[7]+"00").substr(1,3)):0;let l=Date.UTC(r,a-1,i,n||0,o||0,p||0,c);const d=t[8];if(d&&d!=="Z"){let e=parseSexagesimal(d,false);if(Math.abs(e)<30)e*=60;l-=6e4*e}return new Date(l)},stringify:({value:e})=>e.toISOString().replace(/((T00:00)?:00)?\.000Z$/,"")};t.floatTime=n;t.intTime=i;t.timestamp=s},2889:(e,t)=>{"use strict";const r="flow";const a="block";const i="quoted";function foldFlowLines(e,t,r="flow",{indentAtStart:n,lineWidth:s=80,minContentWidth:o=20,onFold:p,onOverflow:c}={}){if(!s||s<0)return e;const l=Math.max(1+o,1+s-t.length);if(e.length<=l)return e;const d=[];const u={};let m=s-t.length;if(typeof n==="number"){if(n>s-Math.max(2,o))d.push(0);else m=s-n}let h=undefined;let g=undefined;let v=false;let y=-1;let b=-1;let w=-1;if(r===a){y=consumeMoreIndentedLines(e,y);if(y!==-1)m=y+l}for(let t;t=e[y+=1];){if(r===i&&t==="\\"){b=y;switch(e[y+1]){case"x":y+=3;break;case"u":y+=5;break;case"U":y+=9;break;default:y+=1}w=y}if(t==="\n"){if(r===a)y=consumeMoreIndentedLines(e,y);m=y+l;h=undefined}else{if(t===" "&&g&&g!==" "&&g!=="\n"&&g!=="\t"){const t=e[y+1];if(t&&t!==" "&&t!=="\n"&&t!=="\t")h=y}if(y>=m){if(h){d.push(h);m=h+l;h=undefined}else if(r===i){while(g===" "||g==="\t"){g=t;t=e[y+=1];v=true}const r=y>w+1?y-2:b-1;if(u[r])return e;d.push(r);u[r]=true;m=r+l;h=undefined}else{v=true}}}g=t}if(v&&c)c();if(d.length===0)return e;if(p)p();let x=e.slice(0,d[0]);for(let a=0;a{"use strict";var a=r(8459);var i=r(1399);var n=r(5182);var s=r(6226);function createStringifyContext(e,t){const r=Object.assign({blockQuote:true,commentString:n.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:false,doubleQuotedMinMultiLineLength:40,falseStr:"false",indentSeq:true,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:false,singleQuote:null,trueStr:"true",verifyAliasOrder:true},e.schema.toStringOptions,t);let a;switch(r.collectionStyle){case"block":a=false;break;case"flow":a=true;break;default:a=null}return{anchors:new Set,doc:e,indent:"",indentStep:typeof r.indent==="number"?" ".repeat(r.indent):" ",inFlow:a,options:r}}function getTagObject(e,t){if(t.tag){const r=e.filter((e=>e.tag===t.tag));if(r.length>0)return r.find((e=>e.format===t.format))??r[0]}let r=undefined;let a;if(i.isScalar(t)){a=t.value;const i=e.filter((e=>e.identify?.(a)));r=i.find((e=>e.format===t.format))??i.find((e=>!e.format))}else{a=t;r=e.find((e=>e.nodeClass&&a instanceof e.nodeClass))}if(!r){const e=a?.constructor?.name??typeof a;throw new Error(`Tag not resolved for ${e} value`)}return r}function stringifyProps(e,t,{anchors:r,doc:n}){if(!n.directives)return"";const s=[];const o=(i.isScalar(e)||i.isCollection(e))&&e.anchor;if(o&&a.anchorIsValid(o)){r.add(o);s.push(`&${o}`)}const p=e.tag?e.tag:t.default?null:t.tag;if(p)s.push(n.directives.tagString(p));return s.join(" ")}function stringify(e,t,r,a){if(i.isPair(e))return e.toString(t,r,a);if(i.isAlias(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e)){throw new TypeError(`Cannot stringify circular structure without alias nodes`)}else{if(t.resolvedAliases)t.resolvedAliases.add(e);else t.resolvedAliases=new Set([e]);e=e.resolve(t.doc)}}let n=undefined;const o=i.isNode(e)?e:t.doc.createNode(e,{onTagObj:e=>n=e});if(!n)n=getTagObject(t.doc.schema.tags,o);const p=stringifyProps(o,n,t);if(p.length>0)t.indentAtStart=(t.indentAtStart??0)+p.length+1;const c=typeof n.stringify==="function"?n.stringify(o,t,r,a):i.isScalar(o)?s.stringifyString(o,t,r,a):o.toString(t,r,a);if(!p)return c;return i.isScalar(o)||c[0]==="{"||c[0]==="["?`${p} ${c}`:`${p}\n${t.indent}${c}`}t.createStringifyContext=createStringifyContext;t.stringify=stringify},2466:(e,t,r)=>{"use strict";var a=r(3466);var i=r(1399);var n=r(8409);var s=r(5182);function stringifyCollection(e,t,r){const a=t.inFlow??e.flow;const i=a?stringifyFlowCollection:stringifyBlockCollection;return i(e,t,r)}function stringifyBlockCollection({comment:e,items:t},r,{blockItemPrefix:a,flowChars:o,itemIndent:p,onChompKeep:c,onComment:l}){const{indent:d,options:{commentString:u}}=r;const m=Object.assign({},r,{indent:p,type:null});let h=false;const g=[];for(let e=0;ec=null),(()=>h=true));if(c)l+=s.lineComment(l,p,u(c));if(h&&c)h=false;g.push(a+l)}let v;if(g.length===0){v=o.start+o.end}else{v=g[0];for(let e=1;eo=null));if(eg||c.includes("\n")))h=true;v.push(c);g=v.length}let y;const{start:b,end:w}=o;if(v.length===0){y=b+w}else{if(!h){const e=v.reduce(((e,t)=>e+t.length+2),2);h=e>a.Collection.maxFlowStringSingleLineLength}if(h){y=b;for(const e of v)y+=e?`\n${d}${l}${e}`:"\n";y+=`\n${l}${w}`}else{y=`${b} ${v.join(" ")} ${w}`}}if(e){y+=s.lineComment(y,u(e),l);if(c)c()}return y}function addCommentBefore({indent:e,options:{commentString:t}},r,a,i){if(a&&i)a=a.replace(/^\n+/,"");if(a){const i=s.indentComment(t(a),e);r.push(i.trimStart())}}t.stringifyCollection=stringifyCollection},5182:(e,t)=>{"use strict";const stringifyComment=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function indentComment(e,t){if(/^\n+$/.test(e))return e.substring(1);return t?e.replace(/^(?! *$)/gm,t):e}const lineComment=(e,t,r)=>e.endsWith("\n")?indentComment(r,t):r.includes("\n")?"\n"+indentComment(r,t):(e.endsWith(" ")?"":" ")+r;t.indentComment=indentComment;t.lineComment=lineComment;t.stringifyComment=stringifyComment},5225:(e,t,r)=>{"use strict";var a=r(1399);var i=r(8409);var n=r(5182);function stringifyDocument(e,t){const r=[];let s=t.directives===true;if(t.directives!==false&&e.directives){const t=e.directives.toString(e);if(t){r.push(t);s=true}else if(e.directives.docStart)s=true}if(s)r.push("---");const o=i.createStringifyContext(e,t);const{commentString:p}=o.options;if(e.commentBefore){if(r.length!==1)r.unshift("");const t=p(e.commentBefore);r.unshift(n.indentComment(t,""))}let c=false;let l=null;if(e.contents){if(a.isNode(e.contents)){if(e.contents.spaceBefore&&s)r.push("");if(e.contents.commentBefore){const t=p(e.contents.commentBefore);r.push(n.indentComment(t,""))}o.forceBlockIndent=!!e.comment;l=e.contents.comment}const t=l?undefined:()=>c=true;let d=i.stringify(e.contents,o,(()=>l=null),t);if(l)d+=n.lineComment(d,"",p(l));if((d[0]==="|"||d[0]===">")&&r[r.length-1]==="---"){r[r.length-1]=`--- ${d}`}else r.push(d)}else{r.push(i.stringify(e.contents,o))}if(e.directives?.docEnd){if(e.comment){const t=p(e.comment);if(t.includes("\n")){r.push("...");r.push(n.indentComment(t,""))}else{r.push(`... ${t}`)}}else{r.push("...")}}else{let t=e.comment;if(t&&c)t=t.replace(/^\n+/,"");if(t){if((!c||l)&&r[r.length-1]!=="")r.push("");r.push(n.indentComment(p(t),""))}}return r.join("\n")+"\n"}t.stringifyDocument=stringifyDocument},4174:(e,t)=>{"use strict";function stringifyNumber({format:e,minFractionDigits:t,tag:r,value:a}){if(typeof a==="bigint")return String(a);const i=typeof a==="number"?a:Number(a);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let n=JSON.stringify(a);if(!e&&t&&(!r||r==="tag:yaml.org,2002:float")&&/^\d/.test(n)){let e=n.indexOf(".");if(e<0){e=n.length;n+="."}let r=t-(n.length-e-1);while(r-- >0)n+="0"}return n}t.stringifyNumber=stringifyNumber},4875:(e,t,r)=>{"use strict";var a=r(1399);var i=r(9338);var n=r(8409);var s=r(5182);function stringifyPair({key:e,value:t},r,o,p){const{allNullValues:c,doc:l,indent:d,indentStep:u,options:{commentString:m,indentSeq:h,simpleKeys:g}}=r;let v=a.isNode(e)&&e.comment||null;if(g){if(v){throw new Error("With simple keys, key nodes cannot have comments")}if(a.isCollection(e)){const e="With simple keys, collection cannot be used as a key value";throw new Error(e)}}let y=!g&&(!e||v&&t==null&&!r.inFlow||a.isCollection(e)||(a.isScalar(e)?e.type===i.Scalar.BLOCK_FOLDED||e.type===i.Scalar.BLOCK_LITERAL:typeof e==="object"));r=Object.assign({},r,{allNullValues:false,implicitKey:!y&&(g||!c),indent:d+u});let b=false;let w=false;let x=n.stringify(e,r,(()=>b=true),(()=>w=true));if(!y&&!r.inFlow&&x.length>1024){if(g)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");y=true}if(r.inFlow){if(c||t==null){if(b&&o)o();return x===""?"?":y?`? ${x}`:x}}else if(c&&!g||t==null&&y){x=`? ${x}`;if(v&&!b){x+=s.lineComment(x,r.indent,m(v))}else if(w&&p)p();return x}if(b)v=null;if(y){if(v)x+=s.lineComment(x,r.indent,m(v));x=`? ${x}\n${d}:`}else{x=`${x}:`;if(v)x+=s.lineComment(x,r.indent,m(v))}let E="";let S=null;if(a.isNode(t)){if(t.spaceBefore)E="\n";if(t.commentBefore){const e=m(t.commentBefore);E+=`\n${s.indentComment(e,r.indent)}`}S=t.comment}else if(t&&typeof t==="object"){t=l.createNode(t)}r.implicitKey=false;if(!y&&!v&&a.isScalar(t))r.indentAtStart=x.length+1;w=false;if(!h&&u.length>=2&&!r.inFlow&&!y&&a.isSeq(t)&&!t.flow&&!t.tag&&!t.anchor){r.indent=r.indent.substr(2)}let T=false;const k=n.stringify(t,r,(()=>T=true),(()=>w=true));let C=" ";if(E||v){if(k===""&&!r.inFlow)C=E==="\n"?"\n\n":E;else C=`${E}\n${r.indent}`}else if(!y&&a.isCollection(t)){const e=k[0]==="["||k[0]==="{";if(!e||k.includes("\n"))C=`\n${r.indent}`}else if(k===""||k[0]==="\n")C="";x+=C+k;if(r.inFlow){if(T&&o)o()}else if(S&&!T){x+=s.lineComment(x,r.indent,m(S))}else if(w&&p){p()}return x}t.stringifyPair=stringifyPair},6226:(e,t,r)=>{"use strict";var a=r(9338);var i=r(2889);const getFoldOptions=e=>({indentAtStart:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth});const containsDocumentMarker=e=>/^(%|---|\.\.\.)/m.test(e);function lineLengthOverLimit(e,t,r){if(!t||t<0)return false;const a=t-r;const i=e.length;if(i<=a)return false;for(let t=0,r=0;ta)return true;r=t+1;if(i-r<=a)return false}}return true}function doubleQuotedString(e,t){const r=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return r;const{implicitKey:a}=t;const n=t.options.doubleQuotedMinMultiLineLength;const s=t.indent||(containsDocumentMarker(e)?" ":"");let o="";let p=0;for(let e=0,t=r[e];t;t=r[++e]){if(t===" "&&r[e+1]==="\\"&&r[e+2]==="n"){o+=r.slice(p,e)+"\\ ";e+=1;p=e;t="\\"}if(t==="\\")switch(r[e+1]){case"u":{o+=r.slice(p,e);const t=r.substr(e+2,4);switch(t){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:if(t.substr(0,2)==="00")o+="\\x"+t.substr(2);else o+=r.substr(e,6)}e+=5;p=e+1}break;case"n":if(a||r[e+2]==='"'||r.length\n";let m;let h;for(h=r.length;h>0;--h){const e=r[h-1];if(e!=="\n"&&e!=="\t"&&e!==" ")break}let g=r.substring(h);const v=g.indexOf("\n");if(v===-1){m="-"}else if(r===g||v!==g.length-1){m="+";if(o)o()}else{m=""}if(g){r=r.slice(0,-g.length);if(g[g.length-1]==="\n")g=g.slice(0,-1);g=g.replace(/\n+(?!\n|$)/g,`$&${d}`)}let y=false;let b;let w=-1;for(b=0;b")+(y?E:"")+m;if(e){S+=" "+c(e.replace(/ ?[\r\n]+/g," "));if(s)s()}if(u){r=r.replace(/\n+/g,`$&${d}`);return`${S}\n${d}${x}${r}${g}`}r=r.replace(/\n+/g,"\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${d}`);const T=i.foldFlowLines(`${x}${r}${g}`,d,i.FOLD_BLOCK,getFoldOptions(n));return`${S}\n${d}${T}`}function plainString(e,t,r,n){const{type:s,value:o}=e;const{actualString:p,implicitKey:c,indent:l,inFlow:d}=t;if(c&&/[\n[\]{},]/.test(o)||d&&/[[\]{},]/.test(o)){return quotedString(o,t)}if(!o||/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(o)){return c||d||!o.includes("\n")?quotedString(o,t):blockString(e,t,r,n)}if(!c&&!d&&s!==a.Scalar.PLAIN&&o.includes("\n")){return blockString(e,t,r,n)}if(l===""&&containsDocumentMarker(o)){t.forceBlockIndent=true;return blockString(e,t,r,n)}const u=o.replace(/\n+/g,`$&\n${l}`);if(p){const test=e=>e.default&&e.tag!=="tag:yaml.org,2002:str"&&e.test?.test(u);const{compat:e,tags:r}=t.doc.schema;if(r.some(test)||e?.some(test))return quotedString(o,t)}return c?u:i.foldFlowLines(u,l,i.FOLD_FLOW,getFoldOptions(t))}function stringifyString(e,t,r,i){const{implicitKey:n,inFlow:s}=t;const o=typeof e.value==="string"?e:Object.assign({},e,{value:String(e.value)});let{type:p}=e;if(p!==a.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value))p=a.Scalar.QUOTE_DOUBLE}const _stringify=e=>{switch(e){case a.Scalar.BLOCK_FOLDED:case a.Scalar.BLOCK_LITERAL:return n||s?quotedString(o.value,t):blockString(o,t,r,i);case a.Scalar.QUOTE_DOUBLE:return doubleQuotedString(o.value,t);case a.Scalar.QUOTE_SINGLE:return singleQuotedString(o.value,t);case a.Scalar.PLAIN:return plainString(o,t,r,i);default:return null}};let c=_stringify(p);if(c===null){const{defaultKeyType:e,defaultStringType:r}=t.options;const a=n&&e||r;c=_stringify(a);if(c===null)throw new Error(`Unsupported default string type ${a}`)}return c}t.stringifyString=stringifyString},6796:(e,t,r)=>{"use strict";var a=r(1399);const i=Symbol("break visit");const n=Symbol("skip children");const s=Symbol("remove node");function visit(e,t){const r=initVisitor(t);if(a.isDocument(e)){const t=visit_(null,e.contents,r,Object.freeze([e]));if(t===s)e.contents=null}else visit_(null,e,r,Object.freeze([]))}visit.BREAK=i;visit.SKIP=n;visit.REMOVE=s;function visit_(e,t,r,n){const o=callVisitor(e,t,r,n);if(a.isNode(o)||a.isPair(o)){replaceNode(e,n,o);return visit_(e,o,r,n)}if(typeof o!=="symbol"){if(a.isCollection(t)){n=Object.freeze(n.concat(t));for(let e=0;e{"use strict";e.exports=JSON.parse('{"$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON AnySchema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},3712:e=>{"use strict";e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')},3765:e=>{"use strict";e.exports=JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"application/aml":{"source":"iana"},"application/andrew-inset":{"source":"iana","extensions":["ez"]},"application/applefile":{"source":"iana"},"application/applixware":{"source":"apache","extensions":["aw"]},"application/at+jwt":{"source":"iana"},"application/atf":{"source":"iana"},"application/atfx":{"source":"iana"},"application/atom+xml":{"source":"iana","compressible":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cdfx+xml":{"source":"iana","compressible":true,"extensions":["cdfx"]},"application/cdmi-capability":{"source":"iana","extensions":["cdmia"]},"application/cdmi-container":{"source":"iana","extensions":["cdmic"]},"application/cdmi-domain":{"source":"iana","extensions":["cdmid"]},"application/cdmi-object":{"source":"iana","extensions":["cdmio"]},"application/cdmi-queue":{"source":"iana","extensions":["cdmiq"]},"application/cdni":{"source":"iana"},"application/cea":{"source":"iana"},"application/cea-2018+xml":{"source":"iana","compressible":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana"},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/ecmascript":{"source":"iana","compressible":true,"extensions":["es","ecma"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"application/fits":{"source":"iana"},"application/flexfec":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/index":{"source":"iana"},"application/index.cmd":{"source":"iana"},"application/index.obj":{"source":"iana"},"application/index.response":{"source":"iana"},"application/index.vnd":{"source":"iana"},"application/inkml+xml":{"source":"iana","compressible":true,"extensions":["ink","inkml"]},"application/iotp":{"source":"iana"},"application/ipfix":{"source":"iana","extensions":["ipfix"]},"application/ipp":{"source":"iana"},"application/isup":{"source":"iana"},"application/its+xml":{"source":"iana","compressible":true,"extensions":["its"]},"application/java-archive":{"source":"apache","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/load-control+xml":{"source":"iana","compressible":true},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"application/lxf":{"source":"iana"},"application/mac-binhex40":{"source":"iana","extensions":["hqx"]},"application/mac-compactpro":{"source":"apache","extensions":["cpt"]},"application/macwriteii":{"source":"iana"},"application/mads+xml":{"source":"iana","compressible":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"extensions":["mets"]},"application/mf4":{"source":"iana"},"application/mikey":{"source":"iana"},"application/mipc":{"source":"iana"},"application/missing-blocks+cbor-seq":{"source":"iana"},"application/mmt-aei+xml":{"source":"iana","compressible":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"extensions":["mods"]},"application/moss-keys":{"source":"iana"},"application/moss-signature":{"source":"iana"},"application/mosskey-data":{"source":"iana"},"application/mosskey-request":{"source":"iana"},"application/mp21":{"source":"iana","extensions":["m21","mp21"]},"application/mp4":{"source":"iana","extensions":["mp4s","m4p"]},"application/mpeg4-generic":{"source":"iana"},"application/mpeg4-iod":{"source":"iana"},"application/mpeg4-iod-xmt":{"source":"iana"},"application/mrb-consumer+xml":{"source":"iana","compressible":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"application/multipart-core":{"source":"iana"},"application/mxf":{"source":"iana","extensions":["mxf"]},"application/n-quads":{"source":"iana","extensions":["nq"]},"application/n-triples":{"source":"iana","extensions":["nt"]},"application/nasdata":{"source":"iana"},"application/news-checkgroups":{"source":"iana","charset":"US-ASCII"},"application/news-groupinfo":{"source":"iana","charset":"US-ASCII"},"application/news-transmission":{"source":"iana"},"application/nlsml+xml":{"source":"iana","compressible":true},"application/node":{"source":"iana","extensions":["cjs"]},"application/nss":{"source":"iana"},"application/oauth-authz-req+jwt":{"source":"iana"},"application/oblivious-dns-message":{"source":"iana"},"application/ocsp-request":{"source":"iana"},"application/ocsp-response":{"source":"iana"},"application/octet-stream":{"source":"iana","compressible":false,"extensions":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{"source":"iana","extensions":["oda"]},"application/odm+xml":{"source":"iana","compressible":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"extensions":["pgp"]},"application/pgp-keys":{"source":"iana","extensions":["asc"]},"application/pgp-signature":{"source":"iana","extensions":["asc","sig"]},"application/pics-rules":{"source":"apache","extensions":["prf"]},"application/pidf+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pkcs10":{"source":"iana","extensions":["p10"]},"application/pkcs12":{"source":"iana"},"application/pkcs7-mime":{"source":"iana","extensions":["p7m","p7c"]},"application/pkcs7-signature":{"source":"iana","extensions":["p7s"]},"application/pkcs8":{"source":"iana","extensions":["p8"]},"application/pkcs8-encrypted":{"source":"iana"},"application/pkix-attr-cert":{"source":"iana","extensions":["ac"]},"application/pkix-cert":{"source":"iana","extensions":["cer"]},"application/pkix-crl":{"source":"iana","extensions":["crl"]},"application/pkix-pkipath":{"source":"iana","extensions":["pkipath"]},"application/pkixcmp":{"source":"iana","extensions":["pki"]},"application/pls+xml":{"source":"iana","compressible":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"extensions":["provx"]},"application/prs.alvestrand.titrax-sheet":{"source":"iana"},"application/prs.cww":{"source":"iana","extensions":["cww"]},"application/prs.cyn":{"source":"iana","charset":"7-BIT"},"application/prs.hpub+zip":{"source":"iana","compressible":false},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"iana"},"application/reputon+json":{"source":"iana","compressible":true},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"extensions":["rusd"]},"application/rpki-ghostbusters":{"source":"iana","extensions":["gbr"]},"application/rpki-manifest":{"source":"iana","extensions":["mft"]},"application/rpki-publication":{"source":"iana"},"application/rpki-roa":{"source":"iana","extensions":["roa"]},"application/rpki-updown":{"source":"iana"},"application/rsd+xml":{"source":"apache","compressible":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"application/scvp-cv-request":{"source":"iana","extensions":["scq"]},"application/scvp-cv-response":{"source":"iana","extensions":["scs"]},"application/scvp-vp-request":{"source":"iana","extensions":["spq"]},"application/scvp-vp-response":{"source":"iana","extensions":["spp"]},"application/sdp":{"source":"iana","extensions":["sdp"]},"application/secevent+jwt":{"source":"iana"},"application/senml+cbor":{"source":"iana"},"application/senml+json":{"source":"iana","compressible":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"application/sep-exi":{"source":"iana"},"application/session-info":{"source":"iana"},"application/set-payment":{"source":"iana"},"application/set-payment-initiation":{"source":"iana","extensions":["setpay"]},"application/set-registration":{"source":"iana"},"application/set-registration-initiation":{"source":"iana","extensions":["setreg"]},"application/sgml":{"source":"iana"},"application/sgml-open-catalog":{"source":"iana"},"application/shf+xml":{"source":"iana","compressible":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"application/simple-message-summary":{"source":"iana"},"application/simplesymbolcontainer":{"source":"iana"},"application/sipc":{"source":"iana"},"application/slate":{"source":"iana"},"application/smil":{"source":"iana"},"application/smil+xml":{"source":"iana","compressible":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana"},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/stix+json":{"source":"iana","compressible":true},"application/swid+xml":{"source":"iana","compressible":true,"extensions":["swidtag"]},"application/tamp-apex-update":{"source":"iana"},"application/tamp-apex-update-confirm":{"source":"iana"},"application/tamp-community-update":{"source":"iana"},"application/tamp-community-update-confirm":{"source":"iana"},"application/tamp-error":{"source":"iana"},"application/tamp-sequence-adjust":{"source":"iana"},"application/tamp-sequence-adjust-confirm":{"source":"iana"},"application/tamp-status-query":{"source":"iana"},"application/tamp-status-response":{"source":"iana"},"application/tamp-update":{"source":"iana"},"application/tamp-update-confirm":{"source":"iana"},"application/tar":{"compressible":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"extensions":["tfi"]},"application/timestamp-query":{"source":"iana"},"application/timestamp-reply":{"source":"iana"},"application/timestamped-data":{"source":"iana","extensions":["tsd"]},"application/tlsrpt+gzip":{"source":"iana"},"application/tlsrpt+json":{"source":"iana","compressible":true},"application/tnauthlist":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-v2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gnas":{"source":"iana"},"application/vnd.3gpp.access-transfer-events+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gtpc":{"source":"iana"},"application/vnd.3gpp.interworking-data":{"source":"iana"},"application/vnd.3gpp.lpp":{"source":"iana"},"application/vnd.3gpp.mc-signalling-ear":{"source":"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ngap":{"source":"iana"},"application/vnd.3gpp.pfcp":{"source":"iana"},"application/vnd.3gpp.pic-bw-large":{"source":"iana","extensions":["plb"]},"application/vnd.3gpp.pic-bw-small":{"source":"iana","extensions":["psb"]},"application/vnd.3gpp.pic-bw-var":{"source":"iana","extensions":["pvb"]},"application/vnd.3gpp.s1ap":{"source":"iana"},"application/vnd.3gpp.sms":{"source":"iana"},"application/vnd.3gpp.sms+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.sms":{"source":"iana"},"application/vnd.3gpp2.tcap":{"source":"iana","extensions":["tcap"]},"application/vnd.3lightssoftware.imagescal":{"source":"iana"},"application/vnd.3m.post-it-notes":{"source":"iana","extensions":["pwn"]},"application/vnd.accpac.simply.aso":{"source":"iana","extensions":["aso"]},"application/vnd.accpac.simply.imp":{"source":"iana","extensions":["imp"]},"application/vnd.acucobol":{"source":"iana","extensions":["acu"]},"application/vnd.acucorp":{"source":"iana","extensions":["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{"source":"apache","compressible":false,"extensions":["air"]},"application/vnd.adobe.flash.movie":{"source":"iana"},"application/vnd.adobe.formscentral.fcdt":{"source":"iana","extensions":["fcdt"]},"application/vnd.adobe.fxp":{"source":"iana","extensions":["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{"source":"iana"},"application/vnd.adobe.xdp+xml":{"source":"iana","compressible":true,"extensions":["xdp"]},"application/vnd.adobe.xfdf":{"source":"iana","extensions":["xfdf"]},"application/vnd.aether.imp":{"source":"iana"},"application/vnd.afpc.afplinedata":{"source":"iana"},"application/vnd.afpc.afplinedata-pagedef":{"source":"iana"},"application/vnd.afpc.cmoca-cmresource":{"source":"iana"},"application/vnd.afpc.foca-charset":{"source":"iana"},"application/vnd.afpc.foca-codedfont":{"source":"iana"},"application/vnd.afpc.foca-codepage":{"source":"iana"},"application/vnd.afpc.modca":{"source":"iana"},"application/vnd.afpc.modca-cmtable":{"source":"iana"},"application/vnd.afpc.modca-formdef":{"source":"iana"},"application/vnd.afpc.modca-mediummap":{"source":"iana"},"application/vnd.afpc.modca-objectcontainer":{"source":"iana"},"application/vnd.afpc.modca-overlay":{"source":"iana"},"application/vnd.afpc.modca-pagesegment":{"source":"iana"},"application/vnd.age":{"source":"iana","extensions":["age"]},"application/vnd.ah-barcode":{"source":"iana"},"application/vnd.ahead.space":{"source":"iana","extensions":["ahead"]},"application/vnd.airzip.filesecure.azf":{"source":"iana","extensions":["azf"]},"application/vnd.airzip.filesecure.azs":{"source":"iana","extensions":["azs"]},"application/vnd.amadeus+json":{"source":"iana","compressible":true},"application/vnd.amazon.ebook":{"source":"apache","extensions":["azw"]},"application/vnd.amazon.mobi8-ebook":{"source":"iana"},"application/vnd.americandynamics.acc":{"source":"iana","extensions":["acc"]},"application/vnd.amiga.ami":{"source":"iana","extensions":["ami"]},"application/vnd.amundsen.maze+xml":{"source":"iana","compressible":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"extensions":["apk"]},"application/vnd.anki":{"source":"iana"},"application/vnd.anser-web-certificate-issue-initiation":{"source":"iana","extensions":["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{"source":"apache","extensions":["fti"]},"application/vnd.antix.game-component":{"source":"iana","extensions":["atx"]},"application/vnd.apache.arrow.file":{"source":"iana"},"application/vnd.apache.arrow.stream":{"source":"iana"},"application/vnd.apache.thrift.binary":{"source":"iana"},"application/vnd.apache.thrift.compact":{"source":"iana"},"application/vnd.apache.thrift.json":{"source":"iana"},"application/vnd.api+json":{"source":"iana","compressible":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"extensions":["mpkg"]},"application/vnd.apple.keynote":{"source":"iana","extensions":["key"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.numbers":{"source":"iana","extensions":["numbers"]},"application/vnd.apple.pages":{"source":"iana","extensions":["pages"]},"application/vnd.apple.pkpass":{"compressible":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"iana"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"application/vnd.artsquare":{"source":"iana"},"application/vnd.astraea-software.iota":{"source":"iana","extensions":["iota"]},"application/vnd.audiograph":{"source":"iana","extensions":["aep"]},"application/vnd.autopackage":{"source":"iana"},"application/vnd.avalon+json":{"source":"iana","compressible":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"extensions":["bmml"]},"application/vnd.balsamiq.bmpr":{"source":"iana"},"application/vnd.banana-accounting":{"source":"iana"},"application/vnd.bbf.usp.error":{"source":"iana"},"application/vnd.bbf.usp.msg":{"source":"iana"},"application/vnd.bbf.usp.msg+json":{"source":"iana","compressible":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"application/vnd.blink-idb-value-wrapper":{"source":"iana"},"application/vnd.blueice.multipass":{"source":"iana","extensions":["mpm"]},"application/vnd.bluetooth.ep.oob":{"source":"iana"},"application/vnd.bluetooth.le.oob":{"source":"iana"},"application/vnd.bmi":{"source":"iana","extensions":["bmi"]},"application/vnd.bpf":{"source":"iana"},"application/vnd.bpf3":{"source":"iana"},"application/vnd.businessobjects":{"source":"iana","extensions":["rep"]},"application/vnd.byu.uapi+json":{"source":"iana","compressible":true},"application/vnd.cab-jscript":{"source":"iana"},"application/vnd.canon-cpdl":{"source":"iana"},"application/vnd.canon-lips":{"source":"iana"},"application/vnd.capasystems-pg+json":{"source":"iana","compressible":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"extensions":["cdxml"]},"application/vnd.chess-pgn":{"source":"iana"},"application/vnd.chipnuts.karaoke-mmd":{"source":"iana","extensions":["mmd"]},"application/vnd.ciedi":{"source":"iana"},"application/vnd.cinderella":{"source":"iana","extensions":["cdy"]},"application/vnd.cirpack.isdn-ext":{"source":"iana"},"application/vnd.citationstyles.style+xml":{"source":"iana","compressible":true,"extensions":["csl"]},"application/vnd.claymore":{"source":"iana","extensions":["cla"]},"application/vnd.cloanto.rp9":{"source":"iana","extensions":["rp9"]},"application/vnd.clonk.c4group":{"source":"iana","extensions":["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{"source":"iana","extensions":["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{"source":"iana","extensions":["c11amz"]},"application/vnd.coffeescript":{"source":"iana"},"application/vnd.collabio.xodocuments.document":{"source":"iana"},"application/vnd.collabio.xodocuments.document-template":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation-template":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{"source":"iana"},"application/vnd.collection+json":{"source":"iana","compressible":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"application/vnd.comicbook-rar":{"source":"iana"},"application/vnd.commerce-battelle":{"source":"iana"},"application/vnd.commonspace":{"source":"iana","extensions":["csp"]},"application/vnd.contact.cmsg":{"source":"iana","extensions":["cdbcmsg"]},"application/vnd.coreos.ignition+json":{"source":"iana","compressible":true},"application/vnd.cosmocaller":{"source":"iana","extensions":["cmc"]},"application/vnd.crick.clicker":{"source":"iana","extensions":["clkx"]},"application/vnd.crick.clicker.keyboard":{"source":"iana","extensions":["clkk"]},"application/vnd.crick.clicker.palette":{"source":"iana","extensions":["clkp"]},"application/vnd.crick.clicker.template":{"source":"iana","extensions":["clkt"]},"application/vnd.crick.clicker.wordbank":{"source":"iana","extensions":["clkw"]},"application/vnd.criticaltools.wbs+xml":{"source":"iana","compressible":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"application/vnd.crypto-shade-file":{"source":"iana"},"application/vnd.cryptomator.encrypted":{"source":"iana"},"application/vnd.cryptomator.vault":{"source":"iana"},"application/vnd.ctc-posml":{"source":"iana","extensions":["pml"]},"application/vnd.ctct.ws+xml":{"source":"iana","compressible":true},"application/vnd.cups-pdf":{"source":"iana"},"application/vnd.cups-postscript":{"source":"iana"},"application/vnd.cups-ppd":{"source":"iana","extensions":["ppd"]},"application/vnd.cups-raster":{"source":"iana"},"application/vnd.cups-raw":{"source":"iana"},"application/vnd.curl":{"source":"iana"},"application/vnd.curl.car":{"source":"apache","extensions":["car"]},"application/vnd.curl.pcurl":{"source":"apache","extensions":["pcurl"]},"application/vnd.cyan.dean.root+xml":{"source":"iana","compressible":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"application/vnd.dbf":{"source":"iana","extensions":["dbf"]},"application/vnd.debian.binary-package":{"source":"iana"},"application/vnd.dece.data":{"source":"iana","extensions":["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{"source":"iana","compressible":true,"extensions":["uvt","uvvt"]},"application/vnd.dece.unspecified":{"source":"iana","extensions":["uvx","uvvx"]},"application/vnd.dece.zip":{"source":"iana","extensions":["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{"source":"iana","extensions":["fe_launch"]},"application/vnd.desmume.movie":{"source":"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{"source":"iana"},"application/vnd.dm.delegation+xml":{"source":"iana","compressible":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"application/vnd.dolby.mlp":{"source":"apache","extensions":["mlp"]},"application/vnd.dolby.mobile.1":{"source":"iana"},"application/vnd.dolby.mobile.2":{"source":"iana"},"application/vnd.doremir.scorecloud-binary-document":{"source":"iana"},"application/vnd.dpgraph":{"source":"iana","extensions":["dpg"]},"application/vnd.dreamfactory":{"source":"iana","extensions":["dfac"]},"application/vnd.drive+json":{"source":"iana","compressible":true},"application/vnd.ds-keypoint":{"source":"apache","extensions":["kpxx"]},"application/vnd.dtg.local":{"source":"iana"},"application/vnd.dtg.local.flash":{"source":"iana"},"application/vnd.dtg.local.html":{"source":"iana"},"application/vnd.dvb.ait":{"source":"iana","extensions":["ait"]},"application/vnd.dvb.dvbisl+xml":{"source":"iana","compressible":true},"application/vnd.dvb.dvbj":{"source":"iana"},"application/vnd.dvb.esgcontainer":{"source":"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess2":{"source":"iana"},"application/vnd.dvb.ipdcesgpdd":{"source":"iana"},"application/vnd.dvb.ipdcroaming":{"source":"iana"},"application/vnd.dvb.iptv.alfec-base":{"source":"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{"source":"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"application/vnd.dvb.pfr":{"source":"iana"},"application/vnd.dvb.service":{"source":"iana","extensions":["svc"]},"application/vnd.dxr":{"source":"iana"},"application/vnd.dynageo":{"source":"iana","extensions":["geo"]},"application/vnd.dzr":{"source":"iana"},"application/vnd.easykaraoke.cdgdownload":{"source":"iana"},"application/vnd.ecdis-update":{"source":"iana"},"application/vnd.ecip.rlp":{"source":"iana"},"application/vnd.eclipse.ditto+json":{"source":"iana","compressible":true},"application/vnd.ecowin.chart":{"source":"iana","extensions":["mag"]},"application/vnd.ecowin.filerequest":{"source":"iana"},"application/vnd.ecowin.fileupdate":{"source":"iana"},"application/vnd.ecowin.series":{"source":"iana"},"application/vnd.ecowin.seriesrequest":{"source":"iana"},"application/vnd.ecowin.seriesupdate":{"source":"iana"},"application/vnd.efi.img":{"source":"iana"},"application/vnd.efi.iso":{"source":"iana"},"application/vnd.emclient.accessrequest+xml":{"source":"iana","compressible":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"application/vnd.epson.esf":{"source":"iana","extensions":["esf"]},"application/vnd.epson.msf":{"source":"iana","extensions":["msf"]},"application/vnd.epson.quickanime":{"source":"iana","extensions":["qam"]},"application/vnd.epson.salt":{"source":"iana","extensions":["slt"]},"application/vnd.epson.ssf":{"source":"iana","extensions":["ssf"]},"application/vnd.ericsson.quickcall":{"source":"iana"},"application/vnd.espass-espass+zip":{"source":"iana","compressible":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"application/vnd.eudora.data":{"source":"iana"},"application/vnd.evolv.ecig.profile":{"source":"iana"},"application/vnd.evolv.ecig.settings":{"source":"iana"},"application/vnd.evolv.ecig.theme":{"source":"iana"},"application/vnd.exstream-empower+zip":{"source":"iana","compressible":false},"application/vnd.exstream-package":{"source":"iana"},"application/vnd.ezpix-album":{"source":"iana","extensions":["ez2"]},"application/vnd.ezpix-package":{"source":"iana","extensions":["ez3"]},"application/vnd.f-secure.mobile":{"source":"iana"},"application/vnd.familysearch.gedcom+zip":{"source":"iana","compressible":false},"application/vnd.fastcopy-disk-image":{"source":"iana"},"application/vnd.fdf":{"source":"iana","extensions":["fdf"]},"application/vnd.fdsn.mseed":{"source":"iana","extensions":["mseed"]},"application/vnd.fdsn.seed":{"source":"iana","extensions":["seed","dataless"]},"application/vnd.ffsns":{"source":"iana"},"application/vnd.ficlab.flb+zip":{"source":"iana","compressible":false},"application/vnd.filmit.zfc":{"source":"iana"},"application/vnd.fints":{"source":"iana"},"application/vnd.firemonkeys.cloudcell":{"source":"iana"},"application/vnd.flographit":{"source":"iana","extensions":["gph"]},"application/vnd.fluxtime.clip":{"source":"iana","extensions":["ftc"]},"application/vnd.font-fontforge-sfd":{"source":"iana"},"application/vnd.framemaker":{"source":"iana","extensions":["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{"source":"iana","extensions":["fnc"]},"application/vnd.frogans.ltf":{"source":"iana","extensions":["ltf"]},"application/vnd.fsc.weblaunch":{"source":"iana","extensions":["fsc"]},"application/vnd.fujifilm.fb.docuworks":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.container":{"source":"iana"},"application/vnd.fujifilm.fb.jfi+xml":{"source":"iana","compressible":true},"application/vnd.fujitsu.oasys":{"source":"iana","extensions":["oas"]},"application/vnd.fujitsu.oasys2":{"source":"iana","extensions":["oa2"]},"application/vnd.fujitsu.oasys3":{"source":"iana","extensions":["oa3"]},"application/vnd.fujitsu.oasysgp":{"source":"iana","extensions":["fg5"]},"application/vnd.fujitsu.oasysprs":{"source":"iana","extensions":["bh2"]},"application/vnd.fujixerox.art-ex":{"source":"iana"},"application/vnd.fujixerox.art4":{"source":"iana"},"application/vnd.fujixerox.ddd":{"source":"iana","extensions":["ddd"]},"application/vnd.fujixerox.docuworks":{"source":"iana","extensions":["xdw"]},"application/vnd.fujixerox.docuworks.binder":{"source":"iana","extensions":["xbd"]},"application/vnd.fujixerox.docuworks.container":{"source":"iana"},"application/vnd.fujixerox.hbpl":{"source":"iana"},"application/vnd.fut-misnet":{"source":"iana"},"application/vnd.futoin+cbor":{"source":"iana"},"application/vnd.futoin+json":{"source":"iana","compressible":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.geo+json":{"source":"iana","compressible":true},"application/vnd.geocube+xml":{"source":"iana","compressible":true},"application/vnd.geogebra.file":{"source":"iana","extensions":["ggb"]},"application/vnd.geogebra.slides":{"source":"iana"},"application/vnd.geogebra.tool":{"source":"iana","extensions":["ggt"]},"application/vnd.geometry-explorer":{"source":"iana","extensions":["gex","gre"]},"application/vnd.geonext":{"source":"iana","extensions":["gxt"]},"application/vnd.geoplan":{"source":"iana","extensions":["g2w"]},"application/vnd.geospace":{"source":"iana","extensions":["g3w"]},"application/vnd.gerber":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt-response":{"source":"iana"},"application/vnd.gmx":{"source":"iana","extensions":["gmx"]},"application/vnd.google-apps.document":{"compressible":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"iana","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true},"application/vnd.grafeq":{"source":"iana","extensions":["gqf","gqs"]},"application/vnd.gridmp":{"source":"iana"},"application/vnd.groove-account":{"source":"iana","extensions":["gac"]},"application/vnd.groove-help":{"source":"iana","extensions":["ghf"]},"application/vnd.groove-identity-message":{"source":"iana","extensions":["gim"]},"application/vnd.groove-injector":{"source":"iana","extensions":["grv"]},"application/vnd.groove-tool-message":{"source":"iana","extensions":["gtm"]},"application/vnd.groove-tool-template":{"source":"iana","extensions":["tpl"]},"application/vnd.groove-vcard":{"source":"iana","extensions":["vcg"]},"application/vnd.hal+json":{"source":"iana","compressible":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hl7cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hp-hpgl":{"source":"iana","extensions":["hpgl"]},"application/vnd.hp-hpid":{"source":"iana","extensions":["hpid"]},"application/vnd.hp-hps":{"source":"iana","extensions":["hps"]},"application/vnd.hp-jlyt":{"source":"iana","extensions":["jlt"]},"application/vnd.hp-pcl":{"source":"iana","extensions":["pcl"]},"application/vnd.hp-pclxl":{"source":"iana","extensions":["pclxl"]},"application/vnd.httphone":{"source":"iana"},"application/vnd.hydrostatix.sof-data":{"source":"iana","extensions":["sfd-hdstx"]},"application/vnd.hyper+json":{"source":"iana","compressible":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"application/vnd.hzn-3d-crossword":{"source":"iana"},"application/vnd.ibm.afplinedata":{"source":"iana"},"application/vnd.ibm.electronic-media":{"source":"iana"},"application/vnd.ibm.minipay":{"source":"iana","extensions":["mpy"]},"application/vnd.ibm.modcap":{"source":"iana","extensions":["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{"source":"iana","extensions":["irm"]},"application/vnd.ibm.secure-container":{"source":"iana","extensions":["sc"]},"application/vnd.iccprofile":{"source":"iana","extensions":["icc","icm"]},"application/vnd.ieee.1905":{"source":"iana"},"application/vnd.igloader":{"source":"iana","extensions":["igl"]},"application/vnd.imagemeter.folder+zip":{"source":"iana","compressible":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"application/vnd.immervision-ivp":{"source":"iana","extensions":["ivp"]},"application/vnd.immervision-ivu":{"source":"iana","extensions":["ivu"]},"application/vnd.ims.imsccv1p1":{"source":"iana"},"application/vnd.ims.imsccv1p2":{"source":"iana"},"application/vnd.ims.imsccv1p3":{"source":"iana"},"application/vnd.ims.lis.v2.result+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"iana"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"application/vnd.innopath.wamp.notification":{"source":"iana"},"application/vnd.insors.igm":{"source":"iana","extensions":["igm"]},"application/vnd.intercon.formnet":{"source":"iana","extensions":["xpw","xpx"]},"application/vnd.intergeo":{"source":"iana","extensions":["i2g"]},"application/vnd.intertrust.digibox":{"source":"iana"},"application/vnd.intertrust.nncp":{"source":"iana"},"application/vnd.intu.qbo":{"source":"iana","extensions":["qbo"]},"application/vnd.intu.qfx":{"source":"iana","extensions":["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"extensions":["irp"]},"application/vnd.is-xpr":{"source":"iana","extensions":["xpr"]},"application/vnd.isac.fcs":{"source":"iana","extensions":["fcs"]},"application/vnd.iso11783-10+zip":{"source":"iana","compressible":false},"application/vnd.jam":{"source":"iana","extensions":["jam"]},"application/vnd.japannet-directory-service":{"source":"iana"},"application/vnd.japannet-jpnstore-wakeup":{"source":"iana"},"application/vnd.japannet-payment-wakeup":{"source":"iana"},"application/vnd.japannet-registration":{"source":"iana"},"application/vnd.japannet-registration-wakeup":{"source":"iana"},"application/vnd.japannet-setstore-wakeup":{"source":"iana"},"application/vnd.japannet-verification":{"source":"iana"},"application/vnd.japannet-verification-wakeup":{"source":"iana"},"application/vnd.jcp.javame.midlet-rms":{"source":"iana","extensions":["rms"]},"application/vnd.jisp":{"source":"iana","extensions":["jisp"]},"application/vnd.joost.joda-archive":{"source":"iana","extensions":["joda"]},"application/vnd.jsk.isdn-ngn":{"source":"iana"},"application/vnd.kahootz":{"source":"iana","extensions":["ktz","ktr"]},"application/vnd.kde.karbon":{"source":"iana","extensions":["karbon"]},"application/vnd.kde.kchart":{"source":"iana","extensions":["chrt"]},"application/vnd.kde.kformula":{"source":"iana","extensions":["kfo"]},"application/vnd.kde.kivio":{"source":"iana","extensions":["flw"]},"application/vnd.kde.kontour":{"source":"iana","extensions":["kon"]},"application/vnd.kde.kpresenter":{"source":"iana","extensions":["kpr","kpt"]},"application/vnd.kde.kspread":{"source":"iana","extensions":["ksp"]},"application/vnd.kde.kword":{"source":"iana","extensions":["kwd","kwt"]},"application/vnd.kenameaapp":{"source":"iana","extensions":["htke"]},"application/vnd.kidspiration":{"source":"iana","extensions":["kia"]},"application/vnd.kinar":{"source":"iana","extensions":["kne","knp"]},"application/vnd.koan":{"source":"iana","extensions":["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{"source":"iana","extensions":["sse"]},"application/vnd.las":{"source":"iana"},"application/vnd.las.las+json":{"source":"iana","compressible":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"application/vnd.loom":{"source":"iana"},"application/vnd.lotus-1-2-3":{"source":"iana","extensions":["123"]},"application/vnd.lotus-approach":{"source":"iana","extensions":["apr"]},"application/vnd.lotus-freelance":{"source":"iana","extensions":["pre"]},"application/vnd.lotus-notes":{"source":"iana","extensions":["nsf"]},"application/vnd.lotus-organizer":{"source":"iana","extensions":["org"]},"application/vnd.lotus-screencam":{"source":"iana","extensions":["scm"]},"application/vnd.lotus-wordpro":{"source":"iana","extensions":["lwp"]},"application/vnd.macports.portpkg":{"source":"iana","extensions":["portpkg"]},"application/vnd.mapbox-vector-tile":{"source":"iana","extensions":["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"application/vnd.maxmind.maxmind-db":{"source":"iana"},"application/vnd.mcd":{"source":"iana","extensions":["mcd"]},"application/vnd.medcalcdata":{"source":"iana","extensions":["mc1"]},"application/vnd.mediastation.cdkey":{"source":"iana","extensions":["cdkey"]},"application/vnd.meridian-slingshot":{"source":"iana"},"application/vnd.mfer":{"source":"iana","extensions":["mwf"]},"application/vnd.mfmp":{"source":"iana","extensions":["mfm"]},"application/vnd.micro+json":{"source":"iana","compressible":true},"application/vnd.micrografx.flo":{"source":"iana","extensions":["flo"]},"application/vnd.micrografx.igx":{"source":"iana","extensions":["igx"]},"application/vnd.microsoft.portable-executable":{"source":"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{"source":"iana"},"application/vnd.miele+json":{"source":"iana","compressible":true},"application/vnd.mif":{"source":"iana","extensions":["mif"]},"application/vnd.minisoft-hp3000-save":{"source":"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{"source":"iana"},"application/vnd.mobius.daf":{"source":"iana","extensions":["daf"]},"application/vnd.mobius.dis":{"source":"iana","extensions":["dis"]},"application/vnd.mobius.mbk":{"source":"iana","extensions":["mbk"]},"application/vnd.mobius.mqy":{"source":"iana","extensions":["mqy"]},"application/vnd.mobius.msl":{"source":"iana","extensions":["msl"]},"application/vnd.mobius.plc":{"source":"iana","extensions":["plc"]},"application/vnd.mobius.txf":{"source":"iana","extensions":["txf"]},"application/vnd.mophun.application":{"source":"iana","extensions":["mpn"]},"application/vnd.mophun.certificate":{"source":"iana","extensions":["mpc"]},"application/vnd.motorola.flexsuite":{"source":"iana"},"application/vnd.motorola.flexsuite.adsi":{"source":"iana"},"application/vnd.motorola.flexsuite.fis":{"source":"iana"},"application/vnd.motorola.flexsuite.gotap":{"source":"iana"},"application/vnd.motorola.flexsuite.kmr":{"source":"iana"},"application/vnd.motorola.flexsuite.ttc":{"source":"iana"},"application/vnd.motorola.flexsuite.wem":{"source":"iana"},"application/vnd.motorola.iprm":{"source":"iana"},"application/vnd.mozilla.xul+xml":{"source":"iana","compressible":true,"extensions":["xul"]},"application/vnd.ms-3mfdocument":{"source":"iana"},"application/vnd.ms-artgalry":{"source":"iana","extensions":["cil"]},"application/vnd.ms-asf":{"source":"iana"},"application/vnd.ms-cab-compressed":{"source":"iana","extensions":["cab"]},"application/vnd.ms-color.iccprofile":{"source":"apache"},"application/vnd.ms-excel":{"source":"iana","compressible":false,"extensions":["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{"source":"iana","extensions":["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{"source":"iana","extensions":["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{"source":"iana","extensions":["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{"source":"iana","extensions":["xltm"]},"application/vnd.ms-fontobject":{"source":"iana","compressible":true,"extensions":["eot"]},"application/vnd.ms-htmlhelp":{"source":"iana","extensions":["chm"]},"application/vnd.ms-ims":{"source":"iana","extensions":["ims"]},"application/vnd.ms-lrm":{"source":"iana","extensions":["lrm"]},"application/vnd.ms-office.activex+xml":{"source":"iana","compressible":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"extensions":["msg"]},"application/vnd.ms-package.obfuscated-opentype":{"source":"apache"},"application/vnd.ms-pki.seccat":{"source":"apache","extensions":["cat"]},"application/vnd.ms-pki.stl":{"source":"apache","extensions":["stl"]},"application/vnd.ms-playready.initiator+xml":{"source":"iana","compressible":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"extensions":["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{"source":"iana","extensions":["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{"source":"iana","extensions":["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{"source":"iana","extensions":["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{"source":"iana","extensions":["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{"source":"iana","extensions":["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{"source":"iana","compressible":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"application/vnd.ms-project":{"source":"iana","extensions":["mpp","mpt"]},"application/vnd.ms-tnef":{"source":"iana"},"application/vnd.ms-windows.devicepairing":{"source":"iana"},"application/vnd.ms-windows.nwprinting.oob":{"source":"iana"},"application/vnd.ms-windows.printerpairing":{"source":"iana"},"application/vnd.ms-windows.wsd.oob":{"source":"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.lic-resp":{"source":"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.meter-resp":{"source":"iana"},"application/vnd.ms-word.document.macroenabled.12":{"source":"iana","extensions":["docm"]},"application/vnd.ms-word.template.macroenabled.12":{"source":"iana","extensions":["dotm"]},"application/vnd.ms-works":{"source":"iana","extensions":["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{"source":"iana","extensions":["wpl"]},"application/vnd.ms-xpsdocument":{"source":"iana","compressible":false,"extensions":["xps"]},"application/vnd.msa-disk-image":{"source":"iana"},"application/vnd.mseq":{"source":"iana","extensions":["mseq"]},"application/vnd.msign":{"source":"iana"},"application/vnd.multiad.creator":{"source":"iana"},"application/vnd.multiad.creator.cif":{"source":"iana"},"application/vnd.music-niff":{"source":"iana"},"application/vnd.musician":{"source":"iana","extensions":["mus"]},"application/vnd.muvee.style":{"source":"iana","extensions":["msty"]},"application/vnd.mynfc":{"source":"iana","extensions":["taglet"]},"application/vnd.nacamar.ybrid+json":{"source":"iana","compressible":true},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"application/vnd.nebumind.line":{"source":"iana"},"application/vnd.nervana":{"source":"iana"},"application/vnd.netfpx":{"source":"iana"},"application/vnd.neurolanguage.nlu":{"source":"iana","extensions":["nlu"]},"application/vnd.nimn":{"source":"iana"},"application/vnd.nintendo.nitro.rom":{"source":"iana"},"application/vnd.nintendo.snes.rom":{"source":"iana"},"application/vnd.nitf":{"source":"iana","extensions":["ntf","nitf"]},"application/vnd.noblenet-directory":{"source":"iana","extensions":["nnd"]},"application/vnd.noblenet-sealer":{"source":"iana","extensions":["nns"]},"application/vnd.noblenet-web":{"source":"iana","extensions":["nnw"]},"application/vnd.nokia.catalogs":{"source":"iana"},"application/vnd.nokia.conml+wbxml":{"source":"iana"},"application/vnd.nokia.conml+xml":{"source":"iana","compressible":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"extensions":["ac"]},"application/vnd.nokia.n-gage.data":{"source":"iana","extensions":["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{"source":"iana","extensions":["n-gage"]},"application/vnd.nokia.ncd":{"source":"iana"},"application/vnd.nokia.pcd+wbxml":{"source":"iana"},"application/vnd.nokia.pcd+xml":{"source":"iana","compressible":true},"application/vnd.nokia.radio-preset":{"source":"iana","extensions":["rpst"]},"application/vnd.nokia.radio-presets":{"source":"iana","extensions":["rpss"]},"application/vnd.novadigm.edm":{"source":"iana","extensions":["edm"]},"application/vnd.novadigm.edx":{"source":"iana","extensions":["edx"]},"application/vnd.novadigm.ext":{"source":"iana","extensions":["ext"]},"application/vnd.ntt-local.content-share":{"source":"iana"},"application/vnd.ntt-local.file-transfer":{"source":"iana"},"application/vnd.ntt-local.ogw_remote-access":{"source":"iana"},"application/vnd.ntt-local.sip-ta_remote":{"source":"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{"source":"iana"},"application/vnd.oasis.opendocument.chart":{"source":"iana","extensions":["odc"]},"application/vnd.oasis.opendocument.chart-template":{"source":"iana","extensions":["otc"]},"application/vnd.oasis.opendocument.database":{"source":"iana","extensions":["odb"]},"application/vnd.oasis.opendocument.formula":{"source":"iana","extensions":["odf"]},"application/vnd.oasis.opendocument.formula-template":{"source":"iana","extensions":["odft"]},"application/vnd.oasis.opendocument.graphics":{"source":"iana","compressible":false,"extensions":["odg"]},"application/vnd.oasis.opendocument.graphics-template":{"source":"iana","extensions":["otg"]},"application/vnd.oasis.opendocument.image":{"source":"iana","extensions":["odi"]},"application/vnd.oasis.opendocument.image-template":{"source":"iana","extensions":["oti"]},"application/vnd.oasis.opendocument.presentation":{"source":"iana","compressible":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"extensions":["odt"]},"application/vnd.oasis.opendocument.text-master":{"source":"iana","extensions":["odm"]},"application/vnd.oasis.opendocument.text-template":{"source":"iana","extensions":["ott"]},"application/vnd.oasis.opendocument.text-web":{"source":"iana","extensions":["oth"]},"application/vnd.obn":{"source":"iana"},"application/vnd.ocf+cbor":{"source":"iana"},"application/vnd.oci.image.manifest.v1+json":{"source":"iana","compressible":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"application/vnd.olpc-sugar":{"source":"iana","extensions":["xo"]},"application/vnd.oma-scws-config":{"source":"iana"},"application/vnd.oma-scws-http-request":{"source":"iana"},"application/vnd.oma-scws-http-response":{"source":"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sgdu":{"source":"iana"},"application/vnd.oma.bcast.simple-symbol-container":{"source":"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omaloc-supl-init":{"source":"iana"},"application/vnd.onepager":{"source":"iana"},"application/vnd.onepagertamp":{"source":"iana"},"application/vnd.onepagertamx":{"source":"iana"},"application/vnd.onepagertat":{"source":"iana"},"application/vnd.onepagertatp":{"source":"iana"},"application/vnd.onepagertatx":{"source":"iana"},"application/vnd.openblox.game+xml":{"source":"iana","compressible":true,"extensions":["obgx"]},"application/vnd.openblox.game-binary":{"source":"iana"},"application/vnd.openeye.oeb":{"source":"iana"},"application/vnd.openofficeorg.extension":{"source":"apache","extensions":["oxt"]},"application/vnd.openstreetmap.data+xml":{"source":"iana","compressible":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"application/vnd.orange.indata":{"source":"iana"},"application/vnd.osa.netdeploy":{"source":"iana"},"application/vnd.osgeo.mapguide.package":{"source":"iana","extensions":["mgp"]},"application/vnd.osgi.bundle":{"source":"iana"},"application/vnd.osgi.dp":{"source":"iana","extensions":["dp"]},"application/vnd.osgi.subsystem":{"source":"iana","extensions":["esa"]},"application/vnd.otps.ct-kip+xml":{"source":"iana","compressible":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"application/vnd.palm":{"source":"iana","extensions":["pdb","pqa","oprc"]},"application/vnd.panoply":{"source":"iana"},"application/vnd.paos.xml":{"source":"iana"},"application/vnd.patentdive":{"source":"iana"},"application/vnd.patientecommsdoc":{"source":"iana"},"application/vnd.pawaafile":{"source":"iana","extensions":["paw"]},"application/vnd.pcos":{"source":"iana"},"application/vnd.pg.format":{"source":"iana","extensions":["str"]},"application/vnd.pg.osasli":{"source":"iana","extensions":["ei6"]},"application/vnd.piaccess.application-licence":{"source":"iana"},"application/vnd.picsel":{"source":"iana","extensions":["efif"]},"application/vnd.pmi.widget":{"source":"iana","extensions":["wg"]},"application/vnd.poc.group-advertisement+xml":{"source":"iana","compressible":true},"application/vnd.pocketlearn":{"source":"iana","extensions":["plf"]},"application/vnd.powerbuilder6":{"source":"iana","extensions":["pbd"]},"application/vnd.powerbuilder6-s":{"source":"iana"},"application/vnd.powerbuilder7":{"source":"iana"},"application/vnd.powerbuilder7-s":{"source":"iana"},"application/vnd.powerbuilder75":{"source":"iana"},"application/vnd.powerbuilder75-s":{"source":"iana"},"application/vnd.preminet":{"source":"iana"},"application/vnd.previewsystems.box":{"source":"iana","extensions":["box"]},"application/vnd.proteus.magazine":{"source":"iana","extensions":["mgz"]},"application/vnd.psfs":{"source":"iana"},"application/vnd.publishare-delta-tree":{"source":"iana","extensions":["qps"]},"application/vnd.pvi.ptid1":{"source":"iana","extensions":["ptid"]},"application/vnd.pwg-multiplexed":{"source":"iana"},"application/vnd.pwg-xhtml-print+xml":{"source":"iana","compressible":true},"application/vnd.qualcomm.brew-app-res":{"source":"iana"},"application/vnd.quarantainenet":{"source":"iana"},"application/vnd.quark.quarkxpress":{"source":"iana","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{"source":"iana"},"application/vnd.radisys.moml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"application/vnd.rainstor.data":{"source":"iana"},"application/vnd.rapid":{"source":"iana"},"application/vnd.rar":{"source":"iana","extensions":["rar"]},"application/vnd.realvnc.bed":{"source":"iana","extensions":["bed"]},"application/vnd.recordare.musicxml":{"source":"iana","extensions":["mxl"]},"application/vnd.recordare.musicxml+xml":{"source":"iana","compressible":true,"extensions":["musicxml"]},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"application/vnd.rig.cryptonote":{"source":"iana","extensions":["cryptonote"]},"application/vnd.rim.cod":{"source":"apache","extensions":["cod"]},"application/vnd.rn-realmedia":{"source":"apache","extensions":["rm"]},"application/vnd.rn-realmedia-vbr":{"source":"apache","extensions":["rmvb"]},"application/vnd.route66.link66+xml":{"source":"iana","compressible":true,"extensions":["link66"]},"application/vnd.rs-274x":{"source":"iana"},"application/vnd.ruckus.download":{"source":"iana"},"application/vnd.s3sms":{"source":"iana"},"application/vnd.sailingtracker.track":{"source":"iana","extensions":["st"]},"application/vnd.sar":{"source":"iana"},"application/vnd.sbm.cid":{"source":"iana"},"application/vnd.sbm.mid2":{"source":"iana"},"application/vnd.scribus":{"source":"iana"},"application/vnd.sealed.3df":{"source":"iana"},"application/vnd.sealed.csf":{"source":"iana"},"application/vnd.sealed.doc":{"source":"iana"},"application/vnd.sealed.eml":{"source":"iana"},"application/vnd.sealed.mht":{"source":"iana"},"application/vnd.sealed.net":{"source":"iana"},"application/vnd.sealed.ppt":{"source":"iana"},"application/vnd.sealed.tiff":{"source":"iana"},"application/vnd.sealed.xls":{"source":"iana"},"application/vnd.sealedmedia.softseal.html":{"source":"iana"},"application/vnd.sealedmedia.softseal.pdf":{"source":"iana"},"application/vnd.seemail":{"source":"iana","extensions":["see"]},"application/vnd.seis+json":{"source":"iana","compressible":true},"application/vnd.sema":{"source":"iana","extensions":["sema"]},"application/vnd.semd":{"source":"iana","extensions":["semd"]},"application/vnd.semf":{"source":"iana","extensions":["semf"]},"application/vnd.shade-save-file":{"source":"iana"},"application/vnd.shana.informed.formdata":{"source":"iana","extensions":["ifm"]},"application/vnd.shana.informed.formtemplate":{"source":"iana","extensions":["itp"]},"application/vnd.shana.informed.interchange":{"source":"iana","extensions":["iif"]},"application/vnd.shana.informed.package":{"source":"iana","extensions":["ipk"]},"application/vnd.shootproof+json":{"source":"iana","compressible":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"application/vnd.shp":{"source":"iana"},"application/vnd.shx":{"source":"iana"},"application/vnd.sigrok.session":{"source":"iana"},"application/vnd.simtech-mindmapper":{"source":"iana","extensions":["twd","twds"]},"application/vnd.siren+json":{"source":"iana","compressible":true},"application/vnd.smaf":{"source":"iana","extensions":["mmf"]},"application/vnd.smart.notebook":{"source":"iana"},"application/vnd.smart.teacher":{"source":"iana","extensions":["teacher"]},"application/vnd.snesdev-page-table":{"source":"iana"},"application/vnd.software602.filler.form+xml":{"source":"iana","compressible":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"extensions":["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{"source":"iana","extensions":["dxp"]},"application/vnd.spotfire.sfs":{"source":"iana","extensions":["sfs"]},"application/vnd.sqlite3":{"source":"iana"},"application/vnd.sss-cod":{"source":"iana"},"application/vnd.sss-dtf":{"source":"iana"},"application/vnd.sss-ntf":{"source":"iana"},"application/vnd.stardivision.calc":{"source":"apache","extensions":["sdc"]},"application/vnd.stardivision.draw":{"source":"apache","extensions":["sda"]},"application/vnd.stardivision.impress":{"source":"apache","extensions":["sdd"]},"application/vnd.stardivision.math":{"source":"apache","extensions":["smf"]},"application/vnd.stardivision.writer":{"source":"apache","extensions":["sdw","vor"]},"application/vnd.stardivision.writer-global":{"source":"apache","extensions":["sgl"]},"application/vnd.stepmania.package":{"source":"iana","extensions":["smzip"]},"application/vnd.stepmania.stepchart":{"source":"iana","extensions":["sm"]},"application/vnd.street-stream":{"source":"iana"},"application/vnd.sun.wadl+xml":{"source":"iana","compressible":true,"extensions":["wadl"]},"application/vnd.sun.xml.calc":{"source":"apache","extensions":["sxc"]},"application/vnd.sun.xml.calc.template":{"source":"apache","extensions":["stc"]},"application/vnd.sun.xml.draw":{"source":"apache","extensions":["sxd"]},"application/vnd.sun.xml.draw.template":{"source":"apache","extensions":["std"]},"application/vnd.sun.xml.impress":{"source":"apache","extensions":["sxi"]},"application/vnd.sun.xml.impress.template":{"source":"apache","extensions":["sti"]},"application/vnd.sun.xml.math":{"source":"apache","extensions":["sxm"]},"application/vnd.sun.xml.writer":{"source":"apache","extensions":["sxw"]},"application/vnd.sun.xml.writer.global":{"source":"apache","extensions":["sxg"]},"application/vnd.sun.xml.writer.template":{"source":"apache","extensions":["stw"]},"application/vnd.sus-calendar":{"source":"iana","extensions":["sus","susp"]},"application/vnd.svd":{"source":"iana","extensions":["svd"]},"application/vnd.swiftview-ics":{"source":"iana"},"application/vnd.sycle+xml":{"source":"iana","compressible":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xsm"]},"application/vnd.syncml.dm+wbxml":{"source":"iana","charset":"UTF-8","extensions":["bdm"]},"application/vnd.syncml.dm+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xdm"]},"application/vnd.syncml.dm.notification":{"source":"iana"},"application/vnd.syncml.dmddf+wbxml":{"source":"iana"},"application/vnd.syncml.dmddf+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"application/vnd.tao.intent-module-archive":{"source":"iana","extensions":["tao"]},"application/vnd.tcpdump.pcap":{"source":"iana","extensions":["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{"source":"iana","compressible":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"application/vnd.tml":{"source":"iana"},"application/vnd.tmobile-livetv":{"source":"iana","extensions":["tmo"]},"application/vnd.tri.onesource":{"source":"iana"},"application/vnd.trid.tpt":{"source":"iana","extensions":["tpt"]},"application/vnd.triscape.mxs":{"source":"iana","extensions":["mxs"]},"application/vnd.trueapp":{"source":"iana","extensions":["tra"]},"application/vnd.truedoc":{"source":"iana"},"application/vnd.ubisoft.webplayer":{"source":"iana"},"application/vnd.ufdl":{"source":"iana","extensions":["ufd","ufdl"]},"application/vnd.uiq.theme":{"source":"iana","extensions":["utz"]},"application/vnd.umajin":{"source":"iana","extensions":["umj"]},"application/vnd.unity":{"source":"iana","extensions":["unityweb"]},"application/vnd.uoml+xml":{"source":"iana","compressible":true,"extensions":["uoml"]},"application/vnd.uplanet.alert":{"source":"iana"},"application/vnd.uplanet.alert-wbxml":{"source":"iana"},"application/vnd.uplanet.bearer-choice":{"source":"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{"source":"iana"},"application/vnd.uplanet.cacheop":{"source":"iana"},"application/vnd.uplanet.cacheop-wbxml":{"source":"iana"},"application/vnd.uplanet.channel":{"source":"iana"},"application/vnd.uplanet.channel-wbxml":{"source":"iana"},"application/vnd.uplanet.list":{"source":"iana"},"application/vnd.uplanet.list-wbxml":{"source":"iana"},"application/vnd.uplanet.listcmd":{"source":"iana"},"application/vnd.uplanet.listcmd-wbxml":{"source":"iana"},"application/vnd.uplanet.signal":{"source":"iana"},"application/vnd.uri-map":{"source":"iana"},"application/vnd.valve.source.material":{"source":"iana"},"application/vnd.vcx":{"source":"iana","extensions":["vcx"]},"application/vnd.vd-study":{"source":"iana"},"application/vnd.vectorworks":{"source":"iana"},"application/vnd.vel+json":{"source":"iana","compressible":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"application/vnd.veryant.thin":{"source":"iana"},"application/vnd.ves.encrypted":{"source":"iana"},"application/vnd.vidsoft.vidconference":{"source":"iana"},"application/vnd.visio":{"source":"iana","extensions":["vsd","vst","vss","vsw"]},"application/vnd.visionary":{"source":"iana","extensions":["vis"]},"application/vnd.vividence.scriptfile":{"source":"iana"},"application/vnd.vsf":{"source":"iana","extensions":["vsf"]},"application/vnd.wap.sic":{"source":"iana"},"application/vnd.wap.slc":{"source":"iana"},"application/vnd.wap.wbxml":{"source":"iana","charset":"UTF-8","extensions":["wbxml"]},"application/vnd.wap.wmlc":{"source":"iana","extensions":["wmlc"]},"application/vnd.wap.wmlscriptc":{"source":"iana","extensions":["wmlsc"]},"application/vnd.webturbo":{"source":"iana","extensions":["wtb"]},"application/vnd.wfa.dpp":{"source":"iana"},"application/vnd.wfa.p2p":{"source":"iana"},"application/vnd.wfa.wsc":{"source":"iana"},"application/vnd.windows.devicepairing":{"source":"iana"},"application/vnd.wmc":{"source":"iana"},"application/vnd.wmf.bootstrap":{"source":"iana"},"application/vnd.wolfram.mathematica":{"source":"iana"},"application/vnd.wolfram.mathematica.package":{"source":"iana"},"application/vnd.wolfram.player":{"source":"iana","extensions":["nbp"]},"application/vnd.wordperfect":{"source":"iana","extensions":["wpd"]},"application/vnd.wqd":{"source":"iana","extensions":["wqd"]},"application/vnd.wrq-hp3000-labelled":{"source":"iana"},"application/vnd.wt.stf":{"source":"iana","extensions":["stf"]},"application/vnd.wv.csp+wbxml":{"source":"iana"},"application/vnd.wv.csp+xml":{"source":"iana","compressible":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"application/vnd.xara":{"source":"iana","extensions":["xar"]},"application/vnd.xfdl":{"source":"iana","extensions":["xfdl"]},"application/vnd.xfdl.webform":{"source":"iana"},"application/vnd.xmi+xml":{"source":"iana","compressible":true},"application/vnd.xmpie.cpkg":{"source":"iana"},"application/vnd.xmpie.dpkg":{"source":"iana"},"application/vnd.xmpie.plan":{"source":"iana"},"application/vnd.xmpie.ppkg":{"source":"iana"},"application/vnd.xmpie.xlim":{"source":"iana"},"application/vnd.yamaha.hv-dic":{"source":"iana","extensions":["hvd"]},"application/vnd.yamaha.hv-script":{"source":"iana","extensions":["hvs"]},"application/vnd.yamaha.hv-voice":{"source":"iana","extensions":["hvp"]},"application/vnd.yamaha.openscoreformat":{"source":"iana","extensions":["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{"source":"iana","compressible":true,"extensions":["osfpvg"]},"application/vnd.yamaha.remote-setup":{"source":"iana"},"application/vnd.yamaha.smaf-audio":{"source":"iana","extensions":["saf"]},"application/vnd.yamaha.smaf-phrase":{"source":"iana","extensions":["spf"]},"application/vnd.yamaha.through-ngn":{"source":"iana"},"application/vnd.yamaha.tunnel-udpencap":{"source":"iana"},"application/vnd.yaoweme":{"source":"iana"},"application/vnd.yellowriver-custom-menu":{"source":"iana","extensions":["cmp"]},"application/vnd.youtube.yt":{"source":"iana"},"application/vnd.zul":{"source":"iana","extensions":["zir","zirz"]},"application/vnd.zzazz.deck+xml":{"source":"iana","compressible":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"application/whoispp-query":{"source":"iana"},"application/whoispp-response":{"source":"iana"},"application/widget":{"source":"iana","extensions":["wgt"]},"application/winhlp":{"source":"apache","extensions":["hlp"]},"application/wita":{"source":"iana"},"application/wordperfect5.1":{"source":"iana"},"application/wsdl+xml":{"source":"iana","compressible":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"extensions":["7z"]},"application/x-abiword":{"source":"apache","extensions":["abw"]},"application/x-ace-compressed":{"source":"apache","extensions":["ace"]},"application/x-amf":{"source":"apache"},"application/x-apple-diskimage":{"source":"apache","extensions":["dmg"]},"application/x-arj":{"compressible":false,"extensions":["arj"]},"application/x-authorware-bin":{"source":"apache","extensions":["aab","x32","u32","vox"]},"application/x-authorware-map":{"source":"apache","extensions":["aam"]},"application/x-authorware-seg":{"source":"apache","extensions":["aas"]},"application/x-bcpio":{"source":"apache","extensions":["bcpio"]},"application/x-bdoc":{"compressible":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"extensions":["bz2","boz"]},"application/x-cbr":{"source":"apache","extensions":["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{"source":"apache","extensions":["vcd"]},"application/x-cfs-compressed":{"source":"apache","extensions":["cfs"]},"application/x-chat":{"source":"apache","extensions":["chat"]},"application/x-chess-pgn":{"source":"apache","extensions":["pgn"]},"application/x-chrome-extension":{"extensions":["crx"]},"application/x-cocoa":{"source":"nginx","extensions":["cco"]},"application/x-compress":{"source":"apache"},"application/x-conference":{"source":"apache","extensions":["nsc"]},"application/x-cpio":{"source":"apache","extensions":["cpio"]},"application/x-csh":{"source":"apache","extensions":["csh"]},"application/x-deb":{"compressible":false},"application/x-debian-package":{"source":"apache","extensions":["deb","udeb"]},"application/x-dgc-compressed":{"source":"apache","extensions":["dgc"]},"application/x-director":{"source":"apache","extensions":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{"source":"apache","extensions":["wad"]},"application/x-dtbncx+xml":{"source":"apache","compressible":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"extensions":["dvi"]},"application/x-envoy":{"source":"apache","extensions":["evy"]},"application/x-eva":{"source":"apache","extensions":["eva"]},"application/x-font-bdf":{"source":"apache","extensions":["bdf"]},"application/x-font-dos":{"source":"apache"},"application/x-font-framemaker":{"source":"apache"},"application/x-font-ghostscript":{"source":"apache","extensions":["gsf"]},"application/x-font-libgrx":{"source":"apache"},"application/x-font-linux-psf":{"source":"apache","extensions":["psf"]},"application/x-font-pcf":{"source":"apache","extensions":["pcf"]},"application/x-font-snf":{"source":"apache","extensions":["snf"]},"application/x-font-speedo":{"source":"apache"},"application/x-font-sunos-news":{"source":"apache"},"application/x-font-type1":{"source":"apache","extensions":["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{"source":"apache"},"application/x-freearc":{"source":"apache","extensions":["arc"]},"application/x-futuresplash":{"source":"apache","extensions":["spl"]},"application/x-gca-compressed":{"source":"apache","extensions":["gca"]},"application/x-glulx":{"source":"apache","extensions":["ulx"]},"application/x-gnumeric":{"source":"apache","extensions":["gnumeric"]},"application/x-gramps-xml":{"source":"apache","extensions":["gramps"]},"application/x-gtar":{"source":"apache","extensions":["gtar"]},"application/x-gzip":{"source":"apache"},"application/x-hdf":{"source":"apache","extensions":["hdf"]},"application/x-httpd-php":{"compressible":true,"extensions":["php"]},"application/x-install-instructions":{"source":"apache","extensions":["install"]},"application/x-iso9660-image":{"source":"apache","extensions":["iso"]},"application/x-iwork-keynote-sffkey":{"extensions":["key"]},"application/x-iwork-numbers-sffnumbers":{"extensions":["numbers"]},"application/x-iwork-pages-sffpages":{"extensions":["pages"]},"application/x-java-archive-diff":{"source":"nginx","extensions":["jardiff"]},"application/x-java-jnlp-file":{"source":"apache","compressible":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"extensions":["latex"]},"application/x-lua-bytecode":{"extensions":["luac"]},"application/x-lzh-compressed":{"source":"apache","extensions":["lzh","lha"]},"application/x-makeself":{"source":"nginx","extensions":["run"]},"application/x-mie":{"source":"apache","extensions":["mie"]},"application/x-mobipocket-ebook":{"source":"apache","extensions":["prc","mobi"]},"application/x-mpegurl":{"compressible":false},"application/x-ms-application":{"source":"apache","extensions":["application"]},"application/x-ms-shortcut":{"source":"apache","extensions":["lnk"]},"application/x-ms-wmd":{"source":"apache","extensions":["wmd"]},"application/x-ms-wmz":{"source":"apache","extensions":["wmz"]},"application/x-ms-xbap":{"source":"apache","extensions":["xbap"]},"application/x-msaccess":{"source":"apache","extensions":["mdb"]},"application/x-msbinder":{"source":"apache","extensions":["obd"]},"application/x-mscardfile":{"source":"apache","extensions":["crd"]},"application/x-msclip":{"source":"apache","extensions":["clp"]},"application/x-msdos-program":{"extensions":["exe"]},"application/x-msdownload":{"source":"apache","extensions":["exe","dll","com","bat","msi"]},"application/x-msmediaview":{"source":"apache","extensions":["mvb","m13","m14"]},"application/x-msmetafile":{"source":"apache","extensions":["wmf","wmz","emf","emz"]},"application/x-msmoney":{"source":"apache","extensions":["mny"]},"application/x-mspublisher":{"source":"apache","extensions":["pub"]},"application/x-msschedule":{"source":"apache","extensions":["scd"]},"application/x-msterminal":{"source":"apache","extensions":["trm"]},"application/x-mswrite":{"source":"apache","extensions":["wri"]},"application/x-netcdf":{"source":"apache","extensions":["nc","cdf"]},"application/x-ns-proxy-autoconfig":{"compressible":true,"extensions":["pac"]},"application/x-nzb":{"source":"apache","extensions":["nzb"]},"application/x-perl":{"source":"nginx","extensions":["pl","pm"]},"application/x-pilot":{"source":"nginx","extensions":["prc","pdb"]},"application/x-pkcs12":{"source":"apache","compressible":false,"extensions":["p12","pfx"]},"application/x-pkcs7-certificates":{"source":"apache","extensions":["p7b","spc"]},"application/x-pkcs7-certreqresp":{"source":"apache","extensions":["p7r"]},"application/x-pki-message":{"source":"iana"},"application/x-rar-compressed":{"source":"apache","compressible":false,"extensions":["rar"]},"application/x-redhat-package-manager":{"source":"nginx","extensions":["rpm"]},"application/x-research-info-systems":{"source":"apache","extensions":["ris"]},"application/x-sea":{"source":"nginx","extensions":["sea"]},"application/x-sh":{"source":"apache","compressible":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"extensions":["sit"]},"application/x-stuffitx":{"source":"apache","extensions":["sitx"]},"application/x-subrip":{"source":"apache","extensions":["srt"]},"application/x-sv4cpio":{"source":"apache","extensions":["sv4cpio"]},"application/x-sv4crc":{"source":"apache","extensions":["sv4crc"]},"application/x-t3vm-image":{"source":"apache","extensions":["t3"]},"application/x-tads":{"source":"apache","extensions":["gam"]},"application/x-tar":{"source":"apache","compressible":true,"extensions":["tar"]},"application/x-tcl":{"source":"apache","extensions":["tcl","tk"]},"application/x-tex":{"source":"apache","extensions":["tex"]},"application/x-tex-tfm":{"source":"apache","extensions":["tfm"]},"application/x-texinfo":{"source":"apache","extensions":["texinfo","texi"]},"application/x-tgif":{"source":"apache","extensions":["obj"]},"application/x-ustar":{"source":"apache","extensions":["ustar"]},"application/x-virtualbox-hdd":{"compressible":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"application/x-x509-ca-cert":{"source":"iana","extensions":["der","crt","pem"]},"application/x-x509-ca-ra-cert":{"source":"iana"},"application/x-x509-next-ca-cert":{"source":"iana"},"application/x-xfig":{"source":"apache","extensions":["fig"]},"application/x-xliff+xml":{"source":"apache","compressible":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"extensions":["xpi"]},"application/x-xz":{"source":"apache","extensions":["xz"]},"application/x-zmachine":{"source":"apache","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{"source":"iana"},"application/xacml+xml":{"source":"iana","compressible":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zlib":{"source":"iana"},"application/zstd":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"extensions":["3gpp"]},"audio/3gpp2":{"source":"iana"},"audio/aac":{"source":"iana"},"audio/ac3":{"source":"iana"},"audio/adpcm":{"source":"apache","extensions":["adp"]},"audio/amr":{"source":"iana","extensions":["amr"]},"audio/amr-wb":{"source":"iana"},"audio/amr-wb+":{"source":"iana"},"audio/aptx":{"source":"iana"},"audio/asc":{"source":"iana"},"audio/atrac-advanced-lossless":{"source":"iana"},"audio/atrac-x":{"source":"iana"},"audio/atrac3":{"source":"iana"},"audio/basic":{"source":"iana","compressible":false,"extensions":["au","snd"]},"audio/bv16":{"source":"iana"},"audio/bv32":{"source":"iana"},"audio/clearmode":{"source":"iana"},"audio/cn":{"source":"iana"},"audio/dat12":{"source":"iana"},"audio/dls":{"source":"iana"},"audio/dsr-es201108":{"source":"iana"},"audio/dsr-es202050":{"source":"iana"},"audio/dsr-es202211":{"source":"iana"},"audio/dsr-es202212":{"source":"iana"},"audio/dv":{"source":"iana"},"audio/dvi4":{"source":"iana"},"audio/eac3":{"source":"iana"},"audio/encaprtp":{"source":"iana"},"audio/evrc":{"source":"iana"},"audio/evrc-qcp":{"source":"iana"},"audio/evrc0":{"source":"iana"},"audio/evrc1":{"source":"iana"},"audio/evrcb":{"source":"iana"},"audio/evrcb0":{"source":"iana"},"audio/evrcb1":{"source":"iana"},"audio/evrcnw":{"source":"iana"},"audio/evrcnw0":{"source":"iana"},"audio/evrcnw1":{"source":"iana"},"audio/evrcwb":{"source":"iana"},"audio/evrcwb0":{"source":"iana"},"audio/evrcwb1":{"source":"iana"},"audio/evs":{"source":"iana"},"audio/flexfec":{"source":"iana"},"audio/fwdred":{"source":"iana"},"audio/g711-0":{"source":"iana"},"audio/g719":{"source":"iana"},"audio/g722":{"source":"iana"},"audio/g7221":{"source":"iana"},"audio/g723":{"source":"iana"},"audio/g726-16":{"source":"iana"},"audio/g726-24":{"source":"iana"},"audio/g726-32":{"source":"iana"},"audio/g726-40":{"source":"iana"},"audio/g728":{"source":"iana"},"audio/g729":{"source":"iana"},"audio/g7291":{"source":"iana"},"audio/g729d":{"source":"iana"},"audio/g729e":{"source":"iana"},"audio/gsm":{"source":"iana"},"audio/gsm-efr":{"source":"iana"},"audio/gsm-hr-08":{"source":"iana"},"audio/ilbc":{"source":"iana"},"audio/ip-mr_v2.5":{"source":"iana"},"audio/isac":{"source":"apache"},"audio/l16":{"source":"iana"},"audio/l20":{"source":"iana"},"audio/l24":{"source":"iana","compressible":false},"audio/l8":{"source":"iana"},"audio/lpc":{"source":"iana"},"audio/melp":{"source":"iana"},"audio/melp1200":{"source":"iana"},"audio/melp2400":{"source":"iana"},"audio/melp600":{"source":"iana"},"audio/mhas":{"source":"iana"},"audio/midi":{"source":"apache","extensions":["mid","midi","kar","rmi"]},"audio/mobile-xmf":{"source":"iana","extensions":["mxmf"]},"audio/mp3":{"compressible":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"extensions":["oga","ogg","spx","opus"]},"audio/opus":{"source":"iana"},"audio/parityfec":{"source":"iana"},"audio/pcma":{"source":"iana"},"audio/pcma-wb":{"source":"iana"},"audio/pcmu":{"source":"iana"},"audio/pcmu-wb":{"source":"iana"},"audio/prs.sid":{"source":"iana"},"audio/qcelp":{"source":"iana"},"audio/raptorfec":{"source":"iana"},"audio/red":{"source":"iana"},"audio/rtp-enc-aescm128":{"source":"iana"},"audio/rtp-midi":{"source":"iana"},"audio/rtploopback":{"source":"iana"},"audio/rtx":{"source":"iana"},"audio/s3m":{"source":"apache","extensions":["s3m"]},"audio/scip":{"source":"iana"},"audio/silk":{"source":"apache","extensions":["sil"]},"audio/smv":{"source":"iana"},"audio/smv-qcp":{"source":"iana"},"audio/smv0":{"source":"iana"},"audio/sofa":{"source":"iana"},"audio/sp-midi":{"source":"iana"},"audio/speex":{"source":"iana"},"audio/t140c":{"source":"iana"},"audio/t38":{"source":"iana"},"audio/telephone-event":{"source":"iana"},"audio/tetra_acelp":{"source":"iana"},"audio/tetra_acelp_bb":{"source":"iana"},"audio/tone":{"source":"iana"},"audio/tsvcis":{"source":"iana"},"audio/uemclip":{"source":"iana"},"audio/ulpfec":{"source":"iana"},"audio/usac":{"source":"iana"},"audio/vdvi":{"source":"iana"},"audio/vmr-wb":{"source":"iana"},"audio/vnd.3gpp.iufp":{"source":"iana"},"audio/vnd.4sb":{"source":"iana"},"audio/vnd.audiokoz":{"source":"iana"},"audio/vnd.celp":{"source":"iana"},"audio/vnd.cisco.nse":{"source":"iana"},"audio/vnd.cmles.radio-events":{"source":"iana"},"audio/vnd.cns.anp1":{"source":"iana"},"audio/vnd.cns.inf1":{"source":"iana"},"audio/vnd.dece.audio":{"source":"iana","extensions":["uva","uvva"]},"audio/vnd.digital-winds":{"source":"iana","extensions":["eol"]},"audio/vnd.dlna.adts":{"source":"iana"},"audio/vnd.dolby.heaac.1":{"source":"iana"},"audio/vnd.dolby.heaac.2":{"source":"iana"},"audio/vnd.dolby.mlp":{"source":"iana"},"audio/vnd.dolby.mps":{"source":"iana"},"audio/vnd.dolby.pl2":{"source":"iana"},"audio/vnd.dolby.pl2x":{"source":"iana"},"audio/vnd.dolby.pl2z":{"source":"iana"},"audio/vnd.dolby.pulse.1":{"source":"iana"},"audio/vnd.dra":{"source":"iana","extensions":["dra"]},"audio/vnd.dts":{"source":"iana","extensions":["dts"]},"audio/vnd.dts.hd":{"source":"iana","extensions":["dtshd"]},"audio/vnd.dts.uhd":{"source":"iana"},"audio/vnd.dvb.file":{"source":"iana"},"audio/vnd.everad.plj":{"source":"iana"},"audio/vnd.hns.audio":{"source":"iana"},"audio/vnd.lucent.voice":{"source":"iana","extensions":["lvp"]},"audio/vnd.ms-playready.media.pya":{"source":"iana","extensions":["pya"]},"audio/vnd.nokia.mobile-xmf":{"source":"iana"},"audio/vnd.nortel.vbk":{"source":"iana"},"audio/vnd.nuera.ecelp4800":{"source":"iana","extensions":["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{"source":"iana","extensions":["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{"source":"iana","extensions":["ecelp9600"]},"audio/vnd.octel.sbc":{"source":"iana"},"audio/vnd.presonus.multitrack":{"source":"iana"},"audio/vnd.qcelp":{"source":"iana"},"audio/vnd.rhetorex.32kadpcm":{"source":"iana"},"audio/vnd.rip":{"source":"iana","extensions":["rip"]},"audio/vnd.rn-realaudio":{"compressible":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"extensions":["caf"]},"audio/x-flac":{"source":"apache","extensions":["flac"]},"audio/x-m4a":{"source":"nginx","extensions":["m4a"]},"audio/x-matroska":{"source":"apache","extensions":["mka"]},"audio/x-mpegurl":{"source":"apache","extensions":["m3u"]},"audio/x-ms-wax":{"source":"apache","extensions":["wax"]},"audio/x-ms-wma":{"source":"apache","extensions":["wma"]},"audio/x-pn-realaudio":{"source":"apache","extensions":["ram","ra"]},"audio/x-pn-realaudio-plugin":{"source":"apache","extensions":["rmp"]},"audio/x-realaudio":{"source":"nginx","extensions":["ra"]},"audio/x-tta":{"source":"apache"},"audio/x-wav":{"source":"apache","extensions":["wav"]},"audio/xm":{"source":"apache","extensions":["xm"]},"chemical/x-cdx":{"source":"apache","extensions":["cdx"]},"chemical/x-cif":{"source":"apache","extensions":["cif"]},"chemical/x-cmdf":{"source":"apache","extensions":["cmdf"]},"chemical/x-cml":{"source":"apache","extensions":["cml"]},"chemical/x-csml":{"source":"apache","extensions":["csml"]},"chemical/x-pdb":{"source":"apache"},"chemical/x-xyz":{"source":"apache","extensions":["xyz"]},"font/collection":{"source":"iana","extensions":["ttc"]},"font/otf":{"source":"iana","compressible":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"extensions":["bmp"]},"image/cgm":{"source":"iana","extensions":["cgm"]},"image/dicom-rle":{"source":"iana","extensions":["drle"]},"image/emf":{"source":"iana","extensions":["emf"]},"image/fits":{"source":"iana","extensions":["fits"]},"image/g3fax":{"source":"iana","extensions":["g3"]},"image/gif":{"source":"iana","compressible":false,"extensions":["gif"]},"image/heic":{"source":"iana","extensions":["heic"]},"image/heic-sequence":{"source":"iana","extensions":["heics"]},"image/heif":{"source":"iana","extensions":["heif"]},"image/heif-sequence":{"source":"iana","extensions":["heifs"]},"image/hej2k":{"source":"iana","extensions":["hej2"]},"image/hsj2":{"source":"iana","extensions":["hsj2"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/jls":{"source":"iana","extensions":["jls"]},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/jxr":{"source":"iana","extensions":["jxr"]},"image/jxra":{"source":"iana","extensions":["jxra"]},"image/jxrs":{"source":"iana","extensions":["jxrs"]},"image/jxs":{"source":"iana","extensions":["jxs"]},"image/jxsc":{"source":"iana","extensions":["jxsc"]},"image/jxsi":{"source":"iana","extensions":["jxsi"]},"image/jxss":{"source":"iana","extensions":["jxss"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/ktx2":{"source":"iana","extensions":["ktx2"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false},"image/png":{"source":"iana","compressible":false,"extensions":["png"]},"image/prs.btif":{"source":"iana","extensions":["btif"]},"image/prs.pti":{"source":"iana","extensions":["pti"]},"image/pwg-raster":{"source":"iana"},"image/sgi":{"source":"apache","extensions":["sgi"]},"image/svg+xml":{"source":"iana","compressible":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"extensions":["psd"]},"image/vnd.airzip.accelerator.azv":{"source":"iana","extensions":["azv"]},"image/vnd.cns.inf2":{"source":"iana"},"image/vnd.dece.graphic":{"source":"iana","extensions":["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{"source":"iana","extensions":["djvu","djv"]},"image/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"image/vnd.dwg":{"source":"iana","extensions":["dwg"]},"image/vnd.dxf":{"source":"iana","extensions":["dxf"]},"image/vnd.fastbidsheet":{"source":"iana","extensions":["fbs"]},"image/vnd.fpx":{"source":"iana","extensions":["fpx"]},"image/vnd.fst":{"source":"iana","extensions":["fst"]},"image/vnd.fujixerox.edmics-mmr":{"source":"iana","extensions":["mmr"]},"image/vnd.fujixerox.edmics-rlc":{"source":"iana","extensions":["rlc"]},"image/vnd.globalgraphics.pgb":{"source":"iana"},"image/vnd.microsoft.icon":{"source":"iana","compressible":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"extensions":["dds"]},"image/vnd.ms-modi":{"source":"iana","extensions":["mdi"]},"image/vnd.ms-photo":{"source":"apache","extensions":["wdp"]},"image/vnd.net-fpx":{"source":"iana","extensions":["npx"]},"image/vnd.pco.b16":{"source":"iana","extensions":["b16"]},"image/vnd.radiance":{"source":"iana"},"image/vnd.sealed.png":{"source":"iana"},"image/vnd.sealedmedia.softseal.gif":{"source":"iana"},"image/vnd.sealedmedia.softseal.jpg":{"source":"iana"},"image/vnd.svf":{"source":"iana"},"image/vnd.tencent.tap":{"source":"iana","extensions":["tap"]},"image/vnd.valve.source.texture":{"source":"iana","extensions":["vtf"]},"image/vnd.wap.wbmp":{"source":"iana","extensions":["wbmp"]},"image/vnd.xiff":{"source":"iana","extensions":["xif"]},"image/vnd.zbrush.pcx":{"source":"iana","extensions":["pcx"]},"image/webp":{"source":"apache","extensions":["webp"]},"image/wmf":{"source":"iana","extensions":["wmf"]},"image/x-3ds":{"source":"apache","extensions":["3ds"]},"image/x-cmu-raster":{"source":"apache","extensions":["ras"]},"image/x-cmx":{"source":"apache","extensions":["cmx"]},"image/x-freehand":{"source":"apache","extensions":["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{"source":"apache","compressible":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"extensions":["bmp"]},"image/x-pcx":{"source":"apache","extensions":["pcx"]},"image/x-pict":{"source":"apache","extensions":["pic","pct"]},"image/x-portable-anymap":{"source":"apache","extensions":["pnm"]},"image/x-portable-bitmap":{"source":"apache","extensions":["pbm"]},"image/x-portable-graymap":{"source":"apache","extensions":["pgm"]},"image/x-portable-pixmap":{"source":"apache","extensions":["ppm"]},"image/x-rgb":{"source":"apache","extensions":["rgb"]},"image/x-tga":{"source":"apache","extensions":["tga"]},"image/x-xbitmap":{"source":"apache","extensions":["xbm"]},"image/x-xcf":{"compressible":false},"image/x-xpixmap":{"source":"apache","extensions":["xpm"]},"image/x-xwindowdump":{"source":"apache","extensions":["xwd"]},"message/cpim":{"source":"iana"},"message/delivery-status":{"source":"iana"},"message/disposition-notification":{"source":"iana","extensions":["disposition-notification"]},"message/external-body":{"source":"iana"},"message/feedback-report":{"source":"iana"},"message/global":{"source":"iana","extensions":["u8msg"]},"message/global-delivery-status":{"source":"iana","extensions":["u8dsn"]},"message/global-disposition-notification":{"source":"iana","extensions":["u8mdn"]},"message/global-headers":{"source":"iana","extensions":["u8hdr"]},"message/http":{"source":"iana","compressible":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"extensions":["eml","mime"]},"message/s-http":{"source":"iana"},"message/sip":{"source":"iana"},"message/sipfrag":{"source":"iana"},"message/tracking-status":{"source":"iana"},"message/vnd.si.simp":{"source":"iana"},"message/vnd.wfa.wsc":{"source":"iana","extensions":["wsc"]},"model/3mf":{"source":"iana","extensions":["3mf"]},"model/e57":{"source":"iana"},"model/gltf+json":{"source":"iana","compressible":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"extensions":["msh","mesh","silo"]},"model/mtl":{"source":"iana","extensions":["mtl"]},"model/obj":{"source":"iana","extensions":["obj"]},"model/step":{"source":"iana"},"model/step+xml":{"source":"iana","compressible":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"extensions":["dae"]},"model/vnd.dwf":{"source":"iana","extensions":["dwf"]},"model/vnd.flatland.3dml":{"source":"iana"},"model/vnd.gdl":{"source":"iana","extensions":["gdl"]},"model/vnd.gs-gdl":{"source":"apache"},"model/vnd.gs.gdl":{"source":"iana"},"model/vnd.gtw":{"source":"iana","extensions":["gtw"]},"model/vnd.moml+xml":{"source":"iana","compressible":true},"model/vnd.mts":{"source":"iana","extensions":["mts"]},"model/vnd.opengex":{"source":"iana","extensions":["ogex"]},"model/vnd.parasolid.transmit.binary":{"source":"iana","extensions":["x_b"]},"model/vnd.parasolid.transmit.text":{"source":"iana","extensions":["x_t"]},"model/vnd.pytha.pyox":{"source":"iana"},"model/vnd.rosette.annotated-data-model":{"source":"iana"},"model/vnd.sap.vds":{"source":"iana","extensions":["vds"]},"model/vnd.usdz+zip":{"source":"iana","compressible":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"multipart/vnd.bint.med-plus":{"source":"iana"},"multipart/voice-message":{"source":"iana"},"multipart/x-mixed-replace":{"source":"iana"},"text/1d-interleaved-parityfec":{"source":"iana"},"text/cache-manifest":{"source":"iana","compressible":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/cql":{"source":"iana"},"text/cql-expression":{"source":"iana"},"text/cql-identifier":{"source":"iana"},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"extensions":["csv"]},"text/csv-schema":{"source":"iana"},"text/directory":{"source":"iana"},"text/dns":{"source":"iana"},"text/ecmascript":{"source":"iana"},"text/encaprtp":{"source":"iana"},"text/enriched":{"source":"iana"},"text/fhirpath":{"source":"iana"},"text/flexfec":{"source":"iana"},"text/fwdred":{"source":"iana"},"text/gff3":{"source":"iana"},"text/grammar-ref-list":{"source":"iana"},"text/html":{"source":"iana","compressible":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"extensions":["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{"source":"iana","charset":"UTF-8"},"text/prs.fallenstein.rst":{"source":"iana"},"text/prs.lines.tag":{"source":"iana","extensions":["dsc"]},"text/prs.prop.logic":{"source":"iana"},"text/raptorfec":{"source":"iana"},"text/red":{"source":"iana"},"text/rfc822-headers":{"source":"iana"},"text/richtext":{"source":"iana","compressible":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"text/rtp-enc-aescm128":{"source":"iana"},"text/rtploopback":{"source":"iana"},"text/rtx":{"source":"iana"},"text/sgml":{"source":"iana","extensions":["sgml","sgm"]},"text/shaclc":{"source":"iana"},"text/shex":{"source":"iana","extensions":["shex"]},"text/slim":{"extensions":["slim","slm"]},"text/spdx":{"source":"iana","extensions":["spdx"]},"text/strings":{"source":"iana"},"text/stylus":{"extensions":["stylus","styl"]},"text/t140":{"source":"iana"},"text/tab-separated-values":{"source":"iana","compressible":true,"extensions":["tsv"]},"text/troff":{"source":"iana","extensions":["t","tr","roff","man","me","ms"]},"text/turtle":{"source":"iana","charset":"UTF-8","extensions":["ttl"]},"text/ulpfec":{"source":"iana"},"text/uri-list":{"source":"iana","compressible":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"extensions":["vcard"]},"text/vnd.a":{"source":"iana"},"text/vnd.abc":{"source":"iana"},"text/vnd.ascii-art":{"source":"iana"},"text/vnd.curl":{"source":"iana","extensions":["curl"]},"text/vnd.curl.dcurl":{"source":"apache","extensions":["dcurl"]},"text/vnd.curl.mcurl":{"source":"apache","extensions":["mcurl"]},"text/vnd.curl.scurl":{"source":"apache","extensions":["scurl"]},"text/vnd.debian.copyright":{"source":"iana","charset":"UTF-8"},"text/vnd.dmclientscript":{"source":"iana"},"text/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"text/vnd.esmertec.theme-descriptor":{"source":"iana","charset":"UTF-8"},"text/vnd.familysearch.gedcom":{"source":"iana","extensions":["ged"]},"text/vnd.ficlab.flt":{"source":"iana"},"text/vnd.fly":{"source":"iana","extensions":["fly"]},"text/vnd.fmi.flexstor":{"source":"iana","extensions":["flx"]},"text/vnd.gml":{"source":"iana"},"text/vnd.graphviz":{"source":"iana","extensions":["gv"]},"text/vnd.hans":{"source":"iana"},"text/vnd.hgl":{"source":"iana"},"text/vnd.in3d.3dml":{"source":"iana","extensions":["3dml"]},"text/vnd.in3d.spot":{"source":"iana","extensions":["spot"]},"text/vnd.iptc.newsml":{"source":"iana"},"text/vnd.iptc.nitf":{"source":"iana"},"text/vnd.latex-z":{"source":"iana"},"text/vnd.motorola.reflex":{"source":"iana"},"text/vnd.ms-mediapackage":{"source":"iana"},"text/vnd.net2phone.commcenter.command":{"source":"iana"},"text/vnd.radisys.msml-basic-layout":{"source":"iana"},"text/vnd.senx.warpscript":{"source":"iana"},"text/vnd.si.uricatalogue":{"source":"iana"},"text/vnd.sosi":{"source":"iana"},"text/vnd.sun.j2me.app-descriptor":{"source":"iana","charset":"UTF-8","extensions":["jad"]},"text/vnd.trolltech.linguist":{"source":"iana","charset":"UTF-8"},"text/vnd.wap.si":{"source":"iana"},"text/vnd.wap.sl":{"source":"iana"},"text/vnd.wap.wml":{"source":"iana","extensions":["wml"]},"text/vnd.wap.wmlscript":{"source":"iana","extensions":["wmls"]},"text/vtt":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["vtt"]},"text/x-asm":{"source":"apache","extensions":["s","asm"]},"text/x-c":{"source":"apache","extensions":["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{"source":"nginx","extensions":["htc"]},"text/x-fortran":{"source":"apache","extensions":["f","for","f77","f90"]},"text/x-gwt-rpc":{"compressible":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"extensions":["pde"]},"text/x-sass":{"extensions":["sass"]},"text/x-scss":{"extensions":["scss"]},"text/x-setext":{"source":"apache","extensions":["etx"]},"text/x-sfv":{"source":"apache","extensions":["sfv"]},"text/x-suse-ymp":{"compressible":true,"extensions":["ymp"]},"text/x-uuencode":{"source":"apache","extensions":["uu"]},"text/x-vcalendar":{"source":"apache","extensions":["vcs"]},"text/x-vcard":{"source":"apache","extensions":["vcf"]},"text/xml":{"source":"iana","compressible":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"extensions":["yaml","yml"]},"video/1d-interleaved-parityfec":{"source":"iana"},"video/3gpp":{"source":"iana","extensions":["3gp","3gpp"]},"video/3gpp-tt":{"source":"iana"},"video/3gpp2":{"source":"iana","extensions":["3g2"]},"video/av1":{"source":"iana"},"video/bmpeg":{"source":"iana"},"video/bt656":{"source":"iana"},"video/celb":{"source":"iana"},"video/dv":{"source":"iana"},"video/encaprtp":{"source":"iana"},"video/ffv1":{"source":"iana"},"video/flexfec":{"source":"iana"},"video/h261":{"source":"iana","extensions":["h261"]},"video/h263":{"source":"iana","extensions":["h263"]},"video/h263-1998":{"source":"iana"},"video/h263-2000":{"source":"iana"},"video/h264":{"source":"iana","extensions":["h264"]},"video/h264-rcdo":{"source":"iana"},"video/h264-svc":{"source":"iana"},"video/h265":{"source":"iana"},"video/iso.segment":{"source":"iana","extensions":["m4s"]},"video/jpeg":{"source":"iana","extensions":["jpgv"]},"video/jpeg2000":{"source":"iana"},"video/jpm":{"source":"apache","extensions":["jpm","jpgm"]},"video/jxsv":{"source":"iana"},"video/mj2":{"source":"iana","extensions":["mj2","mjp2"]},"video/mp1s":{"source":"iana"},"video/mp2p":{"source":"iana"},"video/mp2t":{"source":"iana","extensions":["ts"]},"video/mp4":{"source":"iana","compressible":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"extensions":["qt","mov"]},"video/raptorfec":{"source":"iana"},"video/raw":{"source":"iana"},"video/rtp-enc-aescm128":{"source":"iana"},"video/rtploopback":{"source":"iana"},"video/rtx":{"source":"iana"},"video/scip":{"source":"iana"},"video/smpte291":{"source":"iana"},"video/smpte292m":{"source":"iana"},"video/ulpfec":{"source":"iana"},"video/vc1":{"source":"iana"},"video/vc2":{"source":"iana"},"video/vnd.cctv":{"source":"iana"},"video/vnd.dece.hd":{"source":"iana","extensions":["uvh","uvvh"]},"video/vnd.dece.mobile":{"source":"iana","extensions":["uvm","uvvm"]},"video/vnd.dece.mp4":{"source":"iana"},"video/vnd.dece.pd":{"source":"iana","extensions":["uvp","uvvp"]},"video/vnd.dece.sd":{"source":"iana","extensions":["uvs","uvvs"]},"video/vnd.dece.video":{"source":"iana","extensions":["uvv","uvvv"]},"video/vnd.directv.mpeg":{"source":"iana"},"video/vnd.directv.mpeg-tts":{"source":"iana"},"video/vnd.dlna.mpeg-tts":{"source":"iana"},"video/vnd.dvb.file":{"source":"iana","extensions":["dvb"]},"video/vnd.fvt":{"source":"iana","extensions":["fvt"]},"video/vnd.hns.video":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.ttsavc":{"source":"iana"},"video/vnd.iptvforum.ttsmpeg2":{"source":"iana"},"video/vnd.motorola.video":{"source":"iana"},"video/vnd.motorola.videop":{"source":"iana"},"video/vnd.mpegurl":{"source":"iana","extensions":["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{"source":"iana","extensions":["pyv"]},"video/vnd.nokia.interleaved-multimedia":{"source":"iana"},"video/vnd.nokia.mp4vr":{"source":"iana"},"video/vnd.nokia.videovoip":{"source":"iana"},"video/vnd.objectvideo":{"source":"iana"},"video/vnd.radgamettools.bink":{"source":"iana"},"video/vnd.radgamettools.smacker":{"source":"iana"},"video/vnd.sealed.mpeg1":{"source":"iana"},"video/vnd.sealed.mpeg4":{"source":"iana"},"video/vnd.sealed.swf":{"source":"iana"},"video/vnd.sealedmedia.softseal.mov":{"source":"iana"},"video/vnd.uvvu.mp4":{"source":"iana","extensions":["uvu","uvvu"]},"video/vnd.vivo":{"source":"iana","extensions":["viv"]},"video/vnd.youtube.yt":{"source":"iana"},"video/vp8":{"source":"iana"},"video/vp9":{"source":"iana"},"video/webm":{"source":"apache","compressible":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"extensions":["mkv","mk3d","mks"]},"video/x-mng":{"source":"apache","extensions":["mng"]},"video/x-ms-asf":{"source":"apache","extensions":["asf","asx"]},"video/x-ms-vob":{"source":"apache","extensions":["vob"]},"video/x-ms-wm":{"source":"apache","extensions":["wm"]},"video/x-ms-wmv":{"source":"apache","compressible":false,"extensions":["wmv"]},"video/x-ms-wmx":{"source":"apache","extensions":["wmx"]},"video/x-ms-wvx":{"source":"apache","extensions":["wvx"]},"video/x-msvideo":{"source":"apache","extensions":["avi"]},"video/x-sgi-movie":{"source":"apache","extensions":["movie"]},"video/x-smv":{"source":"apache","extensions":["smv"]},"x-conference/x-cooltalk":{"source":"apache","extensions":["ice"]},"x-shader/x-fragment":{"compressible":true},"x-shader/x-vertex":{"compressible":true}}')},2020:e=>{"use strict";e.exports=JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var r=__webpack_module_cache__[e]={exports:{}};var a=true;try{__webpack_modules__[e].call(r.exports,r,r.exports,__nccwpck_require__);a=false}finally{if(a)delete __webpack_module_cache__[e]}return r.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__={};(()=>{"use strict";var e=__webpack_exports__;Object.defineProperty(e,"__esModule",{value:true});const t=__nccwpck_require__(7747);(new t.GithubActionRunner).execute()})();module.exports=__webpack_exports__})(); \ No newline at end of file +(function(e,r){true?r(t):0})(this,(function(e){"use strict";function merge(){for(var e=arguments.length,t=Array(e),r=0;r1){t[0]=t[0].slice(0,-1);var a=t.length-1;for(var i=1;i= 0x80 (not a basic code point)","invalid-input":"Invalid input"};var y=n-s;var b=Math.floor;var w=String.fromCharCode;function error$1(e){throw new RangeError(v[e])}function map(e,t){var r=[];var a=e.length;while(a--){r[a]=t(e[a])}return r}function mapDomain(e,t){var r=e.split("@");var a="";if(r.length>1){a=r[0]+"@";e=r[1]}e=e.replace(g,".");var i=e.split(".");var n=map(i,t).join(".");return a+n}function ucs2decode(e){var t=[];var r=0;var a=e.length;while(r=55296&&i<=56319&&r>1;e+=b(e/t);for(;e>y*o>>1;a+=n){e=b(e/y)}return b(a+(y+1)*e/(e+p))};var k=function decode(e){var t=[];var r=e.length;var a=0;var p=d;var c=l;var m=e.lastIndexOf(u);if(m<0){m=0}for(var h=0;h=128){error$1("not-basic")}t.push(e.charCodeAt(h))}for(var g=m>0?m+1:0;g=r){error$1("invalid-input")}var x=E(e.charCodeAt(g++));if(x>=n||x>b((i-a)/y)){error$1("overflow")}a+=x*y;var S=w<=c?s:w>=c+o?o:w-c;if(xb(i/k)){error$1("overflow")}y*=k}var C=t.length+1;c=T(a-v,C,v==0);if(b(a/C)>i-p){error$1("overflow")}p+=b(a/C);a%=C;t.splice(a++,0,p)}return String.fromCodePoint.apply(String,t)};var C=function encode(e){var t=[];e=ucs2decode(e);var r=e.length;var a=d;var p=0;var c=l;var m=true;var h=false;var g=undefined;try{for(var v=e[Symbol.iterator](),y;!(m=(y=v.next()).done);m=true){var x=y.value;if(x<128){t.push(w(x))}}}catch(e){h=true;g=e}finally{try{if(!m&&v.return){v.return()}}finally{if(h){throw g}}}var E=t.length;var k=E;if(E){t.push(u)}while(k=a&&Rb((i-p)/j)){error$1("overflow")}p+=(C-a)*j;a=C;var F=true;var I=false;var $=undefined;try{for(var B=e[Symbol.iterator](),L;!(F=(L=B.next()).done);F=true){var M=L.value;if(Mi){error$1("overflow")}if(M==a){var U=p;for(var G=n;;G+=n){var V=G<=c?s:G>=c+o?o:G-c;if(U>6|192).toString(16).toUpperCase()+"%"+(t&63|128).toString(16).toUpperCase();else r="%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(t&63|128).toString(16).toUpperCase();return r}function pctDecChars(e){var t="";var r=0;var a=e.length;while(r=194&&i<224){if(a-r>=6){var n=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((i&31)<<6|n&63)}else{t+=e.substr(r,6)}r+=6}else if(i>=224){if(a-r>=9){var s=parseInt(e.substr(r+4,2),16);var o=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((i&15)<<12|(s&63)<<6|o&63)}else{t+=e.substr(r,9)}r+=9}else{t+=e.substr(r,3);r+=3}}return t}function _normalizeComponentEncoding(e,t){function decodeUnreserved(e){var r=pctDecChars(e);return!r.match(t.UNRESERVED)?e:r}if(e.scheme)e.scheme=String(e.scheme).replace(t.PCT_ENCODED,decodeUnreserved).toLowerCase().replace(t.NOT_SCHEME,"");if(e.userinfo!==undefined)e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,decodeUnreserved).replace(t.NOT_USERINFO,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.host!==undefined)e.host=String(e.host).replace(t.PCT_ENCODED,decodeUnreserved).toLowerCase().replace(t.NOT_HOST,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.path!==undefined)e.path=String(e.path).replace(t.PCT_ENCODED,decodeUnreserved).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.query!==undefined)e.query=String(e.query).replace(t.PCT_ENCODED,decodeUnreserved).replace(t.NOT_QUERY,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.fragment!==undefined)e.fragment=String(e.fragment).replace(t.PCT_ENCODED,decodeUnreserved).replace(t.NOT_FRAGMENT,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);return e}function _stripLeadingZeros(e){return e.replace(/^0*(.*)/,"$1")||"0"}function _normalizeIPv4(e,t){var r=e.match(t.IPV4ADDRESS)||[];var i=a(r,2),n=i[1];if(n){return n.split(".").map(_stripLeadingZeros).join(".")}else{return e}}function _normalizeIPv6(e,t){var r=e.match(t.IPV6ADDRESS)||[];var i=a(r,3),n=i[1],s=i[2];if(n){var o=n.toLowerCase().split("::").reverse(),p=a(o,2),c=p[0],l=p[1];var d=l?l.split(":").map(_stripLeadingZeros):[];var u=c.split(":").map(_stripLeadingZeros);var m=t.IPV4ADDRESS.test(u[u.length-1]);var h=m?7:8;var g=u.length-h;var v=Array(h);for(var y=0;y1){var E=v.slice(0,w.index);var S=v.slice(w.index+w.length);x=E.join(":")+"::"+S.join(":")}else{x=v.join(":")}if(s){x+="%"+s}return x}else{return e}}var N=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i;var R="".match(/(){0}/)[1]===undefined;function parse(e){var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i={};var n=a.iri!==false?r:t;if(a.reference==="suffix")e=(a.scheme?a.scheme+":":"")+"//"+e;var s=e.match(N);if(s){if(R){i.scheme=s[1];i.userinfo=s[3];i.host=s[4];i.port=parseInt(s[5],10);i.path=s[6]||"";i.query=s[7];i.fragment=s[8];if(isNaN(i.port)){i.port=s[5]}}else{i.scheme=s[1]||undefined;i.userinfo=e.indexOf("@")!==-1?s[3]:undefined;i.host=e.indexOf("//")!==-1?s[4]:undefined;i.port=parseInt(s[5],10);i.path=s[6]||"";i.query=e.indexOf("?")!==-1?s[7]:undefined;i.fragment=e.indexOf("#")!==-1?s[8]:undefined;if(isNaN(i.port)){i.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?s[4]:undefined}}if(i.host){i.host=_normalizeIPv6(_normalizeIPv4(i.host,n),n)}if(i.scheme===undefined&&i.userinfo===undefined&&i.host===undefined&&i.port===undefined&&!i.path&&i.query===undefined){i.reference="same-document"}else if(i.scheme===undefined){i.reference="relative"}else if(i.fragment===undefined){i.reference="absolute"}else{i.reference="uri"}if(a.reference&&a.reference!=="suffix"&&a.reference!==i.reference){i.error=i.error||"URI is not a "+a.reference+" reference."}var o=D[(a.scheme||i.scheme||"").toLowerCase()];if(!a.unicodeSupport&&(!o||!o.unicodeSupport)){if(i.host&&(a.domainHost||o&&o.domainHost)){try{i.host=A.toASCII(i.host.replace(n.PCT_ENCODED,pctDecChars).toLowerCase())}catch(e){i.error=i.error||"Host's domain name can not be converted to ASCII via punycode: "+e}}_normalizeComponentEncoding(i,t)}else{_normalizeComponentEncoding(i,n)}if(o&&o.parse){o.parse(i,a)}}else{i.error=i.error||"URI can not be parsed."}return i}function _recomposeAuthority(e,a){var i=a.iri!==false?r:t;var n=[];if(e.userinfo!==undefined){n.push(e.userinfo);n.push("@")}if(e.host!==undefined){n.push(_normalizeIPv6(_normalizeIPv4(String(e.host),i),i).replace(i.IPV6ADDRESS,(function(e,t,r){return"["+t+(r?"%25"+r:"")+"]"})))}if(typeof e.port==="number"||typeof e.port==="string"){n.push(":");n.push(String(e.port))}return n.length?n.join(""):undefined}var j=/^\.\.?\//;var F=/^\/\.(\/|$)/;var I=/^\/\.\.(\/|$)/;var $=/^\/?(?:.|\n)*?(?=\/|$)/;function removeDotSegments(e){var t=[];while(e.length){if(e.match(j)){e=e.replace(j,"")}else if(e.match(F)){e=e.replace(F,"/")}else if(e.match(I)){e=e.replace(I,"/");t.pop()}else if(e==="."||e===".."){e=""}else{var r=e.match($);if(r){var a=r[0];e=e.slice(a.length);t.push(a)}else{throw new Error("Unexpected dot segment condition")}}}return t.join("")}function serialize(e){var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=a.iri?r:t;var n=[];var s=D[(a.scheme||e.scheme||"").toLowerCase()];if(s&&s.serialize)s.serialize(e,a);if(e.host){if(i.IPV6ADDRESS.test(e.host)){}else if(a.domainHost||s&&s.domainHost){try{e.host=!a.iri?A.toASCII(e.host.replace(i.PCT_ENCODED,pctDecChars).toLowerCase()):A.toUnicode(e.host)}catch(t){e.error=e.error||"Host's domain name can not be converted to "+(!a.iri?"ASCII":"Unicode")+" via punycode: "+t}}}_normalizeComponentEncoding(e,i);if(a.reference!=="suffix"&&e.scheme){n.push(e.scheme);n.push(":")}var o=_recomposeAuthority(e,a);if(o!==undefined){if(a.reference!=="suffix"){n.push("//")}n.push(o);if(e.path&&e.path.charAt(0)!=="/"){n.push("/")}}if(e.path!==undefined){var p=e.path;if(!a.absolutePath&&(!s||!s.absolutePath)){p=removeDotSegments(p)}if(o===undefined){p=p.replace(/^\/\//,"/%2F")}n.push(p)}if(e.query!==undefined){n.push("?");n.push(e.query)}if(e.fragment!==undefined){n.push("#");n.push(e.fragment)}return n.join("")}function resolveComponents(e,t){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var a=arguments[3];var i={};if(!a){e=parse(serialize(e,r),r);t=parse(serialize(t,r),r)}r=r||{};if(!r.tolerant&&t.scheme){i.scheme=t.scheme;i.userinfo=t.userinfo;i.host=t.host;i.port=t.port;i.path=removeDotSegments(t.path||"");i.query=t.query}else{if(t.userinfo!==undefined||t.host!==undefined||t.port!==undefined){i.userinfo=t.userinfo;i.host=t.host;i.port=t.port;i.path=removeDotSegments(t.path||"");i.query=t.query}else{if(!t.path){i.path=e.path;if(t.query!==undefined){i.query=t.query}else{i.query=e.query}}else{if(t.path.charAt(0)==="/"){i.path=removeDotSegments(t.path)}else{if((e.userinfo!==undefined||e.host!==undefined||e.port!==undefined)&&!e.path){i.path="/"+t.path}else if(!e.path){i.path=t.path}else{i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path}i.path=removeDotSegments(i.path)}i.query=t.query}i.userinfo=e.userinfo;i.host=e.host;i.port=e.port}i.scheme=e.scheme}i.fragment=t.fragment;return i}function resolve(e,t,r){var a=assign({scheme:"null"},r);return serialize(resolveComponents(parse(e,a),parse(t,a),a,true),a)}function normalize(e,t){if(typeof e==="string"){e=serialize(parse(e,t),t)}else if(typeOf(e)==="object"){e=parse(serialize(e,t),t)}return e}function equal(e,t,r){if(typeof e==="string"){e=serialize(parse(e,r),r)}else if(typeOf(e)==="object"){e=serialize(e,r)}if(typeof t==="string"){t=serialize(parse(t,r),r)}else if(typeOf(t)==="object"){t=serialize(t,r)}return e===t}function escapeComponent(e,a){return e&&e.toString().replace(!a||!a.iri?t.ESCAPE:r.ESCAPE,pctEncChar)}function unescapeComponent(e,a){return e&&e.toString().replace(!a||!a.iri?t.PCT_ENCODED:r.PCT_ENCODED,pctDecChars)}var B={scheme:"http",domainHost:true,parse:function parse(e,t){if(!e.host){e.error=e.error||"HTTP URIs must have a host."}return e},serialize:function serialize(e,t){var r=String(e.scheme).toLowerCase()==="https";if(e.port===(r?443:80)||e.port===""){e.port=undefined}if(!e.path){e.path="/"}return e}};var L={scheme:"https",domainHost:B.domainHost,parse:B.parse,serialize:B.serialize};function isSecure(e){return typeof e.secure==="boolean"?e.secure:String(e.scheme).toLowerCase()==="wss"}var M={scheme:"ws",domainHost:true,parse:function parse(e,t){var r=e;r.secure=isSecure(r);r.resourceName=(r.path||"/")+(r.query?"?"+r.query:"");r.path=undefined;r.query=undefined;return r},serialize:function serialize(e,t){if(e.port===(isSecure(e)?443:80)||e.port===""){e.port=undefined}if(typeof e.secure==="boolean"){e.scheme=e.secure?"wss":"ws";e.secure=undefined}if(e.resourceName){var r=e.resourceName.split("?"),i=a(r,2),n=i[0],s=i[1];e.path=n&&n!=="/"?n:undefined;e.query=s;e.resourceName=undefined}e.fragment=undefined;return e}};var U={scheme:"wss",domainHost:M.domainHost,parse:M.parse,serialize:M.serialize};var G={};var V=true;var q="[A-Za-z0-9\\-\\.\\_\\~"+(V?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]";var z="[0-9A-Fa-f]";var H=subexp(subexp("%[EFef]"+z+"%"+z+z+"%"+z+z)+"|"+subexp("%[89A-Fa-f]"+z+"%"+z+z)+"|"+subexp("%"+z+z));var K="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]";var W="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]";var J=merge(W,'[\\"\\\\]');var Y="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]";var Q=new RegExp(q,"g");var X=new RegExp(H,"g");var Z=new RegExp(merge("[^]",K,"[\\.]",'[\\"]',J),"g");var ee=new RegExp(merge("[^]",q,Y),"g");var te=ee;function decodeUnreserved(e){var t=pctDecChars(e);return!t.match(Q)?e:t}var re={scheme:"mailto",parse:function parse$$1(e,t){var r=e;var a=r.to=r.path?r.path.split(","):[];r.path=undefined;if(r.query){var i=false;var n={};var s=r.query.split("&");for(var o=0,p=s.length;o{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"v1",{enumerable:true,get:function(){return a.default}});Object.defineProperty(t,"v3",{enumerable:true,get:function(){return i.default}});Object.defineProperty(t,"v4",{enumerable:true,get:function(){return n.default}});Object.defineProperty(t,"v5",{enumerable:true,get:function(){return s.default}});Object.defineProperty(t,"NIL",{enumerable:true,get:function(){return o.default}});Object.defineProperty(t,"version",{enumerable:true,get:function(){return p.default}});Object.defineProperty(t,"validate",{enumerable:true,get:function(){return c.default}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return l.default}});Object.defineProperty(t,"parse",{enumerable:true,get:function(){return d.default}});var a=_interopRequireDefault(r(8628));var i=_interopRequireDefault(r(6409));var n=_interopRequireDefault(r(5122));var s=_interopRequireDefault(r(9120));var o=_interopRequireDefault(r(5332));var p=_interopRequireDefault(r(1595));var c=_interopRequireDefault(r(6900));var l=_interopRequireDefault(r(8950));var d=_interopRequireDefault(r(2746));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},4569:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function md5(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return a.default.createHash("md5").update(e).digest()}var i=md5;t["default"]=i},5332:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r="00000000-0000-0000-0000-000000000000";t["default"]=r},2746:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function parse(e){if(!(0,a.default)(e)){throw TypeError("Invalid UUID")}let t;const r=new Uint8Array(16);r[0]=(t=parseInt(e.slice(0,8),16))>>>24;r[1]=t>>>16&255;r[2]=t>>>8&255;r[3]=t&255;r[4]=(t=parseInt(e.slice(9,13),16))>>>8;r[5]=t&255;r[6]=(t=parseInt(e.slice(14,18),16))>>>8;r[7]=t&255;r[8]=(t=parseInt(e.slice(19,23),16))>>>8;r[9]=t&255;r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255;r[11]=t/4294967296&255;r[12]=t>>>24&255;r[13]=t>>>16&255;r[14]=t>>>8&255;r[15]=t&255;return r}var i=parse;t["default"]=i},814:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;t["default"]=r},807:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=rng;var a=_interopRequireDefault(r(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const i=new Uint8Array(256);let n=i.length;function rng(){if(n>i.length-16){a.default.randomFillSync(i);n=0}return i.slice(n,n+=16)}},5274:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function sha1(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return a.default.createHash("sha1").update(e).digest()}var i=sha1;t["default"]=i},8950:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const i=[];for(let e=0;e<256;++e){i.push((e+256).toString(16).substr(1))}function stringify(e,t=0){const r=(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase();if(!(0,a.default)(r)){throw TypeError("Stringified UUID is invalid")}return r}var n=stringify;t["default"]=n},8628:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(807));var i=_interopRequireDefault(r(8950));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let n;let s;let o=0;let p=0;function v1(e,t,r){let c=t&&r||0;const l=t||new Array(16);e=e||{};let d=e.node||n;let u=e.clockseq!==undefined?e.clockseq:s;if(d==null||u==null){const t=e.random||(e.rng||a.default)();if(d==null){d=n=[t[0]|1,t[1],t[2],t[3],t[4],t[5]]}if(u==null){u=s=(t[6]<<8|t[7])&16383}}let m=e.msecs!==undefined?e.msecs:Date.now();let h=e.nsecs!==undefined?e.nsecs:p+1;const g=m-o+(h-p)/1e4;if(g<0&&e.clockseq===undefined){u=u+1&16383}if((g<0||m>o)&&e.nsecs===undefined){h=0}if(h>=1e4){throw new Error("uuid.v1(): Can't create more than 10M uuids/sec")}o=m;p=h;s=u;m+=122192928e5;const v=((m&268435455)*1e4+h)%4294967296;l[c++]=v>>>24&255;l[c++]=v>>>16&255;l[c++]=v>>>8&255;l[c++]=v&255;const y=m/4294967296*1e4&268435455;l[c++]=y>>>8&255;l[c++]=y&255;l[c++]=y>>>24&15|16;l[c++]=y>>>16&255;l[c++]=u>>>8|128;l[c++]=u&255;for(let e=0;e<6;++e){l[c+e]=d[e]}return t||(0,i.default)(l)}var c=v1;t["default"]=c},6409:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(5998));var i=_interopRequireDefault(r(4569));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const n=(0,a.default)("v3",48,i.default);var s=n;t["default"]=s},5998:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;t.URL=t.DNS=void 0;var a=_interopRequireDefault(r(8950));var i=_interopRequireDefault(r(2746));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function stringToBytes(e){e=unescape(encodeURIComponent(e));const t=[];for(let r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(807));var i=_interopRequireDefault(r(8950));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function v4(e,t,r){e=e||{};const n=e.random||(e.rng||a.default)();n[6]=n[6]&15|64;n[8]=n[8]&63|128;if(t){r=r||0;for(let e=0;e<16;++e){t[r+e]=n[e]}return t}return(0,i.default)(n)}var n=v4;t["default"]=n},9120:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(5998));var i=_interopRequireDefault(r(5274));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const n=(0,a.default)("v5",80,i.default);var s=n;t["default"]=s},6900:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(814));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function validate(e){return typeof e==="string"&&a.default.test(e)}var i=validate;t["default"]=i},1595:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function version(e){if(!(0,a.default)(e)){throw TypeError("Invalid UUID")}return parseInt(e.substr(14,1),16)}var i=version;t["default"]=i},4886:e=>{"use strict";var t={};e.exports=t;function sign(e){return e<0?-1:1}function evenRound(e){if(e%1===.5&&(e&1)===0){return Math.floor(e)}else{return Math.round(e)}}function createNumberConversion(e,t){if(!t.unsigned){--e}const r=t.unsigned?0:-Math.pow(2,e);const a=Math.pow(2,e)-1;const i=t.moduloBitLength?Math.pow(2,t.moduloBitLength):Math.pow(2,e);const n=t.moduloBitLength?Math.pow(2,t.moduloBitLength-1):Math.pow(2,e-1);return function(e,s){if(!s)s={};let o=+e;if(s.enforceRange){if(!Number.isFinite(o)){throw new TypeError("Argument is not a finite number")}o=sign(o)*Math.floor(Math.abs(o));if(oa){throw new TypeError("Argument is not in byte range")}return o}if(!isNaN(o)&&s.clamp){o=evenRound(o);if(oa)o=a;return o}if(!Number.isFinite(o)||o===0){return 0}o=sign(o)*Math.floor(Math.abs(o));o=o%i;if(!t.unsigned&&o>=n){return o-i}else if(t.unsigned){if(o<0){o+=i}else if(o===-0){return 0}}return o}}t["void"]=function(){return undefined};t["boolean"]=function(e){return!!e};t["byte"]=createNumberConversion(8,{unsigned:false});t["octet"]=createNumberConversion(8,{unsigned:true});t["short"]=createNumberConversion(16,{unsigned:false});t["unsigned short"]=createNumberConversion(16,{unsigned:true});t["long"]=createNumberConversion(32,{unsigned:false});t["unsigned long"]=createNumberConversion(32,{unsigned:true});t["long long"]=createNumberConversion(32,{unsigned:false,moduloBitLength:64});t["unsigned long long"]=createNumberConversion(32,{unsigned:true,moduloBitLength:64});t["double"]=function(e){const t=+e;if(!Number.isFinite(t)){throw new TypeError("Argument is not a finite floating-point value")}return t};t["unrestricted double"]=function(e){const t=+e;if(isNaN(t)){throw new TypeError("Argument is NaN")}return t};t["float"]=t["double"];t["unrestricted float"]=t["unrestricted double"];t["DOMString"]=function(e,t){if(!t)t={};if(t.treatNullAsEmptyString&&e===null){return""}return String(e)};t["ByteString"]=function(e,t){const r=String(e);let a=undefined;for(let e=0;(a=r.codePointAt(e))!==undefined;++e){if(a>255){throw new TypeError("Argument is not a valid bytestring")}}return r};t["USVString"]=function(e){const t=String(e);const r=t.length;const a=[];for(let e=0;e57343){a.push(String.fromCodePoint(i))}else if(56320<=i&&i<=57343){a.push(String.fromCodePoint(65533))}else{if(e===r-1){a.push(String.fromCodePoint(65533))}else{const r=t.charCodeAt(e+1);if(56320<=r&&r<=57343){const t=i&1023;const n=r&1023;a.push(String.fromCodePoint((2<<15)+(2<<9)*t+n));++e}else{a.push(String.fromCodePoint(65533))}}}}return a.join("")};t["Date"]=function(e,t){if(!(e instanceof Date)){throw new TypeError("Argument is not a Date object")}if(isNaN(e)){return undefined}return e};t["RegExp"]=function(e,t){if(!(e instanceof RegExp)){e=new RegExp(e)}return e}},7537:(e,t,r)=>{"use strict";const a=r(5996);t.implementation=class URLImpl{constructor(e){const t=e[0];const r=e[1];let i=null;if(r!==undefined){i=a.basicURLParse(r);if(i==="failure"){throw new TypeError("Invalid base URL")}}const n=a.basicURLParse(t,{baseURL:i});if(n==="failure"){throw new TypeError("Invalid URL")}this._url=n}get href(){return a.serializeURL(this._url)}set href(e){const t=a.basicURLParse(e);if(t==="failure"){throw new TypeError("Invalid URL")}this._url=t}get origin(){return a.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(e){a.basicURLParse(e+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(e){if(a.cannotHaveAUsernamePasswordPort(this._url)){return}a.setTheUsername(this._url,e)}get password(){return this._url.password}set password(e){if(a.cannotHaveAUsernamePasswordPort(this._url)){return}a.setThePassword(this._url,e)}get host(){const e=this._url;if(e.host===null){return""}if(e.port===null){return a.serializeHost(e.host)}return a.serializeHost(e.host)+":"+a.serializeInteger(e.port)}set host(e){if(this._url.cannotBeABaseURL){return}a.basicURLParse(e,{url:this._url,stateOverride:"host"})}get hostname(){if(this._url.host===null){return""}return a.serializeHost(this._url.host)}set hostname(e){if(this._url.cannotBeABaseURL){return}a.basicURLParse(e,{url:this._url,stateOverride:"hostname"})}get port(){if(this._url.port===null){return""}return a.serializeInteger(this._url.port)}set port(e){if(a.cannotHaveAUsernamePasswordPort(this._url)){return}if(e===""){this._url.port=null}else{a.basicURLParse(e,{url:this._url,stateOverride:"port"})}}get pathname(){if(this._url.cannotBeABaseURL){return this._url.path[0]}if(this._url.path.length===0){return""}return"/"+this._url.path.join("/")}set pathname(e){if(this._url.cannotBeABaseURL){return}this._url.path=[];a.basicURLParse(e,{url:this._url,stateOverride:"path start"})}get search(){if(this._url.query===null||this._url.query===""){return""}return"?"+this._url.query}set search(e){const t=this._url;if(e===""){t.query=null;return}const r=e[0]==="?"?e.substring(1):e;t.query="";a.basicURLParse(r,{url:t,stateOverride:"query"})}get hash(){if(this._url.fragment===null||this._url.fragment===""){return""}return"#"+this._url.fragment}set hash(e){if(e===""){this._url.fragment=null;return}const t=e[0]==="#"?e.substring(1):e;this._url.fragment="";a.basicURLParse(t,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}},3394:(e,t,r)=>{"use strict";const a=r(4886);const i=r(3185);const n=r(7537);const s=i.implSymbol;function URL(t){if(!this||this[s]||!(this instanceof URL)){throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.")}if(arguments.length<1){throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.")}const r=[];for(let e=0;e{"use strict";t.URL=r(3394)["interface"];t.serializeURL=r(5996).serializeURL;t.serializeURLOrigin=r(5996).serializeURLOrigin;t.basicURLParse=r(5996).basicURLParse;t.setTheUsername=r(5996).setTheUsername;t.setThePassword=r(5996).setThePassword;t.serializeHost=r(5996).serializeHost;t.serializeInteger=r(5996).serializeInteger;t.parseURL=r(5996).parseURL},5996:(e,t,r)=>{"use strict";const a=r(5477);const i=r(4256);const n={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443};const s=Symbol("failure");function countSymbols(e){return a.ucs2.decode(e).length}function at(e,t){const r=e[t];return isNaN(r)?undefined:String.fromCodePoint(r)}function isASCIIDigit(e){return e>=48&&e<=57}function isASCIIAlpha(e){return e>=65&&e<=90||e>=97&&e<=122}function isASCIIAlphanumeric(e){return isASCIIAlpha(e)||isASCIIDigit(e)}function isASCIIHex(e){return isASCIIDigit(e)||e>=65&&e<=70||e>=97&&e<=102}function isSingleDot(e){return e==="."||e.toLowerCase()==="%2e"}function isDoubleDot(e){e=e.toLowerCase();return e===".."||e==="%2e."||e===".%2e"||e==="%2e%2e"}function isWindowsDriveLetterCodePoints(e,t){return isASCIIAlpha(e)&&(t===58||t===124)}function isWindowsDriveLetterString(e){return e.length===2&&isASCIIAlpha(e.codePointAt(0))&&(e[1]===":"||e[1]==="|")}function isNormalizedWindowsDriveLetterString(e){return e.length===2&&isASCIIAlpha(e.codePointAt(0))&&e[1]===":"}function containsForbiddenHostCodePoint(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/)!==-1}function containsForbiddenHostCodePointExcludingPercent(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)!==-1}function isSpecialScheme(e){return n[e]!==undefined}function isSpecial(e){return isSpecialScheme(e.scheme)}function defaultPort(e){return n[e]}function percentEncode(e){let t=e.toString(16).toUpperCase();if(t.length===1){t="0"+t}return"%"+t}function utf8PercentEncode(e){const t=new Buffer(e);let r="";for(let e=0;e126}const o=new Set([32,34,35,60,62,63,96,123,125]);function isPathPercentEncode(e){return isC0ControlPercentEncode(e)||o.has(e)}const p=new Set([47,58,59,61,64,91,92,93,94,124]);function isUserinfoPercentEncode(e){return isPathPercentEncode(e)||p.has(e)}function percentEncodeChar(e,t){const r=String.fromCodePoint(e);if(t(e)){return utf8PercentEncode(r)}return r}function parseIPv4Number(e){let t=10;if(e.length>=2&&e.charAt(0)==="0"&&e.charAt(1).toLowerCase()==="x"){e=e.substring(2);t=16}else if(e.length>=2&&e.charAt(0)==="0"){e=e.substring(1);t=8}if(e===""){return 0}const r=t===10?/[^0-9]/:t===16?/[^0-9A-Fa-f]/:/[^0-7]/;if(r.test(e)){return s}return parseInt(e,t)}function parseIPv4(e){const t=e.split(".");if(t[t.length-1]===""){if(t.length>1){t.pop()}}if(t.length>4){return e}const r=[];for(const a of t){if(a===""){return e}const t=parseIPv4Number(a);if(t===s){return e}r.push(t)}for(let e=0;e255){return s}}if(r[r.length-1]>=Math.pow(256,5-r.length)){return s}let a=r.pop();let i=0;for(const e of r){a+=e*Math.pow(256,3-i);++i}return a}function serializeIPv4(e){let t="";let r=e;for(let e=1;e<=4;++e){t=String(r%256)+t;if(e!==4){t="."+t}r=Math.floor(r/256)}return t}function parseIPv6(e){const t=[0,0,0,0,0,0,0,0];let r=0;let i=null;let n=0;e=a.ucs2.decode(e);if(e[n]===58){if(e[n+1]!==58){return s}n+=2;++r;i=r}while(n6){return s}let a=0;while(e[n]!==undefined){let i=null;if(a>0){if(e[n]===46&&a<4){++n}else{return s}}if(!isASCIIDigit(e[n])){return s}while(isASCIIDigit(e[n])){const t=parseInt(at(e,n));if(i===null){i=t}else if(i===0){return s}else{i=i*10+t}if(i>255){return s}++n}t[r]=t[r]*256+i;++a;if(a===2||a===4){++r}}if(a!==4){return s}break}else if(e[n]===58){++n;if(e[n]===undefined){return s}}else if(e[n]!==undefined){return s}t[r]=a;++r}if(i!==null){let e=r-i;r=7;while(r!==0&&e>0){const a=t[i+e-1];t[i+e-1]=t[r];t[r]=a;--r;--e}}else if(i===null&&r!==8){return s}return t}function serializeIPv6(e){let t="";const r=findLongestZeroSequence(e);const a=r.idx;let i=false;for(let r=0;r<=7;++r){if(i&&e[r]===0){continue}else if(i){i=false}if(a===r){const e=r===0?"::":":";t+=e;i=true;continue}t+=e[r].toString(16);if(r!==7){t+=":"}}return t}function parseHost(e,t){if(e[0]==="["){if(e[e.length-1]!=="]"){return s}return parseIPv6(e.substring(1,e.length-1))}if(!t){return parseOpaqueHost(e)}const r=utf8PercentDecode(e);const a=i.toASCII(r,false,i.PROCESSING_OPTIONS.NONTRANSITIONAL,false);if(a===null){return s}if(containsForbiddenHostCodePoint(a)){return s}const n=parseIPv4(a);if(typeof n==="number"||n===s){return n}return a}function parseOpaqueHost(e){if(containsForbiddenHostCodePointExcludingPercent(e)){return s}let t="";const r=a.ucs2.decode(e);for(let e=0;er){t=a;r=i}a=null;i=0}else{if(a===null){a=n}++i}}if(i>r){t=a;r=i}return{idx:t,len:r}}function serializeHost(e){if(typeof e==="number"){return serializeIPv4(e)}if(e instanceof Array){return"["+serializeIPv6(e)+"]"}return e}function trimControlChars(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}function trimTabAndNewline(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}function shortenPath(e){const t=e.path;if(t.length===0){return}if(e.scheme==="file"&&t.length===1&&isNormalizedWindowsDriveLetter(t[0])){return}t.pop()}function includesCredentials(e){return e.username!==""||e.password!==""}function cannotHaveAUsernamePasswordPort(e){return e.host===null||e.host===""||e.cannotBeABaseURL||e.scheme==="file"}function isNormalizedWindowsDriveLetter(e){return/^[A-Za-z]:$/.test(e)}function URLStateMachine(e,t,r,i,n){this.pointer=0;this.input=e;this.base=t||null;this.encodingOverride=r||"utf-8";this.stateOverride=n;this.url=i;this.failure=false;this.parseError=false;if(!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:false};const e=trimControlChars(this.input);if(e!==this.input){this.parseError=true}this.input=e}const o=trimTabAndNewline(this.input);if(o!==this.input){this.parseError=true}this.input=o;this.state=n||"scheme start";this.buffer="";this.atFlag=false;this.arrFlag=false;this.passwordTokenSeenFlag=false;this.input=a.ucs2.decode(this.input);for(;this.pointer<=this.input.length;++this.pointer){const e=this.input[this.pointer];const t=isNaN(e)?undefined:String.fromCodePoint(e);const r=this["parse "+this.state](e,t);if(!r){break}else if(r===s){this.failure=true;break}}}URLStateMachine.prototype["parse scheme start"]=function parseSchemeStart(e,t){if(isASCIIAlpha(e)){this.buffer+=t.toLowerCase();this.state="scheme"}else if(!this.stateOverride){this.state="no scheme";--this.pointer}else{this.parseError=true;return s}return true};URLStateMachine.prototype["parse scheme"]=function parseScheme(e,t){if(isASCIIAlphanumeric(e)||e===43||e===45||e===46){this.buffer+=t.toLowerCase()}else if(e===58){if(this.stateOverride){if(isSpecial(this.url)&&!isSpecialScheme(this.buffer)){return false}if(!isSpecial(this.url)&&isSpecialScheme(this.buffer)){return false}if((includesCredentials(this.url)||this.url.port!==null)&&this.buffer==="file"){return false}if(this.url.scheme==="file"&&(this.url.host===""||this.url.host===null)){return false}}this.url.scheme=this.buffer;this.buffer="";if(this.stateOverride){return false}if(this.url.scheme==="file"){if(this.input[this.pointer+1]!==47||this.input[this.pointer+2]!==47){this.parseError=true}this.state="file"}else if(isSpecial(this.url)&&this.base!==null&&this.base.scheme===this.url.scheme){this.state="special relative or authority"}else if(isSpecial(this.url)){this.state="special authority slashes"}else if(this.input[this.pointer+1]===47){this.state="path or authority";++this.pointer}else{this.url.cannotBeABaseURL=true;this.url.path.push("");this.state="cannot-be-a-base-URL path"}}else if(!this.stateOverride){this.buffer="";this.state="no scheme";this.pointer=-1}else{this.parseError=true;return s}return true};URLStateMachine.prototype["parse no scheme"]=function parseNoScheme(e){if(this.base===null||this.base.cannotBeABaseURL&&e!==35){return s}else if(this.base.cannotBeABaseURL&&e===35){this.url.scheme=this.base.scheme;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.url.cannotBeABaseURL=true;this.state="fragment"}else if(this.base.scheme==="file"){this.state="file";--this.pointer}else{this.state="relative";--this.pointer}return true};URLStateMachine.prototype["parse special relative or authority"]=function parseSpecialRelativeOrAuthority(e){if(e===47&&this.input[this.pointer+1]===47){this.state="special authority ignore slashes";++this.pointer}else{this.parseError=true;this.state="relative";--this.pointer}return true};URLStateMachine.prototype["parse path or authority"]=function parsePathOrAuthority(e){if(e===47){this.state="authority"}else{this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse relative"]=function parseRelative(e){this.url.scheme=this.base.scheme;if(isNaN(e)){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query=this.base.query}else if(e===47){this.state="relative slash"}else if(e===63){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query="";this.state="query"}else if(e===35){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.state="fragment"}else if(isSpecial(this.url)&&e===92){this.parseError=true;this.state="relative slash"}else{this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice(0,this.base.path.length-1);this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse relative slash"]=function parseRelativeSlash(e){if(isSpecial(this.url)&&(e===47||e===92)){if(e===92){this.parseError=true}this.state="special authority ignore slashes"}else if(e===47){this.state="authority"}else{this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse special authority slashes"]=function parseSpecialAuthoritySlashes(e){if(e===47&&this.input[this.pointer+1]===47){this.state="special authority ignore slashes";++this.pointer}else{this.parseError=true;this.state="special authority ignore slashes";--this.pointer}return true};URLStateMachine.prototype["parse special authority ignore slashes"]=function parseSpecialAuthorityIgnoreSlashes(e){if(e!==47&&e!==92){this.state="authority";--this.pointer}else{this.parseError=true}return true};URLStateMachine.prototype["parse authority"]=function parseAuthority(e,t){if(e===64){this.parseError=true;if(this.atFlag){this.buffer="%40"+this.buffer}this.atFlag=true;const e=countSymbols(this.buffer);for(let t=0;tMath.pow(2,16)-1){this.parseError=true;return s}this.url.port=e===defaultPort(this.url.scheme)?null:e;this.buffer=""}if(this.stateOverride){return false}this.state="path start";--this.pointer}else{this.parseError=true;return s}return true};const c=new Set([47,92,63,35]);URLStateMachine.prototype["parse file"]=function parseFile(e){this.url.scheme="file";if(e===47||e===92){if(e===92){this.parseError=true}this.state="file slash"}else if(this.base!==null&&this.base.scheme==="file"){if(isNaN(e)){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query=this.base.query}else if(e===63){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query="";this.state="query"}else if(e===35){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.state="fragment"}else{if(this.input.length-this.pointer-1===0||!isWindowsDriveLetterCodePoints(e,this.input[this.pointer+1])||this.input.length-this.pointer-1>=2&&!c.has(this.input[this.pointer+2])){this.url.host=this.base.host;this.url.path=this.base.path.slice();shortenPath(this.url)}else{this.parseError=true}this.state="path";--this.pointer}}else{this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse file slash"]=function parseFileSlash(e){if(e===47||e===92){if(e===92){this.parseError=true}this.state="file host"}else{if(this.base!==null&&this.base.scheme==="file"){if(isNormalizedWindowsDriveLetterString(this.base.path[0])){this.url.path.push(this.base.path[0])}else{this.url.host=this.base.host}}this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse file host"]=function parseFileHost(e,t){if(isNaN(e)||e===47||e===92||e===63||e===35){--this.pointer;if(!this.stateOverride&&isWindowsDriveLetterString(this.buffer)){this.parseError=true;this.state="path"}else if(this.buffer===""){this.url.host="";if(this.stateOverride){return false}this.state="path start"}else{let e=parseHost(this.buffer,isSpecial(this.url));if(e===s){return s}if(e==="localhost"){e=""}this.url.host=e;if(this.stateOverride){return false}this.buffer="";this.state="path start"}}else{this.buffer+=t}return true};URLStateMachine.prototype["parse path start"]=function parsePathStart(e){if(isSpecial(this.url)){if(e===92){this.parseError=true}this.state="path";if(e!==47&&e!==92){--this.pointer}}else if(!this.stateOverride&&e===63){this.url.query="";this.state="query"}else if(!this.stateOverride&&e===35){this.url.fragment="";this.state="fragment"}else if(e!==undefined){this.state="path";if(e!==47){--this.pointer}}return true};URLStateMachine.prototype["parse path"]=function parsePath(e){if(isNaN(e)||e===47||isSpecial(this.url)&&e===92||!this.stateOverride&&(e===63||e===35)){if(isSpecial(this.url)&&e===92){this.parseError=true}if(isDoubleDot(this.buffer)){shortenPath(this.url);if(e!==47&&!(isSpecial(this.url)&&e===92)){this.url.path.push("")}}else if(isSingleDot(this.buffer)&&e!==47&&!(isSpecial(this.url)&&e===92)){this.url.path.push("")}else if(!isSingleDot(this.buffer)){if(this.url.scheme==="file"&&this.url.path.length===0&&isWindowsDriveLetterString(this.buffer)){if(this.url.host!==""&&this.url.host!==null){this.parseError=true;this.url.host=""}this.buffer=this.buffer[0]+":"}this.url.path.push(this.buffer)}this.buffer="";if(this.url.scheme==="file"&&(e===undefined||e===63||e===35)){while(this.url.path.length>1&&this.url.path[0]===""){this.parseError=true;this.url.path.shift()}}if(e===63){this.url.query="";this.state="query"}if(e===35){this.url.fragment="";this.state="fragment"}}else{if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.buffer+=percentEncodeChar(e,isPathPercentEncode)}return true};URLStateMachine.prototype["parse cannot-be-a-base-URL path"]=function parseCannotBeABaseURLPath(e){if(e===63){this.url.query="";this.state="query"}else if(e===35){this.url.fragment="";this.state="fragment"}else{if(!isNaN(e)&&e!==37){this.parseError=true}if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}if(!isNaN(e)){this.url.path[0]=this.url.path[0]+percentEncodeChar(e,isC0ControlPercentEncode)}}return true};URLStateMachine.prototype["parse query"]=function parseQuery(e,t){if(isNaN(e)||!this.stateOverride&&e===35){if(!isSpecial(this.url)||this.url.scheme==="ws"||this.url.scheme==="wss"){this.encodingOverride="utf-8"}const t=new Buffer(this.buffer);for(let e=0;e126||t[e]===34||t[e]===35||t[e]===60||t[e]===62){this.url.query+=percentEncode(t[e])}else{this.url.query+=String.fromCodePoint(t[e])}}this.buffer="";if(e===35){this.url.fragment="";this.state="fragment"}}else{if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.buffer+=t}return true};URLStateMachine.prototype["parse fragment"]=function parseFragment(e){if(isNaN(e)){}else if(e===0){this.parseError=true}else{if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.url.fragment+=percentEncodeChar(e,isC0ControlPercentEncode)}return true};function serializeURL(e,t){let r=e.scheme+":";if(e.host!==null){r+="//";if(e.username!==""||e.password!==""){r+=e.username;if(e.password!==""){r+=":"+e.password}r+="@"}r+=serializeHost(e.host);if(e.port!==null){r+=":"+e.port}}else if(e.host===null&&e.scheme==="file"){r+="//"}if(e.cannotBeABaseURL){r+=e.path[0]}else{for(const t of e.path){r+="/"+t}}if(e.query!==null){r+="?"+e.query}if(!t&&e.fragment!==null){r+="#"+e.fragment}return r}function serializeOrigin(e){let t=e.scheme+"://";t+=serializeHost(e.host);if(e.port!==null){t+=":"+e.port}return t}e.exports.serializeURL=serializeURL;e.exports.serializeURLOrigin=function(t){switch(t.scheme){case"blob":try{return e.exports.serializeURLOrigin(e.exports.parseURL(t.path[0]))}catch(e){return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return serializeOrigin({scheme:t.scheme,host:t.host,port:t.port});case"file":return"file://";default:return"null"}};e.exports.basicURLParse=function(e,t){if(t===undefined){t={}}const r=new URLStateMachine(e,t.baseURL,t.encodingOverride,t.url,t.stateOverride);if(r.failure){return"failure"}return r.url};e.exports.setTheUsername=function(e,t){e.username="";const r=a.ucs2.decode(t);for(let t=0;t{"use strict";e.exports.mixin=function mixin(e,t){const r=Object.getOwnPropertyNames(t);for(let a=0;a{e.exports=wrappy;function wrappy(e,t){if(e&&t)return wrappy(e)(t);if(typeof e!=="function")throw new TypeError("need wrapper function");Object.keys(e).forEach((function(t){wrapper[t]=e[t]}));return wrapper;function wrapper(){var t=new Array(arguments.length);for(var r=0;r{if(e.result===l.ExecutionResult.NOT_OK){this.logger.error(`Failed to execute ${e.command} :`);e.errorMessage.split("\n").forEach((e=>this.logger.error(e)))}}))}printNodeExecutionFailure(e){e.forEach((e=>{if(this.commandExecutionFailure(e.executeCommandResults)){this.logger.error(`Failed to execute commands for ${e.node.project}`);this.printExecutionFailure(e.executeCommandResults)}}))}archiveArtifactsFailure(e){return!!e.find((e=>e.status==="rejected"))}nodeExecutionFailure(e){return e.reduce(((e,t)=>e||this.commandExecutionFailure(t.executeCommandResults)),false)}commandExecutionFailure(e){return!!e.find((e=>e.result===l.ExecutionResult.NOT_OK))}}t.Runner=Runner},6759:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.constants=void 0;t.constants={CONTAINER:{ENTRY_POINT:"entry-point"},GITHUB:{TOKEN:"token"}}},6848:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.EntryPoint=void 0;var r;(function(e){e[e["CLI"]=0]="CLI";e[e["GITHUB_EVENT"]=1]="GITHUB_EVENT"})(r=t.EntryPoint||(t.EntryPoint={}))},293:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.InvalidInput=t.NotFoundError=void 0;class NotFoundError extends Error{}t.NotFoundError=NotFoundError;class InvalidInput extends Error{}t.InvalidInput=InvalidInput},4396:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ExecutionResult=void 0;var r;(function(e){e["OK"]="OK";e["NOT_OK"]="NOT OK";e["SKIP"]="SKIP"})(r=t.ExecutionResult||(t.ExecutionResult={}))},6696:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ExecutionPhase=void 0;var r;(function(e){e["BEFORE"]="before";e["CURRENT"]="commands";e["AFTER"]="after"})(r=t.ExecutionPhase||(t.ExecutionPhase={}))},3947:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.defaultFlowResult=void 0;t.defaultFlowResult={checkoutInfo:[],artifactUploadResults:[],executionResult:{before:[],after:[],commands:[]}}},8373:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.defaultInputValues=t.LoggerLevel=t.FlowType=void 0;var r;(function(e){e["CROSS_PULL_REQUEST"]="cross_pr";e["FULL_DOWNSTREAM"]="full_downstream";e["SINGLE_PULL_REQUEST"]="single_pr";e["BRANCH"]="branch"})(r=t.FlowType||(t.FlowType={}));var a;(function(e){e[e["INFO"]=0]="INFO";e[e["TRACE"]=1]="TRACE";e[e["DEBUG"]=2]="DEBUG"})(a=t.LoggerLevel||(t.LoggerLevel={}));t.defaultInputValues={definitionFile:"",skipExecution:false,skipCheckout:false,skipParallelCheckout:false,loggerLevel:a.INFO}},6196:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.NodeExecutionLevel=void 0;var r;(function(e){e["UPSTREAM"]="upstream";e["CURRENT"]="current";e["DOWNSTREAM"]="downstream"})(r=t.NodeExecutionLevel||(t.NodeExecutionLevel={}))},5129:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.ActionArguments=void 0;const o=r(8373);const p=s(r(2186));const c=s(r(3802));const l=r(8081);const d=r(293);let u=class ActionArguments{getFlowType(e){if(Object.values(o.FlowType).includes(e)){return e}else{switch(e){case"pull-request":return o.FlowType.CROSS_PULL_REQUEST;case"full-downstream":return o.FlowType.FULL_DOWNSTREAM;case"single":return o.FlowType.SINGLE_PULL_REQUEST;case"branch":return o.FlowType.BRANCH}throw new d.InvalidInput("Invalid flow-type")}}getLoggerLevel(e){switch(e){case"info":case"":return o.LoggerLevel.INFO;case"debug":return o.LoggerLevel.DEBUG;case"trace":return o.LoggerLevel.TRACE;default:throw new d.InvalidInput("Invalid logger-level")}}getAdditionalFlags(e){if(e===""){return{}}const t={};e.trim().split(";").forEach((e=>{const r=e.trim().split(" ");if(r[0].startsWith("--")){r[0]=r[0].substring(2)}else if(r[0].startsWith("-")){r[0]=r[0].substring(1)}if(r.length===1){t[r[0]]=true}else{t[r[0]]=r.slice(1).join(" ")}}));return t}getStringInput(e){const t=p.getInput(e);return t===""?undefined:t}getArrayInput(e){const t=this.getStringInput(e);return t?.split(",").map((e=>e.trim()))}parse(){const e={definitionFile:p.getInput("definition-file"),flowType:this.getFlowType(p.getInput("flow-type")),skipExecution:p.getBooleanInput("skip-execution"),skipParallelCheckout:p.getBooleanInput("skip-parallel-checkout"),skipProjectCheckout:this.getArrayInput("skip-project-checkout"),skipProjectExecution:this.getArrayInput("skip-project-execution"),skipCheckout:p.getBooleanInput("skip-checkout"),startProject:this.getStringInput("starting-project"),loggerLevel:this.getLoggerLevel(p.getInput("logger-level")),annotationsPrefix:this.getStringInput("annotations-prefix"),customCommandTreatment:this.getArrayInput("custom-command-treatment"),...this.getAdditionalFlags(p.getInput("additional-flags"))};c.default.get(l.InputService).updateInputs(e)}};u=n([(0,c.Service)()],u);t.ActionArguments=u},7774:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.ArtifactService=void 0;const p=s(r(3802));const c=r(8114);const l=r(8501);const d=r(9837);const u=r(6759);const m=r(6848);let h=class ArtifactService{constructor(){this.uploadService=p.default.get(l.UploadService);this.logger=p.default.get(d.LoggerService).logger}getNodesToArchive(e,t){const r=t.archiveArtifacts?.dependencies??c.ArchiveDependencies.NONE;let a;switch(r){case c.ArchiveDependencies.NONE:a=t.archiveArtifacts?[t]:[];break;case c.ArchiveDependencies.ALL:a=e.filter((e=>!!e.archiveArtifacts));break;default:a=e.filter((e=>e.archiveArtifacts&&(r.includes(e.project)||e.project===t.project)))}return a}async uploadNodes(e,t){if(p.default.get(u.constants.CONTAINER.ENTRY_POINT)===m.EntryPoint.CLI){this.logger.info("Will not upload any artifacts in CLI environment");return[]}const r=this.getNodesToArchive(e,t);this.logger.info(r.length>0?`Archiving artifacts for ${r.map((e=>e.project))}`:"No artifacts to archive");const a=r.map((async e=>{this.logger.info(`Project [${e.project}]. Uploading artifacts...`);return this.uploadService.upload(e.archiveArtifacts,e.project)}));const i=await Promise.allSettled(a);i.forEach((e=>{if(e.status==="fulfilled"){if(e.value.artifactItems.length>0){this.logger.info(`Artifact ${e.value.artifactName} uploaded ${e.value.artifactItems.length} files: ${e.value.artifactItems}`)}if(e.value.failedItems.length>0){this.logger.info(`Artifact ${e.value.artifactName} failed to upload ${e.value.failedItems.length} files: ${e.value.failedItems}`)}}else{this.logger.info(`Failure in uploading artifacts for one or more nodes: ${e.reason}`)}}));return i}};h=n([(0,p.Service)(),o("design:paramtypes",[])],h);t.ArtifactService=h},8501:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var p=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.UploadService=void 0;const c=r(8090);const l=p(r(1017));const d=s(r(3802));const u=r(7147);const m=r(3837);const h=r(9837);const g=r(8114);const v=s(r(2605));const y=r(8410);const b=(0,m.promisify)(u.stat);let w=class UploadService{constructor(){this.logger=d.default.get(h.LoggerService).logger}validateArtifactName(e){return e.replace(/[/\s":<>*?\\]/g,"_")}getMultiPathLCA(e){if(e.length<2){throw new Error("At least two search paths must be provided")}const t=[];const r=[];let a=Number.MAX_SAFE_INTEGER;for(const t of e){const e=l.default.normalize(t).split(l.default.sep);a=Math.min(a,e.length);r.push(e)}if(e[0].startsWith(l.default.sep)){t.push(l.default.sep)}for(let e=0;e1){this.logger.info("Multiple search paths detected. Calculating the least common ancestor of all paths");const t=this.getMultiPathLCA(e);this.logger.info(`The least common ancestor is ${t}. This will be the root directory of the artifact`);return t}if(t.length===1&&e[0]===t[0]){return l.default.dirname(t[0])}return e[0]}async findFilesToUpload(e,t={followSymbolicLinks:true,implicitDescendants:true,omitBrokenSymbolicLinks:true}){const r=[];const a=await(0,c.create)(e,t);const i=await a.glob();const n=new Set;for(const e of i){const t=await b(e);if(!t.isDirectory()){r.push(e);if(n.has(e.toLowerCase())){this.logger.info(`Uploads are case insensitive: ${e} was detected that it will be overwritten by another file with the same path`)}else{n.add(e.toLowerCase())}}}const s=this.getRootDir(a.getSearchPaths(),r);return{filesToUpload:r,rootDirectory:s}}noFileFound(e,t){switch(e["if-no-files-found"]){case g.IfNoFile.ERROR:throw(0,y.logAndThrow)(`No files were found with the provided path: ${t}. No artifacts will be uploaded.`);case g.IfNoFile.IGNORE:this.logger.info(`No files were found with the provided path: ${t}. No artifacts will be uploaded.`);break;case g.IfNoFile.WARN:default:this.logger.warn(`No files were found with the provided path: ${t}. No artifacts will be uploaded.`)}}async upload(e,t){const r=e.paths.filter((e=>e.path)).reduce(((e,t)=>e.concat(t.path,"\n")),"");const{filesToUpload:a,rootDirectory:i}=await this.findFilesToUpload(r);const n=this.validateArtifactName(e.name??t);if(a.length===0){this.noFileFound(e,r);return{artifactName:n,artifactItems:[],failedItems:[],size:0}}else{this.logger.debug(`With the provided path (${r}), there will be ${a.length} file(s) uploaded`);this.logger.debug(`Root artifact directory is ${i}`);return v.create().uploadArtifact(n,a,i,{continueOnError:false})}}};w=n([(0,d.Service)(),o("design:paramtypes",[])],w);t.UploadService=w},5173:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var p=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.CheckoutService=void 0;const c=r(6229);const l=r(9837);const d=r(8114);const u=s(r(3802));const m=r(5630);const h=p(r(1017));const g=r(8031);const v=r(7616);const y=r(8410);const b=r(293);let w=class CheckoutService{constructor(){this.config=u.default.get(c.ConfigurationService);this.logger=u.default.get(l.LoggerService).logger}getProjectDir(e){return h.default.join(this.config.getRootFolder(),e.project.replace(/[/\s]/g,"_"))}async cloneNode(e){const t=[];e.clone?.forEach((r=>{t.push((0,m.copy)(this.getProjectDir(e),h.default.join(this.config.getRootFolder(),r)))}));await Promise.all(t)}async checkoutNode(e){if(this.config.skipCheckout(e)){this.logger.info(`${e.project} checkout skipped`);return undefined}const t=await this.getCheckoutInfo(e);this.logger.debug(`[${e.project}] CheckoutInfo - ${JSON.stringify(t)}`);const r=u.default.get(v.GitCLIService);const a=this.config.getCloneUrl(t.targetGroup,t.targetName);await r.clone(a,t.repoDir,t.targetBranch).catch((r=>{this.logger.debug(JSON.stringify(r));(0,y.logAndThrow)(`[${e.project}] Error cloning ${t.targetGroup}/${t.targetName} and switching to target branch ${t.targetBranch}`)}));if(t.merge){this.logger.debug(`[${e.project}] Merging ${t.sourceGroup}/${t.sourceName}:${t.sourceBranch}\n into ${t.targetGroup}/${t.targetName}:${t.targetBranch}`);const a=this.config.getCloneUrl(t.sourceGroup,t.sourceName);await r.merge(t.repoDir,a,t.sourceBranch).catch((r=>{this.logger.debug(JSON.stringify(r));(0,y.logAndThrow)(`[${e.project}] Error merging ${t.sourceGroup}/${t.sourceName}:${t.sourceBranch}\n into ${t.targetGroup}/${t.targetName}:${t.targetBranch}`)}))}await this.cloneNode(e);this.logger.info(`${e.project} checked out`);return t}async getCheckoutInfo(e){const t=u.default.get(g.GithubAPIService);const r=this.config.getStarterNode();const a=this.config.getTargetProject();const i={mappedBranch:(0,d.getMappedTarget)(r.project,r.mapping,e.project,e.mapping,a.branch),name:e.project.split("/")[1],group:e.project.split("/")[0]};const n=this.config.getSourceProject();const s=await t.getForkName(i.group,n.group,i.name).then((async e=>{const r=await t.hasPullRequest(i.group,i.name,`${n.group}/${e}:${n.branch}`,i.mappedBranch);return{forkName:e,hasPullRequest:r}})).catch((e=>{if(e instanceof b.NotFoundError){return{forkName:"",hasPullRequest:false}}throw e}));if(s.hasPullRequest){return{sourceBranch:n.branch,sourceGroup:n.group,sourceName:s.forkName,targetBranch:i.mappedBranch,targetGroup:i.group,targetName:i.name,repoDir:this.getProjectDir(e),merge:true}}const o=await t.hasPullRequest(i.group,i.name,`${i.group}:${n.branch}`,i.mappedBranch);if(o){return{sourceBranch:n.branch,sourceGroup:i.group,sourceName:i.name,targetBranch:i.mappedBranch,targetGroup:i.group,targetName:i.name,repoDir:this.getProjectDir(e),merge:true}}return{sourceBranch:i.mappedBranch,sourceGroup:i.group,sourceName:i.name,targetBranch:i.mappedBranch,targetGroup:i.group,targetName:i.name,repoDir:this.getProjectDir(e),merge:false}}async checkoutDefinitionTreeSequential(){const e=[];for(const t of this.config.nodeChain){const r=await this.checkoutNode(t);e.push({node:t,checkoutInfo:r})}return e}async checkoutDefinitionTreeParallel(){return Promise.all(this.config.nodeChain.map((async e=>this.checkoutNode(e).then((t=>({node:e,checkoutInfo:t}))))))}async checkoutDefinitionTree(){return this.config.skipParallelCheckout()?this.checkoutDefinitionTreeSequential():this.checkoutDefinitionTreeParallel()}};w=n([(0,u.Service)(),o("design:paramtypes",[])],w);t.CheckoutService=w},4303:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.ExecuteCommandService=void 0;const p=s(r(3802));const c=r(4396);const l=r(5676);const d=r(9425);const u=r(9837);const m=r(6229);const h=r(6196);let g=class ExecuteCommandService{constructor(e,t,r){this._commandTreatmentDelegator=e;this._commandExecutorDelegator=t;this._configurationService=r}async executeCommand(e,t){const r=this._commandTreatmentDelegator.treatCommand(e,this._configurationService.getTreatmentOptions());return this._commandExecutorDelegator.executeCommand(r,t)}async executeChainCommands(e,t){const r=[];for(const{node:a,cwd:i}of e){const e=this.getNodeCommands(a,t,this._configurationService.getNodeExecutionLevel(a));r.push(await this.executeNodeCommands(a,e??[],this._configurationService.skipExecution(a),i))}return r}getNodeCommands(e,t,r){const a=e[`${t}`];let i;if(a){i=a[`${r}`].length?a[`${r}`]:a[`${h.NodeExecutionLevel.CURRENT}`]}if(!a){p.default.get(u.LoggerService).logger.debug(`No commands defined for project ${e.project} and phase ${t}`)}else if(!i||!i.length){const a=r!==h.NodeExecutionLevel.CURRENT?`${r} or ${h.NodeExecutionLevel.CURRENT}`:h.NodeExecutionLevel.CURRENT;p.default.get(u.LoggerService).logger.debug(`No commands defined for project ${e.project} phase ${t} and level ${a}`)}return i}async executeNodeCommands(e,t,r,a){const i={node:e,executeCommandResults:[]};for(const e of t){i.executeCommandResults.push(r?{startingDate:Date.now(),endingDate:Date.now(),command:e,result:c.ExecutionResult.SKIP,errorMessage:"",time:0}:await this.executeCommand(e,a))}return i}};g=n([(0,p.Service)(),o("design:paramtypes",[l.CommandTreatmentDelegator,d.CommandExecutorDelegator,m.ConfigurationService])],g);t.ExecuteCommandService=g},652:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.BashExecutor=void 0;const i=r(1514);const n=r(3802);let s=class BashExecutor{async execute(e,t){await(0,i.exec)(e,[],{cwd:t})}};s=a([(0,n.Service)()],s);t.BashExecutor=s},9425:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.CommandExecutorDelegator=void 0;const p=s(r(3802));const c=r(652);const l=r(7019);const d=r(4396);const u=r(9837);const m=r(3678);let h=class CommandExecutorDelegator{constructor(e,t){this._bashExecutor=e;this._exportExecutor=t}async executeCommand(e,t){const r=process.hrtime();const a=Date.now();let i;let n="";try{this.isExport(e)?await this._exportExecutor.execute(e,t):await this._bashExecutor.execute(e,t);i=d.ExecutionResult.OK}catch(t){n=t instanceof Error?t.message:"unknown";p.default.get(u.LoggerService).logger.error(`Error executing command ${e}. ${n}`);i=d.ExecutionResult.NOT_OK}return{startingDate:a,command:e,result:i,errorMessage:n,endingDate:Date.now(),time:(0,m.hrtimeToMs)(r)}}isExport(e){return e.trim().match(/^export .*=/)!==null}};h=n([(0,p.Service)(),o("design:paramtypes",[c.BashExecutor,l.ExportExecutor])],h);t.CommandExecutorDelegator=h},7019:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.ExportExecutor=void 0;const o=r(1514);const p=s(r(3802));const c=r(9837);let l=class ExportExecutor{async execute(e,t){const r=new ExpressionCommand(e);process.env[r.variable]=await this.executeExpression(r.expression,t);p.default.get(c.LoggerService).logger.debug(`The variable \`${r.variable}\` has been set to the env with the value \`${process.env[r.variable]}\``)}async executeExpression(e,t){const r=e.match(/`(.*)`/);const a=r?r[1]:undefined;if(a){let e="";const r={listeners:{stdout:t=>{e+=t.toString()}},cwd:t};await(0,o.exec)(a,[],r);return e}return e.replace(/['"]+/g,"")}};l=n([(0,p.Service)()],l);t.ExportExecutor=l;class ExpressionCommand{constructor(e){const t=this.getCommandArray(e);this._variable=t[1];this._expression=t[2]}getCommandArray(e){const t=e.match(/^export (\w+)=(.*)/);if(!t||t.length!==3){const t=`The export command ${e} is not properly defined. It should be something like "export VARIBLE=expression". Please fix it an try again.`;p.default.get(c.LoggerService).logger.error(t);throw new Error(t)}return t}get variable(){return this._variable}get expression(){return this._expression}}},4191:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CommandBuilder=void 0;class CommandBuilder{constructor(e,t){this.treatedCommand=e;this.options=t}treat(e){this.treatedCommand=e.treat(this.treatedCommand,this.options);return this}build(){return this.treatedCommand}}t.CommandBuilder=CommandBuilder},5676:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var i=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.CommandTreatmentDelegator=void 0;const n=r(3802);const s=r(4191);const o=r(3735);const p=r(6741);const c=r(6495);let l=class CommandTreatmentDelegator{constructor(e,t,r){this._environmentCommandTreatment=e;this._mavenCommandTreatment=t;this._regexCommandTreatment=r}treatCommand(e,t){return new s.CommandBuilder(e,t).treat(this._environmentCommandTreatment).treat(this._mavenCommandTreatment).treat(this._regexCommandTreatment).build()}};l=a([(0,n.Service)(),i("design:paramtypes",[o.EnvironmentCommandTreatment,p.MavenCommandTreatment,c.RegexCommandTreatment])],l);t.CommandTreatmentDelegator=l},3735:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.EnvironmentCommandTreatment=void 0;const i=r(3802);let n=class EnvironmentCommandTreatment{treat(e,t){const r=this.getVariablesFromCommand(e);return r?.length>0?r.reduce(((e,t)=>e.replace(t[0],process.env[t[1]]??"")),e):e}getVariablesFromCommand(e){return[...e.matchAll(/\${{ env\.(\w+) }}/g)]}};n=a([(0,i.Service)()],n);t.EnvironmentCommandTreatment=n},6741:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.MavenCommandTreatment=void 0;const i=r(3802);let n=class MavenCommandTreatment{treat(e,t){return!this.isMavenCommand(e,t?.mavenBinary)?e:`${e} -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B`}isMavenCommand(e,t="mvn"){return new RegExp(`.*${t} .*`).test(e)}};n=a([(0,i.Service)()],n);t.MavenCommandTreatment=n},6495:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o;Object.defineProperty(t,"__esModule",{value:true});t.RegexCommandTreatment=void 0;const p=s(r(3802));const c=r(9837);let l=o=class RegexCommandTreatment{treat(e,t){if(t?.replaceExpressions){p.default.get(c.LoggerService).logger.debug(`[${o.name}] Replacing command: \`${e}\` by expressions: '${t.replaceExpressions}'`);const r=t.replaceExpressions.reduce(((e,t)=>this.treatReplaceEx(e,t)),e);p.default.get(c.LoggerService).logger.debug(r===e?`[${o.name}] No replacement for \`${e}\``:`[${o.name}] Replaced to: \`${r}\``);return r}else{return e}}treatReplaceEx(e,t){const r=this.getReplacementExpression(t);return e.replace(r.regEx,r.replace)}getReplacementExpression(e){const t=e.split("||");return new ReplacementExpression(this.createRegex(t[0]),t[1])}createRegex(e){const[,t,r]=e.split("/");if(t){return r?new RegExp(t,r):new RegExp(t)}return new RegExp(e)}};l=o=n([(0,p.Service)()],l);t.RegexCommandTreatment=l;class ReplacementExpression{constructor(e,t){this._regEx=e;this._replace=t}get regEx(){return this._regEx}get replace(){return this._replace}}},1055:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.ActionConfiguration=void 0;const i=r(6759);const n=r(332);const s=r(8410);const o=a(r(3802));const p=r(3977);const c=r(8373);class ActionConfiguration extends n.BaseConfiguration{loadProject(){if(this.parsedInputs.flowType===c.FlowType.BRANCH){const e=this.parsedInputs.startProject??this.gitConfiguration.repository;const t=e.split("/");const r={branch:this.parsedInputs.branch??this.gitConfiguration.ref,repository:e,name:t[t.length-1],group:this.parsedInputs.group??t[0]};return{source:r,target:r}}else{return super.loadProject()}}loadGitConfiguration(){const e=process.env.GITHUB_SERVER_URL?process.env.GITHUB_SERVER_URL.replace(/\/$/,""):"https://github.com";return{action:process.env.GITHUB_ACTION,actor:process.env.GITHUB_ACTOR,author:process.env.GITHUB_AUTHOR,serverUrl:e,serverUrlWithToken:e.replace("://",`://${o.default.get(i.constants.GITHUB.TOKEN)}@`),jobId:process.env.GITHUB_JOB,ref:process.env.GITHUB_REF,workflow:process.env.GITHUB_WORKFLOW,repository:process.env.GITHUB_REPOSITORY}}async loadGitEvent(){if(this.parsedInputs.flowType===c.FlowType.BRANCH){return{}}if(process.env.GITHUB_EVENT_PATH){this.logger.debug("Getting pull request information");const e=await(0,p.readFile)(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"});return JSON.parse(e).pull_request}(0,s.logAndThrow)("Make sure you are running it in a github environment")}loadToken(){if(process.env.GITHUB_TOKEN){o.default.set(i.constants.GITHUB.TOKEN,process.env.GITHUB_TOKEN)}else{(0,s.logAndThrow)("A github token is needed")}}getFlowType(){return this.parsedInputs.flowType}}t.ActionConfiguration=ActionConfiguration},332:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.BaseConfiguration=void 0;const i=r(8373);const n=r(8081);const s=r(9837);const o=r(8410);const p=a(r(3802));class BaseConfiguration{constructor(){this.logger=p.default.get(s.LoggerService).logger;this._parsedInputs=i.defaultInputValues;this._gitEventData={};this._gitConfiguration={};this._sourceProject={};this._targetProject={}}async init(){this._parsedInputs=this.loadParsedInput();this.loadToken();this._gitEventData=await this.loadGitEvent();this._gitConfiguration=this.loadGitConfiguration();const{source:e,target:t}=this.loadProject();this._sourceProject=e;this._targetProject=t}get gitEventData(){return this._gitEventData}get gitConfiguration(){return this._gitConfiguration}get sourceProject(){return this._sourceProject}get targetProject(){return this._targetProject}get parsedInputs(){return this._parsedInputs}loadProject(){return{source:{branch:this.gitEventData.head.ref,repository:this.gitEventData.head.repo?.full_name,name:this.gitEventData.head.repo?.name,group:this.gitEventData.head.repo?.owner.login},target:{branch:this.gitEventData.base.ref,repository:this.gitEventData.base.repo.full_name,name:this.gitEventData.base.repo.name,group:this.gitEventData.base.repo.owner.login}}}loadParsedInput(){const e=p.default.get(n.InputService).inputs;e.customCommandTreatment?.forEach((e=>{if(e.split("||").length!==2){(0,o.logAndThrow)("Invalid format for custom command treatment. Required format: Regex||ReplaceRegex")}}));if(e.startProject&&e.startProject.split("/").length!==2){(0,o.logAndThrow)("Invalid start project. Start project must be of the form OWNER/PROJECT")}this.logger.debug(`Received input: ${JSON.stringify(e)}`);return e}}t.BaseConfiguration=BaseConfiguration},2336:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.CLIConfiguration=void 0;const i=r(6759);const n=r(8373);const s=r(332);const o=r(2322);const p=r(8410);const c=a(r(3802));class CLIConfiguration extends s.BaseConfiguration{loadProject(){if(this.parsedInputs.CLISubCommand===n.FlowType.BRANCH){const e=this.parsedInputs.startProject.split("/");const t={branch:this.parsedInputs.branch,name:e[e.length-1],group:this.parsedInputs.group??e[0],repository:this.parsedInputs.startProject};return{source:t,target:t}}else{return super.loadProject()}}loadGitConfiguration(){const e=process.env.GITHUB_SERVER_URL?process.env.GITHUB_SERVER_URL.replace(/\/$/,""):"https://github.com";let t={serverUrl:e,serverUrlWithToken:e.replace("://",`://${c.default.get(i.constants.GITHUB.TOKEN)}@`)};if(this.parsedInputs.CLISubCommand===n.FlowType.BRANCH){const e=this.parsedInputs.group??this.parsedInputs.startProject?.split("/")[0];if(!e){(0,p.logAndThrow)("Specify group option or set project name as GROUP_NAME/REPO_NAME")}t={...t,actor:e,ref:this.parsedInputs.branch}}return t}async loadGitEvent(){if(this.parsedInputs.CLISubCommand===n.FlowType.BRANCH){return{}}if(!this.parsedInputs.url){(0,p.logAndThrow)("If running from the CLI, event url needs to be defined")}const e=/^https?:\/\/.+\/([^/\s]+)\/([^/\s]+)\/pull\/(\d+)$/;const t=this.parsedInputs.url.match(e);if(t){this.logger.debug("Getting pull request information");try{const{data:e}=await c.default.get(o.OctokitService).octokit.pulls.get({owner:t[1],repo:t[2],pull_number:parseInt(t[3])});return e}catch(e){(0,p.logAndThrow)(`Invalid event url ${this.parsedInputs.url}`)}}(0,p.logAndThrow)(`Invalid event url ${this.parsedInputs.url}. URL must be a github pull request event url or a github tree url`)}loadToken(){if(this.parsedInputs.token){c.default.set(i.constants.GITHUB.TOKEN,this.parsedInputs.token)}else if(process.env.GITHUB_TOKEN){c.default.set(i.constants.GITHUB.TOKEN,process.env.GITHUB_TOKEN)}else{(0,p.logAndThrow)("A github token is needed")}}getFlowType(){const e=this.parsedInputs.CLISubCommand;if(Object.values(n.FlowType).includes(e)){return e}(0,p.logAndThrow)("The CLI subcommand is a tool commaand. No flow defined")}}t.CLIConfiguration=CLIConfiguration},6229:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.ConfigurationService=void 0;const p=s(r(3802));const c=r(6196);const l=r(6759);const d=r(6848);const u=r(2336);const m=r(1055);const h=r(8410);const g=r(8373);const v=r(6012);let y=class ConfigurationService{constructor(){switch(p.default.get(l.constants.CONTAINER.ENTRY_POINT)){case d.EntryPoint.CLI:this.configuration=new u.CLIConfiguration;break;case d.EntryPoint.GITHUB_EVENT:this.configuration=new m.ActionConfiguration;break;default:(0,h.logAndThrow)("Invalid entrypoint. Please contact with the administrator or report and issue to build-chain tool repository")}this._nodeChain=[];this._definitionFile={version:"2.1"}}get nodeChain(){return this._nodeChain}get definitionFile(){return this._definitionFile}async init(){await this.configuration.init();const e=new v.DefinitionFileReader(this.configuration);this._definitionFile=await e.getDefinitionFile();this._nodeChain=await e.generateNodeChain(this.getStarterProjectName())}getStarterProjectName(){const e=this.configuration.parsedInputs.startProject??process.env.GITHUB_REPOSITORY??this.configuration.gitEventData.base.repo.full_name;if(!e){(0,h.logAndThrow)("Start project needs to be defined or build chain must be run in a Github environment")}return e}isNodeStarter(e){return e.project===this.getStarterProjectName()}getStarterNode(){const e=this.nodeChain.find((e=>this.isNodeStarter(e)));if(!e){(0,h.logAndThrow)(`There's no project ${this.getStarterProjectName()} in the chain\n This is normally due the project starting the job (or the one selected to behave like so it's not in the project tree information.\n Please choose a different project like starter or define the project ${this.getStarterProjectName()} in the tree.`)}return e}getNodeExecutionLevel(e){const t=this.nodeChain.indexOf(this.getStarterNode());const r=this.nodeChain.indexOf(e);if(rt){return c.NodeExecutionLevel.DOWNSTREAM}else{return c.NodeExecutionLevel.CURRENT}}skipExecution(e){if(this.configuration.parsedInputs.skipExecution){return true}return this.configuration.parsedInputs.skipProjectExecution?this.configuration.parsedInputs.skipProjectExecution.includes(e.project):false}skipCheckout(e){if(this.configuration.parsedInputs.skipCheckout){return true}return this.configuration.parsedInputs.skipProjectCheckout?this.configuration.parsedInputs.skipProjectCheckout.includes(e.project):false}skipParallelCheckout(){return this.configuration.parsedInputs.skipParallelCheckout}getTreatmentOptions(){if(this.configuration.parsedInputs.customCommandTreatment){return{replaceExpressions:this.configuration.parsedInputs.customCommandTreatment}}return{}}getTargetProject(){return this.configuration.targetProject}getSourceProject(){return this.configuration.sourceProject}getRootFolder(){return this.configuration.parsedInputs.outputFolder??process.env.GITHUB_WORKSPACE??process.cwd()}getFlowType(){return this.configuration.getFlowType()}getCloneUrl(e,t){if(process.env.ACT){return`${process.env.ACT_REPO}${e}/${t}`}return`${this.configuration.gitConfiguration.serverUrlWithToken}/${e}/${t}`}getPre(){return this.definitionFile.pre}getPost(){return this.definitionFile.post}getDefinitionFileUrl(){return this.configuration.parsedInputs.definitionFile}getEventUrl(){return this.getFlowType()===g.FlowType.BRANCH?"":this.configuration.gitEventData.html_url}};y=n([(0,p.Service)(),o("design:paramtypes",[])],y);t.ConfigurationService=y},6012:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.DefinitionFileReader=void 0;const i=r(6759);const n=r(8373);const s=r(9837);const o=r(8410);const p=r(8114);const c=a(r(3802));class DefinitionFileReader{constructor(e){this.configuration=e;this.logger=c.default.get(s.LoggerService).logger}async generateNodeChainWithOptions(e,t){let r;switch(this.configuration.getFlowType()){case n.FlowType.BRANCH:{if(this.configuration.parsedInputs.fullProjectDependencyTree){r=await(0,p.getOrderedListForProject)(this.configuration.parsedInputs.definitionFile,e,t)}else{const a=await(0,p.getTreeForProject)(this.configuration.parsedInputs.definitionFile,e,t);if(!a){throw new Error("Starting project not found")}r=(0,p.parentChainFromNode)(a)}break}case n.FlowType.CROSS_PULL_REQUEST:{const a=await(0,p.getTreeForProject)(this.configuration.parsedInputs.definitionFile,e,t);if(!a){throw new Error("Starting project not found")}r=(0,p.parentChainFromNode)(a);break}case n.FlowType.FULL_DOWNSTREAM:{r=await(0,p.getOrderedListForProject)(this.configuration.parsedInputs.definitionFile,e,t);break}case n.FlowType.SINGLE_PULL_REQUEST:{const a=await(0,p.getTreeForProject)(this.configuration.parsedInputs.definitionFile,e,t);if(!a){throw new Error("Starting project not found")}r=[a]}}return r}async getDefinitionFile(){try{return await(0,p.readDefinitionFile)(this.configuration.parsedInputs.definitionFile,{...this.configuration.sourceProject,token:c.default.get(i.constants.GITHUB.TOKEN)})}catch(e){this.logger.debug("Did not find correct definition file, trying target")}try{return await(0,p.readDefinitionFile)(this.configuration.parsedInputs.definitionFile,{...this.configuration.targetProject,token:c.default.get(i.constants.GITHUB.TOKEN)})}catch(e){(0,o.logAndThrow)("Invalid definition file")}}async generateNodeChain(e){try{return await this.generateNodeChainWithOptions(e,{...this.configuration.sourceProject,token:c.default.get(i.constants.GITHUB.TOKEN)})}catch(e){this.logger.debug("Did not find correct definition on file, trying target")}try{return await this.generateNodeChainWithOptions(e,{...this.configuration.targetProject,token:c.default.get(i.constants.GITHUB.TOKEN)})}catch(e){(0,o.logAndThrow)("Invalid definition file")}}}t.DefinitionFileReader=DefinitionFileReader},6298:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.FlowService=void 0;const p=r(4396);const c=r(6696);const l=r(7774);const d=r(5173);const u=r(4303);const m=r(6229);const h=r(9837);const g=s(r(3802));let v=class FlowService{constructor(){this.configService=g.default.get(m.ConfigurationService);this.checkoutService=g.default.get(d.CheckoutService);this.executor=g.default.get(u.ExecuteCommandService);this.artifactService=g.default.get(l.ArtifactService);this.logger=g.default.get(h.LoggerService).logger}async run(){this.logger.startGroup("Execution Plan");this.printExecutionPlan();this.logger.endGroup();this.logger.startGroup(`Checking out ${this.configService.getStarterProjectName()} and its dependencies (${this.configService.nodeChain.length} projects in total). It can take some time.`);const e=await this.checkoutService.checkoutDefinitionTree();this.logger.endGroup();this.logger.startGroup("Checkout summary");this.printCheckoutSummary(e);this.logger.endGroup();const t=this.configService.nodeChain.map((t=>({node:t,cwd:e.find((e=>e.node.project===t.project)).checkoutInfo?.repoDir})));const r=await this.executeAndPrint(t,c.ExecutionPhase.BEFORE);const a=await this.executeAndPrint(t,c.ExecutionPhase.CURRENT);const i=await this.executeAndPrint(t,c.ExecutionPhase.AFTER);this.logger.startGroup("Uploading artifacts");const n=await this.artifactService.uploadNodes(this.configService.nodeChain,this.configService.getStarterNode());this.logger.endGroup();return{checkoutInfo:e,artifactUploadResults:n,executionResult:{after:i,commands:a,before:r}}}printExecutionPlan(){this.logger.info(`${this.configService.nodeChain.length} projects will be executed`);this.configService.nodeChain.forEach((e=>{const t=this.configService.getNodeExecutionLevel(e);this.logger.info(`[${e.project}]`);this.logger.info(`\t Level type: ${t}`);if(this.configService.skipExecution(e)){this.logger.info("\t No command will be executed (this project will be skipped)")}else{const r=this.executor.getNodeCommands(e,c.ExecutionPhase.BEFORE,t);const a=this.executor.getNodeCommands(e,c.ExecutionPhase.CURRENT,t);const i=this.executor.getNodeCommands(e,c.ExecutionPhase.AFTER,t);if(r?.length){this.logger.info(`\t [${c.ExecutionPhase.BEFORE}]`);this.logger.info(`\t\t ${r.join("\n")}`)}if(a?.length){this.logger.info(`\t [${c.ExecutionPhase.CURRENT}]`);this.logger.info(`\t\t ${a.join("\n")}`)}if(i?.length){this.logger.info(`\t [${c.ExecutionPhase.AFTER}]`);this.logger.info(`\t\t ${i.join("\n")}`)}}}))}printCheckoutSummary(e){e.forEach((e=>{this.logger.info(`[${e.node.project}]`);if(e.checkoutInfo){this.logger.info(`\t Project taken from ${e.checkoutInfo.targetGroup}/${e.checkoutInfo.targetName}:${e.checkoutInfo.targetBranch}`);if(e.checkoutInfo.merge){this.logger.info(`\t Merged ${e.checkoutInfo.sourceGroup}/${e.checkoutInfo.sourceName}:${e.checkoutInfo.sourceBranch} into branch ${e.checkoutInfo.targetBranch}`)}}else{this.logger.info("\t This project wasn't checked out")}}))}printExecutionSummary(e,t){e.forEach((e=>{if(this.isNodeExecutionSkipped(e)){this.logger.info(`[${t.toUpperCase()}] Skipped ${e.node.project}`)}else{if(!e.executeCommandResults.length){this.logger.info(`[${t.toUpperCase()}] No commands were found for ${e.node.project}`)}e.executeCommandResults.forEach((r=>{this.logger.startGroup(`[${t.toUpperCase()}] [${e.node.project}] ${r.command}`);this.logger.info(`${r.result} [Executed in ${r.time} ms]`);if(r.result===p.ExecutionResult.NOT_OK){this.logger.error(r.errorMessage)}this.logger.endGroup()}))}}))}async executeAndPrint(e,t){this.logger.startGroup(`Executing ${t}`);const r=await this.executor.executeChainCommands(e,t);this.logger.info(`Execution summary for phase ${t}`);this.printExecutionSummary(r,t);this.logger.endGroup();return r}isNodeExecutionSkipped(e){return!!e.executeCommandResults.find((e=>e.result===p.ExecutionResult.SKIP))}};v=n([(0,g.Service)(),o("design:paramtypes",[])],v);t.FlowService=v},7616:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var p=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.GitCLIService=void 0;const c=p(r(9103));const l=s(r(3802));const d=p(r(7147));const u=r(9837);let m=class GitCLIService{constructor(){this.logger=l.default.get(u.LoggerService).logger}git(e,t){const r={...e?{baseDir:e}:{},...t?{errors:t}:{}};return(0,c.default)(r).addConfig("user.name","Github").addConfig("user.email","noreply@github.com")}async version(){const e=await(0,c.default)().raw("version");const t=e.match(/(\d+\.\d+(\.\d+)?)/);return t?t[1]:undefined}async clone(e,t,r){if(!d.default.existsSync(t)){await(0,c.default)().clone(e,t,["--quiet","--shallow-submodules","--no-tags","--branch",r])}else{this.logger.warn(`Folder ${t} already exist. Won't clone`)}}async fetch(e,t){await this.git(e).fetch("origin",t,["--quiet"])}async getCommonAncestor(e,...t){if(t.length===1){return t[0]}else if(t.length<1){throw new Error("empty refs!")}const errorHandler=(e,t)=>{if(t.exitCode===1||t.exitCode===0){return}if(e){return e}return Buffer.concat([...t.stdOut,...t.stdErr])};return(await this.git(e,errorHandler).raw("merge-base","--octopus",...t)).trim()}async getReachableParentCommits(e,t){return(await this.git(e).raw("rev-list","--parents",`${t}..HEAD`)).split(/\n/g).map((e=>e.split(/ /g).slice(1))).flat()}async merge(e,t,r){await this.git(e).pull(t,r,["--no-rebase","--allow-unrelated-histories"])}async head(e){return this.git(e).raw("show-ref","--head","-s","/HEAD")}async sha(e,t){return this.git(e).raw("show-ref","-s",`refs/remotes/origin/${t}`)}async rename(e,t){await this.git(e).branch(["--move",t])}async rebase(e,t){await this.git(e).rebase(["--quiet","--autosquash",t])}async push(e,t,r){const a=["--quiet"];if(t){a.push("--force-with-lease")}await this.git(e).push("origin",r,a)}};m=n([(0,l.Service)(),o("design:paramtypes",[])],m);t.GitCLIService=m},8031:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.GithubAPIService=void 0;const p=r(293);const c=r(2322);const l=r(9837);const d=r(8410);const u=s(r(3802));let m=class GithubAPIService{constructor(){this.logger=u.default.get(l.LoggerService).logger;this.octokit=u.default.get(c.OctokitService).octokit}async doesBranchExist(e,t,r){try{await this.octokit.repos.getBranch({owner:e,repo:t,branch:r});return true}catch(a){this.logger.warn(`project github.com/${e}/${t}:${r} does not exist. It's not necessarily an error.`);return false}}async hasPullRequest(e,t,r,a){let i={owner:e,repo:t,state:"open"};if(!a&&!r){(0,d.logAndThrow)(`[${e}/${t}] Either head or base needs to be defined while requesting pull request information`)}if(a){i={...i,base:a}}if(r){i={...i,head:r}}try{const{status:e,data:t}=await this.octokit.pulls.list(i);return e===200&&t.length>0}catch(i){let n=`Error getting pull request list from https://api.github.com/repos/${e}/${t}/pulls?state=open`;if(a){n+=`&base=${a}`}if(r){n+=`&head=${r}`}this.logger.error(n);throw i}}async getForkName(e,t,r){try{if(e===t){await this.octokit.repos.get({owner:t,repo:r});return r}else{for await(const a of this.octokit.paginate.iterator(this.octokit.repos.listForks,{owner:e,repo:r})){const e=a.data.find((e=>e.owner.login===t));if(e){return e.name}}throw new p.NotFoundError}}catch(a){this.logger.error(`Error getting fork name for ${e}/${r} where owner is ${t}`);throw a}}};m=n([(0,u.Service)(),o("design:paramtypes",[])],m);t.GithubAPIService=m},2322:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.OctokitService=void 0;const p=r(6759);const c=r(5375);const l=s(r(3802));const d=r(3764);let u=class OctokitService{constructor(){const e=process.env["http_proxy"];this._octokit=new c.Octokit({auth:l.default.get(p.constants.GITHUB.TOKEN),userAgent:"kiegroup/github-build-chain-action",request:{agent:e?new d.HttpProxyAgent(e):undefined}})}get octokit(){return this._octokit}};u=n([(0,l.Service)(),o("design:paramtypes",[])],u);t.OctokitService=u},8081:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.InputService=void 0;const i=r(8373);const n=r(3802);let s=class InputService{constructor(){this._inputs=i.defaultInputValues}get inputs(){return this._inputs}updateInputs(e){this._inputs={...this.inputs,...e}}};s=a([(0,n.Service)()],s);t.InputService=s},361:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.JobSummaryService=void 0;const p=s(r(3802));const c=s(r(2186));const l=r(6229);const d=r(8373);const u=r(7616);const m=r(4396);const h=r(6696);let g=class JobSummaryService{constructor(){this.configService=p.default.get(l.ConfigurationService);this.gitService=p.default.get(u.GitCLIService)}async generateSummary(e,t,r){const a=this.configService.getFlowType();if(a===d.FlowType.BRANCH){return}const i=c.summary.emptyBuffer().addRaw("You can copy paste the following commands to locally execute build chain tool.",true).addCodeBlock(`npm i @kie/build-chain-action -g\nbuild-chain build ${a} -f ${this.configService.getDefinitionFileUrl()} -u ${this.configService.getEventUrl()}`).addEOL().addRaw(`**Git Version**: \`${await this.gitService.version()}\``,true).addRaw("> **_Notice_**: The `GITHUB_TOKEN` should be set in the environment.",true).stringify();const n=this.constructExecutionResult(e.executionResult.before,e.checkoutInfo);const s=this.constructExecutionResult(e.executionResult.commands,e.checkoutInfo);const o=this.constructExecutionResult(e.executionResult.after,e.checkoutInfo);const p=this.constructPrePostResult(t);const l=this.constructPrePostResult(r);await c.summary.emptyBuffer().addHeading("Build Chain Execution Summary").addEOL().addRaw(`**Project Starting the Job:** [${this.configService.getStarterProjectName()}](https://github.com/${this.configService.getStarterProjectName()})`,true).addRaw(`

Pre

${p}
`,true).addRaw(`

Execution phase: ${h.ExecutionPhase.BEFORE}

${n}
`,true).addRaw(`

Execution phase: ${h.ExecutionPhase.CURRENT}

${s}
`,true).addRaw(`

Execution phase: ${h.ExecutionPhase.AFTER}

${o}
`,true).addRaw(`

Post

${l}
`,true).addRaw(`

Local Execution

${i}
`,true).write()}constructPrePostResult(e){const t=[{data:"Command",header:true},{data:"Execution Result",header:true},{data:"Execution Time",header:true}];const r=e.map((e=>[e.command,this.getExecutionResultString(e.result),`${e.time}`]));return c.summary.emptyBuffer().addTable([t,...r]).stringify()}constructExecutionResult(e,t){const r=[{data:"Project",header:true},{data:"Source",header:true},{data:"Target",header:true},{data:"Merged",header:true},{data:"Execution Result",header:true},{data:"Avg Execution Time",header:true}];return c.summary.emptyBuffer().addTable([r,...this.getExecutionResultData(e,t)]).addEOL().addRaw("```mermaid",true).addRaw(this.constructGraph(e),true).addRaw("```",true).stringify()}getExecutionResult(e){return e.find((e=>e.result!==m.ExecutionResult.OK))?.result??m.ExecutionResult.OK}getExecutionResultString(e){switch(e){case m.ExecutionResult.NOT_OK:return"❌";case m.ExecutionResult.SKIP:return"⛔";default:return"✅"}}getExecutionResultData(e,t){return e.map((e=>{const r=t.find((t=>t.node.project===e.node.project)).checkoutInfo;const a=this.getExecutionResultString(this.getExecutionResult(e.executeCommandResults));return[e.node.project,r?`${r.targetGroup}/${r.targetName}:${r.targetBranch}`:"checkout skipped",r?`${r.sourceGroup}/${r.sourceName}:${r.sourceBranch}`:"checkout skipped",r?.merge?"✅":"❌",a,e.executeCommandResults.length>0?`${e.executeCommandResults.reduce(((e,t)=>e+t.time),0)/e.executeCommandResults.length}`:"0"]}))}constructGraph(e){return`flowchart LR;\n ${e.map((e=>{const t=this.getExecutionResult(e.executeCommandResults);let r="okClass";switch(t){case m.ExecutionResult.NOT_OK:r="errorClass";break;case m.ExecutionResult.SKIP:r="noEntry";break}return`${e.node.project}:::${r}`})).join("==>")}\n ${e.map((e=>`click ${e.node.project} 'https://github.com/${e.node.project}'`)).join("\n\t\t\t\t")}\n classDef okClass fill:#218838,stroke:#1e7e34,color: #fff,border-radius: 4px\n classDef errorClass fill:#dc3545,stroke:#dc3545,color: #fff,border-radius: 4px\n classDef noEntry fill:#6c757d,stroke:#6c757d,color: #fff,border-radius: 4px`}};g=n([(0,p.Service)(),o("design:paramtypes",[])],g);t.JobSummaryService=g},8140:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.BaseLoggerService=void 0;const i=r(8373);const n=r(8081);const s=r(8416);const o=a(r(3802));class BaseLoggerService{constructor(){this._logger=new s.Logger;this.input=o.default.get(n.InputService)}debug(e){if(this.input.inputs.loggerLevel==i.LoggerLevel.DEBUG){this._logger.log("[DEBUG]",e)}}info(e){this._logger.log("[INFO]",e)}trace(e){if(this.input.inputs.loggerLevel==i.LoggerLevel.TRACE){this._logger.log("[TRACE]",e)}}warn(e){this._logger.log("[WARN]",e)}error(e){this._logger.log("[ERROR]",e)}get logger(){return this._logger}}t.BaseLoggerService=BaseLoggerService},8625:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CLILoggerService=void 0;const a=r(8140);class CLILoggerService extends a.BaseLoggerService{constructor(){super()}endGroup(){super.logger.emptyLine()}startGroup(e){super.logger.log("#",e)}}t.CLILoggerService=CLILoggerService},418:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.GithubActionLoggerService=void 0;const s=r(8140);const o=n(r(2186));class GithubActionLoggerService extends s.BaseLoggerService{constructor(){super()}endGroup(){o.endGroup()}startGroup(e){o.startGroup(e)}}t.GithubActionLoggerService=GithubActionLoggerService},9837:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.LoggerService=void 0;const p=r(6759);const c=r(6848);const l=r(8625);const d=r(418);const u=s(r(3802));let m=class LoggerService{constructor(){const e=u.default.get(p.constants.CONTAINER.ENTRY_POINT);switch(e){case c.EntryPoint.CLI:this._logger=new l.CLILoggerService;break;case c.EntryPoint.GITHUB_EVENT:this._logger=new d.GithubActionLoggerService;break;default:throw new Error(`No LoggerService defined for ${e}`)}}get logger(){return this._logger}};m=n([(0,u.Service)(),o("design:paramtypes",[])],m);t.LoggerService=m},8416:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Logger=void 0;class Logger{log(e,...t){console.log.apply(console,[e,...t])}emptyLine(){this.log("","")}}t.Logger=Logger},3063:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var i=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var n=this&&this.__param||function(e,t){return function(r,a){t(r,a,e)}};Object.defineProperty(t,"__esModule",{value:true});t.PostExecutor=void 0;const s=r(6165);const o=r(3802);let p=class PostExecutor extends s.PrePostExecutor{constructor(e){super();this.executionSuccess=e}async run(){const e=this.configService.getPost();let t=[];if(e){this.logger.startGroup("Executing post section");if(this.executionSuccess){this.logger.info("execution result is OK, so 'success' and 'always' sections will be executed");if(e.success){t=await this.execute(e.success)}}else{this.logger.info("execution result is NOT OK, so 'failure' and 'always' sections will be executed");if(e.failure){t=await this.execute(e.failure)}}if(e.always){t=[...t,...await this.execute(e.always)]}this.logger.endGroup()}return t}};p=a([(0,o.Service)(),n(0,(0,o.Inject)("post.executionSuccess")),i("design:paramtypes",[Boolean])],p);t.PostExecutor=p},6165:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.PrePostExecutor=void 0;const i=r(4303);const n=r(6229);const s=r(9837);const o=a(r(3802));class PrePostExecutor{constructor(){this.configService=o.default.get(n.ConfigurationService);this.logger=o.default.get(s.LoggerService).logger;this.executeService=o.default.get(i.ExecuteCommandService)}async execute(e){const t=[];if(Array.isArray(e)){for(const r of e){t.push(await this.executeService.executeCommand(r,process.cwd()))}}else{t.push(await this.executeService.executeCommand(e,process.cwd()))}return t}}t.PrePostExecutor=PrePostExecutor},7814:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.PreExecutor=void 0;const i=r(6165);const n=r(3802);let s=class PreExecutor extends i.PrePostExecutor{async run(){const e=this.configService.getPre();let t=[];if(e){this.logger.startGroup("Executing pre section");t=await this.execute(e);this.logger.endGroup()}return t}};s=a([(0,n.Service)()],s);t.PreExecutor=s},3678:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.hrtimeToMs=t.formatDate=void 0;function formatDate(e){return`${e.getFullYear()}${e.getMonth()}${e.getDate()}${e.getHours()}${e.getMinutes()}${e.getSeconds()}`}t.formatDate=formatDate;function hrtimeToMs(e,t=process.hrtime(e)){return t[0]*1e3+t[1]/1e6}t.hrtimeToMs=hrtimeToMs},8410:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.logAndThrow=void 0;const i=r(9837);const n=a(r(3802));function logAndThrow(e){n.default.get(i.LoggerService).logger.error(e);throw new Error(e)}t.logAndThrow=logAndThrow},2877:module=>{module.exports=eval("require")("encoding")},9491:e=>{"use strict";e.exports=require("assert")},2081:e=>{"use strict";e.exports=require("child_process")},2057:e=>{"use strict";e.exports=require("constants")},6113:e=>{"use strict";e.exports=require("crypto")},2361:e=>{"use strict";e.exports=require("events")},7147:e=>{"use strict";e.exports=require("fs")},3292:e=>{"use strict";e.exports=require("fs/promises")},3685:e=>{"use strict";e.exports=require("http")},5687:e=>{"use strict";e.exports=require("https")},1808:e=>{"use strict";e.exports=require("net")},3977:e=>{"use strict";e.exports=require("node:fs/promises")},2037:e=>{"use strict";e.exports=require("os")},1017:e=>{"use strict";e.exports=require("path")},4074:e=>{"use strict";e.exports=require("perf_hooks")},5477:e=>{"use strict";e.exports=require("punycode")},2781:e=>{"use strict";e.exports=require("stream")},1576:e=>{"use strict";e.exports=require("string_decoder")},9512:e=>{"use strict";e.exports=require("timers")},4404:e=>{"use strict";e.exports=require("tls")},6224:e=>{"use strict";e.exports=require("tty")},7310:e=>{"use strict";e.exports=require("url")},3837:e=>{"use strict";e.exports=require("util")},9796:e=>{"use strict";e.exports=require("zlib")},8109:(e,t,r)=>{"use strict";var a=r(1399);var i=r(9338);var n=r(2986);var s=r(2289);var o=r(45);function composeCollection(e,t,r,p,c){let l;switch(r.type){case"block-map":{l=n.resolveBlockMap(e,t,r,c);break}case"block-seq":{l=s.resolveBlockSeq(e,t,r,c);break}case"flow-collection":{l=o.resolveFlowCollection(e,t,r,c);break}}if(!p)return l;const d=t.directives.tagName(p.source,(e=>c(p,"TAG_RESOLVE_FAILED",e)));if(!d)return l;const u=l.constructor;if(d==="!"||d===u.tagName){l.tag=u.tagName;return l}const m=a.isMap(l)?"map":"seq";let h=t.schema.tags.find((e=>e.collection===m&&e.tag===d));if(!h){const e=t.schema.knownTags[d];if(e&&e.collection===m){t.schema.tags.push(Object.assign({},e,{default:false}));h=e}else{c(p,"TAG_RESOLVE_FAILED",`Unresolved tag: ${d}`,true);l.tag=d;return l}}const g=h.resolve(l,(e=>c(p,"TAG_RESOLVE_FAILED",e)),t.options);const v=a.isNode(g)?g:new i.Scalar(g);v.range=l.range;v.tag=d;if(h?.format)v.format=h.format;return v}t.composeCollection=composeCollection},5050:(e,t,r)=>{"use strict";var a=r(42);var i=r(8676);var n=r(1250);var s=r(6985);function composeDoc(e,t,{offset:r,start:o,value:p,end:c},l){const d=Object.assign({_directives:t},e);const u=new a.Document(undefined,d);const m={atRoot:true,directives:u.directives,options:u.options,schema:u.schema};const h=s.resolveProps(o,{indicator:"doc-start",next:p??c?.[0],offset:r,onError:l,startOnNewline:true});if(h.found){u.directives.docStart=true;if(p&&(p.type==="block-map"||p.type==="block-seq")&&!h.hasNewline)l(h.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}u.contents=p?i.composeNode(m,p,h,l):i.composeEmptyNode(m,h.end,o,null,h,l);const g=u.contents.range[2];const v=n.resolveEnd(c,g,false,l);if(v.comment)u.comment=v.comment;u.range=[r,g,v.offset];return u}t.composeDoc=composeDoc},8676:(e,t,r)=>{"use strict";var a=r(5639);var i=r(8109);var n=r(4766);var s=r(1250);var o=r(8781);const p={composeNode:composeNode,composeEmptyNode:composeEmptyNode};function composeNode(e,t,r,a){const{spaceBefore:s,comment:o,anchor:c,tag:l}=r;let d;let u=true;switch(t.type){case"alias":d=composeAlias(e,t,a);if(c||l)a(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":d=n.composeScalar(e,t,l,a);if(c)d.anchor=c.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":d=i.composeCollection(p,e,t,l,a);if(c)d.anchor=c.source.substring(1);break;default:{const i=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;a(t,"UNEXPECTED_TOKEN",i);d=composeEmptyNode(e,t.offset,undefined,null,r,a);u=false}}if(c&&d.anchor==="")a(c,"BAD_ALIAS","Anchor cannot be an empty string");if(s)d.spaceBefore=true;if(o){if(t.type==="scalar"&&t.source==="")d.comment=o;else d.commentBefore=o}if(e.options.keepSourceTokens&&u)d.srcToken=t;return d}function composeEmptyNode(e,t,r,a,{spaceBefore:i,comment:s,anchor:p,tag:c,end:l},d){const u={type:"scalar",offset:o.emptyScalarPosition(t,r,a),indent:-1,source:""};const m=n.composeScalar(e,u,c,d);if(p){m.anchor=p.source.substring(1);if(m.anchor==="")d(p,"BAD_ALIAS","Anchor cannot be an empty string")}if(i)m.spaceBefore=true;if(s){m.comment=s;m.range[2]=l}return m}function composeAlias({options:e},{offset:t,source:r,end:i},n){const o=new a.Alias(r.substring(1));if(o.source==="")n(t,"BAD_ALIAS","Alias cannot be an empty string");if(o.source.endsWith(":"))n(t+r.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",true);const p=t+r.length;const c=s.resolveEnd(i,p,e.strict,n);o.range=[t,p,c.offset];if(c.comment)o.comment=c.comment;return o}t.composeEmptyNode=composeEmptyNode;t.composeNode=composeNode},4766:(e,t,r)=>{"use strict";var a=r(1399);var i=r(9338);var n=r(9485);var s=r(7578);function composeScalar(e,t,r,o){const{value:p,type:c,comment:l,range:d}=t.type==="block-scalar"?n.resolveBlockScalar(t,e.options.strict,o):s.resolveFlowScalar(t,e.options.strict,o);const u=r?e.directives.tagName(r.source,(e=>o(r,"TAG_RESOLVE_FAILED",e))):null;const m=r&&u?findScalarTagByName(e.schema,p,u,r,o):t.type==="scalar"?findScalarTagByTest(e,p,t,o):e.schema[a.SCALAR];let h;try{const n=m.resolve(p,(e=>o(r??t,"TAG_RESOLVE_FAILED",e)),e.options);h=a.isScalar(n)?n:new i.Scalar(n)}catch(e){const a=e instanceof Error?e.message:String(e);o(r??t,"TAG_RESOLVE_FAILED",a);h=new i.Scalar(p)}h.range=d;h.source=p;if(c)h.type=c;if(u)h.tag=u;if(m.format)h.format=m.format;if(l)h.comment=l;return h}function findScalarTagByName(e,t,r,i,n){if(r==="!")return e[a.SCALAR];const s=[];for(const t of e.tags){if(!t.collection&&t.tag===r){if(t.default&&t.test)s.push(t);else return t}}for(const e of s)if(e.test?.test(t))return e;const o=e.knownTags[r];if(o&&!o.collection){e.tags.push(Object.assign({},o,{default:false,test:undefined}));return o}n(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${r}`,r!=="tag:yaml.org,2002:str");return e[a.SCALAR]}function findScalarTagByTest({directives:e,schema:t},r,i,n){const s=t.tags.find((e=>e.default&&e.test?.test(r)))||t[a.SCALAR];if(t.compat){const o=t.compat.find((e=>e.default&&e.test?.test(r)))??t[a.SCALAR];if(s.tag!==o.tag){const t=e.tagString(s.tag);const r=e.tagString(o.tag);const a=`Value may be parsed as either ${t} or ${r}`;n(i,"TAG_RESOLVE_FAILED",a,true)}}return s}t.composeScalar=composeScalar},9493:(e,t,r)=>{"use strict";var a=r(5400);var i=r(42);var n=r(4236);var s=r(1399);var o=r(5050);var p=r(1250);function getErrorPos(e){if(typeof e==="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];const{offset:t,source:r}=e;return[t,t+(typeof r==="string"?r.length:1)]}function parsePrelude(e){let t="";let r=false;let a=false;for(let i=0;i{const i=getErrorPos(e);if(a)this.warnings.push(new n.YAMLWarning(i,t,r));else this.errors.push(new n.YAMLParseError(i,t,r))};this.directives=new a.Directives({version:e.version||"1.2"});this.options=e}decorate(e,t){const{comment:r,afterEmptyLine:a}=parsePrelude(this.prelude);if(r){const i=e.contents;if(t){e.comment=e.comment?`${e.comment}\n${r}`:r}else if(a||e.directives.docStart||!i){e.commentBefore=r}else if(s.isCollection(i)&&!i.flow&&i.items.length>0){let e=i.items[0];if(s.isPair(e))e=e.key;const t=e.commentBefore;e.commentBefore=t?`${r}\n${t}`:r}else{const e=i.commentBefore;i.commentBefore=e?`${r}\n${e}`:r}}if(t){Array.prototype.push.apply(e.errors,this.errors);Array.prototype.push.apply(e.warnings,this.warnings)}else{e.errors=this.errors;e.warnings=this.warnings}this.prelude=[];this.errors=[];this.warnings=[]}streamInfo(){return{comment:parsePrelude(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=false,r=-1){for(const t of e)yield*this.next(t);yield*this.end(t,r)}*next(e){if(process.env.LOG_STREAM)console.dir(e,{depth:null});switch(e.type){case"directive":this.directives.add(e.source,((t,r,a)=>{const i=getErrorPos(e);i[0]+=t;this.onError(i,"BAD_DIRECTIVE",r,a)}));this.prelude.push(e.source);this.atDirectives=true;break;case"document":{const t=o.composeDoc(this.options,this.directives,e,this.onError);if(this.atDirectives&&!t.directives.docStart)this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line");this.decorate(t,false);if(this.doc)yield this.doc;this.doc=t;this.atDirectives=false;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{const t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message;const r=new n.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",t);if(this.atDirectives||!this.doc)this.errors.push(r);else this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){const t="Unexpected doc-end without preceding document";this.errors.push(new n.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",t));break}this.doc.directives.docEnd=true;const t=p.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);this.decorate(this.doc,true);if(t.comment){const e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new n.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=false,t=-1){if(this.doc){this.decorate(this.doc,true);yield this.doc;this.doc=null}else if(e){const e=Object.assign({_directives:this.directives},this.options);const r=new i.Document(undefined,e);if(this.atDirectives)this.onError(t,"MISSING_CHAR","Missing directives-end indicator line");r.range=[0,t,t];this.decorate(r,false);yield r}}}t.Composer=Composer},2986:(e,t,r)=>{"use strict";var a=r(246);var i=r(6011);var n=r(6985);var s=r(976);var o=r(3669);var p=r(6899);const c="All mapping items must start at the same column";function resolveBlockMap({composeNode:e,composeEmptyNode:t},r,l,d){const u=new i.YAMLMap(r.schema);if(r.atRoot)r.atRoot=false;let m=l.offset;let h=null;for(const i of l.items){const{start:g,key:v,sep:y,value:b}=i;const w=n.resolveProps(g,{indicator:"explicit-key-ind",next:v??y?.[0],offset:m,onError:d,startOnNewline:true});const x=!w.found;if(x){if(v){if(v.type==="block-seq")d(m,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key");else if("indent"in v&&v.indent!==l.indent)d(m,"BAD_INDENT",c)}if(!w.anchor&&!w.tag&&!y){h=w.end;if(w.comment){if(u.comment)u.comment+="\n"+w.comment;else u.comment=w.comment}continue}if(w.hasNewlineAfterProp||s.containsNewline(v)){d(v??g[g.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}}else if(w.found?.indent!==l.indent){d(m,"BAD_INDENT",c)}const E=w.end;const S=v?e(r,v,w,d):t(r,E,g,null,w,d);if(r.schema.compat)o.flowIndentCheck(l.indent,v,d);if(p.mapIncludes(r,u.items,S))d(E,"DUPLICATE_KEY","Map keys must be unique");const T=n.resolveProps(y??[],{indicator:"map-value-ind",next:b,offset:S.range[2],onError:d,startOnNewline:!v||v.type==="block-scalar"});m=T.end;if(T.found){if(x){if(b?.type==="block-map"&&!T.hasNewline)d(m,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(r.options.strict&&w.start{"use strict";var a=r(9338);function resolveBlockScalar(e,t,r){const i=e.offset;const n=parseBlockScalarHeader(e,t,r);if(!n)return{value:"",type:null,comment:"",range:[i,i,i]};const s=n.mode===">"?a.Scalar.BLOCK_FOLDED:a.Scalar.BLOCK_LITERAL;const o=e.source?splitLines(e.source):[];let p=o.length;for(let e=o.length-1;e>=0;--e){const t=o[e][1];if(t===""||t==="\r")p=e;else break}if(p===0){const t=n.chomp==="+"&&o.length>0?"\n".repeat(Math.max(1,o.length-1)):"";let r=i+n.length;if(e.source)r+=e.source.length;return{value:t,type:s,comment:n.comment,range:[i,r,r]}}let c=e.indent+n.indent;let l=e.offset+n.length;let d=0;for(let e=0;ec)c=t.length}else{if(t.length=p;--e){if(o[e][0].length>c)p=e+1}let u="";let m="";let h=false;for(let e=0;ec||i[0]==="\t"){if(m===" ")m="\n";else if(!h&&m==="\n")m="\n\n";u+=m+t.slice(c)+i;m="\n";h=true}else if(i===""){if(m==="\n")u+="\n";else m="\n"}else{u+=m+i;m=" ";h=false}}switch(n.chomp){case"-":break;case"+":for(let e=p;e{"use strict";var a=r(5161);var i=r(6985);var n=r(3669);function resolveBlockSeq({composeNode:e,composeEmptyNode:t},r,s,o){const p=new a.YAMLSeq(r.schema);if(r.atRoot)r.atRoot=false;let c=s.offset;let l=null;for(const{start:a,value:d}of s.items){const u=i.resolveProps(a,{indicator:"seq-item-ind",next:d,offset:c,onError:o,startOnNewline:true});if(!u.found){if(u.anchor||u.tag||d){if(d&&d.type==="block-seq")o(u.end,"BAD_INDENT","All sequence items must start at the same column");else o(c,"MISSING_CHAR","Sequence item without - indicator")}else{l=u.end;if(u.comment)p.comment=u.comment;continue}}const m=d?e(r,d,u,o):t(r,u.end,a,null,u,o);if(r.schema.compat)n.flowIndentCheck(s.indent,d,o);c=m.range[2];p.items.push(m)}p.range=[s.offset,c,l??c];return p}t.resolveBlockSeq=resolveBlockSeq},1250:(e,t)=>{"use strict";function resolveEnd(e,t,r,a){let i="";if(e){let n=false;let s="";for(const o of e){const{source:e,type:p}=o;switch(p){case"space":n=true;break;case"comment":{if(r&&!n)a(o,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const t=e.substring(1)||" ";if(!i)i=t;else i+=s+t;s="";break}case"newline":if(i)s+=e;n=true;break;default:a(o,"UNEXPECTED_TOKEN",`Unexpected ${p} at node end`)}t+=e.length}}return{comment:i,offset:t}}t.resolveEnd=resolveEnd},45:(e,t,r)=>{"use strict";var a=r(1399);var i=r(246);var n=r(6011);var s=r(5161);var o=r(1250);var p=r(6985);var c=r(976);var l=r(6899);const d="Block collections are not allowed within flow collections";const isBlock=e=>e&&(e.type==="block-map"||e.type==="block-seq");function resolveFlowCollection({composeNode:e,composeEmptyNode:t},r,u,m){const h=u.start.source==="{";const g=h?"flow map":"flow sequence";const v=h?new n.YAMLMap(r.schema):new s.YAMLSeq(r.schema);v.flow=true;const y=r.atRoot;if(y)r.atRoot=false;let b=u.offset+u.start.source.length;for(let s=0;s0){const e=o.resolveEnd(E,S,r.options.strict,m);if(e.comment){if(v.comment)v.comment+="\n"+e.comment;else v.comment=e.comment}v.range=[u.offset,S,e.offset]}else{v.range=[u.offset,S,S]}return v}t.resolveFlowCollection=resolveFlowCollection},7578:(e,t,r)=>{"use strict";var a=r(9338);var i=r(1250);function resolveFlowScalar(e,t,r){const{offset:n,type:s,source:o,end:p}=e;let c;let l;const _onError=(e,t,a)=>r(n+e,t,a);switch(s){case"scalar":c=a.Scalar.PLAIN;l=plainValue(o,_onError);break;case"single-quoted-scalar":c=a.Scalar.QUOTE_SINGLE;l=singleQuotedValue(o,_onError);break;case"double-quoted-scalar":c=a.Scalar.QUOTE_DOUBLE;l=doubleQuotedValue(o,_onError);break;default:r(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`);return{value:"",type:null,comment:"",range:[n,n+o.length,n+o.length]}}const d=n+o.length;const u=i.resolveEnd(p,d,t,r);return{value:l,type:c,comment:u.comment,range:[n,d,u.offset]}}function plainValue(e,t){let r="";switch(e[0]){case"\t":r="a tab character";break;case",":r="flow indicator character ,";break;case"%":r="directive indicator character %";break;case"|":case">":{r=`block scalar indicator ${e[0]}`;break}case"@":case"`":{r=`reserved character ${e[0]}`;break}}if(r)t(0,"BAD_SCALAR_START",`Plain value cannot start with ${r}`);return foldLines(e)}function singleQuotedValue(e,t){if(e[e.length-1]!=="'"||e.length===1)t(e.length,"MISSING_CHAR","Missing closing 'quote");return foldLines(e.slice(1,-1)).replace(/''/g,"'")}function foldLines(e){let t,r;try{t=new RegExp("(.*?)(?t?e.slice(t,a+1):i}else{r+=i}}if(e[e.length-1]!=='"'||e.length===1)t(e.length,"MISSING_CHAR",'Missing closing "quote');return r}function foldNewline(e,t){let r="";let a=e[t+1];while(a===" "||a==="\t"||a==="\n"||a==="\r"){if(a==="\r"&&e[t+2]!=="\n")break;if(a==="\n")r+="\n";t+=1;a=e[t+1]}if(!r)r=" ";return{fold:r,offset:t}}const n={0:"\0",a:"",b:"\b",e:"",f:"\f",n:"\n",r:"\r",t:"\t",v:"\v",N:"…",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function parseCharCode(e,t,r,a){const i=e.substr(t,r);const n=i.length===r&&/^[0-9a-fA-F]+$/.test(i);const s=n?parseInt(i,16):NaN;if(isNaN(s)){const i=e.substr(t-2,r+2);a(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${i}`);return i}return String.fromCodePoint(s)}t.resolveFlowScalar=resolveFlowScalar},6985:(e,t)=>{"use strict";function resolveProps(e,{flow:t,indicator:r,next:a,offset:i,onError:n,startOnNewline:s}){let o=false;let p=s;let c=s;let l="";let d="";let u=false;let m=false;let h=false;let g=null;let v=null;let y=null;let b=null;let w=null;for(const a of e){if(h){if(a.type!=="space"&&a.type!=="newline"&&a.type!=="comma")n(a.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");h=false}switch(a.type){case"space":if(!t&&p&&r!=="doc-start"&&a.source[0]==="\t")n(a,"TAB_AS_INDENT","Tabs are not allowed as indentation");c=true;break;case"comment":{if(!c)n(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const e=a.source.substring(1)||" ";if(!l)l=e;else l+=d+e;d="";p=false;break}case"newline":if(p){if(l)l+=a.source;else o=true}else d+=a.source;p=true;u=true;if(g||v)m=true;c=true;break;case"anchor":if(g)n(a,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(a.source.endsWith(":"))n(a.offset+a.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",true);g=a;if(w===null)w=a.offset;p=false;c=false;h=true;break;case"tag":{if(v)n(a,"MULTIPLE_TAGS","A node can have at most one tag");v=a;if(w===null)w=a.offset;p=false;c=false;h=true;break}case r:if(g||v)n(a,"BAD_PROP_ORDER",`Anchors and tags must be after the ${a.source} indicator`);if(b)n(a,"UNEXPECTED_TOKEN",`Unexpected ${a.source} in ${t??"collection"}`);b=a;p=false;c=false;break;case"comma":if(t){if(y)n(a,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`);y=a;p=false;c=false;break}default:n(a,"UNEXPECTED_TOKEN",`Unexpected ${a.type} token`);p=false;c=false}}const x=e[e.length-1];const E=x?x.offset+x.source.length:i;if(h&&a&&a.type!=="space"&&a.type!=="newline"&&a.type!=="comma"&&(a.type!=="scalar"||a.source!==""))n(a.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");return{comma:y,found:b,spaceBefore:o,comment:l,hasNewline:u,hasNewlineAfterProp:m,anchor:g,tag:v,end:E,start:w??E}}t.resolveProps=resolveProps},976:(e,t)=>{"use strict";function containsNewline(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes("\n"))return true;if(e.end)for(const t of e.end)if(t.type==="newline")return true;return false;case"flow-collection":for(const t of e.items){for(const e of t.start)if(e.type==="newline")return true;if(t.sep)for(const e of t.sep)if(e.type==="newline")return true;if(containsNewline(t.key)||containsNewline(t.value))return true}return false;default:return true}}t.containsNewline=containsNewline},8781:(e,t)=>{"use strict";function emptyScalarPosition(e,t,r){if(t){if(r===null)r=t.length;for(let a=r-1;a>=0;--a){let r=t[a];switch(r.type){case"space":case"comment":case"newline":e-=r.source.length;continue}r=t[++a];while(r?.type==="space"){e+=r.source.length;r=t[++a]}break}}return e}t.emptyScalarPosition=emptyScalarPosition},3669:(e,t,r)=>{"use strict";var a=r(976);function flowIndentCheck(e,t,r){if(t?.type==="flow-collection"){const i=t.end[0];if(i.indent===e&&(i.source==="]"||i.source==="}")&&a.containsNewline(t)){const e="Flow end indicator should be more indented than parent";r(i,"BAD_INDENT",e,true)}}}t.flowIndentCheck=flowIndentCheck},6899:(e,t,r)=>{"use strict";var a=r(1399);function mapIncludes(e,t,r){const{uniqueKeys:i}=e.options;if(i===false)return false;const n=typeof i==="function"?i:(t,r)=>t===r||a.isScalar(t)&&a.isScalar(r)&&t.value===r.value&&!(t.value==="<<"&&e.schema.merge);return t.some((e=>n(e.key,r)))}t.mapIncludes=mapIncludes},42:(e,t,r)=>{"use strict";var a=r(5639);var i=r(3466);var n=r(1399);var s=r(246);var o=r(2463);var p=r(6831);var c=r(8409);var l=r(5225);var d=r(8459);var u=r(3412);var m=r(9652);var h=r(5400);class Document{constructor(e,t,r){this.commentBefore=null;this.comment=null;this.errors=[];this.warnings=[];Object.defineProperty(this,n.NODE_TYPE,{value:n.DOC});let a=null;if(typeof t==="function"||Array.isArray(t)){a=t}else if(r===undefined&&t){r=t;t=undefined}const i=Object.assign({intAsBigInt:false,keepSourceTokens:false,logLevel:"warn",prettyErrors:true,strict:true,uniqueKeys:true,version:"1.2"},r);this.options=i;let{version:s}=i;if(r?._directives){this.directives=r._directives.atDocument();if(this.directives.yaml.explicit)s=this.directives.yaml.version}else this.directives=new h.Directives({version:s});this.setSchema(s,r);if(e===undefined)this.contents=null;else{this.contents=this.createNode(e,a,r)}}clone(){const e=Object.create(Document.prototype,{[n.NODE_TYPE]:{value:n.DOC}});e.commentBefore=this.commentBefore;e.comment=this.comment;e.errors=this.errors.slice();e.warnings=this.warnings.slice();e.options=Object.assign({},this.options);if(this.directives)e.directives=this.directives.clone();e.schema=this.schema.clone();e.contents=n.isNode(this.contents)?this.contents.clone(e.schema):this.contents;if(this.range)e.range=this.range.slice();return e}add(e){if(assertCollection(this.contents))this.contents.add(e)}addIn(e,t){if(assertCollection(this.contents))this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){const r=d.anchorNames(this);e.anchor=!t||r.has(t)?d.findNewAnchor(t||"a",r):t}return new a.Alias(e.anchor)}createNode(e,t,r){let a=undefined;if(typeof t==="function"){e=t.call({"":e},"",e);a=t}else if(Array.isArray(t)){const keyToStr=e=>typeof e==="number"||e instanceof String||e instanceof Number;const e=t.filter(keyToStr).map(String);if(e.length>0)t=t.concat(e);a=t}else if(r===undefined&&t){r=t;t=undefined}const{aliasDuplicateObjects:i,anchorPrefix:s,flow:o,keepUndefined:p,onTagObj:c,tag:l}=r??{};const{onAnchor:u,setAnchors:h,sourceObjects:g}=d.createNodeAnchors(this,s||"a");const v={aliasDuplicateObjects:i??true,keepUndefined:p??false,onAnchor:u,onTagObj:c,replacer:a,schema:this.schema,sourceObjects:g};const y=m.createNode(e,l,v);if(o&&n.isCollection(y))y.flow=true;h();return y}createPair(e,t,r={}){const a=this.createNode(e,null,r);const i=this.createNode(t,null,r);return new s.Pair(a,i)}delete(e){return assertCollection(this.contents)?this.contents.delete(e):false}deleteIn(e){if(i.isEmptyPath(e)){if(this.contents==null)return false;this.contents=null;return true}return assertCollection(this.contents)?this.contents.deleteIn(e):false}get(e,t){return n.isCollection(this.contents)?this.contents.get(e,t):undefined}getIn(e,t){if(i.isEmptyPath(e))return!t&&n.isScalar(this.contents)?this.contents.value:this.contents;return n.isCollection(this.contents)?this.contents.getIn(e,t):undefined}has(e){return n.isCollection(this.contents)?this.contents.has(e):false}hasIn(e){if(i.isEmptyPath(e))return this.contents!==undefined;return n.isCollection(this.contents)?this.contents.hasIn(e):false}set(e,t){if(this.contents==null){this.contents=i.collectionFromPath(this.schema,[e],t)}else if(assertCollection(this.contents)){this.contents.set(e,t)}}setIn(e,t){if(i.isEmptyPath(e))this.contents=t;else if(this.contents==null){this.contents=i.collectionFromPath(this.schema,Array.from(e),t)}else if(assertCollection(this.contents)){this.contents.setIn(e,t)}}setSchema(e,t={}){if(typeof e==="number")e=String(e);let r;switch(e){case"1.1":if(this.directives)this.directives.yaml.version="1.1";else this.directives=new h.Directives({version:"1.1"});r={merge:true,resolveKnownTags:false,schema:"yaml-1.1"};break;case"1.2":case"next":if(this.directives)this.directives.yaml.version=e;else this.directives=new h.Directives({version:e});r={merge:false,resolveKnownTags:true,schema:"core"};break;case null:if(this.directives)delete this.directives;r=null;break;default:{const t=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(r)this.schema=new p.Schema(Object.assign(r,t));else throw new Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:r,maxAliasCount:a,onAnchor:i,reviver:n}={}){const s={anchors:new Map,doc:this,keep:!e,mapAsMap:r===true,mapKeyWarned:false,maxAliasCount:typeof a==="number"?a:100,stringify:c.stringify};const p=o.toJS(this.contents,t??"",s);if(typeof i==="function")for(const{count:e,res:t}of s.anchors.values())i(t,e);return typeof n==="function"?u.applyReviver(n,{"":p},"",p):p}toJSON(e,t){return this.toJS({json:true,jsonArg:e,mapAsMap:false,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){const t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return l.stringifyDocument(this,e)}}function assertCollection(e){if(n.isCollection(e))return true;throw new Error("Expected a YAML collection as document contents")}t.Document=Document},8459:(e,t,r)=>{"use strict";var a=r(1399);var i=r(6796);function anchorIsValid(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const t=JSON.stringify(e);const r=`Anchor must not contain whitespace or control characters: ${t}`;throw new Error(r)}return true}function anchorNames(e){const t=new Set;i.visit(e,{Value(e,r){if(r.anchor)t.add(r.anchor)}});return t}function findNewAnchor(e,t){for(let r=1;true;++r){const a=`${e}${r}`;if(!t.has(a))return a}}function createNodeAnchors(e,t){const r=[];const i=new Map;let n=null;return{onAnchor:a=>{r.push(a);if(!n)n=anchorNames(e);const i=findNewAnchor(t,n);n.add(i);return i},setAnchors:()=>{for(const e of r){const t=i.get(e);if(typeof t==="object"&&t.anchor&&(a.isScalar(t.node)||a.isCollection(t.node))){t.node.anchor=t.anchor}else{const t=new Error("Failed to resolve repeated object (this should not happen)");t.source=e;throw t}}},sourceObjects:i}}t.anchorIsValid=anchorIsValid;t.anchorNames=anchorNames;t.createNodeAnchors=createNodeAnchors;t.findNewAnchor=findNewAnchor},3412:(e,t)=>{"use strict";function applyReviver(e,t,r,a){if(a&&typeof a==="object"){if(Array.isArray(a)){for(let t=0,r=a.length;t{"use strict";var a=r(5639);var i=r(1399);var n=r(9338);const s="tag:yaml.org,2002:";function findTagObject(e,t,r){if(t){const e=r.filter((e=>e.tag===t));const a=e.find((e=>!e.format))??e[0];if(!a)throw new Error(`Tag ${t} not found`);return a}return r.find((t=>t.identify?.(e)&&!t.format))}function createNode(e,t,r){if(i.isDocument(e))e=e.contents;if(i.isNode(e))return e;if(i.isPair(e)){const t=r.schema[i.MAP].createNode?.(r.schema,null,r);t.items.push(e);return t}if(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt!=="undefined"&&e instanceof BigInt){e=e.valueOf()}const{aliasDuplicateObjects:o,onAnchor:p,onTagObj:c,schema:l,sourceObjects:d}=r;let u=undefined;if(o&&e&&typeof e==="object"){u=d.get(e);if(u){if(!u.anchor)u.anchor=p(e);return new a.Alias(u.anchor)}else{u={anchor:null,node:null};d.set(e,u)}}if(t?.startsWith("!!"))t=s+t.slice(2);let m=findTagObject(e,t,l.tags);if(!m){if(e&&typeof e.toJSON==="function"){e=e.toJSON()}if(!e||typeof e!=="object"){const t=new n.Scalar(e);if(u)u.node=t;return t}m=e instanceof Map?l[i.MAP]:Symbol.iterator in Object(e)?l[i.SEQ]:l[i.MAP]}if(c){c(m);delete r.onTagObj}const h=m?.createNode?m.createNode(r.schema,e,r):new n.Scalar(e);if(t)h.tag=t;if(u)u.node=h;return h}t.createNode=createNode},5400:(e,t,r)=>{"use strict";var a=r(1399);var i=r(6796);const n={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"};const escapeTagName=e=>e.replace(/[!,[\]{}]/g,(e=>n[e]));class Directives{constructor(e,t){this.docStart=null;this.docEnd=false;this.yaml=Object.assign({},Directives.defaultYaml,e);this.tags=Object.assign({},Directives.defaultTags,t)}clone(){const e=new Directives(this.yaml,this.tags);e.docStart=this.docStart;return e}atDocument(){const e=new Directives(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=true;break;case"1.2":this.atNextDocument=false;this.yaml={explicit:Directives.defaultYaml.explicit,version:"1.2"};this.tags=Object.assign({},Directives.defaultTags);break}return e}add(e,t){if(this.atNextDocument){this.yaml={explicit:Directives.defaultYaml.explicit,version:"1.1"};this.tags=Object.assign({},Directives.defaultTags);this.atNextDocument=false}const r=e.trim().split(/[ \t]+/);const a=r.shift();switch(a){case"%TAG":{if(r.length!==2){t(0,"%TAG directive should contain exactly two parts");if(r.length<2)return false}const[e,a]=r;this.tags[e]=a;return true}case"%YAML":{this.yaml.explicit=true;if(r.length!==1){t(0,"%YAML directive should contain exactly one part");return false}const[e]=r;if(e==="1.1"||e==="1.2"){this.yaml.version=e;return true}else{const r=/^\d+\.\d+$/.test(e);t(6,`Unsupported YAML version ${e}`,r);return false}}default:t(0,`Unknown directive ${a}`,true);return false}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!"){t(`Not a valid tag: ${e}`);return null}if(e[1]==="<"){const r=e.slice(2,-1);if(r==="!"||r==="!!"){t(`Verbatim tags aren't resolved, so ${e} is invalid.`);return null}if(e[e.length-1]!==">")t("Verbatim tags must end with a >");return r}const[,r,a]=e.match(/^(.*!)([^!]*)$/);if(!a)t(`The ${e} tag has no suffix`);const i=this.tags[r];if(i)return i+decodeURIComponent(a);if(r==="!")return e;t(`Could not resolve tag: ${e}`);return null}tagString(e){for(const[t,r]of Object.entries(this.tags)){if(e.startsWith(r))return t+escapeTagName(e.substring(r.length))}return e[0]==="!"?e:`!<${e}>`}toString(e){const t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[];const r=Object.entries(this.tags);let n;if(e&&r.length>0&&a.isNode(e.contents)){const t={};i.visit(e.contents,((e,r)=>{if(a.isNode(r)&&r.tag)t[r.tag]=true}));n=Object.keys(t)}else n=[];for(const[a,i]of r){if(a==="!!"&&i==="tag:yaml.org,2002:")continue;if(!e||n.some((e=>e.startsWith(i))))t.push(`%TAG ${a} ${i}`)}return t.join("\n")}}Directives.defaultYaml={explicit:false,version:"1.2"};Directives.defaultTags={"!!":"tag:yaml.org,2002:"};t.Directives=Directives},4236:(e,t)=>{"use strict";class YAMLError extends Error{constructor(e,t,r,a){super();this.name=e;this.code=r;this.message=a;this.pos=t}}class YAMLParseError extends YAMLError{constructor(e,t,r){super("YAMLParseError",e,t,r)}}class YAMLWarning extends YAMLError{constructor(e,t,r){super("YAMLWarning",e,t,r)}}const prettifyError=(e,t)=>r=>{if(r.pos[0]===-1)return;r.linePos=r.pos.map((e=>t.linePos(e)));const{line:a,col:i}=r.linePos[0];r.message+=` at line ${a}, column ${i}`;let n=i-1;let s=e.substring(t.lineStarts[a-1],t.lineStarts[a]).replace(/[\n\r]+$/,"");if(n>=60&&s.length>80){const e=Math.min(n-39,s.length-79);s="…"+s.substring(e);n-=e-1}if(s.length>80)s=s.substring(0,79)+"…";if(a>1&&/^ *$/.test(s.substring(0,n))){let r=e.substring(t.lineStarts[a-2],t.lineStarts[a-1]);if(r.length>80)r=r.substring(0,79)+"…\n";s=r+s}if(/[^ ]/.test(s)){let e=1;const t=r.linePos[1];if(t&&t.line===a&&t.col>i){e=Math.min(t.col-i,80-n)}const o=" ".repeat(n)+"^".repeat(e);r.message+=`:\n\n${s}\n${o}\n`}};t.YAMLError=YAMLError;t.YAMLParseError=YAMLParseError;t.YAMLWarning=YAMLWarning;t.prettifyError=prettifyError},4083:(e,t,r)=>{"use strict";var a=r(9493);var i=r(42);var n=r(6831);var s=r(4236);var o=r(5639);var p=r(1399);var c=r(246);var l=r(9338);var d=r(6011);var u=r(5161);var m=r(9169);var h=r(5976);var g=r(1929);var v=r(3328);var y=r(8649);var b=r(6796);t.Composer=a.Composer;t.Document=i.Document;t.Schema=n.Schema;t.YAMLError=s.YAMLError;t.YAMLParseError=s.YAMLParseError;t.YAMLWarning=s.YAMLWarning;t.Alias=o.Alias;t.isAlias=p.isAlias;t.isCollection=p.isCollection;t.isDocument=p.isDocument;t.isMap=p.isMap;t.isNode=p.isNode;t.isPair=p.isPair;t.isScalar=p.isScalar;t.isSeq=p.isSeq;t.Pair=c.Pair;t.Scalar=l.Scalar;t.YAMLMap=d.YAMLMap;t.YAMLSeq=u.YAMLSeq;t.CST=m;t.Lexer=h.Lexer;t.LineCounter=g.LineCounter;t.Parser=v.Parser;t.parse=y.parse;t.parseAllDocuments=y.parseAllDocuments;t.parseDocument=y.parseDocument;t.stringify=y.stringify;t.visit=b.visit;t.visitAsync=b.visitAsync},6909:(e,t)=>{"use strict";function debug(e,...t){if(e==="debug")console.log(...t)}function warn(e,t){if(e==="debug"||e==="warn"){if(typeof process!=="undefined"&&process.emitWarning)process.emitWarning(t);else console.warn(t)}}t.debug=debug;t.warn=warn},5639:(e,t,r)=>{"use strict";var a=r(8459);var i=r(6796);var n=r(1399);class Alias extends n.NodeBase{constructor(e){super(n.ALIAS);this.source=e;Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e){let t=undefined;i.visit(e,{Node:(e,r)=>{if(r===this)return i.visit.BREAK;if(r.anchor===this.source)t=r}});return t}toJSON(e,t){if(!t)return{source:this.source};const{anchors:r,doc:a,maxAliasCount:i}=t;const n=this.resolve(a);if(!n){const e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(e)}const s=r.get(n);if(!s||s.res===undefined){const e="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(e)}if(i>=0){s.count+=1;if(s.aliasCount===0)s.aliasCount=getAliasCount(a,n,r);if(s.count*s.aliasCount>i){const e="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(e)}}return s.res}toString(e,t,r){const i=`*${this.source}`;if(e){a.anchorIsValid(this.source);if(e.options.verifyAliasOrder&&!e.anchors.has(this.source)){const e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(e)}if(e.implicitKey)return`${i} `}return i}}function getAliasCount(e,t,r){if(n.isAlias(t)){const a=t.resolve(e);const i=r&&a&&r.get(a);return i?i.count*i.aliasCount:0}else if(n.isCollection(t)){let a=0;for(const i of t.items){const t=getAliasCount(e,i,r);if(t>a)a=t}return a}else if(n.isPair(t)){const a=getAliasCount(e,t.key,r);const i=getAliasCount(e,t.value,r);return Math.max(a,i)}return 1}t.Alias=Alias},3466:(e,t,r)=>{"use strict";var a=r(9652);var i=r(1399);function collectionFromPath(e,t,r){let i=r;for(let e=t.length-1;e>=0;--e){const r=t[e];if(typeof r==="number"&&Number.isInteger(r)&&r>=0){const e=[];e[r]=i;i=e}else{i=new Map([[r,i]])}}return a.createNode(i,undefined,{aliasDuplicateObjects:false,keepUndefined:false,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const isEmptyPath=e=>e==null||typeof e==="object"&&!!e[Symbol.iterator]().next().done;class Collection extends i.NodeBase{constructor(e,t){super(e);Object.defineProperty(this,"schema",{value:t,configurable:true,enumerable:false,writable:true})}clone(e){const t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(e)t.schema=e;t.items=t.items.map((t=>i.isNode(t)||i.isPair(t)?t.clone(e):t));if(this.range)t.range=this.range.slice();return t}addIn(e,t){if(isEmptyPath(e))this.add(t);else{const[r,...a]=e;const n=this.get(r,true);if(i.isCollection(n))n.addIn(a,t);else if(n===undefined&&this.schema)this.set(r,collectionFromPath(this.schema,a,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}deleteIn(e){const[t,...r]=e;if(r.length===0)return this.delete(t);const a=this.get(t,true);if(i.isCollection(a))return a.deleteIn(r);else throw new Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){const[r,...a]=e;const n=this.get(r,true);if(a.length===0)return!t&&i.isScalar(n)?n.value:n;else return i.isCollection(n)?n.getIn(a,t):undefined}hasAllNullValues(e){return this.items.every((t=>{if(!i.isPair(t))return false;const r=t.value;return r==null||e&&i.isScalar(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag}))}hasIn(e){const[t,...r]=e;if(r.length===0)return this.has(t);const a=this.get(t,true);return i.isCollection(a)?a.hasIn(r):false}setIn(e,t){const[r,...a]=e;if(a.length===0){this.set(r,t)}else{const e=this.get(r,true);if(i.isCollection(e))e.setIn(a,t);else if(e===undefined&&this.schema)this.set(r,collectionFromPath(this.schema,a,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}}Collection.maxFlowStringSingleLineLength=60;t.Collection=Collection;t.collectionFromPath=collectionFromPath;t.isEmptyPath=isEmptyPath},1399:(e,t)=>{"use strict";const r=Symbol.for("yaml.alias");const a=Symbol.for("yaml.document");const i=Symbol.for("yaml.map");const n=Symbol.for("yaml.pair");const s=Symbol.for("yaml.scalar");const o=Symbol.for("yaml.seq");const p=Symbol.for("yaml.node.type");const isAlias=e=>!!e&&typeof e==="object"&&e[p]===r;const isDocument=e=>!!e&&typeof e==="object"&&e[p]===a;const isMap=e=>!!e&&typeof e==="object"&&e[p]===i;const isPair=e=>!!e&&typeof e==="object"&&e[p]===n;const isScalar=e=>!!e&&typeof e==="object"&&e[p]===s;const isSeq=e=>!!e&&typeof e==="object"&&e[p]===o;function isCollection(e){if(e&&typeof e==="object")switch(e[p]){case i:case o:return true}return false}function isNode(e){if(e&&typeof e==="object")switch(e[p]){case r:case i:case s:case o:return true}return false}const hasAnchor=e=>(isScalar(e)||isCollection(e))&&!!e.anchor;class NodeBase{constructor(e){Object.defineProperty(this,p,{value:e})}clone(){const e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(this.range)e.range=this.range.slice();return e}}t.ALIAS=r;t.DOC=a;t.MAP=i;t.NODE_TYPE=p;t.NodeBase=NodeBase;t.PAIR=n;t.SCALAR=s;t.SEQ=o;t.hasAnchor=hasAnchor;t.isAlias=isAlias;t.isCollection=isCollection;t.isDocument=isDocument;t.isMap=isMap;t.isNode=isNode;t.isPair=isPair;t.isScalar=isScalar;t.isSeq=isSeq},246:(e,t,r)=>{"use strict";var a=r(9652);var i=r(4875);var n=r(4676);var s=r(1399);function createPair(e,t,r){const i=a.createNode(e,undefined,r);const n=a.createNode(t,undefined,r);return new Pair(i,n)}class Pair{constructor(e,t=null){Object.defineProperty(this,s.NODE_TYPE,{value:s.PAIR});this.key=e;this.value=t}clone(e){let{key:t,value:r}=this;if(s.isNode(t))t=t.clone(e);if(s.isNode(r))r=r.clone(e);return new Pair(t,r)}toJSON(e,t){const r=t?.mapAsMap?new Map:{};return n.addPairToJSMap(t,r,this)}toString(e,t,r){return e?.doc?i.stringifyPair(this,e,t,r):JSON.stringify(this)}}t.Pair=Pair;t.createPair=createPair},9338:(e,t,r)=>{"use strict";var a=r(1399);var i=r(2463);const isScalarValue=e=>!e||typeof e!=="function"&&typeof e!=="object";class Scalar extends a.NodeBase{constructor(e){super(a.SCALAR);this.value=e}toJSON(e,t){return t?.keep?this.value:i.toJS(this.value,e,t)}toString(){return String(this.value)}}Scalar.BLOCK_FOLDED="BLOCK_FOLDED";Scalar.BLOCK_LITERAL="BLOCK_LITERAL";Scalar.PLAIN="PLAIN";Scalar.QUOTE_DOUBLE="QUOTE_DOUBLE";Scalar.QUOTE_SINGLE="QUOTE_SINGLE";t.Scalar=Scalar;t.isScalarValue=isScalarValue},6011:(e,t,r)=>{"use strict";var a=r(2466);var i=r(4676);var n=r(3466);var s=r(1399);var o=r(246);var p=r(9338);function findPair(e,t){const r=s.isScalar(t)?t.value:t;for(const a of e){if(s.isPair(a)){if(a.key===t||a.key===r)return a;if(s.isScalar(a.key)&&a.key.value===r)return a}}return undefined}class YAMLMap extends n.Collection{constructor(e){super(s.MAP,e);this.items=[]}static get tagName(){return"tag:yaml.org,2002:map"}add(e,t){let r;if(s.isPair(e))r=e;else if(!e||typeof e!=="object"||!("key"in e)){r=new o.Pair(e,e?.value)}else r=new o.Pair(e.key,e.value);const a=findPair(this.items,r.key);const i=this.schema?.sortMapEntries;if(a){if(!t)throw new Error(`Key ${r.key} already set`);if(s.isScalar(a.value)&&p.isScalarValue(r.value))a.value.value=r.value;else a.value=r.value}else if(i){const e=this.items.findIndex((e=>i(r,e)<0));if(e===-1)this.items.push(r);else this.items.splice(e,0,r)}else{this.items.push(r)}}delete(e){const t=findPair(this.items,e);if(!t)return false;const r=this.items.splice(this.items.indexOf(t),1);return r.length>0}get(e,t){const r=findPair(this.items,e);const a=r?.value;return(!t&&s.isScalar(a)?a.value:a)??undefined}has(e){return!!findPair(this.items,e)}set(e,t){this.add(new o.Pair(e,t),true)}toJSON(e,t,r){const a=r?new r:t?.mapAsMap?new Map:{};if(t?.onCreate)t.onCreate(a);for(const e of this.items)i.addPairToJSMap(t,a,e);return a}toString(e,t,r){if(!e)return JSON.stringify(this);for(const e of this.items){if(!s.isPair(e))throw new Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`)}if(!e.allNullValues&&this.hasAllNullValues(false))e=Object.assign({},e,{allNullValues:true});return a.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:t})}}t.YAMLMap=YAMLMap;t.findPair=findPair},5161:(e,t,r)=>{"use strict";var a=r(2466);var i=r(3466);var n=r(1399);var s=r(9338);var o=r(2463);class YAMLSeq extends i.Collection{constructor(e){super(n.SEQ,e);this.items=[]}static get tagName(){return"tag:yaml.org,2002:seq"}add(e){this.items.push(e)}delete(e){const t=asItemIndex(e);if(typeof t!=="number")return false;const r=this.items.splice(t,1);return r.length>0}get(e,t){const r=asItemIndex(e);if(typeof r!=="number")return undefined;const a=this.items[r];return!t&&n.isScalar(a)?a.value:a}has(e){const t=asItemIndex(e);return typeof t==="number"&&t=0?t:null}t.YAMLSeq=YAMLSeq},4676:(e,t,r)=>{"use strict";var a=r(6909);var i=r(8409);var n=r(1399);var s=r(9338);var o=r(2463);const p="<<";function addPairToJSMap(e,t,{key:r,value:a}){if(e?.doc.schema.merge&&isMergeKey(r)){a=n.isAlias(a)?a.resolve(e.doc):a;if(n.isSeq(a))for(const r of a.items)mergeToJSMap(e,t,r);else if(Array.isArray(a))for(const r of a)mergeToJSMap(e,t,r);else mergeToJSMap(e,t,a)}else{const i=o.toJS(r,"",e);if(t instanceof Map){t.set(i,o.toJS(a,i,e))}else if(t instanceof Set){t.add(i)}else{const n=stringifyKey(r,i,e);const s=o.toJS(a,n,e);if(n in t)Object.defineProperty(t,n,{value:s,writable:true,enumerable:true,configurable:true});else t[n]=s}}return t}const isMergeKey=e=>e===p||n.isScalar(e)&&e.value===p&&(!e.type||e.type===s.Scalar.PLAIN);function mergeToJSMap(e,t,r){const a=e&&n.isAlias(r)?r.resolve(e.doc):r;if(!n.isMap(a))throw new Error("Merge sources must be maps or map aliases");const i=a.toJSON(null,e,Map);for(const[e,r]of i){if(t instanceof Map){if(!t.has(e))t.set(e,r)}else if(t instanceof Set){t.add(e)}else if(!Object.prototype.hasOwnProperty.call(t,e)){Object.defineProperty(t,e,{value:r,writable:true,enumerable:true,configurable:true})}}return t}function stringifyKey(e,t,r){if(t===null)return"";if(typeof t!=="object")return String(t);if(n.isNode(e)&&r&&r.doc){const t=i.createStringifyContext(r.doc,{});t.anchors=new Set;for(const e of r.anchors.keys())t.anchors.add(e.anchor);t.inFlow=true;t.inStringifyKey=true;const n=e.toString(t);if(!r.mapKeyWarned){let e=JSON.stringify(n);if(e.length>40)e=e.substring(0,36)+'..."';a.warn(r.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`);r.mapKeyWarned=true}return n}return JSON.stringify(t)}t.addPairToJSMap=addPairToJSMap},2463:(e,t,r)=>{"use strict";var a=r(1399);function toJS(e,t,r){if(Array.isArray(e))return e.map(((e,t)=>toJS(e,String(t),r)));if(e&&typeof e.toJSON==="function"){if(!r||!a.hasAnchor(e))return e.toJSON(t,r);const i={aliasCount:0,count:1,res:undefined};r.anchors.set(e,i);r.onCreate=e=>{i.res=e;delete r.onCreate};const n=e.toJSON(t,r);if(r.onCreate)r.onCreate(n);return n}if(typeof e==="bigint"&&!r?.keep)return Number(e);return e}t.toJS=toJS},9027:(e,t,r)=>{"use strict";var a=r(9485);var i=r(7578);var n=r(4236);var s=r(6226);function resolveAsScalar(e,t=true,r){if(e){const _onError=(e,t,a)=>{const i=typeof e==="number"?e:Array.isArray(e)?e[0]:e.offset;if(r)r(i,t,a);else throw new n.YAMLParseError([i,i+1],t,a)};switch(e.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return i.resolveFlowScalar(e,t,_onError);case"block-scalar":return a.resolveBlockScalar(e,t,_onError)}}return null}function createScalarToken(e,t){const{implicitKey:r=false,indent:a,inFlow:i=false,offset:n=-1,type:o="PLAIN"}=t;const p=s.stringifyString({type:o,value:e},{implicitKey:r,indent:a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:true,lineWidth:-1}});const c=t.end??[{type:"newline",offset:-1,indent:a,source:"\n"}];switch(p[0]){case"|":case">":{const e=p.indexOf("\n");const t=p.substring(0,e);const r=p.substring(e+1)+"\n";const i=[{type:"block-scalar-header",offset:n,indent:a,source:t}];if(!addEndtoBlockProps(i,c))i.push({type:"newline",offset:-1,indent:a,source:"\n"});return{type:"block-scalar",offset:n,indent:a,props:i,source:r}}case'"':return{type:"double-quoted-scalar",offset:n,indent:a,source:p,end:c};case"'":return{type:"single-quoted-scalar",offset:n,indent:a,source:p,end:c};default:return{type:"scalar",offset:n,indent:a,source:p,end:c}}}function setScalarValue(e,t,r={}){let{afterKey:a=false,implicitKey:i=false,inFlow:n=false,type:o}=r;let p="indent"in e?e.indent:null;if(a&&typeof p==="number")p+=2;if(!o)switch(e.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{const t=e.props[0];if(t.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=t.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}const c=s.stringifyString({type:o,value:t},{implicitKey:i||p===null,indent:p!==null&&p>0?" ".repeat(p):"",inFlow:n,options:{blockQuote:true,lineWidth:-1}});switch(c[0]){case"|":case">":setBlockScalarValue(e,c);break;case'"':setFlowScalarValue(e,c,"double-quoted-scalar");break;case"'":setFlowScalarValue(e,c,"single-quoted-scalar");break;default:setFlowScalarValue(e,c,"scalar")}}function setBlockScalarValue(e,t){const r=t.indexOf("\n");const a=t.substring(0,r);const i=t.substring(r+1)+"\n";if(e.type==="block-scalar"){const t=e.props[0];if(t.type!=="block-scalar-header")throw new Error("Invalid block scalar header");t.source=a;e.source=i}else{const{offset:t}=e;const r="indent"in e?e.indent:-1;const n=[{type:"block-scalar-header",offset:t,indent:r,source:a}];if(!addEndtoBlockProps(n,"end"in e?e.end:undefined))n.push({type:"newline",offset:-1,indent:r,source:"\n"});for(const t of Object.keys(e))if(t!=="type"&&t!=="offset")delete e[t];Object.assign(e,{type:"block-scalar",indent:r,props:n,source:i})}}function addEndtoBlockProps(e,t){if(t)for(const r of t)switch(r.type){case"space":case"comment":e.push(r);break;case"newline":e.push(r);return true}return false}function setFlowScalarValue(e,t,r){switch(e.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":e.type=r;e.source=t;break;case"block-scalar":{const a=e.props.slice(1);let i=t.length;if(e.props[0].type==="block-scalar-header")i-=e.props[0].source.length;for(const e of a)e.offset+=i;delete e.props;Object.assign(e,{type:r,source:t,end:a});break}case"block-map":case"block-seq":{const a=e.offset+t.length;const i={type:"newline",offset:a,indent:e.indent,source:"\n"};delete e.items;Object.assign(e,{type:r,source:t,end:[i]});break}default:{const a="indent"in e?e.indent:-1;const i="end"in e&&Array.isArray(e.end)?e.end.filter((e=>e.type==="space"||e.type==="comment"||e.type==="newline")):[];for(const t of Object.keys(e))if(t!=="type"&&t!=="offset")delete e[t];Object.assign(e,{type:r,indent:a,source:t,end:i})}}}t.createScalarToken=createScalarToken;t.resolveAsScalar=resolveAsScalar;t.setScalarValue=setScalarValue},6307:(e,t)=>{"use strict";const stringify=e=>"type"in e?stringifyToken(e):stringifyItem(e);function stringifyToken(e){switch(e.type){case"block-scalar":{let t="";for(const r of e.props)t+=stringifyToken(r);return t+e.source}case"block-map":case"block-seq":{let t="";for(const r of e.items)t+=stringifyItem(r);return t}case"flow-collection":{let t=e.start.source;for(const r of e.items)t+=stringifyItem(r);for(const r of e.end)t+=r.source;return t}case"document":{let t=stringifyItem(e);if(e.end)for(const r of e.end)t+=r.source;return t}default:{let t=e.source;if("end"in e&&e.end)for(const r of e.end)t+=r.source;return t}}}function stringifyItem({start:e,key:t,sep:r,value:a}){let i="";for(const t of e)i+=t.source;if(t)i+=stringifyToken(t);if(r)for(const e of r)i+=e.source;if(a)i+=stringifyToken(a);return i}t.stringify=stringify},8497:(e,t)=>{"use strict";const r=Symbol("break visit");const a=Symbol("skip children");const i=Symbol("remove item");function visit(e,t){if("type"in e&&e.type==="document")e={start:e.start,value:e.value};_visit(Object.freeze([]),e,t)}visit.BREAK=r;visit.SKIP=a;visit.REMOVE=i;visit.itemAtPath=(e,t)=>{let r=e;for(const[e,a]of t){const t=r?.[e];if(t&&"items"in t){r=t.items[a]}else return undefined}return r};visit.parentCollection=(e,t)=>{const r=visit.itemAtPath(e,t.slice(0,-1));const a=t[t.length-1][0];const i=r?.[a];if(i&&"items"in i)return i;throw new Error("Parent collection not found")};function _visit(e,t,a){let n=a(t,e);if(typeof n==="symbol")return n;for(const s of["key","value"]){const o=t[s];if(o&&"items"in o){for(let t=0;t{"use strict";var a=r(9027);var i=r(6307);var n=r(8497);const s="\ufeff";const o="";const p="";const c="";const isCollection=e=>!!e&&"items"in e;const isScalar=e=>!!e&&(e.type==="scalar"||e.type==="single-quoted-scalar"||e.type==="double-quoted-scalar"||e.type==="block-scalar");function prettyToken(e){switch(e){case s:return"";case o:return"";case p:return"";case c:return"";default:return JSON.stringify(e)}}function tokenType(e){switch(e){case s:return"byte-order-mark";case o:return"doc-mode";case p:return"flow-error-end";case c:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case"\n":case"\r\n":return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case"\t":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}t.createScalarToken=a.createScalarToken;t.resolveAsScalar=a.resolveAsScalar;t.setScalarValue=a.setScalarValue;t.stringify=i.stringify;t.visit=n.visit;t.BOM=s;t.DOCUMENT=o;t.FLOW_END=p;t.SCALAR=c;t.isCollection=isCollection;t.isScalar=isScalar;t.prettyToken=prettyToken;t.tokenType=tokenType},5976:(e,t,r)=>{"use strict";var a=r(9169);function isEmpty(e){switch(e){case undefined:case" ":case"\n":case"\r":case"\t":return true;default:return false}}const i="0123456789ABCDEFabcdef".split("");const n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()".split("");const s=",[]{}".split("");const o=" ,[]{}\n\r\t".split("");const isNotAnchorChar=e=>!e||o.includes(e);class Lexer{constructor(){this.atEnd=false;this.blockScalarIndent=-1;this.blockScalarKeep=false;this.buffer="";this.flowKey=false;this.flowLevel=0;this.indentNext=0;this.indentValue=0;this.lineEndPos=null;this.next=null;this.pos=0}*lex(e,t=false){if(e){this.buffer=this.buffer?this.buffer+e:e;this.lineEndPos=null}this.atEnd=!t;let r=this.next??"stream";while(r&&(t||this.hasChars(1)))r=yield*this.parseNext(r)}atLineEnd(){let e=this.pos;let t=this.buffer[e];while(t===" "||t==="\t")t=this.buffer[++e];if(!t||t==="#"||t==="\n")return true;if(t==="\r")return this.buffer[e+1]==="\n";return false}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let r=0;while(t===" ")t=this.buffer[++r+e];if(t==="\r"){const t=this.buffer[r+e+1];if(t==="\n"||!t&&!this.atEnd)return e+r+1}return t==="\n"||r>=this.indentNext||!t&&!this.atEnd?e+r:-1}if(t==="-"||t==="."){const t=this.buffer.substr(e,3);if((t==="---"||t==="...")&&isEmpty(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;if(typeof e!=="number"||e!==-1&&ethis.indentValue&&!isEmpty(this.charAt(1)))this.indentNext=this.indentValue;return yield*this.parseBlockStart()}*parseBlockStart(){const[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&isEmpty(t)){const e=(yield*this.pushCount(1))+(yield*this.pushSpaces(true));this.indentNext=this.indentValue+1;this.indentValue+=e;return yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(true);const e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case undefined:yield*this.pushNewline();return yield*this.parseLineStart();case"{":case"[":yield*this.pushCount(1);this.flowKey=false;this.flowLevel=1;return"flow";case"}":case"]":yield*this.pushCount(1);return"doc";case"*":yield*this.pushUntil(isNotAnchorChar);return"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":t+=(yield*this.parseBlockScalarHeader());t+=(yield*this.pushSpaces(true));yield*this.pushCount(e.length-t);yield*this.pushNewline();return yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t;let r=-1;do{e=yield*this.pushNewline();if(e>0){t=yield*this.pushSpaces(false);this.indentValue=r=t}else{t=0}t+=(yield*this.pushSpaces(true))}while(e+t>0);const i=this.getLine();if(i===null)return this.setNext("flow");if(r!==-1&&r"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil((e=>isEmpty(e)||e==="#"))}*parseBlockScalar(){let e=this.pos-1;let t=0;let r;e:for(let a=this.pos;r=this.buffer[a];++a){switch(r){case" ":t+=1;break;case"\n":e=a;t=0;break;case"\r":{const e=this.buffer[a+1];if(!e&&!this.atEnd)return this.setNext("block-scalar");if(e==="\n")break}default:break e}}if(!r&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){if(this.blockScalarIndent===-1)this.indentNext=t;else this.indentNext+=this.blockScalarIndent;do{const t=this.continueScalar(e+1);if(t===-1)break;e=this.buffer.indexOf("\n",t)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}if(!this.blockScalarKeep){do{let r=e-1;let a=this.buffer[r];if(a==="\r")a=this.buffer[--r];const i=r;while(a===" "||a==="\t")a=this.buffer[--r];if(a==="\n"&&r>=this.pos&&r+1+t>i)e=r;else break}while(true)}yield a.SCALAR;yield*this.pushToIndex(e+1,true);return yield*this.parseLineStart()}*parsePlainScalar(){const e=this.flowLevel>0;let t=this.pos-1;let r=this.pos-1;let i;while(i=this.buffer[++r]){if(i===":"){const a=this.buffer[r+1];if(isEmpty(a)||e&&a===",")break;t=r}else if(isEmpty(i)){let a=this.buffer[r+1];if(i==="\r"){if(a==="\n"){r+=1;i="\n";a=this.buffer[r+1]}else t=r}if(a==="#"||e&&s.includes(a))break;if(i==="\n"){const e=this.continueScalar(r+1);if(e===-1)break;r=Math.max(r,e-2)}}else{if(e&&s.includes(i))break;t=r}}if(!i&&!this.atEnd)return this.setNext("plain-scalar");yield a.SCALAR;yield*this.pushToIndex(t+1,true);return e?"flow":"doc"}*pushCount(e){if(e>0){yield this.buffer.substr(this.pos,e);this.pos+=e;return e}return 0}*pushToIndex(e,t){const r=this.buffer.slice(this.pos,e);if(r){yield r;this.pos+=r.length;return r.length}else if(t)yield"";return 0}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(true))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(isNotAnchorChar))+(yield*this.pushSpaces(true))+(yield*this.pushIndicators());case"-":case"?":case":":{const e=this.flowLevel>0;const t=this.charAt(1);if(isEmpty(t)||e&&s.includes(t)){if(!e)this.indentNext=this.indentValue+1;else if(this.flowKey)this.flowKey=false;return(yield*this.pushCount(1))+(yield*this.pushSpaces(true))+(yield*this.pushIndicators())}}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2;let t=this.buffer[e];while(!isEmpty(t)&&t!==">")t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,false)}else{let e=this.pos+1;let t=this.buffer[e];while(t){if(n.includes(t))t=this.buffer[++e];else if(t==="%"&&i.includes(this.buffer[e+1])&&i.includes(this.buffer[e+2])){t=this.buffer[e+=3]}else break}return yield*this.pushToIndex(e,false)}}*pushNewline(){const e=this.buffer[this.pos];if(e==="\n")return yield*this.pushCount(1);else if(e==="\r"&&this.charAt(1)==="\n")return yield*this.pushCount(2);else return 0}*pushSpaces(e){let t=this.pos-1;let r;do{r=this.buffer[++t]}while(r===" "||e&&r==="\t");const a=t-this.pos;if(a>0){yield this.buffer.substr(this.pos,a);this.pos=t}return a}*pushUntil(e){let t=this.pos;let r=this.buffer[t];while(!e(r))r=this.buffer[++t];return yield*this.pushToIndex(t,false)}}t.Lexer=Lexer},1929:(e,t)=>{"use strict";class LineCounter{constructor(){this.lineStarts=[];this.addNewLine=e=>this.lineStarts.push(e);this.linePos=e=>{let t=0;let r=this.lineStarts.length;while(t>1;if(this.lineStarts[a]{"use strict";var a=r(9169);var i=r(5976);function includesToken(e,t){for(let r=0;r=0){switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}}while(e[++t]?.type==="space"){}return e.splice(t,e.length)}function fixFlowSeqItems(e){if(e.start.type==="flow-seq-start"){for(const t of e.items){if(t.sep&&!t.value&&!includesToken(t.start,"explicit-key-ind")&&!includesToken(t.sep,"map-value-ind")){if(t.key)t.value=t.key;delete t.key;if(isFlowToken(t.value)){if(t.value.end)Array.prototype.push.apply(t.value.end,t.sep);else t.value.end=t.sep}else Array.prototype.push.apply(t.start,t.sep);delete t.sep}}}}class Parser{constructor(e){this.atNewLine=true;this.atScalar=false;this.indent=0;this.offset=0;this.onKeyLine=false;this.stack=[];this.source="";this.type="";this.lexer=new i.Lexer;this.onNewLine=e}*parse(e,t=false){if(this.onNewLine&&this.offset===0)this.onNewLine(0);for(const r of this.lexer.lex(e,t))yield*this.next(r);if(!t)yield*this.end()}*next(e){this.source=e;if(process.env.LOG_TOKENS)console.log("|",a.prettyToken(e));if(this.atScalar){this.atScalar=false;yield*this.step();this.offset+=e.length;return}const t=a.tokenType(e);if(!t){const t=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:t,source:e});this.offset+=e.length}else if(t==="scalar"){this.atNewLine=false;this.atScalar=true;this.type="scalar"}else{this.type=t;yield*this.step();switch(t){case"newline":this.atNewLine=true;this.indent=0;if(this.onNewLine)this.onNewLine(this.offset+e.length);break;case"space":if(this.atNewLine&&e[0]===" ")this.indent+=e.length;break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":if(this.atNewLine)this.indent+=e.length;break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=false}this.offset+=e.length}}*end(){while(this.stack.length>0)yield*this.pop()}get sourceToken(){const e={type:this.type,offset:this.offset,indent:this.indent,source:this.source};return e}*step(){const e=this.peek(1);if(this.type==="doc-end"&&(!e||e.type!=="doc-end")){while(this.stack.length>0)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){const t=e??this.stack.pop();if(!t){const e="Tried to pop an empty stack";yield{type:"error",offset:this.offset,source:"",message:e}}else if(this.stack.length===0){yield t}else{const e=this.peek(1);if(t.type==="block-scalar"){t.indent="indent"in e?e.indent:0}else if(t.type==="flow-collection"&&e.type==="document"){t.indent=0}if(t.type==="flow-collection")fixFlowSeqItems(t);switch(e.type){case"document":e.value=t;break;case"block-scalar":e.props.push(t);break;case"block-map":{const r=e.items[e.items.length-1];if(r.value){e.items.push({start:[],key:t,sep:[]});this.onKeyLine=true;return}else if(r.sep){r.value=t}else{Object.assign(r,{key:t,sep:[]});this.onKeyLine=!includesToken(r.start,"explicit-key-ind");return}break}case"block-seq":{const r=e.items[e.items.length-1];if(r.value)e.items.push({start:[],value:t});else r.value=t;break}case"flow-collection":{const r=e.items[e.items.length-1];if(!r||r.value)e.items.push({start:[],key:t,sep:[]});else if(r.sep)r.value=t;else Object.assign(r,{key:t,sep:[]});return}default:yield*this.pop();yield*this.pop(t)}if((e.type==="document"||e.type==="block-map"||e.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){const r=t.items[t.items.length-1];if(r&&!r.sep&&!r.value&&r.start.length>0&&findNonEmptyIndex(r.start)===-1&&(t.indent===0||r.start.every((e=>e.type!=="comment"||e.indent=e.indent){const r=!this.onKeyLine&&this.indent===e.indent&&t.sep;let a=[];if(r&&t.sep&&!t.value){const r=[];for(let a=0;ae.indent)r.length=0;break;default:r.length=0}}if(r.length>=2)a=t.sep.splice(r[1])}switch(this.type){case"anchor":case"tag":if(r||t.value){a.push(this.sourceToken);e.items.push({start:a});this.onKeyLine=true}else if(t.sep){t.sep.push(this.sourceToken)}else{t.start.push(this.sourceToken)}return;case"explicit-key-ind":if(!t.sep&&!includesToken(t.start,"explicit-key-ind")){t.start.push(this.sourceToken)}else if(r||t.value){a.push(this.sourceToken);e.items.push({start:a})}else{this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]})}this.onKeyLine=true;return;case"map-value-ind":if(includesToken(t.start,"explicit-key-ind")){if(!t.sep){if(includesToken(t.start,"newline")){Object.assign(t,{key:null,sep:[this.sourceToken]})}else{const e=getFirstKeyStartProps(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}}else if(t.value){e.items.push({start:[],key:null,sep:[this.sourceToken]})}else if(includesToken(t.sep,"map-value-ind")){this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]})}else if(isFlowToken(t.key)&&!includesToken(t.sep,"newline")){const e=getFirstKeyStartProps(t.start);const r=t.key;const a=t.sep;a.push(this.sourceToken);delete t.key,delete t.sep;this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:e,key:r,sep:a}]})}else if(a.length>0){t.sep=t.sep.concat(a,this.sourceToken)}else{t.sep.push(this.sourceToken)}}else{if(!t.sep){Object.assign(t,{key:null,sep:[this.sourceToken]})}else if(t.value||r){e.items.push({start:a,key:null,sep:[this.sourceToken]})}else if(includesToken(t.sep,"map-value-ind")){this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]})}else{t.sep.push(this.sourceToken)}}this.onKeyLine=true;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const i=this.flowScalar(this.type);if(r||t.value){e.items.push({start:a,key:i,sep:[]});this.onKeyLine=true}else if(t.sep){this.stack.push(i)}else{Object.assign(t,{key:i,sep:[]});this.onKeyLine=true}return}default:{const i=this.startBlockValue(e);if(i){if(r&&i.type!=="block-seq"&&includesToken(t.start,"explicit-key-ind")){e.items.push({start:a})}this.stack.push(i);return}}}}yield*this.pop();yield*this.step()}*blockSequence(e){const t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){const r="end"in t.value?t.value.end:undefined;const a=Array.isArray(r)?r[r.length-1]:undefined;if(a?.type==="comment")r?.push(this.sourceToken);else e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){const r=e.items[e.items.length-2];const a=r?.value?.end;if(Array.isArray(a)){Array.prototype.push.apply(a,t.start);a.push(this.sourceToken);e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;if(t.value||includesToken(t.start,"seq-item-ind"))e.items.push({start:[this.sourceToken]});else t.start.push(this.sourceToken);return}if(this.indent>e.indent){const t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop();yield*this.step()}*flowCollection(e){const t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let e;do{yield*this.pop();e=this.peek(1)}while(e&&e.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":if(!t||t.sep)e.items.push({start:[this.sourceToken]});else t.start.push(this.sourceToken);return;case"map-value-ind":if(!t||t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":if(!t||t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const r=this.flowScalar(this.type);if(!t||t.value)e.items.push({start:[],key:r,sep:[]});else if(t.sep)this.stack.push(r);else Object.assign(t,{key:r,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}const r=this.startBlockValue(e);if(r)this.stack.push(r);else{yield*this.pop();yield*this.step()}}else{const t=this.peek(2);if(t.type==="block-map"&&(this.type==="map-value-ind"&&t.indent===e.indent||this.type==="newline"&&!t.items[t.items.length-1].sep)){yield*this.pop();yield*this.step()}else if(this.type==="map-value-ind"&&t.type!=="flow-collection"){const r=getPrevProps(t);const a=getFirstKeyStartProps(r);fixFlowSeqItems(e);const i=e.end.splice(1,e.end.length);i.push(this.sourceToken);const n={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:a,key:e,sep:i}]};this.onKeyLine=true;this.stack[this.stack.length-1]=n}else{yield*this.lineEnd(e)}}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf("\n")+1;while(e!==0){this.onNewLine(this.offset+e);e=this.source.indexOf("\n",e)+1}}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=true;const t=getPrevProps(e);const r=getFirstKeyStartProps(t);r.push(this.sourceToken);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r}]}}case"map-value-ind":{this.onKeyLine=true;const t=getPrevProps(e);const r=getFirstKeyStartProps(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){if(this.type!=="comment")return false;if(this.indent<=t)return false;return e.every((e=>e.type==="newline"||e.type==="space"))}*documentEnd(e){if(this.type!=="doc-mode"){if(e.end)e.end.push(this.sourceToken);else e.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop();yield*this.step();break;case"newline":this.onKeyLine=false;case"space":case"comment":default:if(e.end)e.end.push(this.sourceToken);else e.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}t.Parser=Parser},8649:(e,t,r)=>{"use strict";var a=r(9493);var i=r(42);var n=r(4236);var s=r(6909);var o=r(1929);var p=r(3328);function parseOptions(e){const t=e.prettyErrors!==false;const r=e.lineCounter||t&&new o.LineCounter||null;return{lineCounter:r,prettyErrors:t}}function parseAllDocuments(e,t={}){const{lineCounter:r,prettyErrors:i}=parseOptions(t);const s=new p.Parser(r?.addNewLine);const o=new a.Composer(t);const c=Array.from(o.compose(s.parse(e)));if(i&&r)for(const t of c){t.errors.forEach(n.prettifyError(e,r));t.warnings.forEach(n.prettifyError(e,r))}if(c.length>0)return c;return Object.assign([],{empty:true},o.streamInfo())}function parseDocument(e,t={}){const{lineCounter:r,prettyErrors:i}=parseOptions(t);const s=new p.Parser(r?.addNewLine);const o=new a.Composer(t);let c=null;for(const t of o.compose(s.parse(e),true,e.length)){if(!c)c=t;else if(c.options.logLevel!=="silent"){c.errors.push(new n.YAMLParseError(t.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}}if(i&&r){c.errors.forEach(n.prettifyError(e,r));c.warnings.forEach(n.prettifyError(e,r))}return c}function parse(e,t,r){let a=undefined;if(typeof t==="function"){a=t}else if(r===undefined&&t&&typeof t==="object"){r=t}const i=parseDocument(e,r);if(!i)return null;i.warnings.forEach((e=>s.warn(i.options.logLevel,e)));if(i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];else i.errors=[]}return i.toJS(Object.assign({reviver:a},r))}function stringify(e,t,r){let a=null;if(typeof t==="function"||Array.isArray(t)){a=t}else if(r===undefined&&t){r=t}if(typeof r==="string")r=r.length;if(typeof r==="number"){const e=Math.round(r);r=e<1?undefined:e>8?{indent:8}:{indent:e}}if(e===undefined){const{keepUndefined:e}=r??t??{};if(!e)return undefined}return new i.Document(e,a,r).toString(r)}t.parse=parse;t.parseAllDocuments=parseAllDocuments;t.parseDocument=parseDocument;t.stringify=stringify},6831:(e,t,r)=>{"use strict";var a=r(1399);var i=r(83);var n=r(1693);var s=r(2201);var o=r(4138);const sortMapEntriesByKey=(e,t)=>e.keyt.key?1:0;class Schema{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:p,schema:c,sortMapEntries:l,toStringDefaults:d}){this.compat=Array.isArray(e)?o.getTags(e,"compat"):e?o.getTags(null,e):null;this.merge=!!r;this.name=typeof c==="string"&&c||"core";this.knownTags=p?o.coreKnownTags:{};this.tags=o.getTags(t,this.name);this.toStringOptions=d??null;Object.defineProperty(this,a.MAP,{value:i.map});Object.defineProperty(this,a.SCALAR,{value:s.string});Object.defineProperty(this,a.SEQ,{value:n.seq});this.sortMapEntries=typeof l==="function"?l:l===true?sortMapEntriesByKey:null}clone(){const e=Object.create(Schema.prototype,Object.getOwnPropertyDescriptors(this));e.tags=this.tags.slice();return e}}t.Schema=Schema},83:(e,t,r)=>{"use strict";var a=r(1399);var i=r(246);var n=r(6011);function createMap(e,t,r){const{keepUndefined:a,replacer:s}=r;const o=new n.YAMLMap(e);const add=(e,n)=>{if(typeof s==="function")n=s.call(t,e,n);else if(Array.isArray(s)&&!s.includes(e))return;if(n!==undefined||a)o.items.push(i.createPair(e,n,r))};if(t instanceof Map){for(const[e,r]of t)add(e,r)}else if(t&&typeof t==="object"){for(const e of Object.keys(t))add(e,t[e])}if(typeof e.sortMapEntries==="function"){o.items.sort(e.sortMapEntries)}return o}const s={collection:"map",createNode:createMap,default:true,nodeClass:n.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(e,t){if(!a.isMap(e))t("Expected a mapping for this tag");return e}};t.map=s},6703:(e,t,r)=>{"use strict";var a=r(9338);const i={identify:e=>e==null,createNode:()=>new a.Scalar(null),default:true,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new a.Scalar(null),stringify:({source:e},t)=>typeof e==="string"&&i.test.test(e)?e:t.options.nullStr};t.nullTag=i},1693:(e,t,r)=>{"use strict";var a=r(9652);var i=r(1399);var n=r(5161);function createSeq(e,t,r){const{replacer:i}=r;const s=new n.YAMLSeq(e);if(t&&Symbol.iterator in Object(t)){let e=0;for(let n of t){if(typeof i==="function"){const r=t instanceof Set?n:String(e++);n=i.call(t,r,n)}s.items.push(a.createNode(n,undefined,r))}}return s}const s={collection:"seq",createNode:createSeq,default:true,nodeClass:n.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(e,t){if(!i.isSeq(e))t("Expected a sequence for this tag");return e}};t.seq=s},2201:(e,t,r)=>{"use strict";var a=r(6226);const i={identify:e=>typeof e==="string",default:true,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,r,i){t=Object.assign({actualString:true},t);return a.stringifyString(e,t,r,i)}};t.string=i},2045:(e,t,r)=>{"use strict";var a=r(9338);const i={identify:e=>typeof e==="boolean",default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new a.Scalar(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},r){if(e&&i.test.test(e)){const r=e[0]==="t"||e[0]==="T";if(t===r)return e}return t?r.options.trueStr:r.options.falseStr}};t.boolTag=i},6810:(e,t,r)=>{"use strict";var a=r(9338);var i=r(4174);const n={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN))$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:i.stringifyNumber};const s={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():i.stringifyNumber(e)}};const o={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new a.Scalar(parseFloat(e));const r=e.indexOf(".");if(r!==-1&&e[e.length-1]==="0")t.minFractionDigits=e.length-r-1;return t},stringify:i.stringifyNumber};t.float=o;t.floatExp=s;t.floatNaN=n},3019:(e,t,r)=>{"use strict";var a=r(4174);const intIdentify=e=>typeof e==="bigint"||Number.isInteger(e);const intResolve=(e,t,r,{intAsBigInt:a})=>a?BigInt(e):parseInt(e.substring(t),r);function intStringify(e,t,r){const{value:i}=e;if(intIdentify(i)&&i>=0)return r+i.toString(t);return a.stringifyNumber(e)}const i={identify:e=>intIdentify(e)&&e>=0,default:true,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,r)=>intResolve(e,2,8,r),stringify:e=>intStringify(e,8,"0o")};const n={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,r)=>intResolve(e,0,10,r),stringify:a.stringifyNumber};const s={identify:e=>intIdentify(e)&&e>=0,default:true,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,r)=>intResolve(e,2,16,r),stringify:e=>intStringify(e,16,"0x")};t.int=n;t.intHex=s;t.intOct=i},27:(e,t,r)=>{"use strict";var a=r(83);var i=r(6703);var n=r(1693);var s=r(2201);var o=r(2045);var p=r(6810);var c=r(3019);const l=[a.map,n.seq,s.string,i.nullTag,o.boolTag,c.intOct,c.int,c.intHex,p.floatNaN,p.floatExp,p.float];t.schema=l},4545:(e,t,r)=>{"use strict";var a=r(9338);var i=r(83);var n=r(1693);function intIdentify(e){return typeof e==="bigint"||Number.isInteger(e)}const stringifyJSON=({value:e})=>JSON.stringify(e);const s=[{identify:e=>typeof e==="string",default:true,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:stringifyJSON},{identify:e=>e==null,createNode:()=>new a.Scalar(null),default:true,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:stringifyJSON},{identify:e=>typeof e==="boolean",default:true,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:e=>e==="true",stringify:stringifyJSON},{identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:r})=>r?BigInt(e):parseInt(e,10),stringify:({value:e})=>intIdentify(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:stringifyJSON}];const o={default:true,tag:"",test:/^/,resolve(e,t){t(`Unresolved plain scalar ${JSON.stringify(e)}`);return e}};const p=[i.map,n.seq].concat(s,o);t.schema=p},4138:(e,t,r)=>{"use strict";var a=r(83);var i=r(6703);var n=r(1693);var s=r(2201);var o=r(2045);var p=r(6810);var c=r(3019);var l=r(27);var d=r(4545);var u=r(5724);var m=r(8974);var h=r(9841);var g=r(5389);var v=r(7847);var y=r(1156);const b=new Map([["core",l.schema],["failsafe",[a.map,n.seq,s.string]],["json",d.schema],["yaml11",g.schema],["yaml-1.1",g.schema]]);const w={binary:u.binary,bool:o.boolTag,float:p.float,floatExp:p.floatExp,floatNaN:p.floatNaN,floatTime:y.floatTime,int:c.int,intHex:c.intHex,intOct:c.intOct,intTime:y.intTime,map:a.map,null:i.nullTag,omap:m.omap,pairs:h.pairs,seq:n.seq,set:v.set,timestamp:y.timestamp};const x={"tag:yaml.org,2002:binary":u.binary,"tag:yaml.org,2002:omap":m.omap,"tag:yaml.org,2002:pairs":h.pairs,"tag:yaml.org,2002:set":v.set,"tag:yaml.org,2002:timestamp":y.timestamp};function getTags(e,t){let r=b.get(t);if(!r){if(Array.isArray(e))r=[];else{const e=Array.from(b.keys()).filter((e=>e!=="yaml11")).map((e=>JSON.stringify(e))).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}}if(Array.isArray(e)){for(const t of e)r=r.concat(t)}else if(typeof e==="function"){r=e(r.slice())}return r.map((e=>{if(typeof e!=="string")return e;const t=w[e];if(t)return t;const r=Object.keys(w).map((e=>JSON.stringify(e))).join(", ");throw new Error(`Unknown custom tag "${e}"; use one of ${r}`)}))}t.coreKnownTags=x;t.getTags=getTags},5724:(e,t,r)=>{"use strict";var a=r(9338);var i=r(6226);const n={identify:e=>e instanceof Uint8Array,default:false,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof Buffer==="function"){return Buffer.from(e,"base64")}else if(typeof atob==="function"){const t=atob(e.replace(/[\n\r]/g,""));const r=new Uint8Array(t.length);for(let e=0;e{"use strict";var a=r(9338);function boolStringify({value:e,source:t},r){const a=e?i:n;if(t&&a.test.test(t))return t;return e?r.options.trueStr:r.options.falseStr}const i={identify:e=>e===true,default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new a.Scalar(true),stringify:boolStringify};const n={identify:e=>e===false,default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:()=>new a.Scalar(false),stringify:boolStringify};t.falseTag=n;t.trueTag=i},8035:(e,t,r)=>{"use strict";var a=r(9338);var i=r(4174);const n={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:i.stringifyNumber};const s={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():i.stringifyNumber(e)}};const o={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const t=new a.Scalar(parseFloat(e.replace(/_/g,"")));const r=e.indexOf(".");if(r!==-1){const a=e.substring(r+1).replace(/_/g,"");if(a[a.length-1]==="0")t.minFractionDigits=a.length}return t},stringify:i.stringifyNumber};t.float=o;t.floatExp=s;t.floatNaN=n},9503:(e,t,r)=>{"use strict";var a=r(4174);const intIdentify=e=>typeof e==="bigint"||Number.isInteger(e);function intResolve(e,t,r,{intAsBigInt:a}){const i=e[0];if(i==="-"||i==="+")t+=1;e=e.substring(t).replace(/_/g,"");if(a){switch(r){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const t=BigInt(e);return i==="-"?BigInt(-1)*t:t}const n=parseInt(e,r);return i==="-"?-1*n:n}function intStringify(e,t,r){const{value:i}=e;if(intIdentify(i)){const e=i.toString(t);return i<0?"-"+r+e.substr(1):r+e}return a.stringifyNumber(e)}const i={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,r)=>intResolve(e,2,2,r),stringify:e=>intStringify(e,2,"0b")};const n={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,r)=>intResolve(e,1,8,r),stringify:e=>intStringify(e,8,"0")};const s={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,r)=>intResolve(e,0,10,r),stringify:a.stringifyNumber};const o={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,r)=>intResolve(e,2,16,r),stringify:e=>intStringify(e,16,"0x")};t.int=s;t.intBin=i;t.intHex=o;t.intOct=n},8974:(e,t,r)=>{"use strict";var a=r(5161);var i=r(2463);var n=r(1399);var s=r(6011);var o=r(9841);class YAMLOMap extends a.YAMLSeq{constructor(){super();this.add=s.YAMLMap.prototype.add.bind(this);this.delete=s.YAMLMap.prototype.delete.bind(this);this.get=s.YAMLMap.prototype.get.bind(this);this.has=s.YAMLMap.prototype.has.bind(this);this.set=s.YAMLMap.prototype.set.bind(this);this.tag=YAMLOMap.tag}toJSON(e,t){if(!t)return super.toJSON(e);const r=new Map;if(t?.onCreate)t.onCreate(r);for(const e of this.items){let a,s;if(n.isPair(e)){a=i.toJS(e.key,"",t);s=i.toJS(e.value,a,t)}else{a=i.toJS(e,"",t)}if(r.has(a))throw new Error("Ordered maps must not include duplicate keys");r.set(a,s)}return r}}YAMLOMap.tag="tag:yaml.org,2002:omap";const p={collection:"seq",identify:e=>e instanceof Map,nodeClass:YAMLOMap,default:false,tag:"tag:yaml.org,2002:omap",resolve(e,t){const r=o.resolvePairs(e,t);const a=[];for(const{key:e}of r.items){if(n.isScalar(e)){if(a.includes(e.value)){t(`Ordered maps must not include duplicate keys: ${e.value}`)}else{a.push(e.value)}}}return Object.assign(new YAMLOMap,r)},createNode(e,t,r){const a=o.createPairs(e,t,r);const i=new YAMLOMap;i.items=a.items;return i}};t.YAMLOMap=YAMLOMap;t.omap=p},9841:(e,t,r)=>{"use strict";var a=r(1399);var i=r(246);var n=r(9338);var s=r(5161);function resolvePairs(e,t){if(a.isSeq(e)){for(let r=0;r1)t("Each pair must have its own sequence indicator");const e=s.items[0]||new i.Pair(new n.Scalar(null));if(s.commentBefore)e.key.commentBefore=e.key.commentBefore?`${s.commentBefore}\n${e.key.commentBefore}`:s.commentBefore;if(s.comment){const t=e.value??e.key;t.comment=t.comment?`${s.comment}\n${t.comment}`:s.comment}s=e}e.items[r]=a.isPair(s)?s:new i.Pair(s)}}else t("Expected a sequence for this tag");return e}function createPairs(e,t,r){const{replacer:a}=r;const n=new s.YAMLSeq(e);n.tag="tag:yaml.org,2002:pairs";let o=0;if(t&&Symbol.iterator in Object(t))for(let e of t){if(typeof a==="function")e=a.call(t,String(o++),e);let s,p;if(Array.isArray(e)){if(e.length===2){s=e[0];p=e[1]}else throw new TypeError(`Expected [key, value] tuple: ${e}`)}else if(e&&e instanceof Object){const t=Object.keys(e);if(t.length===1){s=t[0];p=e[s]}else throw new TypeError(`Expected { key: value } tuple: ${e}`)}else{s=e}n.items.push(i.createPair(s,p,r))}return n}const o={collection:"seq",default:false,tag:"tag:yaml.org,2002:pairs",resolve:resolvePairs,createNode:createPairs};t.createPairs=createPairs;t.pairs=o;t.resolvePairs=resolvePairs},5389:(e,t,r)=>{"use strict";var a=r(83);var i=r(6703);var n=r(1693);var s=r(2201);var o=r(5724);var p=r(2631);var c=r(8035);var l=r(9503);var d=r(8974);var u=r(9841);var m=r(7847);var h=r(1156);const g=[a.map,n.seq,s.string,i.nullTag,p.trueTag,p.falseTag,l.intBin,l.intOct,l.int,l.intHex,c.floatNaN,c.floatExp,c.float,o.binary,d.omap,u.pairs,m.set,h.intTime,h.floatTime,h.timestamp];t.schema=g},7847:(e,t,r)=>{"use strict";var a=r(1399);var i=r(246);var n=r(6011);class YAMLSet extends n.YAMLMap{constructor(e){super(e);this.tag=YAMLSet.tag}add(e){let t;if(a.isPair(e))t=e;else if(e&&typeof e==="object"&&"key"in e&&"value"in e&&e.value===null)t=new i.Pair(e.key,null);else t=new i.Pair(e,null);const r=n.findPair(this.items,t.key);if(!r)this.items.push(t)}get(e,t){const r=n.findPair(this.items,e);return!t&&a.isPair(r)?a.isScalar(r.key)?r.key.value:r.key:r}set(e,t){if(typeof t!=="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);const r=n.findPair(this.items,e);if(r&&!t){this.items.splice(this.items.indexOf(r),1)}else if(!r&&t){this.items.push(new i.Pair(e))}}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(true))return super.toString(Object.assign({},e,{allNullValues:true}),t,r);else throw new Error("Set items must all have null values")}}YAMLSet.tag="tag:yaml.org,2002:set";const s={collection:"map",identify:e=>e instanceof Set,nodeClass:YAMLSet,default:false,tag:"tag:yaml.org,2002:set",resolve(e,t){if(a.isMap(e)){if(e.hasAllNullValues(true))return Object.assign(new YAMLSet,e);else t("Set items must all have null values")}else t("Expected a mapping for this tag");return e},createNode(e,t,r){const{replacer:a}=r;const n=new YAMLSet(e);if(t&&Symbol.iterator in Object(t))for(let e of t){if(typeof a==="function")e=a.call(t,e,e);n.items.push(i.createPair(e,null,r))}return n}};t.YAMLSet=YAMLSet;t.set=s},1156:(e,t,r)=>{"use strict";var a=r(4174);function parseSexagesimal(e,t){const r=e[0];const a=r==="-"||r==="+"?e.substring(1):e;const num=e=>t?BigInt(e):Number(e);const i=a.replace(/_/g,"").split(":").reduce(((e,t)=>e*num(60)+num(t)),num(0));return r==="-"?num(-1)*i:i}function stringifySexagesimal(e){let{value:t}=e;let num=e=>e;if(typeof t==="bigint")num=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return a.stringifyNumber(e);let r="";if(t<0){r="-";t*=num(-1)}const i=num(60);const n=[t%i];if(t<60){n.unshift(0)}else{t=(t-n[0])/i;n.unshift(t%i);if(t>=60){t=(t-n[0])/i;n.unshift(t)}}return r+n.map((e=>e<10?"0"+String(e):String(e))).join(":").replace(/000000\d*$/,"")}const i={identify:e=>typeof e==="bigint"||Number.isInteger(e),default:true,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:r})=>parseSexagesimal(e,r),stringify:stringifySexagesimal};const n={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>parseSexagesimal(e,false),stringify:stringifySexagesimal};const s={identify:e=>e instanceof Date,default:true,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"+"(?:"+"(?:t|T|[ \\t]+)"+"([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)"+"(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?"+")?$"),resolve(e){const t=e.match(s.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,r,a,i,n,o,p]=t.map(Number);const c=t[7]?Number((t[7]+"00").substr(1,3)):0;let l=Date.UTC(r,a-1,i,n||0,o||0,p||0,c);const d=t[8];if(d&&d!=="Z"){let e=parseSexagesimal(d,false);if(Math.abs(e)<30)e*=60;l-=6e4*e}return new Date(l)},stringify:({value:e})=>e.toISOString().replace(/((T00:00)?:00)?\.000Z$/,"")};t.floatTime=n;t.intTime=i;t.timestamp=s},2889:(e,t)=>{"use strict";const r="flow";const a="block";const i="quoted";function foldFlowLines(e,t,r="flow",{indentAtStart:n,lineWidth:s=80,minContentWidth:o=20,onFold:p,onOverflow:c}={}){if(!s||s<0)return e;const l=Math.max(1+o,1+s-t.length);if(e.length<=l)return e;const d=[];const u={};let m=s-t.length;if(typeof n==="number"){if(n>s-Math.max(2,o))d.push(0);else m=s-n}let h=undefined;let g=undefined;let v=false;let y=-1;let b=-1;let w=-1;if(r===a){y=consumeMoreIndentedLines(e,y);if(y!==-1)m=y+l}for(let t;t=e[y+=1];){if(r===i&&t==="\\"){b=y;switch(e[y+1]){case"x":y+=3;break;case"u":y+=5;break;case"U":y+=9;break;default:y+=1}w=y}if(t==="\n"){if(r===a)y=consumeMoreIndentedLines(e,y);m=y+l;h=undefined}else{if(t===" "&&g&&g!==" "&&g!=="\n"&&g!=="\t"){const t=e[y+1];if(t&&t!==" "&&t!=="\n"&&t!=="\t")h=y}if(y>=m){if(h){d.push(h);m=h+l;h=undefined}else if(r===i){while(g===" "||g==="\t"){g=t;t=e[y+=1];v=true}const r=y>w+1?y-2:b-1;if(u[r])return e;d.push(r);u[r]=true;m=r+l;h=undefined}else{v=true}}}g=t}if(v&&c)c();if(d.length===0)return e;if(p)p();let x=e.slice(0,d[0]);for(let a=0;a{"use strict";var a=r(8459);var i=r(1399);var n=r(5182);var s=r(6226);function createStringifyContext(e,t){const r=Object.assign({blockQuote:true,commentString:n.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:false,doubleQuotedMinMultiLineLength:40,falseStr:"false",indentSeq:true,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:false,singleQuote:null,trueStr:"true",verifyAliasOrder:true},e.schema.toStringOptions,t);let a;switch(r.collectionStyle){case"block":a=false;break;case"flow":a=true;break;default:a=null}return{anchors:new Set,doc:e,indent:"",indentStep:typeof r.indent==="number"?" ".repeat(r.indent):" ",inFlow:a,options:r}}function getTagObject(e,t){if(t.tag){const r=e.filter((e=>e.tag===t.tag));if(r.length>0)return r.find((e=>e.format===t.format))??r[0]}let r=undefined;let a;if(i.isScalar(t)){a=t.value;const i=e.filter((e=>e.identify?.(a)));r=i.find((e=>e.format===t.format))??i.find((e=>!e.format))}else{a=t;r=e.find((e=>e.nodeClass&&a instanceof e.nodeClass))}if(!r){const e=a?.constructor?.name??typeof a;throw new Error(`Tag not resolved for ${e} value`)}return r}function stringifyProps(e,t,{anchors:r,doc:n}){if(!n.directives)return"";const s=[];const o=(i.isScalar(e)||i.isCollection(e))&&e.anchor;if(o&&a.anchorIsValid(o)){r.add(o);s.push(`&${o}`)}const p=e.tag?e.tag:t.default?null:t.tag;if(p)s.push(n.directives.tagString(p));return s.join(" ")}function stringify(e,t,r,a){if(i.isPair(e))return e.toString(t,r,a);if(i.isAlias(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e)){throw new TypeError(`Cannot stringify circular structure without alias nodes`)}else{if(t.resolvedAliases)t.resolvedAliases.add(e);else t.resolvedAliases=new Set([e]);e=e.resolve(t.doc)}}let n=undefined;const o=i.isNode(e)?e:t.doc.createNode(e,{onTagObj:e=>n=e});if(!n)n=getTagObject(t.doc.schema.tags,o);const p=stringifyProps(o,n,t);if(p.length>0)t.indentAtStart=(t.indentAtStart??0)+p.length+1;const c=typeof n.stringify==="function"?n.stringify(o,t,r,a):i.isScalar(o)?s.stringifyString(o,t,r,a):o.toString(t,r,a);if(!p)return c;return i.isScalar(o)||c[0]==="{"||c[0]==="["?`${p} ${c}`:`${p}\n${t.indent}${c}`}t.createStringifyContext=createStringifyContext;t.stringify=stringify},2466:(e,t,r)=>{"use strict";var a=r(3466);var i=r(1399);var n=r(8409);var s=r(5182);function stringifyCollection(e,t,r){const a=t.inFlow??e.flow;const i=a?stringifyFlowCollection:stringifyBlockCollection;return i(e,t,r)}function stringifyBlockCollection({comment:e,items:t},r,{blockItemPrefix:a,flowChars:o,itemIndent:p,onChompKeep:c,onComment:l}){const{indent:d,options:{commentString:u}}=r;const m=Object.assign({},r,{indent:p,type:null});let h=false;const g=[];for(let e=0;ec=null),(()=>h=true));if(c)l+=s.lineComment(l,p,u(c));if(h&&c)h=false;g.push(a+l)}let v;if(g.length===0){v=o.start+o.end}else{v=g[0];for(let e=1;eo=null));if(eg||c.includes("\n")))h=true;v.push(c);g=v.length}let y;const{start:b,end:w}=o;if(v.length===0){y=b+w}else{if(!h){const e=v.reduce(((e,t)=>e+t.length+2),2);h=e>a.Collection.maxFlowStringSingleLineLength}if(h){y=b;for(const e of v)y+=e?`\n${d}${l}${e}`:"\n";y+=`\n${l}${w}`}else{y=`${b} ${v.join(" ")} ${w}`}}if(e){y+=s.lineComment(y,u(e),l);if(c)c()}return y}function addCommentBefore({indent:e,options:{commentString:t}},r,a,i){if(a&&i)a=a.replace(/^\n+/,"");if(a){const i=s.indentComment(t(a),e);r.push(i.trimStart())}}t.stringifyCollection=stringifyCollection},5182:(e,t)=>{"use strict";const stringifyComment=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function indentComment(e,t){if(/^\n+$/.test(e))return e.substring(1);return t?e.replace(/^(?! *$)/gm,t):e}const lineComment=(e,t,r)=>e.endsWith("\n")?indentComment(r,t):r.includes("\n")?"\n"+indentComment(r,t):(e.endsWith(" ")?"":" ")+r;t.indentComment=indentComment;t.lineComment=lineComment;t.stringifyComment=stringifyComment},5225:(e,t,r)=>{"use strict";var a=r(1399);var i=r(8409);var n=r(5182);function stringifyDocument(e,t){const r=[];let s=t.directives===true;if(t.directives!==false&&e.directives){const t=e.directives.toString(e);if(t){r.push(t);s=true}else if(e.directives.docStart)s=true}if(s)r.push("---");const o=i.createStringifyContext(e,t);const{commentString:p}=o.options;if(e.commentBefore){if(r.length!==1)r.unshift("");const t=p(e.commentBefore);r.unshift(n.indentComment(t,""))}let c=false;let l=null;if(e.contents){if(a.isNode(e.contents)){if(e.contents.spaceBefore&&s)r.push("");if(e.contents.commentBefore){const t=p(e.contents.commentBefore);r.push(n.indentComment(t,""))}o.forceBlockIndent=!!e.comment;l=e.contents.comment}const t=l?undefined:()=>c=true;let d=i.stringify(e.contents,o,(()=>l=null),t);if(l)d+=n.lineComment(d,"",p(l));if((d[0]==="|"||d[0]===">")&&r[r.length-1]==="---"){r[r.length-1]=`--- ${d}`}else r.push(d)}else{r.push(i.stringify(e.contents,o))}if(e.directives?.docEnd){if(e.comment){const t=p(e.comment);if(t.includes("\n")){r.push("...");r.push(n.indentComment(t,""))}else{r.push(`... ${t}`)}}else{r.push("...")}}else{let t=e.comment;if(t&&c)t=t.replace(/^\n+/,"");if(t){if((!c||l)&&r[r.length-1]!=="")r.push("");r.push(n.indentComment(p(t),""))}}return r.join("\n")+"\n"}t.stringifyDocument=stringifyDocument},4174:(e,t)=>{"use strict";function stringifyNumber({format:e,minFractionDigits:t,tag:r,value:a}){if(typeof a==="bigint")return String(a);const i=typeof a==="number"?a:Number(a);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let n=JSON.stringify(a);if(!e&&t&&(!r||r==="tag:yaml.org,2002:float")&&/^\d/.test(n)){let e=n.indexOf(".");if(e<0){e=n.length;n+="."}let r=t-(n.length-e-1);while(r-- >0)n+="0"}return n}t.stringifyNumber=stringifyNumber},4875:(e,t,r)=>{"use strict";var a=r(1399);var i=r(9338);var n=r(8409);var s=r(5182);function stringifyPair({key:e,value:t},r,o,p){const{allNullValues:c,doc:l,indent:d,indentStep:u,options:{commentString:m,indentSeq:h,simpleKeys:g}}=r;let v=a.isNode(e)&&e.comment||null;if(g){if(v){throw new Error("With simple keys, key nodes cannot have comments")}if(a.isCollection(e)){const e="With simple keys, collection cannot be used as a key value";throw new Error(e)}}let y=!g&&(!e||v&&t==null&&!r.inFlow||a.isCollection(e)||(a.isScalar(e)?e.type===i.Scalar.BLOCK_FOLDED||e.type===i.Scalar.BLOCK_LITERAL:typeof e==="object"));r=Object.assign({},r,{allNullValues:false,implicitKey:!y&&(g||!c),indent:d+u});let b=false;let w=false;let x=n.stringify(e,r,(()=>b=true),(()=>w=true));if(!y&&!r.inFlow&&x.length>1024){if(g)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");y=true}if(r.inFlow){if(c||t==null){if(b&&o)o();return x===""?"?":y?`? ${x}`:x}}else if(c&&!g||t==null&&y){x=`? ${x}`;if(v&&!b){x+=s.lineComment(x,r.indent,m(v))}else if(w&&p)p();return x}if(b)v=null;if(y){if(v)x+=s.lineComment(x,r.indent,m(v));x=`? ${x}\n${d}:`}else{x=`${x}:`;if(v)x+=s.lineComment(x,r.indent,m(v))}let E="";let S=null;if(a.isNode(t)){if(t.spaceBefore)E="\n";if(t.commentBefore){const e=m(t.commentBefore);E+=`\n${s.indentComment(e,r.indent)}`}S=t.comment}else if(t&&typeof t==="object"){t=l.createNode(t)}r.implicitKey=false;if(!y&&!v&&a.isScalar(t))r.indentAtStart=x.length+1;w=false;if(!h&&u.length>=2&&!r.inFlow&&!y&&a.isSeq(t)&&!t.flow&&!t.tag&&!t.anchor){r.indent=r.indent.substr(2)}let T=false;const k=n.stringify(t,r,(()=>T=true),(()=>w=true));let C=" ";if(E||v){if(k===""&&!r.inFlow)C=E==="\n"?"\n\n":E;else C=`${E}\n${r.indent}`}else if(!y&&a.isCollection(t)){const e=k[0]==="["||k[0]==="{";if(!e||k.includes("\n"))C=`\n${r.indent}`}else if(k===""||k[0]==="\n")C="";x+=C+k;if(r.inFlow){if(T&&o)o()}else if(S&&!T){x+=s.lineComment(x,r.indent,m(S))}else if(w&&p){p()}return x}t.stringifyPair=stringifyPair},6226:(e,t,r)=>{"use strict";var a=r(9338);var i=r(2889);const getFoldOptions=e=>({indentAtStart:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth});const containsDocumentMarker=e=>/^(%|---|\.\.\.)/m.test(e);function lineLengthOverLimit(e,t,r){if(!t||t<0)return false;const a=t-r;const i=e.length;if(i<=a)return false;for(let t=0,r=0;ta)return true;r=t+1;if(i-r<=a)return false}}return true}function doubleQuotedString(e,t){const r=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return r;const{implicitKey:a}=t;const n=t.options.doubleQuotedMinMultiLineLength;const s=t.indent||(containsDocumentMarker(e)?" ":"");let o="";let p=0;for(let e=0,t=r[e];t;t=r[++e]){if(t===" "&&r[e+1]==="\\"&&r[e+2]==="n"){o+=r.slice(p,e)+"\\ ";e+=1;p=e;t="\\"}if(t==="\\")switch(r[e+1]){case"u":{o+=r.slice(p,e);const t=r.substr(e+2,4);switch(t){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:if(t.substr(0,2)==="00")o+="\\x"+t.substr(2);else o+=r.substr(e,6)}e+=5;p=e+1}break;case"n":if(a||r[e+2]==='"'||r.length\n";let m;let h;for(h=r.length;h>0;--h){const e=r[h-1];if(e!=="\n"&&e!=="\t"&&e!==" ")break}let g=r.substring(h);const v=g.indexOf("\n");if(v===-1){m="-"}else if(r===g||v!==g.length-1){m="+";if(o)o()}else{m=""}if(g){r=r.slice(0,-g.length);if(g[g.length-1]==="\n")g=g.slice(0,-1);g=g.replace(/\n+(?!\n|$)/g,`$&${d}`)}let y=false;let b;let w=-1;for(b=0;b")+(y?E:"")+m;if(e){S+=" "+c(e.replace(/ ?[\r\n]+/g," "));if(s)s()}if(u){r=r.replace(/\n+/g,`$&${d}`);return`${S}\n${d}${x}${r}${g}`}r=r.replace(/\n+/g,"\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${d}`);const T=i.foldFlowLines(`${x}${r}${g}`,d,i.FOLD_BLOCK,getFoldOptions(n));return`${S}\n${d}${T}`}function plainString(e,t,r,n){const{type:s,value:o}=e;const{actualString:p,implicitKey:c,indent:l,inFlow:d}=t;if(c&&/[\n[\]{},]/.test(o)||d&&/[[\]{},]/.test(o)){return quotedString(o,t)}if(!o||/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(o)){return c||d||!o.includes("\n")?quotedString(o,t):blockString(e,t,r,n)}if(!c&&!d&&s!==a.Scalar.PLAIN&&o.includes("\n")){return blockString(e,t,r,n)}if(l===""&&containsDocumentMarker(o)){t.forceBlockIndent=true;return blockString(e,t,r,n)}const u=o.replace(/\n+/g,`$&\n${l}`);if(p){const test=e=>e.default&&e.tag!=="tag:yaml.org,2002:str"&&e.test?.test(u);const{compat:e,tags:r}=t.doc.schema;if(r.some(test)||e?.some(test))return quotedString(o,t)}return c?u:i.foldFlowLines(u,l,i.FOLD_FLOW,getFoldOptions(t))}function stringifyString(e,t,r,i){const{implicitKey:n,inFlow:s}=t;const o=typeof e.value==="string"?e:Object.assign({},e,{value:String(e.value)});let{type:p}=e;if(p!==a.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value))p=a.Scalar.QUOTE_DOUBLE}const _stringify=e=>{switch(e){case a.Scalar.BLOCK_FOLDED:case a.Scalar.BLOCK_LITERAL:return n||s?quotedString(o.value,t):blockString(o,t,r,i);case a.Scalar.QUOTE_DOUBLE:return doubleQuotedString(o.value,t);case a.Scalar.QUOTE_SINGLE:return singleQuotedString(o.value,t);case a.Scalar.PLAIN:return plainString(o,t,r,i);default:return null}};let c=_stringify(p);if(c===null){const{defaultKeyType:e,defaultStringType:r}=t.options;const a=n&&e||r;c=_stringify(a);if(c===null)throw new Error(`Unsupported default string type ${a}`)}return c}t.stringifyString=stringifyString},6796:(e,t,r)=>{"use strict";var a=r(1399);const i=Symbol("break visit");const n=Symbol("skip children");const s=Symbol("remove node");function visit(e,t){const r=initVisitor(t);if(a.isDocument(e)){const t=visit_(null,e.contents,r,Object.freeze([e]));if(t===s)e.contents=null}else visit_(null,e,r,Object.freeze([]))}visit.BREAK=i;visit.SKIP=n;visit.REMOVE=s;function visit_(e,t,r,n){const o=callVisitor(e,t,r,n);if(a.isNode(o)||a.isPair(o)){replaceNode(e,n,o);return visit_(e,o,r,n)}if(typeof o!=="symbol"){if(a.isCollection(t)){n=Object.freeze(n.concat(t));for(let e=0;e{"use strict";e.exports=JSON.parse('{"$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON AnySchema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},3712:e=>{"use strict";e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')},3765:e=>{"use strict";e.exports=JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"application/aml":{"source":"iana"},"application/andrew-inset":{"source":"iana","extensions":["ez"]},"application/applefile":{"source":"iana"},"application/applixware":{"source":"apache","extensions":["aw"]},"application/at+jwt":{"source":"iana"},"application/atf":{"source":"iana"},"application/atfx":{"source":"iana"},"application/atom+xml":{"source":"iana","compressible":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cdfx+xml":{"source":"iana","compressible":true,"extensions":["cdfx"]},"application/cdmi-capability":{"source":"iana","extensions":["cdmia"]},"application/cdmi-container":{"source":"iana","extensions":["cdmic"]},"application/cdmi-domain":{"source":"iana","extensions":["cdmid"]},"application/cdmi-object":{"source":"iana","extensions":["cdmio"]},"application/cdmi-queue":{"source":"iana","extensions":["cdmiq"]},"application/cdni":{"source":"iana"},"application/cea":{"source":"iana"},"application/cea-2018+xml":{"source":"iana","compressible":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana"},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/ecmascript":{"source":"iana","compressible":true,"extensions":["es","ecma"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"application/fits":{"source":"iana"},"application/flexfec":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/index":{"source":"iana"},"application/index.cmd":{"source":"iana"},"application/index.obj":{"source":"iana"},"application/index.response":{"source":"iana"},"application/index.vnd":{"source":"iana"},"application/inkml+xml":{"source":"iana","compressible":true,"extensions":["ink","inkml"]},"application/iotp":{"source":"iana"},"application/ipfix":{"source":"iana","extensions":["ipfix"]},"application/ipp":{"source":"iana"},"application/isup":{"source":"iana"},"application/its+xml":{"source":"iana","compressible":true,"extensions":["its"]},"application/java-archive":{"source":"apache","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/load-control+xml":{"source":"iana","compressible":true},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"application/lxf":{"source":"iana"},"application/mac-binhex40":{"source":"iana","extensions":["hqx"]},"application/mac-compactpro":{"source":"apache","extensions":["cpt"]},"application/macwriteii":{"source":"iana"},"application/mads+xml":{"source":"iana","compressible":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"extensions":["mets"]},"application/mf4":{"source":"iana"},"application/mikey":{"source":"iana"},"application/mipc":{"source":"iana"},"application/missing-blocks+cbor-seq":{"source":"iana"},"application/mmt-aei+xml":{"source":"iana","compressible":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"extensions":["mods"]},"application/moss-keys":{"source":"iana"},"application/moss-signature":{"source":"iana"},"application/mosskey-data":{"source":"iana"},"application/mosskey-request":{"source":"iana"},"application/mp21":{"source":"iana","extensions":["m21","mp21"]},"application/mp4":{"source":"iana","extensions":["mp4s","m4p"]},"application/mpeg4-generic":{"source":"iana"},"application/mpeg4-iod":{"source":"iana"},"application/mpeg4-iod-xmt":{"source":"iana"},"application/mrb-consumer+xml":{"source":"iana","compressible":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"application/multipart-core":{"source":"iana"},"application/mxf":{"source":"iana","extensions":["mxf"]},"application/n-quads":{"source":"iana","extensions":["nq"]},"application/n-triples":{"source":"iana","extensions":["nt"]},"application/nasdata":{"source":"iana"},"application/news-checkgroups":{"source":"iana","charset":"US-ASCII"},"application/news-groupinfo":{"source":"iana","charset":"US-ASCII"},"application/news-transmission":{"source":"iana"},"application/nlsml+xml":{"source":"iana","compressible":true},"application/node":{"source":"iana","extensions":["cjs"]},"application/nss":{"source":"iana"},"application/oauth-authz-req+jwt":{"source":"iana"},"application/oblivious-dns-message":{"source":"iana"},"application/ocsp-request":{"source":"iana"},"application/ocsp-response":{"source":"iana"},"application/octet-stream":{"source":"iana","compressible":false,"extensions":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{"source":"iana","extensions":["oda"]},"application/odm+xml":{"source":"iana","compressible":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"extensions":["pgp"]},"application/pgp-keys":{"source":"iana","extensions":["asc"]},"application/pgp-signature":{"source":"iana","extensions":["asc","sig"]},"application/pics-rules":{"source":"apache","extensions":["prf"]},"application/pidf+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pkcs10":{"source":"iana","extensions":["p10"]},"application/pkcs12":{"source":"iana"},"application/pkcs7-mime":{"source":"iana","extensions":["p7m","p7c"]},"application/pkcs7-signature":{"source":"iana","extensions":["p7s"]},"application/pkcs8":{"source":"iana","extensions":["p8"]},"application/pkcs8-encrypted":{"source":"iana"},"application/pkix-attr-cert":{"source":"iana","extensions":["ac"]},"application/pkix-cert":{"source":"iana","extensions":["cer"]},"application/pkix-crl":{"source":"iana","extensions":["crl"]},"application/pkix-pkipath":{"source":"iana","extensions":["pkipath"]},"application/pkixcmp":{"source":"iana","extensions":["pki"]},"application/pls+xml":{"source":"iana","compressible":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"extensions":["provx"]},"application/prs.alvestrand.titrax-sheet":{"source":"iana"},"application/prs.cww":{"source":"iana","extensions":["cww"]},"application/prs.cyn":{"source":"iana","charset":"7-BIT"},"application/prs.hpub+zip":{"source":"iana","compressible":false},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"iana"},"application/reputon+json":{"source":"iana","compressible":true},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"extensions":["rusd"]},"application/rpki-ghostbusters":{"source":"iana","extensions":["gbr"]},"application/rpki-manifest":{"source":"iana","extensions":["mft"]},"application/rpki-publication":{"source":"iana"},"application/rpki-roa":{"source":"iana","extensions":["roa"]},"application/rpki-updown":{"source":"iana"},"application/rsd+xml":{"source":"apache","compressible":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"application/scvp-cv-request":{"source":"iana","extensions":["scq"]},"application/scvp-cv-response":{"source":"iana","extensions":["scs"]},"application/scvp-vp-request":{"source":"iana","extensions":["spq"]},"application/scvp-vp-response":{"source":"iana","extensions":["spp"]},"application/sdp":{"source":"iana","extensions":["sdp"]},"application/secevent+jwt":{"source":"iana"},"application/senml+cbor":{"source":"iana"},"application/senml+json":{"source":"iana","compressible":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"application/sep-exi":{"source":"iana"},"application/session-info":{"source":"iana"},"application/set-payment":{"source":"iana"},"application/set-payment-initiation":{"source":"iana","extensions":["setpay"]},"application/set-registration":{"source":"iana"},"application/set-registration-initiation":{"source":"iana","extensions":["setreg"]},"application/sgml":{"source":"iana"},"application/sgml-open-catalog":{"source":"iana"},"application/shf+xml":{"source":"iana","compressible":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"application/simple-message-summary":{"source":"iana"},"application/simplesymbolcontainer":{"source":"iana"},"application/sipc":{"source":"iana"},"application/slate":{"source":"iana"},"application/smil":{"source":"iana"},"application/smil+xml":{"source":"iana","compressible":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana"},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/stix+json":{"source":"iana","compressible":true},"application/swid+xml":{"source":"iana","compressible":true,"extensions":["swidtag"]},"application/tamp-apex-update":{"source":"iana"},"application/tamp-apex-update-confirm":{"source":"iana"},"application/tamp-community-update":{"source":"iana"},"application/tamp-community-update-confirm":{"source":"iana"},"application/tamp-error":{"source":"iana"},"application/tamp-sequence-adjust":{"source":"iana"},"application/tamp-sequence-adjust-confirm":{"source":"iana"},"application/tamp-status-query":{"source":"iana"},"application/tamp-status-response":{"source":"iana"},"application/tamp-update":{"source":"iana"},"application/tamp-update-confirm":{"source":"iana"},"application/tar":{"compressible":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"extensions":["tfi"]},"application/timestamp-query":{"source":"iana"},"application/timestamp-reply":{"source":"iana"},"application/timestamped-data":{"source":"iana","extensions":["tsd"]},"application/tlsrpt+gzip":{"source":"iana"},"application/tlsrpt+json":{"source":"iana","compressible":true},"application/tnauthlist":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-v2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gnas":{"source":"iana"},"application/vnd.3gpp.access-transfer-events+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gtpc":{"source":"iana"},"application/vnd.3gpp.interworking-data":{"source":"iana"},"application/vnd.3gpp.lpp":{"source":"iana"},"application/vnd.3gpp.mc-signalling-ear":{"source":"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ngap":{"source":"iana"},"application/vnd.3gpp.pfcp":{"source":"iana"},"application/vnd.3gpp.pic-bw-large":{"source":"iana","extensions":["plb"]},"application/vnd.3gpp.pic-bw-small":{"source":"iana","extensions":["psb"]},"application/vnd.3gpp.pic-bw-var":{"source":"iana","extensions":["pvb"]},"application/vnd.3gpp.s1ap":{"source":"iana"},"application/vnd.3gpp.sms":{"source":"iana"},"application/vnd.3gpp.sms+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.sms":{"source":"iana"},"application/vnd.3gpp2.tcap":{"source":"iana","extensions":["tcap"]},"application/vnd.3lightssoftware.imagescal":{"source":"iana"},"application/vnd.3m.post-it-notes":{"source":"iana","extensions":["pwn"]},"application/vnd.accpac.simply.aso":{"source":"iana","extensions":["aso"]},"application/vnd.accpac.simply.imp":{"source":"iana","extensions":["imp"]},"application/vnd.acucobol":{"source":"iana","extensions":["acu"]},"application/vnd.acucorp":{"source":"iana","extensions":["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{"source":"apache","compressible":false,"extensions":["air"]},"application/vnd.adobe.flash.movie":{"source":"iana"},"application/vnd.adobe.formscentral.fcdt":{"source":"iana","extensions":["fcdt"]},"application/vnd.adobe.fxp":{"source":"iana","extensions":["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{"source":"iana"},"application/vnd.adobe.xdp+xml":{"source":"iana","compressible":true,"extensions":["xdp"]},"application/vnd.adobe.xfdf":{"source":"iana","extensions":["xfdf"]},"application/vnd.aether.imp":{"source":"iana"},"application/vnd.afpc.afplinedata":{"source":"iana"},"application/vnd.afpc.afplinedata-pagedef":{"source":"iana"},"application/vnd.afpc.cmoca-cmresource":{"source":"iana"},"application/vnd.afpc.foca-charset":{"source":"iana"},"application/vnd.afpc.foca-codedfont":{"source":"iana"},"application/vnd.afpc.foca-codepage":{"source":"iana"},"application/vnd.afpc.modca":{"source":"iana"},"application/vnd.afpc.modca-cmtable":{"source":"iana"},"application/vnd.afpc.modca-formdef":{"source":"iana"},"application/vnd.afpc.modca-mediummap":{"source":"iana"},"application/vnd.afpc.modca-objectcontainer":{"source":"iana"},"application/vnd.afpc.modca-overlay":{"source":"iana"},"application/vnd.afpc.modca-pagesegment":{"source":"iana"},"application/vnd.age":{"source":"iana","extensions":["age"]},"application/vnd.ah-barcode":{"source":"iana"},"application/vnd.ahead.space":{"source":"iana","extensions":["ahead"]},"application/vnd.airzip.filesecure.azf":{"source":"iana","extensions":["azf"]},"application/vnd.airzip.filesecure.azs":{"source":"iana","extensions":["azs"]},"application/vnd.amadeus+json":{"source":"iana","compressible":true},"application/vnd.amazon.ebook":{"source":"apache","extensions":["azw"]},"application/vnd.amazon.mobi8-ebook":{"source":"iana"},"application/vnd.americandynamics.acc":{"source":"iana","extensions":["acc"]},"application/vnd.amiga.ami":{"source":"iana","extensions":["ami"]},"application/vnd.amundsen.maze+xml":{"source":"iana","compressible":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"extensions":["apk"]},"application/vnd.anki":{"source":"iana"},"application/vnd.anser-web-certificate-issue-initiation":{"source":"iana","extensions":["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{"source":"apache","extensions":["fti"]},"application/vnd.antix.game-component":{"source":"iana","extensions":["atx"]},"application/vnd.apache.arrow.file":{"source":"iana"},"application/vnd.apache.arrow.stream":{"source":"iana"},"application/vnd.apache.thrift.binary":{"source":"iana"},"application/vnd.apache.thrift.compact":{"source":"iana"},"application/vnd.apache.thrift.json":{"source":"iana"},"application/vnd.api+json":{"source":"iana","compressible":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"extensions":["mpkg"]},"application/vnd.apple.keynote":{"source":"iana","extensions":["key"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.numbers":{"source":"iana","extensions":["numbers"]},"application/vnd.apple.pages":{"source":"iana","extensions":["pages"]},"application/vnd.apple.pkpass":{"compressible":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"iana"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"application/vnd.artsquare":{"source":"iana"},"application/vnd.astraea-software.iota":{"source":"iana","extensions":["iota"]},"application/vnd.audiograph":{"source":"iana","extensions":["aep"]},"application/vnd.autopackage":{"source":"iana"},"application/vnd.avalon+json":{"source":"iana","compressible":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"extensions":["bmml"]},"application/vnd.balsamiq.bmpr":{"source":"iana"},"application/vnd.banana-accounting":{"source":"iana"},"application/vnd.bbf.usp.error":{"source":"iana"},"application/vnd.bbf.usp.msg":{"source":"iana"},"application/vnd.bbf.usp.msg+json":{"source":"iana","compressible":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"application/vnd.blink-idb-value-wrapper":{"source":"iana"},"application/vnd.blueice.multipass":{"source":"iana","extensions":["mpm"]},"application/vnd.bluetooth.ep.oob":{"source":"iana"},"application/vnd.bluetooth.le.oob":{"source":"iana"},"application/vnd.bmi":{"source":"iana","extensions":["bmi"]},"application/vnd.bpf":{"source":"iana"},"application/vnd.bpf3":{"source":"iana"},"application/vnd.businessobjects":{"source":"iana","extensions":["rep"]},"application/vnd.byu.uapi+json":{"source":"iana","compressible":true},"application/vnd.cab-jscript":{"source":"iana"},"application/vnd.canon-cpdl":{"source":"iana"},"application/vnd.canon-lips":{"source":"iana"},"application/vnd.capasystems-pg+json":{"source":"iana","compressible":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"extensions":["cdxml"]},"application/vnd.chess-pgn":{"source":"iana"},"application/vnd.chipnuts.karaoke-mmd":{"source":"iana","extensions":["mmd"]},"application/vnd.ciedi":{"source":"iana"},"application/vnd.cinderella":{"source":"iana","extensions":["cdy"]},"application/vnd.cirpack.isdn-ext":{"source":"iana"},"application/vnd.citationstyles.style+xml":{"source":"iana","compressible":true,"extensions":["csl"]},"application/vnd.claymore":{"source":"iana","extensions":["cla"]},"application/vnd.cloanto.rp9":{"source":"iana","extensions":["rp9"]},"application/vnd.clonk.c4group":{"source":"iana","extensions":["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{"source":"iana","extensions":["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{"source":"iana","extensions":["c11amz"]},"application/vnd.coffeescript":{"source":"iana"},"application/vnd.collabio.xodocuments.document":{"source":"iana"},"application/vnd.collabio.xodocuments.document-template":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation-template":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{"source":"iana"},"application/vnd.collection+json":{"source":"iana","compressible":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"application/vnd.comicbook-rar":{"source":"iana"},"application/vnd.commerce-battelle":{"source":"iana"},"application/vnd.commonspace":{"source":"iana","extensions":["csp"]},"application/vnd.contact.cmsg":{"source":"iana","extensions":["cdbcmsg"]},"application/vnd.coreos.ignition+json":{"source":"iana","compressible":true},"application/vnd.cosmocaller":{"source":"iana","extensions":["cmc"]},"application/vnd.crick.clicker":{"source":"iana","extensions":["clkx"]},"application/vnd.crick.clicker.keyboard":{"source":"iana","extensions":["clkk"]},"application/vnd.crick.clicker.palette":{"source":"iana","extensions":["clkp"]},"application/vnd.crick.clicker.template":{"source":"iana","extensions":["clkt"]},"application/vnd.crick.clicker.wordbank":{"source":"iana","extensions":["clkw"]},"application/vnd.criticaltools.wbs+xml":{"source":"iana","compressible":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"application/vnd.crypto-shade-file":{"source":"iana"},"application/vnd.cryptomator.encrypted":{"source":"iana"},"application/vnd.cryptomator.vault":{"source":"iana"},"application/vnd.ctc-posml":{"source":"iana","extensions":["pml"]},"application/vnd.ctct.ws+xml":{"source":"iana","compressible":true},"application/vnd.cups-pdf":{"source":"iana"},"application/vnd.cups-postscript":{"source":"iana"},"application/vnd.cups-ppd":{"source":"iana","extensions":["ppd"]},"application/vnd.cups-raster":{"source":"iana"},"application/vnd.cups-raw":{"source":"iana"},"application/vnd.curl":{"source":"iana"},"application/vnd.curl.car":{"source":"apache","extensions":["car"]},"application/vnd.curl.pcurl":{"source":"apache","extensions":["pcurl"]},"application/vnd.cyan.dean.root+xml":{"source":"iana","compressible":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"application/vnd.dbf":{"source":"iana","extensions":["dbf"]},"application/vnd.debian.binary-package":{"source":"iana"},"application/vnd.dece.data":{"source":"iana","extensions":["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{"source":"iana","compressible":true,"extensions":["uvt","uvvt"]},"application/vnd.dece.unspecified":{"source":"iana","extensions":["uvx","uvvx"]},"application/vnd.dece.zip":{"source":"iana","extensions":["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{"source":"iana","extensions":["fe_launch"]},"application/vnd.desmume.movie":{"source":"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{"source":"iana"},"application/vnd.dm.delegation+xml":{"source":"iana","compressible":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"application/vnd.dolby.mlp":{"source":"apache","extensions":["mlp"]},"application/vnd.dolby.mobile.1":{"source":"iana"},"application/vnd.dolby.mobile.2":{"source":"iana"},"application/vnd.doremir.scorecloud-binary-document":{"source":"iana"},"application/vnd.dpgraph":{"source":"iana","extensions":["dpg"]},"application/vnd.dreamfactory":{"source":"iana","extensions":["dfac"]},"application/vnd.drive+json":{"source":"iana","compressible":true},"application/vnd.ds-keypoint":{"source":"apache","extensions":["kpxx"]},"application/vnd.dtg.local":{"source":"iana"},"application/vnd.dtg.local.flash":{"source":"iana"},"application/vnd.dtg.local.html":{"source":"iana"},"application/vnd.dvb.ait":{"source":"iana","extensions":["ait"]},"application/vnd.dvb.dvbisl+xml":{"source":"iana","compressible":true},"application/vnd.dvb.dvbj":{"source":"iana"},"application/vnd.dvb.esgcontainer":{"source":"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess2":{"source":"iana"},"application/vnd.dvb.ipdcesgpdd":{"source":"iana"},"application/vnd.dvb.ipdcroaming":{"source":"iana"},"application/vnd.dvb.iptv.alfec-base":{"source":"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{"source":"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"application/vnd.dvb.pfr":{"source":"iana"},"application/vnd.dvb.service":{"source":"iana","extensions":["svc"]},"application/vnd.dxr":{"source":"iana"},"application/vnd.dynageo":{"source":"iana","extensions":["geo"]},"application/vnd.dzr":{"source":"iana"},"application/vnd.easykaraoke.cdgdownload":{"source":"iana"},"application/vnd.ecdis-update":{"source":"iana"},"application/vnd.ecip.rlp":{"source":"iana"},"application/vnd.eclipse.ditto+json":{"source":"iana","compressible":true},"application/vnd.ecowin.chart":{"source":"iana","extensions":["mag"]},"application/vnd.ecowin.filerequest":{"source":"iana"},"application/vnd.ecowin.fileupdate":{"source":"iana"},"application/vnd.ecowin.series":{"source":"iana"},"application/vnd.ecowin.seriesrequest":{"source":"iana"},"application/vnd.ecowin.seriesupdate":{"source":"iana"},"application/vnd.efi.img":{"source":"iana"},"application/vnd.efi.iso":{"source":"iana"},"application/vnd.emclient.accessrequest+xml":{"source":"iana","compressible":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"application/vnd.epson.esf":{"source":"iana","extensions":["esf"]},"application/vnd.epson.msf":{"source":"iana","extensions":["msf"]},"application/vnd.epson.quickanime":{"source":"iana","extensions":["qam"]},"application/vnd.epson.salt":{"source":"iana","extensions":["slt"]},"application/vnd.epson.ssf":{"source":"iana","extensions":["ssf"]},"application/vnd.ericsson.quickcall":{"source":"iana"},"application/vnd.espass-espass+zip":{"source":"iana","compressible":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"application/vnd.eudora.data":{"source":"iana"},"application/vnd.evolv.ecig.profile":{"source":"iana"},"application/vnd.evolv.ecig.settings":{"source":"iana"},"application/vnd.evolv.ecig.theme":{"source":"iana"},"application/vnd.exstream-empower+zip":{"source":"iana","compressible":false},"application/vnd.exstream-package":{"source":"iana"},"application/vnd.ezpix-album":{"source":"iana","extensions":["ez2"]},"application/vnd.ezpix-package":{"source":"iana","extensions":["ez3"]},"application/vnd.f-secure.mobile":{"source":"iana"},"application/vnd.familysearch.gedcom+zip":{"source":"iana","compressible":false},"application/vnd.fastcopy-disk-image":{"source":"iana"},"application/vnd.fdf":{"source":"iana","extensions":["fdf"]},"application/vnd.fdsn.mseed":{"source":"iana","extensions":["mseed"]},"application/vnd.fdsn.seed":{"source":"iana","extensions":["seed","dataless"]},"application/vnd.ffsns":{"source":"iana"},"application/vnd.ficlab.flb+zip":{"source":"iana","compressible":false},"application/vnd.filmit.zfc":{"source":"iana"},"application/vnd.fints":{"source":"iana"},"application/vnd.firemonkeys.cloudcell":{"source":"iana"},"application/vnd.flographit":{"source":"iana","extensions":["gph"]},"application/vnd.fluxtime.clip":{"source":"iana","extensions":["ftc"]},"application/vnd.font-fontforge-sfd":{"source":"iana"},"application/vnd.framemaker":{"source":"iana","extensions":["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{"source":"iana","extensions":["fnc"]},"application/vnd.frogans.ltf":{"source":"iana","extensions":["ltf"]},"application/vnd.fsc.weblaunch":{"source":"iana","extensions":["fsc"]},"application/vnd.fujifilm.fb.docuworks":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.container":{"source":"iana"},"application/vnd.fujifilm.fb.jfi+xml":{"source":"iana","compressible":true},"application/vnd.fujitsu.oasys":{"source":"iana","extensions":["oas"]},"application/vnd.fujitsu.oasys2":{"source":"iana","extensions":["oa2"]},"application/vnd.fujitsu.oasys3":{"source":"iana","extensions":["oa3"]},"application/vnd.fujitsu.oasysgp":{"source":"iana","extensions":["fg5"]},"application/vnd.fujitsu.oasysprs":{"source":"iana","extensions":["bh2"]},"application/vnd.fujixerox.art-ex":{"source":"iana"},"application/vnd.fujixerox.art4":{"source":"iana"},"application/vnd.fujixerox.ddd":{"source":"iana","extensions":["ddd"]},"application/vnd.fujixerox.docuworks":{"source":"iana","extensions":["xdw"]},"application/vnd.fujixerox.docuworks.binder":{"source":"iana","extensions":["xbd"]},"application/vnd.fujixerox.docuworks.container":{"source":"iana"},"application/vnd.fujixerox.hbpl":{"source":"iana"},"application/vnd.fut-misnet":{"source":"iana"},"application/vnd.futoin+cbor":{"source":"iana"},"application/vnd.futoin+json":{"source":"iana","compressible":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.geo+json":{"source":"iana","compressible":true},"application/vnd.geocube+xml":{"source":"iana","compressible":true},"application/vnd.geogebra.file":{"source":"iana","extensions":["ggb"]},"application/vnd.geogebra.slides":{"source":"iana"},"application/vnd.geogebra.tool":{"source":"iana","extensions":["ggt"]},"application/vnd.geometry-explorer":{"source":"iana","extensions":["gex","gre"]},"application/vnd.geonext":{"source":"iana","extensions":["gxt"]},"application/vnd.geoplan":{"source":"iana","extensions":["g2w"]},"application/vnd.geospace":{"source":"iana","extensions":["g3w"]},"application/vnd.gerber":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt-response":{"source":"iana"},"application/vnd.gmx":{"source":"iana","extensions":["gmx"]},"application/vnd.google-apps.document":{"compressible":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"iana","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true},"application/vnd.grafeq":{"source":"iana","extensions":["gqf","gqs"]},"application/vnd.gridmp":{"source":"iana"},"application/vnd.groove-account":{"source":"iana","extensions":["gac"]},"application/vnd.groove-help":{"source":"iana","extensions":["ghf"]},"application/vnd.groove-identity-message":{"source":"iana","extensions":["gim"]},"application/vnd.groove-injector":{"source":"iana","extensions":["grv"]},"application/vnd.groove-tool-message":{"source":"iana","extensions":["gtm"]},"application/vnd.groove-tool-template":{"source":"iana","extensions":["tpl"]},"application/vnd.groove-vcard":{"source":"iana","extensions":["vcg"]},"application/vnd.hal+json":{"source":"iana","compressible":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hl7cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hp-hpgl":{"source":"iana","extensions":["hpgl"]},"application/vnd.hp-hpid":{"source":"iana","extensions":["hpid"]},"application/vnd.hp-hps":{"source":"iana","extensions":["hps"]},"application/vnd.hp-jlyt":{"source":"iana","extensions":["jlt"]},"application/vnd.hp-pcl":{"source":"iana","extensions":["pcl"]},"application/vnd.hp-pclxl":{"source":"iana","extensions":["pclxl"]},"application/vnd.httphone":{"source":"iana"},"application/vnd.hydrostatix.sof-data":{"source":"iana","extensions":["sfd-hdstx"]},"application/vnd.hyper+json":{"source":"iana","compressible":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"application/vnd.hzn-3d-crossword":{"source":"iana"},"application/vnd.ibm.afplinedata":{"source":"iana"},"application/vnd.ibm.electronic-media":{"source":"iana"},"application/vnd.ibm.minipay":{"source":"iana","extensions":["mpy"]},"application/vnd.ibm.modcap":{"source":"iana","extensions":["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{"source":"iana","extensions":["irm"]},"application/vnd.ibm.secure-container":{"source":"iana","extensions":["sc"]},"application/vnd.iccprofile":{"source":"iana","extensions":["icc","icm"]},"application/vnd.ieee.1905":{"source":"iana"},"application/vnd.igloader":{"source":"iana","extensions":["igl"]},"application/vnd.imagemeter.folder+zip":{"source":"iana","compressible":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"application/vnd.immervision-ivp":{"source":"iana","extensions":["ivp"]},"application/vnd.immervision-ivu":{"source":"iana","extensions":["ivu"]},"application/vnd.ims.imsccv1p1":{"source":"iana"},"application/vnd.ims.imsccv1p2":{"source":"iana"},"application/vnd.ims.imsccv1p3":{"source":"iana"},"application/vnd.ims.lis.v2.result+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"iana"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"application/vnd.innopath.wamp.notification":{"source":"iana"},"application/vnd.insors.igm":{"source":"iana","extensions":["igm"]},"application/vnd.intercon.formnet":{"source":"iana","extensions":["xpw","xpx"]},"application/vnd.intergeo":{"source":"iana","extensions":["i2g"]},"application/vnd.intertrust.digibox":{"source":"iana"},"application/vnd.intertrust.nncp":{"source":"iana"},"application/vnd.intu.qbo":{"source":"iana","extensions":["qbo"]},"application/vnd.intu.qfx":{"source":"iana","extensions":["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"extensions":["irp"]},"application/vnd.is-xpr":{"source":"iana","extensions":["xpr"]},"application/vnd.isac.fcs":{"source":"iana","extensions":["fcs"]},"application/vnd.iso11783-10+zip":{"source":"iana","compressible":false},"application/vnd.jam":{"source":"iana","extensions":["jam"]},"application/vnd.japannet-directory-service":{"source":"iana"},"application/vnd.japannet-jpnstore-wakeup":{"source":"iana"},"application/vnd.japannet-payment-wakeup":{"source":"iana"},"application/vnd.japannet-registration":{"source":"iana"},"application/vnd.japannet-registration-wakeup":{"source":"iana"},"application/vnd.japannet-setstore-wakeup":{"source":"iana"},"application/vnd.japannet-verification":{"source":"iana"},"application/vnd.japannet-verification-wakeup":{"source":"iana"},"application/vnd.jcp.javame.midlet-rms":{"source":"iana","extensions":["rms"]},"application/vnd.jisp":{"source":"iana","extensions":["jisp"]},"application/vnd.joost.joda-archive":{"source":"iana","extensions":["joda"]},"application/vnd.jsk.isdn-ngn":{"source":"iana"},"application/vnd.kahootz":{"source":"iana","extensions":["ktz","ktr"]},"application/vnd.kde.karbon":{"source":"iana","extensions":["karbon"]},"application/vnd.kde.kchart":{"source":"iana","extensions":["chrt"]},"application/vnd.kde.kformula":{"source":"iana","extensions":["kfo"]},"application/vnd.kde.kivio":{"source":"iana","extensions":["flw"]},"application/vnd.kde.kontour":{"source":"iana","extensions":["kon"]},"application/vnd.kde.kpresenter":{"source":"iana","extensions":["kpr","kpt"]},"application/vnd.kde.kspread":{"source":"iana","extensions":["ksp"]},"application/vnd.kde.kword":{"source":"iana","extensions":["kwd","kwt"]},"application/vnd.kenameaapp":{"source":"iana","extensions":["htke"]},"application/vnd.kidspiration":{"source":"iana","extensions":["kia"]},"application/vnd.kinar":{"source":"iana","extensions":["kne","knp"]},"application/vnd.koan":{"source":"iana","extensions":["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{"source":"iana","extensions":["sse"]},"application/vnd.las":{"source":"iana"},"application/vnd.las.las+json":{"source":"iana","compressible":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"application/vnd.loom":{"source":"iana"},"application/vnd.lotus-1-2-3":{"source":"iana","extensions":["123"]},"application/vnd.lotus-approach":{"source":"iana","extensions":["apr"]},"application/vnd.lotus-freelance":{"source":"iana","extensions":["pre"]},"application/vnd.lotus-notes":{"source":"iana","extensions":["nsf"]},"application/vnd.lotus-organizer":{"source":"iana","extensions":["org"]},"application/vnd.lotus-screencam":{"source":"iana","extensions":["scm"]},"application/vnd.lotus-wordpro":{"source":"iana","extensions":["lwp"]},"application/vnd.macports.portpkg":{"source":"iana","extensions":["portpkg"]},"application/vnd.mapbox-vector-tile":{"source":"iana","extensions":["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"application/vnd.maxmind.maxmind-db":{"source":"iana"},"application/vnd.mcd":{"source":"iana","extensions":["mcd"]},"application/vnd.medcalcdata":{"source":"iana","extensions":["mc1"]},"application/vnd.mediastation.cdkey":{"source":"iana","extensions":["cdkey"]},"application/vnd.meridian-slingshot":{"source":"iana"},"application/vnd.mfer":{"source":"iana","extensions":["mwf"]},"application/vnd.mfmp":{"source":"iana","extensions":["mfm"]},"application/vnd.micro+json":{"source":"iana","compressible":true},"application/vnd.micrografx.flo":{"source":"iana","extensions":["flo"]},"application/vnd.micrografx.igx":{"source":"iana","extensions":["igx"]},"application/vnd.microsoft.portable-executable":{"source":"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{"source":"iana"},"application/vnd.miele+json":{"source":"iana","compressible":true},"application/vnd.mif":{"source":"iana","extensions":["mif"]},"application/vnd.minisoft-hp3000-save":{"source":"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{"source":"iana"},"application/vnd.mobius.daf":{"source":"iana","extensions":["daf"]},"application/vnd.mobius.dis":{"source":"iana","extensions":["dis"]},"application/vnd.mobius.mbk":{"source":"iana","extensions":["mbk"]},"application/vnd.mobius.mqy":{"source":"iana","extensions":["mqy"]},"application/vnd.mobius.msl":{"source":"iana","extensions":["msl"]},"application/vnd.mobius.plc":{"source":"iana","extensions":["plc"]},"application/vnd.mobius.txf":{"source":"iana","extensions":["txf"]},"application/vnd.mophun.application":{"source":"iana","extensions":["mpn"]},"application/vnd.mophun.certificate":{"source":"iana","extensions":["mpc"]},"application/vnd.motorola.flexsuite":{"source":"iana"},"application/vnd.motorola.flexsuite.adsi":{"source":"iana"},"application/vnd.motorola.flexsuite.fis":{"source":"iana"},"application/vnd.motorola.flexsuite.gotap":{"source":"iana"},"application/vnd.motorola.flexsuite.kmr":{"source":"iana"},"application/vnd.motorola.flexsuite.ttc":{"source":"iana"},"application/vnd.motorola.flexsuite.wem":{"source":"iana"},"application/vnd.motorola.iprm":{"source":"iana"},"application/vnd.mozilla.xul+xml":{"source":"iana","compressible":true,"extensions":["xul"]},"application/vnd.ms-3mfdocument":{"source":"iana"},"application/vnd.ms-artgalry":{"source":"iana","extensions":["cil"]},"application/vnd.ms-asf":{"source":"iana"},"application/vnd.ms-cab-compressed":{"source":"iana","extensions":["cab"]},"application/vnd.ms-color.iccprofile":{"source":"apache"},"application/vnd.ms-excel":{"source":"iana","compressible":false,"extensions":["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{"source":"iana","extensions":["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{"source":"iana","extensions":["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{"source":"iana","extensions":["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{"source":"iana","extensions":["xltm"]},"application/vnd.ms-fontobject":{"source":"iana","compressible":true,"extensions":["eot"]},"application/vnd.ms-htmlhelp":{"source":"iana","extensions":["chm"]},"application/vnd.ms-ims":{"source":"iana","extensions":["ims"]},"application/vnd.ms-lrm":{"source":"iana","extensions":["lrm"]},"application/vnd.ms-office.activex+xml":{"source":"iana","compressible":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"extensions":["msg"]},"application/vnd.ms-package.obfuscated-opentype":{"source":"apache"},"application/vnd.ms-pki.seccat":{"source":"apache","extensions":["cat"]},"application/vnd.ms-pki.stl":{"source":"apache","extensions":["stl"]},"application/vnd.ms-playready.initiator+xml":{"source":"iana","compressible":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"extensions":["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{"source":"iana","extensions":["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{"source":"iana","extensions":["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{"source":"iana","extensions":["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{"source":"iana","extensions":["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{"source":"iana","extensions":["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{"source":"iana","compressible":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"application/vnd.ms-project":{"source":"iana","extensions":["mpp","mpt"]},"application/vnd.ms-tnef":{"source":"iana"},"application/vnd.ms-windows.devicepairing":{"source":"iana"},"application/vnd.ms-windows.nwprinting.oob":{"source":"iana"},"application/vnd.ms-windows.printerpairing":{"source":"iana"},"application/vnd.ms-windows.wsd.oob":{"source":"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.lic-resp":{"source":"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.meter-resp":{"source":"iana"},"application/vnd.ms-word.document.macroenabled.12":{"source":"iana","extensions":["docm"]},"application/vnd.ms-word.template.macroenabled.12":{"source":"iana","extensions":["dotm"]},"application/vnd.ms-works":{"source":"iana","extensions":["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{"source":"iana","extensions":["wpl"]},"application/vnd.ms-xpsdocument":{"source":"iana","compressible":false,"extensions":["xps"]},"application/vnd.msa-disk-image":{"source":"iana"},"application/vnd.mseq":{"source":"iana","extensions":["mseq"]},"application/vnd.msign":{"source":"iana"},"application/vnd.multiad.creator":{"source":"iana"},"application/vnd.multiad.creator.cif":{"source":"iana"},"application/vnd.music-niff":{"source":"iana"},"application/vnd.musician":{"source":"iana","extensions":["mus"]},"application/vnd.muvee.style":{"source":"iana","extensions":["msty"]},"application/vnd.mynfc":{"source":"iana","extensions":["taglet"]},"application/vnd.nacamar.ybrid+json":{"source":"iana","compressible":true},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"application/vnd.nebumind.line":{"source":"iana"},"application/vnd.nervana":{"source":"iana"},"application/vnd.netfpx":{"source":"iana"},"application/vnd.neurolanguage.nlu":{"source":"iana","extensions":["nlu"]},"application/vnd.nimn":{"source":"iana"},"application/vnd.nintendo.nitro.rom":{"source":"iana"},"application/vnd.nintendo.snes.rom":{"source":"iana"},"application/vnd.nitf":{"source":"iana","extensions":["ntf","nitf"]},"application/vnd.noblenet-directory":{"source":"iana","extensions":["nnd"]},"application/vnd.noblenet-sealer":{"source":"iana","extensions":["nns"]},"application/vnd.noblenet-web":{"source":"iana","extensions":["nnw"]},"application/vnd.nokia.catalogs":{"source":"iana"},"application/vnd.nokia.conml+wbxml":{"source":"iana"},"application/vnd.nokia.conml+xml":{"source":"iana","compressible":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"extensions":["ac"]},"application/vnd.nokia.n-gage.data":{"source":"iana","extensions":["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{"source":"iana","extensions":["n-gage"]},"application/vnd.nokia.ncd":{"source":"iana"},"application/vnd.nokia.pcd+wbxml":{"source":"iana"},"application/vnd.nokia.pcd+xml":{"source":"iana","compressible":true},"application/vnd.nokia.radio-preset":{"source":"iana","extensions":["rpst"]},"application/vnd.nokia.radio-presets":{"source":"iana","extensions":["rpss"]},"application/vnd.novadigm.edm":{"source":"iana","extensions":["edm"]},"application/vnd.novadigm.edx":{"source":"iana","extensions":["edx"]},"application/vnd.novadigm.ext":{"source":"iana","extensions":["ext"]},"application/vnd.ntt-local.content-share":{"source":"iana"},"application/vnd.ntt-local.file-transfer":{"source":"iana"},"application/vnd.ntt-local.ogw_remote-access":{"source":"iana"},"application/vnd.ntt-local.sip-ta_remote":{"source":"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{"source":"iana"},"application/vnd.oasis.opendocument.chart":{"source":"iana","extensions":["odc"]},"application/vnd.oasis.opendocument.chart-template":{"source":"iana","extensions":["otc"]},"application/vnd.oasis.opendocument.database":{"source":"iana","extensions":["odb"]},"application/vnd.oasis.opendocument.formula":{"source":"iana","extensions":["odf"]},"application/vnd.oasis.opendocument.formula-template":{"source":"iana","extensions":["odft"]},"application/vnd.oasis.opendocument.graphics":{"source":"iana","compressible":false,"extensions":["odg"]},"application/vnd.oasis.opendocument.graphics-template":{"source":"iana","extensions":["otg"]},"application/vnd.oasis.opendocument.image":{"source":"iana","extensions":["odi"]},"application/vnd.oasis.opendocument.image-template":{"source":"iana","extensions":["oti"]},"application/vnd.oasis.opendocument.presentation":{"source":"iana","compressible":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"extensions":["odt"]},"application/vnd.oasis.opendocument.text-master":{"source":"iana","extensions":["odm"]},"application/vnd.oasis.opendocument.text-template":{"source":"iana","extensions":["ott"]},"application/vnd.oasis.opendocument.text-web":{"source":"iana","extensions":["oth"]},"application/vnd.obn":{"source":"iana"},"application/vnd.ocf+cbor":{"source":"iana"},"application/vnd.oci.image.manifest.v1+json":{"source":"iana","compressible":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"application/vnd.olpc-sugar":{"source":"iana","extensions":["xo"]},"application/vnd.oma-scws-config":{"source":"iana"},"application/vnd.oma-scws-http-request":{"source":"iana"},"application/vnd.oma-scws-http-response":{"source":"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sgdu":{"source":"iana"},"application/vnd.oma.bcast.simple-symbol-container":{"source":"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omaloc-supl-init":{"source":"iana"},"application/vnd.onepager":{"source":"iana"},"application/vnd.onepagertamp":{"source":"iana"},"application/vnd.onepagertamx":{"source":"iana"},"application/vnd.onepagertat":{"source":"iana"},"application/vnd.onepagertatp":{"source":"iana"},"application/vnd.onepagertatx":{"source":"iana"},"application/vnd.openblox.game+xml":{"source":"iana","compressible":true,"extensions":["obgx"]},"application/vnd.openblox.game-binary":{"source":"iana"},"application/vnd.openeye.oeb":{"source":"iana"},"application/vnd.openofficeorg.extension":{"source":"apache","extensions":["oxt"]},"application/vnd.openstreetmap.data+xml":{"source":"iana","compressible":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"application/vnd.orange.indata":{"source":"iana"},"application/vnd.osa.netdeploy":{"source":"iana"},"application/vnd.osgeo.mapguide.package":{"source":"iana","extensions":["mgp"]},"application/vnd.osgi.bundle":{"source":"iana"},"application/vnd.osgi.dp":{"source":"iana","extensions":["dp"]},"application/vnd.osgi.subsystem":{"source":"iana","extensions":["esa"]},"application/vnd.otps.ct-kip+xml":{"source":"iana","compressible":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"application/vnd.palm":{"source":"iana","extensions":["pdb","pqa","oprc"]},"application/vnd.panoply":{"source":"iana"},"application/vnd.paos.xml":{"source":"iana"},"application/vnd.patentdive":{"source":"iana"},"application/vnd.patientecommsdoc":{"source":"iana"},"application/vnd.pawaafile":{"source":"iana","extensions":["paw"]},"application/vnd.pcos":{"source":"iana"},"application/vnd.pg.format":{"source":"iana","extensions":["str"]},"application/vnd.pg.osasli":{"source":"iana","extensions":["ei6"]},"application/vnd.piaccess.application-licence":{"source":"iana"},"application/vnd.picsel":{"source":"iana","extensions":["efif"]},"application/vnd.pmi.widget":{"source":"iana","extensions":["wg"]},"application/vnd.poc.group-advertisement+xml":{"source":"iana","compressible":true},"application/vnd.pocketlearn":{"source":"iana","extensions":["plf"]},"application/vnd.powerbuilder6":{"source":"iana","extensions":["pbd"]},"application/vnd.powerbuilder6-s":{"source":"iana"},"application/vnd.powerbuilder7":{"source":"iana"},"application/vnd.powerbuilder7-s":{"source":"iana"},"application/vnd.powerbuilder75":{"source":"iana"},"application/vnd.powerbuilder75-s":{"source":"iana"},"application/vnd.preminet":{"source":"iana"},"application/vnd.previewsystems.box":{"source":"iana","extensions":["box"]},"application/vnd.proteus.magazine":{"source":"iana","extensions":["mgz"]},"application/vnd.psfs":{"source":"iana"},"application/vnd.publishare-delta-tree":{"source":"iana","extensions":["qps"]},"application/vnd.pvi.ptid1":{"source":"iana","extensions":["ptid"]},"application/vnd.pwg-multiplexed":{"source":"iana"},"application/vnd.pwg-xhtml-print+xml":{"source":"iana","compressible":true},"application/vnd.qualcomm.brew-app-res":{"source":"iana"},"application/vnd.quarantainenet":{"source":"iana"},"application/vnd.quark.quarkxpress":{"source":"iana","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{"source":"iana"},"application/vnd.radisys.moml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"application/vnd.rainstor.data":{"source":"iana"},"application/vnd.rapid":{"source":"iana"},"application/vnd.rar":{"source":"iana","extensions":["rar"]},"application/vnd.realvnc.bed":{"source":"iana","extensions":["bed"]},"application/vnd.recordare.musicxml":{"source":"iana","extensions":["mxl"]},"application/vnd.recordare.musicxml+xml":{"source":"iana","compressible":true,"extensions":["musicxml"]},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"application/vnd.rig.cryptonote":{"source":"iana","extensions":["cryptonote"]},"application/vnd.rim.cod":{"source":"apache","extensions":["cod"]},"application/vnd.rn-realmedia":{"source":"apache","extensions":["rm"]},"application/vnd.rn-realmedia-vbr":{"source":"apache","extensions":["rmvb"]},"application/vnd.route66.link66+xml":{"source":"iana","compressible":true,"extensions":["link66"]},"application/vnd.rs-274x":{"source":"iana"},"application/vnd.ruckus.download":{"source":"iana"},"application/vnd.s3sms":{"source":"iana"},"application/vnd.sailingtracker.track":{"source":"iana","extensions":["st"]},"application/vnd.sar":{"source":"iana"},"application/vnd.sbm.cid":{"source":"iana"},"application/vnd.sbm.mid2":{"source":"iana"},"application/vnd.scribus":{"source":"iana"},"application/vnd.sealed.3df":{"source":"iana"},"application/vnd.sealed.csf":{"source":"iana"},"application/vnd.sealed.doc":{"source":"iana"},"application/vnd.sealed.eml":{"source":"iana"},"application/vnd.sealed.mht":{"source":"iana"},"application/vnd.sealed.net":{"source":"iana"},"application/vnd.sealed.ppt":{"source":"iana"},"application/vnd.sealed.tiff":{"source":"iana"},"application/vnd.sealed.xls":{"source":"iana"},"application/vnd.sealedmedia.softseal.html":{"source":"iana"},"application/vnd.sealedmedia.softseal.pdf":{"source":"iana"},"application/vnd.seemail":{"source":"iana","extensions":["see"]},"application/vnd.seis+json":{"source":"iana","compressible":true},"application/vnd.sema":{"source":"iana","extensions":["sema"]},"application/vnd.semd":{"source":"iana","extensions":["semd"]},"application/vnd.semf":{"source":"iana","extensions":["semf"]},"application/vnd.shade-save-file":{"source":"iana"},"application/vnd.shana.informed.formdata":{"source":"iana","extensions":["ifm"]},"application/vnd.shana.informed.formtemplate":{"source":"iana","extensions":["itp"]},"application/vnd.shana.informed.interchange":{"source":"iana","extensions":["iif"]},"application/vnd.shana.informed.package":{"source":"iana","extensions":["ipk"]},"application/vnd.shootproof+json":{"source":"iana","compressible":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"application/vnd.shp":{"source":"iana"},"application/vnd.shx":{"source":"iana"},"application/vnd.sigrok.session":{"source":"iana"},"application/vnd.simtech-mindmapper":{"source":"iana","extensions":["twd","twds"]},"application/vnd.siren+json":{"source":"iana","compressible":true},"application/vnd.smaf":{"source":"iana","extensions":["mmf"]},"application/vnd.smart.notebook":{"source":"iana"},"application/vnd.smart.teacher":{"source":"iana","extensions":["teacher"]},"application/vnd.snesdev-page-table":{"source":"iana"},"application/vnd.software602.filler.form+xml":{"source":"iana","compressible":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"extensions":["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{"source":"iana","extensions":["dxp"]},"application/vnd.spotfire.sfs":{"source":"iana","extensions":["sfs"]},"application/vnd.sqlite3":{"source":"iana"},"application/vnd.sss-cod":{"source":"iana"},"application/vnd.sss-dtf":{"source":"iana"},"application/vnd.sss-ntf":{"source":"iana"},"application/vnd.stardivision.calc":{"source":"apache","extensions":["sdc"]},"application/vnd.stardivision.draw":{"source":"apache","extensions":["sda"]},"application/vnd.stardivision.impress":{"source":"apache","extensions":["sdd"]},"application/vnd.stardivision.math":{"source":"apache","extensions":["smf"]},"application/vnd.stardivision.writer":{"source":"apache","extensions":["sdw","vor"]},"application/vnd.stardivision.writer-global":{"source":"apache","extensions":["sgl"]},"application/vnd.stepmania.package":{"source":"iana","extensions":["smzip"]},"application/vnd.stepmania.stepchart":{"source":"iana","extensions":["sm"]},"application/vnd.street-stream":{"source":"iana"},"application/vnd.sun.wadl+xml":{"source":"iana","compressible":true,"extensions":["wadl"]},"application/vnd.sun.xml.calc":{"source":"apache","extensions":["sxc"]},"application/vnd.sun.xml.calc.template":{"source":"apache","extensions":["stc"]},"application/vnd.sun.xml.draw":{"source":"apache","extensions":["sxd"]},"application/vnd.sun.xml.draw.template":{"source":"apache","extensions":["std"]},"application/vnd.sun.xml.impress":{"source":"apache","extensions":["sxi"]},"application/vnd.sun.xml.impress.template":{"source":"apache","extensions":["sti"]},"application/vnd.sun.xml.math":{"source":"apache","extensions":["sxm"]},"application/vnd.sun.xml.writer":{"source":"apache","extensions":["sxw"]},"application/vnd.sun.xml.writer.global":{"source":"apache","extensions":["sxg"]},"application/vnd.sun.xml.writer.template":{"source":"apache","extensions":["stw"]},"application/vnd.sus-calendar":{"source":"iana","extensions":["sus","susp"]},"application/vnd.svd":{"source":"iana","extensions":["svd"]},"application/vnd.swiftview-ics":{"source":"iana"},"application/vnd.sycle+xml":{"source":"iana","compressible":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xsm"]},"application/vnd.syncml.dm+wbxml":{"source":"iana","charset":"UTF-8","extensions":["bdm"]},"application/vnd.syncml.dm+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xdm"]},"application/vnd.syncml.dm.notification":{"source":"iana"},"application/vnd.syncml.dmddf+wbxml":{"source":"iana"},"application/vnd.syncml.dmddf+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"application/vnd.tao.intent-module-archive":{"source":"iana","extensions":["tao"]},"application/vnd.tcpdump.pcap":{"source":"iana","extensions":["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{"source":"iana","compressible":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"application/vnd.tml":{"source":"iana"},"application/vnd.tmobile-livetv":{"source":"iana","extensions":["tmo"]},"application/vnd.tri.onesource":{"source":"iana"},"application/vnd.trid.tpt":{"source":"iana","extensions":["tpt"]},"application/vnd.triscape.mxs":{"source":"iana","extensions":["mxs"]},"application/vnd.trueapp":{"source":"iana","extensions":["tra"]},"application/vnd.truedoc":{"source":"iana"},"application/vnd.ubisoft.webplayer":{"source":"iana"},"application/vnd.ufdl":{"source":"iana","extensions":["ufd","ufdl"]},"application/vnd.uiq.theme":{"source":"iana","extensions":["utz"]},"application/vnd.umajin":{"source":"iana","extensions":["umj"]},"application/vnd.unity":{"source":"iana","extensions":["unityweb"]},"application/vnd.uoml+xml":{"source":"iana","compressible":true,"extensions":["uoml"]},"application/vnd.uplanet.alert":{"source":"iana"},"application/vnd.uplanet.alert-wbxml":{"source":"iana"},"application/vnd.uplanet.bearer-choice":{"source":"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{"source":"iana"},"application/vnd.uplanet.cacheop":{"source":"iana"},"application/vnd.uplanet.cacheop-wbxml":{"source":"iana"},"application/vnd.uplanet.channel":{"source":"iana"},"application/vnd.uplanet.channel-wbxml":{"source":"iana"},"application/vnd.uplanet.list":{"source":"iana"},"application/vnd.uplanet.list-wbxml":{"source":"iana"},"application/vnd.uplanet.listcmd":{"source":"iana"},"application/vnd.uplanet.listcmd-wbxml":{"source":"iana"},"application/vnd.uplanet.signal":{"source":"iana"},"application/vnd.uri-map":{"source":"iana"},"application/vnd.valve.source.material":{"source":"iana"},"application/vnd.vcx":{"source":"iana","extensions":["vcx"]},"application/vnd.vd-study":{"source":"iana"},"application/vnd.vectorworks":{"source":"iana"},"application/vnd.vel+json":{"source":"iana","compressible":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"application/vnd.veryant.thin":{"source":"iana"},"application/vnd.ves.encrypted":{"source":"iana"},"application/vnd.vidsoft.vidconference":{"source":"iana"},"application/vnd.visio":{"source":"iana","extensions":["vsd","vst","vss","vsw"]},"application/vnd.visionary":{"source":"iana","extensions":["vis"]},"application/vnd.vividence.scriptfile":{"source":"iana"},"application/vnd.vsf":{"source":"iana","extensions":["vsf"]},"application/vnd.wap.sic":{"source":"iana"},"application/vnd.wap.slc":{"source":"iana"},"application/vnd.wap.wbxml":{"source":"iana","charset":"UTF-8","extensions":["wbxml"]},"application/vnd.wap.wmlc":{"source":"iana","extensions":["wmlc"]},"application/vnd.wap.wmlscriptc":{"source":"iana","extensions":["wmlsc"]},"application/vnd.webturbo":{"source":"iana","extensions":["wtb"]},"application/vnd.wfa.dpp":{"source":"iana"},"application/vnd.wfa.p2p":{"source":"iana"},"application/vnd.wfa.wsc":{"source":"iana"},"application/vnd.windows.devicepairing":{"source":"iana"},"application/vnd.wmc":{"source":"iana"},"application/vnd.wmf.bootstrap":{"source":"iana"},"application/vnd.wolfram.mathematica":{"source":"iana"},"application/vnd.wolfram.mathematica.package":{"source":"iana"},"application/vnd.wolfram.player":{"source":"iana","extensions":["nbp"]},"application/vnd.wordperfect":{"source":"iana","extensions":["wpd"]},"application/vnd.wqd":{"source":"iana","extensions":["wqd"]},"application/vnd.wrq-hp3000-labelled":{"source":"iana"},"application/vnd.wt.stf":{"source":"iana","extensions":["stf"]},"application/vnd.wv.csp+wbxml":{"source":"iana"},"application/vnd.wv.csp+xml":{"source":"iana","compressible":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"application/vnd.xara":{"source":"iana","extensions":["xar"]},"application/vnd.xfdl":{"source":"iana","extensions":["xfdl"]},"application/vnd.xfdl.webform":{"source":"iana"},"application/vnd.xmi+xml":{"source":"iana","compressible":true},"application/vnd.xmpie.cpkg":{"source":"iana"},"application/vnd.xmpie.dpkg":{"source":"iana"},"application/vnd.xmpie.plan":{"source":"iana"},"application/vnd.xmpie.ppkg":{"source":"iana"},"application/vnd.xmpie.xlim":{"source":"iana"},"application/vnd.yamaha.hv-dic":{"source":"iana","extensions":["hvd"]},"application/vnd.yamaha.hv-script":{"source":"iana","extensions":["hvs"]},"application/vnd.yamaha.hv-voice":{"source":"iana","extensions":["hvp"]},"application/vnd.yamaha.openscoreformat":{"source":"iana","extensions":["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{"source":"iana","compressible":true,"extensions":["osfpvg"]},"application/vnd.yamaha.remote-setup":{"source":"iana"},"application/vnd.yamaha.smaf-audio":{"source":"iana","extensions":["saf"]},"application/vnd.yamaha.smaf-phrase":{"source":"iana","extensions":["spf"]},"application/vnd.yamaha.through-ngn":{"source":"iana"},"application/vnd.yamaha.tunnel-udpencap":{"source":"iana"},"application/vnd.yaoweme":{"source":"iana"},"application/vnd.yellowriver-custom-menu":{"source":"iana","extensions":["cmp"]},"application/vnd.youtube.yt":{"source":"iana"},"application/vnd.zul":{"source":"iana","extensions":["zir","zirz"]},"application/vnd.zzazz.deck+xml":{"source":"iana","compressible":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"application/whoispp-query":{"source":"iana"},"application/whoispp-response":{"source":"iana"},"application/widget":{"source":"iana","extensions":["wgt"]},"application/winhlp":{"source":"apache","extensions":["hlp"]},"application/wita":{"source":"iana"},"application/wordperfect5.1":{"source":"iana"},"application/wsdl+xml":{"source":"iana","compressible":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"extensions":["7z"]},"application/x-abiword":{"source":"apache","extensions":["abw"]},"application/x-ace-compressed":{"source":"apache","extensions":["ace"]},"application/x-amf":{"source":"apache"},"application/x-apple-diskimage":{"source":"apache","extensions":["dmg"]},"application/x-arj":{"compressible":false,"extensions":["arj"]},"application/x-authorware-bin":{"source":"apache","extensions":["aab","x32","u32","vox"]},"application/x-authorware-map":{"source":"apache","extensions":["aam"]},"application/x-authorware-seg":{"source":"apache","extensions":["aas"]},"application/x-bcpio":{"source":"apache","extensions":["bcpio"]},"application/x-bdoc":{"compressible":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"extensions":["bz2","boz"]},"application/x-cbr":{"source":"apache","extensions":["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{"source":"apache","extensions":["vcd"]},"application/x-cfs-compressed":{"source":"apache","extensions":["cfs"]},"application/x-chat":{"source":"apache","extensions":["chat"]},"application/x-chess-pgn":{"source":"apache","extensions":["pgn"]},"application/x-chrome-extension":{"extensions":["crx"]},"application/x-cocoa":{"source":"nginx","extensions":["cco"]},"application/x-compress":{"source":"apache"},"application/x-conference":{"source":"apache","extensions":["nsc"]},"application/x-cpio":{"source":"apache","extensions":["cpio"]},"application/x-csh":{"source":"apache","extensions":["csh"]},"application/x-deb":{"compressible":false},"application/x-debian-package":{"source":"apache","extensions":["deb","udeb"]},"application/x-dgc-compressed":{"source":"apache","extensions":["dgc"]},"application/x-director":{"source":"apache","extensions":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{"source":"apache","extensions":["wad"]},"application/x-dtbncx+xml":{"source":"apache","compressible":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"extensions":["dvi"]},"application/x-envoy":{"source":"apache","extensions":["evy"]},"application/x-eva":{"source":"apache","extensions":["eva"]},"application/x-font-bdf":{"source":"apache","extensions":["bdf"]},"application/x-font-dos":{"source":"apache"},"application/x-font-framemaker":{"source":"apache"},"application/x-font-ghostscript":{"source":"apache","extensions":["gsf"]},"application/x-font-libgrx":{"source":"apache"},"application/x-font-linux-psf":{"source":"apache","extensions":["psf"]},"application/x-font-pcf":{"source":"apache","extensions":["pcf"]},"application/x-font-snf":{"source":"apache","extensions":["snf"]},"application/x-font-speedo":{"source":"apache"},"application/x-font-sunos-news":{"source":"apache"},"application/x-font-type1":{"source":"apache","extensions":["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{"source":"apache"},"application/x-freearc":{"source":"apache","extensions":["arc"]},"application/x-futuresplash":{"source":"apache","extensions":["spl"]},"application/x-gca-compressed":{"source":"apache","extensions":["gca"]},"application/x-glulx":{"source":"apache","extensions":["ulx"]},"application/x-gnumeric":{"source":"apache","extensions":["gnumeric"]},"application/x-gramps-xml":{"source":"apache","extensions":["gramps"]},"application/x-gtar":{"source":"apache","extensions":["gtar"]},"application/x-gzip":{"source":"apache"},"application/x-hdf":{"source":"apache","extensions":["hdf"]},"application/x-httpd-php":{"compressible":true,"extensions":["php"]},"application/x-install-instructions":{"source":"apache","extensions":["install"]},"application/x-iso9660-image":{"source":"apache","extensions":["iso"]},"application/x-iwork-keynote-sffkey":{"extensions":["key"]},"application/x-iwork-numbers-sffnumbers":{"extensions":["numbers"]},"application/x-iwork-pages-sffpages":{"extensions":["pages"]},"application/x-java-archive-diff":{"source":"nginx","extensions":["jardiff"]},"application/x-java-jnlp-file":{"source":"apache","compressible":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"extensions":["latex"]},"application/x-lua-bytecode":{"extensions":["luac"]},"application/x-lzh-compressed":{"source":"apache","extensions":["lzh","lha"]},"application/x-makeself":{"source":"nginx","extensions":["run"]},"application/x-mie":{"source":"apache","extensions":["mie"]},"application/x-mobipocket-ebook":{"source":"apache","extensions":["prc","mobi"]},"application/x-mpegurl":{"compressible":false},"application/x-ms-application":{"source":"apache","extensions":["application"]},"application/x-ms-shortcut":{"source":"apache","extensions":["lnk"]},"application/x-ms-wmd":{"source":"apache","extensions":["wmd"]},"application/x-ms-wmz":{"source":"apache","extensions":["wmz"]},"application/x-ms-xbap":{"source":"apache","extensions":["xbap"]},"application/x-msaccess":{"source":"apache","extensions":["mdb"]},"application/x-msbinder":{"source":"apache","extensions":["obd"]},"application/x-mscardfile":{"source":"apache","extensions":["crd"]},"application/x-msclip":{"source":"apache","extensions":["clp"]},"application/x-msdos-program":{"extensions":["exe"]},"application/x-msdownload":{"source":"apache","extensions":["exe","dll","com","bat","msi"]},"application/x-msmediaview":{"source":"apache","extensions":["mvb","m13","m14"]},"application/x-msmetafile":{"source":"apache","extensions":["wmf","wmz","emf","emz"]},"application/x-msmoney":{"source":"apache","extensions":["mny"]},"application/x-mspublisher":{"source":"apache","extensions":["pub"]},"application/x-msschedule":{"source":"apache","extensions":["scd"]},"application/x-msterminal":{"source":"apache","extensions":["trm"]},"application/x-mswrite":{"source":"apache","extensions":["wri"]},"application/x-netcdf":{"source":"apache","extensions":["nc","cdf"]},"application/x-ns-proxy-autoconfig":{"compressible":true,"extensions":["pac"]},"application/x-nzb":{"source":"apache","extensions":["nzb"]},"application/x-perl":{"source":"nginx","extensions":["pl","pm"]},"application/x-pilot":{"source":"nginx","extensions":["prc","pdb"]},"application/x-pkcs12":{"source":"apache","compressible":false,"extensions":["p12","pfx"]},"application/x-pkcs7-certificates":{"source":"apache","extensions":["p7b","spc"]},"application/x-pkcs7-certreqresp":{"source":"apache","extensions":["p7r"]},"application/x-pki-message":{"source":"iana"},"application/x-rar-compressed":{"source":"apache","compressible":false,"extensions":["rar"]},"application/x-redhat-package-manager":{"source":"nginx","extensions":["rpm"]},"application/x-research-info-systems":{"source":"apache","extensions":["ris"]},"application/x-sea":{"source":"nginx","extensions":["sea"]},"application/x-sh":{"source":"apache","compressible":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"extensions":["sit"]},"application/x-stuffitx":{"source":"apache","extensions":["sitx"]},"application/x-subrip":{"source":"apache","extensions":["srt"]},"application/x-sv4cpio":{"source":"apache","extensions":["sv4cpio"]},"application/x-sv4crc":{"source":"apache","extensions":["sv4crc"]},"application/x-t3vm-image":{"source":"apache","extensions":["t3"]},"application/x-tads":{"source":"apache","extensions":["gam"]},"application/x-tar":{"source":"apache","compressible":true,"extensions":["tar"]},"application/x-tcl":{"source":"apache","extensions":["tcl","tk"]},"application/x-tex":{"source":"apache","extensions":["tex"]},"application/x-tex-tfm":{"source":"apache","extensions":["tfm"]},"application/x-texinfo":{"source":"apache","extensions":["texinfo","texi"]},"application/x-tgif":{"source":"apache","extensions":["obj"]},"application/x-ustar":{"source":"apache","extensions":["ustar"]},"application/x-virtualbox-hdd":{"compressible":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"application/x-x509-ca-cert":{"source":"iana","extensions":["der","crt","pem"]},"application/x-x509-ca-ra-cert":{"source":"iana"},"application/x-x509-next-ca-cert":{"source":"iana"},"application/x-xfig":{"source":"apache","extensions":["fig"]},"application/x-xliff+xml":{"source":"apache","compressible":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"extensions":["xpi"]},"application/x-xz":{"source":"apache","extensions":["xz"]},"application/x-zmachine":{"source":"apache","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{"source":"iana"},"application/xacml+xml":{"source":"iana","compressible":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zlib":{"source":"iana"},"application/zstd":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"extensions":["3gpp"]},"audio/3gpp2":{"source":"iana"},"audio/aac":{"source":"iana"},"audio/ac3":{"source":"iana"},"audio/adpcm":{"source":"apache","extensions":["adp"]},"audio/amr":{"source":"iana","extensions":["amr"]},"audio/amr-wb":{"source":"iana"},"audio/amr-wb+":{"source":"iana"},"audio/aptx":{"source":"iana"},"audio/asc":{"source":"iana"},"audio/atrac-advanced-lossless":{"source":"iana"},"audio/atrac-x":{"source":"iana"},"audio/atrac3":{"source":"iana"},"audio/basic":{"source":"iana","compressible":false,"extensions":["au","snd"]},"audio/bv16":{"source":"iana"},"audio/bv32":{"source":"iana"},"audio/clearmode":{"source":"iana"},"audio/cn":{"source":"iana"},"audio/dat12":{"source":"iana"},"audio/dls":{"source":"iana"},"audio/dsr-es201108":{"source":"iana"},"audio/dsr-es202050":{"source":"iana"},"audio/dsr-es202211":{"source":"iana"},"audio/dsr-es202212":{"source":"iana"},"audio/dv":{"source":"iana"},"audio/dvi4":{"source":"iana"},"audio/eac3":{"source":"iana"},"audio/encaprtp":{"source":"iana"},"audio/evrc":{"source":"iana"},"audio/evrc-qcp":{"source":"iana"},"audio/evrc0":{"source":"iana"},"audio/evrc1":{"source":"iana"},"audio/evrcb":{"source":"iana"},"audio/evrcb0":{"source":"iana"},"audio/evrcb1":{"source":"iana"},"audio/evrcnw":{"source":"iana"},"audio/evrcnw0":{"source":"iana"},"audio/evrcnw1":{"source":"iana"},"audio/evrcwb":{"source":"iana"},"audio/evrcwb0":{"source":"iana"},"audio/evrcwb1":{"source":"iana"},"audio/evs":{"source":"iana"},"audio/flexfec":{"source":"iana"},"audio/fwdred":{"source":"iana"},"audio/g711-0":{"source":"iana"},"audio/g719":{"source":"iana"},"audio/g722":{"source":"iana"},"audio/g7221":{"source":"iana"},"audio/g723":{"source":"iana"},"audio/g726-16":{"source":"iana"},"audio/g726-24":{"source":"iana"},"audio/g726-32":{"source":"iana"},"audio/g726-40":{"source":"iana"},"audio/g728":{"source":"iana"},"audio/g729":{"source":"iana"},"audio/g7291":{"source":"iana"},"audio/g729d":{"source":"iana"},"audio/g729e":{"source":"iana"},"audio/gsm":{"source":"iana"},"audio/gsm-efr":{"source":"iana"},"audio/gsm-hr-08":{"source":"iana"},"audio/ilbc":{"source":"iana"},"audio/ip-mr_v2.5":{"source":"iana"},"audio/isac":{"source":"apache"},"audio/l16":{"source":"iana"},"audio/l20":{"source":"iana"},"audio/l24":{"source":"iana","compressible":false},"audio/l8":{"source":"iana"},"audio/lpc":{"source":"iana"},"audio/melp":{"source":"iana"},"audio/melp1200":{"source":"iana"},"audio/melp2400":{"source":"iana"},"audio/melp600":{"source":"iana"},"audio/mhas":{"source":"iana"},"audio/midi":{"source":"apache","extensions":["mid","midi","kar","rmi"]},"audio/mobile-xmf":{"source":"iana","extensions":["mxmf"]},"audio/mp3":{"compressible":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"extensions":["oga","ogg","spx","opus"]},"audio/opus":{"source":"iana"},"audio/parityfec":{"source":"iana"},"audio/pcma":{"source":"iana"},"audio/pcma-wb":{"source":"iana"},"audio/pcmu":{"source":"iana"},"audio/pcmu-wb":{"source":"iana"},"audio/prs.sid":{"source":"iana"},"audio/qcelp":{"source":"iana"},"audio/raptorfec":{"source":"iana"},"audio/red":{"source":"iana"},"audio/rtp-enc-aescm128":{"source":"iana"},"audio/rtp-midi":{"source":"iana"},"audio/rtploopback":{"source":"iana"},"audio/rtx":{"source":"iana"},"audio/s3m":{"source":"apache","extensions":["s3m"]},"audio/scip":{"source":"iana"},"audio/silk":{"source":"apache","extensions":["sil"]},"audio/smv":{"source":"iana"},"audio/smv-qcp":{"source":"iana"},"audio/smv0":{"source":"iana"},"audio/sofa":{"source":"iana"},"audio/sp-midi":{"source":"iana"},"audio/speex":{"source":"iana"},"audio/t140c":{"source":"iana"},"audio/t38":{"source":"iana"},"audio/telephone-event":{"source":"iana"},"audio/tetra_acelp":{"source":"iana"},"audio/tetra_acelp_bb":{"source":"iana"},"audio/tone":{"source":"iana"},"audio/tsvcis":{"source":"iana"},"audio/uemclip":{"source":"iana"},"audio/ulpfec":{"source":"iana"},"audio/usac":{"source":"iana"},"audio/vdvi":{"source":"iana"},"audio/vmr-wb":{"source":"iana"},"audio/vnd.3gpp.iufp":{"source":"iana"},"audio/vnd.4sb":{"source":"iana"},"audio/vnd.audiokoz":{"source":"iana"},"audio/vnd.celp":{"source":"iana"},"audio/vnd.cisco.nse":{"source":"iana"},"audio/vnd.cmles.radio-events":{"source":"iana"},"audio/vnd.cns.anp1":{"source":"iana"},"audio/vnd.cns.inf1":{"source":"iana"},"audio/vnd.dece.audio":{"source":"iana","extensions":["uva","uvva"]},"audio/vnd.digital-winds":{"source":"iana","extensions":["eol"]},"audio/vnd.dlna.adts":{"source":"iana"},"audio/vnd.dolby.heaac.1":{"source":"iana"},"audio/vnd.dolby.heaac.2":{"source":"iana"},"audio/vnd.dolby.mlp":{"source":"iana"},"audio/vnd.dolby.mps":{"source":"iana"},"audio/vnd.dolby.pl2":{"source":"iana"},"audio/vnd.dolby.pl2x":{"source":"iana"},"audio/vnd.dolby.pl2z":{"source":"iana"},"audio/vnd.dolby.pulse.1":{"source":"iana"},"audio/vnd.dra":{"source":"iana","extensions":["dra"]},"audio/vnd.dts":{"source":"iana","extensions":["dts"]},"audio/vnd.dts.hd":{"source":"iana","extensions":["dtshd"]},"audio/vnd.dts.uhd":{"source":"iana"},"audio/vnd.dvb.file":{"source":"iana"},"audio/vnd.everad.plj":{"source":"iana"},"audio/vnd.hns.audio":{"source":"iana"},"audio/vnd.lucent.voice":{"source":"iana","extensions":["lvp"]},"audio/vnd.ms-playready.media.pya":{"source":"iana","extensions":["pya"]},"audio/vnd.nokia.mobile-xmf":{"source":"iana"},"audio/vnd.nortel.vbk":{"source":"iana"},"audio/vnd.nuera.ecelp4800":{"source":"iana","extensions":["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{"source":"iana","extensions":["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{"source":"iana","extensions":["ecelp9600"]},"audio/vnd.octel.sbc":{"source":"iana"},"audio/vnd.presonus.multitrack":{"source":"iana"},"audio/vnd.qcelp":{"source":"iana"},"audio/vnd.rhetorex.32kadpcm":{"source":"iana"},"audio/vnd.rip":{"source":"iana","extensions":["rip"]},"audio/vnd.rn-realaudio":{"compressible":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"extensions":["caf"]},"audio/x-flac":{"source":"apache","extensions":["flac"]},"audio/x-m4a":{"source":"nginx","extensions":["m4a"]},"audio/x-matroska":{"source":"apache","extensions":["mka"]},"audio/x-mpegurl":{"source":"apache","extensions":["m3u"]},"audio/x-ms-wax":{"source":"apache","extensions":["wax"]},"audio/x-ms-wma":{"source":"apache","extensions":["wma"]},"audio/x-pn-realaudio":{"source":"apache","extensions":["ram","ra"]},"audio/x-pn-realaudio-plugin":{"source":"apache","extensions":["rmp"]},"audio/x-realaudio":{"source":"nginx","extensions":["ra"]},"audio/x-tta":{"source":"apache"},"audio/x-wav":{"source":"apache","extensions":["wav"]},"audio/xm":{"source":"apache","extensions":["xm"]},"chemical/x-cdx":{"source":"apache","extensions":["cdx"]},"chemical/x-cif":{"source":"apache","extensions":["cif"]},"chemical/x-cmdf":{"source":"apache","extensions":["cmdf"]},"chemical/x-cml":{"source":"apache","extensions":["cml"]},"chemical/x-csml":{"source":"apache","extensions":["csml"]},"chemical/x-pdb":{"source":"apache"},"chemical/x-xyz":{"source":"apache","extensions":["xyz"]},"font/collection":{"source":"iana","extensions":["ttc"]},"font/otf":{"source":"iana","compressible":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"extensions":["bmp"]},"image/cgm":{"source":"iana","extensions":["cgm"]},"image/dicom-rle":{"source":"iana","extensions":["drle"]},"image/emf":{"source":"iana","extensions":["emf"]},"image/fits":{"source":"iana","extensions":["fits"]},"image/g3fax":{"source":"iana","extensions":["g3"]},"image/gif":{"source":"iana","compressible":false,"extensions":["gif"]},"image/heic":{"source":"iana","extensions":["heic"]},"image/heic-sequence":{"source":"iana","extensions":["heics"]},"image/heif":{"source":"iana","extensions":["heif"]},"image/heif-sequence":{"source":"iana","extensions":["heifs"]},"image/hej2k":{"source":"iana","extensions":["hej2"]},"image/hsj2":{"source":"iana","extensions":["hsj2"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/jls":{"source":"iana","extensions":["jls"]},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/jxr":{"source":"iana","extensions":["jxr"]},"image/jxra":{"source":"iana","extensions":["jxra"]},"image/jxrs":{"source":"iana","extensions":["jxrs"]},"image/jxs":{"source":"iana","extensions":["jxs"]},"image/jxsc":{"source":"iana","extensions":["jxsc"]},"image/jxsi":{"source":"iana","extensions":["jxsi"]},"image/jxss":{"source":"iana","extensions":["jxss"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/ktx2":{"source":"iana","extensions":["ktx2"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false},"image/png":{"source":"iana","compressible":false,"extensions":["png"]},"image/prs.btif":{"source":"iana","extensions":["btif"]},"image/prs.pti":{"source":"iana","extensions":["pti"]},"image/pwg-raster":{"source":"iana"},"image/sgi":{"source":"apache","extensions":["sgi"]},"image/svg+xml":{"source":"iana","compressible":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"extensions":["psd"]},"image/vnd.airzip.accelerator.azv":{"source":"iana","extensions":["azv"]},"image/vnd.cns.inf2":{"source":"iana"},"image/vnd.dece.graphic":{"source":"iana","extensions":["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{"source":"iana","extensions":["djvu","djv"]},"image/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"image/vnd.dwg":{"source":"iana","extensions":["dwg"]},"image/vnd.dxf":{"source":"iana","extensions":["dxf"]},"image/vnd.fastbidsheet":{"source":"iana","extensions":["fbs"]},"image/vnd.fpx":{"source":"iana","extensions":["fpx"]},"image/vnd.fst":{"source":"iana","extensions":["fst"]},"image/vnd.fujixerox.edmics-mmr":{"source":"iana","extensions":["mmr"]},"image/vnd.fujixerox.edmics-rlc":{"source":"iana","extensions":["rlc"]},"image/vnd.globalgraphics.pgb":{"source":"iana"},"image/vnd.microsoft.icon":{"source":"iana","compressible":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"extensions":["dds"]},"image/vnd.ms-modi":{"source":"iana","extensions":["mdi"]},"image/vnd.ms-photo":{"source":"apache","extensions":["wdp"]},"image/vnd.net-fpx":{"source":"iana","extensions":["npx"]},"image/vnd.pco.b16":{"source":"iana","extensions":["b16"]},"image/vnd.radiance":{"source":"iana"},"image/vnd.sealed.png":{"source":"iana"},"image/vnd.sealedmedia.softseal.gif":{"source":"iana"},"image/vnd.sealedmedia.softseal.jpg":{"source":"iana"},"image/vnd.svf":{"source":"iana"},"image/vnd.tencent.tap":{"source":"iana","extensions":["tap"]},"image/vnd.valve.source.texture":{"source":"iana","extensions":["vtf"]},"image/vnd.wap.wbmp":{"source":"iana","extensions":["wbmp"]},"image/vnd.xiff":{"source":"iana","extensions":["xif"]},"image/vnd.zbrush.pcx":{"source":"iana","extensions":["pcx"]},"image/webp":{"source":"apache","extensions":["webp"]},"image/wmf":{"source":"iana","extensions":["wmf"]},"image/x-3ds":{"source":"apache","extensions":["3ds"]},"image/x-cmu-raster":{"source":"apache","extensions":["ras"]},"image/x-cmx":{"source":"apache","extensions":["cmx"]},"image/x-freehand":{"source":"apache","extensions":["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{"source":"apache","compressible":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"extensions":["bmp"]},"image/x-pcx":{"source":"apache","extensions":["pcx"]},"image/x-pict":{"source":"apache","extensions":["pic","pct"]},"image/x-portable-anymap":{"source":"apache","extensions":["pnm"]},"image/x-portable-bitmap":{"source":"apache","extensions":["pbm"]},"image/x-portable-graymap":{"source":"apache","extensions":["pgm"]},"image/x-portable-pixmap":{"source":"apache","extensions":["ppm"]},"image/x-rgb":{"source":"apache","extensions":["rgb"]},"image/x-tga":{"source":"apache","extensions":["tga"]},"image/x-xbitmap":{"source":"apache","extensions":["xbm"]},"image/x-xcf":{"compressible":false},"image/x-xpixmap":{"source":"apache","extensions":["xpm"]},"image/x-xwindowdump":{"source":"apache","extensions":["xwd"]},"message/cpim":{"source":"iana"},"message/delivery-status":{"source":"iana"},"message/disposition-notification":{"source":"iana","extensions":["disposition-notification"]},"message/external-body":{"source":"iana"},"message/feedback-report":{"source":"iana"},"message/global":{"source":"iana","extensions":["u8msg"]},"message/global-delivery-status":{"source":"iana","extensions":["u8dsn"]},"message/global-disposition-notification":{"source":"iana","extensions":["u8mdn"]},"message/global-headers":{"source":"iana","extensions":["u8hdr"]},"message/http":{"source":"iana","compressible":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"extensions":["eml","mime"]},"message/s-http":{"source":"iana"},"message/sip":{"source":"iana"},"message/sipfrag":{"source":"iana"},"message/tracking-status":{"source":"iana"},"message/vnd.si.simp":{"source":"iana"},"message/vnd.wfa.wsc":{"source":"iana","extensions":["wsc"]},"model/3mf":{"source":"iana","extensions":["3mf"]},"model/e57":{"source":"iana"},"model/gltf+json":{"source":"iana","compressible":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"extensions":["msh","mesh","silo"]},"model/mtl":{"source":"iana","extensions":["mtl"]},"model/obj":{"source":"iana","extensions":["obj"]},"model/step":{"source":"iana"},"model/step+xml":{"source":"iana","compressible":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"extensions":["dae"]},"model/vnd.dwf":{"source":"iana","extensions":["dwf"]},"model/vnd.flatland.3dml":{"source":"iana"},"model/vnd.gdl":{"source":"iana","extensions":["gdl"]},"model/vnd.gs-gdl":{"source":"apache"},"model/vnd.gs.gdl":{"source":"iana"},"model/vnd.gtw":{"source":"iana","extensions":["gtw"]},"model/vnd.moml+xml":{"source":"iana","compressible":true},"model/vnd.mts":{"source":"iana","extensions":["mts"]},"model/vnd.opengex":{"source":"iana","extensions":["ogex"]},"model/vnd.parasolid.transmit.binary":{"source":"iana","extensions":["x_b"]},"model/vnd.parasolid.transmit.text":{"source":"iana","extensions":["x_t"]},"model/vnd.pytha.pyox":{"source":"iana"},"model/vnd.rosette.annotated-data-model":{"source":"iana"},"model/vnd.sap.vds":{"source":"iana","extensions":["vds"]},"model/vnd.usdz+zip":{"source":"iana","compressible":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"multipart/vnd.bint.med-plus":{"source":"iana"},"multipart/voice-message":{"source":"iana"},"multipart/x-mixed-replace":{"source":"iana"},"text/1d-interleaved-parityfec":{"source":"iana"},"text/cache-manifest":{"source":"iana","compressible":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/cql":{"source":"iana"},"text/cql-expression":{"source":"iana"},"text/cql-identifier":{"source":"iana"},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"extensions":["csv"]},"text/csv-schema":{"source":"iana"},"text/directory":{"source":"iana"},"text/dns":{"source":"iana"},"text/ecmascript":{"source":"iana"},"text/encaprtp":{"source":"iana"},"text/enriched":{"source":"iana"},"text/fhirpath":{"source":"iana"},"text/flexfec":{"source":"iana"},"text/fwdred":{"source":"iana"},"text/gff3":{"source":"iana"},"text/grammar-ref-list":{"source":"iana"},"text/html":{"source":"iana","compressible":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"extensions":["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{"source":"iana","charset":"UTF-8"},"text/prs.fallenstein.rst":{"source":"iana"},"text/prs.lines.tag":{"source":"iana","extensions":["dsc"]},"text/prs.prop.logic":{"source":"iana"},"text/raptorfec":{"source":"iana"},"text/red":{"source":"iana"},"text/rfc822-headers":{"source":"iana"},"text/richtext":{"source":"iana","compressible":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"text/rtp-enc-aescm128":{"source":"iana"},"text/rtploopback":{"source":"iana"},"text/rtx":{"source":"iana"},"text/sgml":{"source":"iana","extensions":["sgml","sgm"]},"text/shaclc":{"source":"iana"},"text/shex":{"source":"iana","extensions":["shex"]},"text/slim":{"extensions":["slim","slm"]},"text/spdx":{"source":"iana","extensions":["spdx"]},"text/strings":{"source":"iana"},"text/stylus":{"extensions":["stylus","styl"]},"text/t140":{"source":"iana"},"text/tab-separated-values":{"source":"iana","compressible":true,"extensions":["tsv"]},"text/troff":{"source":"iana","extensions":["t","tr","roff","man","me","ms"]},"text/turtle":{"source":"iana","charset":"UTF-8","extensions":["ttl"]},"text/ulpfec":{"source":"iana"},"text/uri-list":{"source":"iana","compressible":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"extensions":["vcard"]},"text/vnd.a":{"source":"iana"},"text/vnd.abc":{"source":"iana"},"text/vnd.ascii-art":{"source":"iana"},"text/vnd.curl":{"source":"iana","extensions":["curl"]},"text/vnd.curl.dcurl":{"source":"apache","extensions":["dcurl"]},"text/vnd.curl.mcurl":{"source":"apache","extensions":["mcurl"]},"text/vnd.curl.scurl":{"source":"apache","extensions":["scurl"]},"text/vnd.debian.copyright":{"source":"iana","charset":"UTF-8"},"text/vnd.dmclientscript":{"source":"iana"},"text/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"text/vnd.esmertec.theme-descriptor":{"source":"iana","charset":"UTF-8"},"text/vnd.familysearch.gedcom":{"source":"iana","extensions":["ged"]},"text/vnd.ficlab.flt":{"source":"iana"},"text/vnd.fly":{"source":"iana","extensions":["fly"]},"text/vnd.fmi.flexstor":{"source":"iana","extensions":["flx"]},"text/vnd.gml":{"source":"iana"},"text/vnd.graphviz":{"source":"iana","extensions":["gv"]},"text/vnd.hans":{"source":"iana"},"text/vnd.hgl":{"source":"iana"},"text/vnd.in3d.3dml":{"source":"iana","extensions":["3dml"]},"text/vnd.in3d.spot":{"source":"iana","extensions":["spot"]},"text/vnd.iptc.newsml":{"source":"iana"},"text/vnd.iptc.nitf":{"source":"iana"},"text/vnd.latex-z":{"source":"iana"},"text/vnd.motorola.reflex":{"source":"iana"},"text/vnd.ms-mediapackage":{"source":"iana"},"text/vnd.net2phone.commcenter.command":{"source":"iana"},"text/vnd.radisys.msml-basic-layout":{"source":"iana"},"text/vnd.senx.warpscript":{"source":"iana"},"text/vnd.si.uricatalogue":{"source":"iana"},"text/vnd.sosi":{"source":"iana"},"text/vnd.sun.j2me.app-descriptor":{"source":"iana","charset":"UTF-8","extensions":["jad"]},"text/vnd.trolltech.linguist":{"source":"iana","charset":"UTF-8"},"text/vnd.wap.si":{"source":"iana"},"text/vnd.wap.sl":{"source":"iana"},"text/vnd.wap.wml":{"source":"iana","extensions":["wml"]},"text/vnd.wap.wmlscript":{"source":"iana","extensions":["wmls"]},"text/vtt":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["vtt"]},"text/x-asm":{"source":"apache","extensions":["s","asm"]},"text/x-c":{"source":"apache","extensions":["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{"source":"nginx","extensions":["htc"]},"text/x-fortran":{"source":"apache","extensions":["f","for","f77","f90"]},"text/x-gwt-rpc":{"compressible":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"extensions":["pde"]},"text/x-sass":{"extensions":["sass"]},"text/x-scss":{"extensions":["scss"]},"text/x-setext":{"source":"apache","extensions":["etx"]},"text/x-sfv":{"source":"apache","extensions":["sfv"]},"text/x-suse-ymp":{"compressible":true,"extensions":["ymp"]},"text/x-uuencode":{"source":"apache","extensions":["uu"]},"text/x-vcalendar":{"source":"apache","extensions":["vcs"]},"text/x-vcard":{"source":"apache","extensions":["vcf"]},"text/xml":{"source":"iana","compressible":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"extensions":["yaml","yml"]},"video/1d-interleaved-parityfec":{"source":"iana"},"video/3gpp":{"source":"iana","extensions":["3gp","3gpp"]},"video/3gpp-tt":{"source":"iana"},"video/3gpp2":{"source":"iana","extensions":["3g2"]},"video/av1":{"source":"iana"},"video/bmpeg":{"source":"iana"},"video/bt656":{"source":"iana"},"video/celb":{"source":"iana"},"video/dv":{"source":"iana"},"video/encaprtp":{"source":"iana"},"video/ffv1":{"source":"iana"},"video/flexfec":{"source":"iana"},"video/h261":{"source":"iana","extensions":["h261"]},"video/h263":{"source":"iana","extensions":["h263"]},"video/h263-1998":{"source":"iana"},"video/h263-2000":{"source":"iana"},"video/h264":{"source":"iana","extensions":["h264"]},"video/h264-rcdo":{"source":"iana"},"video/h264-svc":{"source":"iana"},"video/h265":{"source":"iana"},"video/iso.segment":{"source":"iana","extensions":["m4s"]},"video/jpeg":{"source":"iana","extensions":["jpgv"]},"video/jpeg2000":{"source":"iana"},"video/jpm":{"source":"apache","extensions":["jpm","jpgm"]},"video/jxsv":{"source":"iana"},"video/mj2":{"source":"iana","extensions":["mj2","mjp2"]},"video/mp1s":{"source":"iana"},"video/mp2p":{"source":"iana"},"video/mp2t":{"source":"iana","extensions":["ts"]},"video/mp4":{"source":"iana","compressible":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"extensions":["qt","mov"]},"video/raptorfec":{"source":"iana"},"video/raw":{"source":"iana"},"video/rtp-enc-aescm128":{"source":"iana"},"video/rtploopback":{"source":"iana"},"video/rtx":{"source":"iana"},"video/scip":{"source":"iana"},"video/smpte291":{"source":"iana"},"video/smpte292m":{"source":"iana"},"video/ulpfec":{"source":"iana"},"video/vc1":{"source":"iana"},"video/vc2":{"source":"iana"},"video/vnd.cctv":{"source":"iana"},"video/vnd.dece.hd":{"source":"iana","extensions":["uvh","uvvh"]},"video/vnd.dece.mobile":{"source":"iana","extensions":["uvm","uvvm"]},"video/vnd.dece.mp4":{"source":"iana"},"video/vnd.dece.pd":{"source":"iana","extensions":["uvp","uvvp"]},"video/vnd.dece.sd":{"source":"iana","extensions":["uvs","uvvs"]},"video/vnd.dece.video":{"source":"iana","extensions":["uvv","uvvv"]},"video/vnd.directv.mpeg":{"source":"iana"},"video/vnd.directv.mpeg-tts":{"source":"iana"},"video/vnd.dlna.mpeg-tts":{"source":"iana"},"video/vnd.dvb.file":{"source":"iana","extensions":["dvb"]},"video/vnd.fvt":{"source":"iana","extensions":["fvt"]},"video/vnd.hns.video":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.ttsavc":{"source":"iana"},"video/vnd.iptvforum.ttsmpeg2":{"source":"iana"},"video/vnd.motorola.video":{"source":"iana"},"video/vnd.motorola.videop":{"source":"iana"},"video/vnd.mpegurl":{"source":"iana","extensions":["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{"source":"iana","extensions":["pyv"]},"video/vnd.nokia.interleaved-multimedia":{"source":"iana"},"video/vnd.nokia.mp4vr":{"source":"iana"},"video/vnd.nokia.videovoip":{"source":"iana"},"video/vnd.objectvideo":{"source":"iana"},"video/vnd.radgamettools.bink":{"source":"iana"},"video/vnd.radgamettools.smacker":{"source":"iana"},"video/vnd.sealed.mpeg1":{"source":"iana"},"video/vnd.sealed.mpeg4":{"source":"iana"},"video/vnd.sealed.swf":{"source":"iana"},"video/vnd.sealedmedia.softseal.mov":{"source":"iana"},"video/vnd.uvvu.mp4":{"source":"iana","extensions":["uvu","uvvu"]},"video/vnd.vivo":{"source":"iana","extensions":["viv"]},"video/vnd.youtube.yt":{"source":"iana"},"video/vp8":{"source":"iana"},"video/vp9":{"source":"iana"},"video/webm":{"source":"apache","compressible":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"extensions":["mkv","mk3d","mks"]},"video/x-mng":{"source":"apache","extensions":["mng"]},"video/x-ms-asf":{"source":"apache","extensions":["asf","asx"]},"video/x-ms-vob":{"source":"apache","extensions":["vob"]},"video/x-ms-wm":{"source":"apache","extensions":["wm"]},"video/x-ms-wmv":{"source":"apache","compressible":false,"extensions":["wmv"]},"video/x-ms-wmx":{"source":"apache","extensions":["wmx"]},"video/x-ms-wvx":{"source":"apache","extensions":["wvx"]},"video/x-msvideo":{"source":"apache","extensions":["avi"]},"video/x-sgi-movie":{"source":"apache","extensions":["movie"]},"video/x-smv":{"source":"apache","extensions":["smv"]},"x-conference/x-cooltalk":{"source":"apache","extensions":["ice"]},"x-shader/x-fragment":{"compressible":true},"x-shader/x-vertex":{"compressible":true}}')},2020:e=>{"use strict";e.exports=JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var r=__webpack_module_cache__[e]={exports:{}};var a=true;try{__webpack_modules__[e].call(r.exports,r,r.exports,__nccwpck_require__);a=false}finally{if(a)delete __webpack_module_cache__[e]}return r.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__={};(()=>{"use strict";var e=__webpack_exports__;Object.defineProperty(e,"__esModule",{value:true});const t=__nccwpck_require__(7747);(new t.GithubActionRunner).execute()})();module.exports=__webpack_exports__})(); \ No newline at end of file diff --git a/docs/archive-artifacts-github.png b/docs/archive-artifacts-github.png deleted file mode 100644 index a51372f2b6c9e222fdd5a32b51373f2a3cc58c79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11987 zcmdsd^;cA1)IOckAQI9cE!{PAI=~Q03y9Lv-2+H>3P=w_cb6y~(k0#CfONxm6hH6! z{`CF<@49!*x-+xy+54Qc&pFSt_x=P_SHQs{$3j3rz)@0^)kHu*oPmlrbLa1`HomDsuLFFB10UpU2FPjonqv@J?E#v))o-h3HSq3^akpD6mHJl??o z3wjzv!asKa3jP-$5klPS|D?eK0#Zl}e{W10sT?K*x|)BYh*(Ls|Fu9UK|1h5-K7fV(}y5r=k8c3<$A7epL052qNqz9e)3z zW+?3;E;3U{1}%Ch>At(yt9&-bSutka!5hj>Yy~w?%0mD1GD94KY~#*)h1hp8b?Ass zA2Z1}>;rP@XV`i@6A&Oi)wLiDNFXhskUU1UU_`Ht z#b5rwKqZUB@M9X2&(2S``67)qf!VzOH`l;gsa+nW{#m&yRU-&jKBK#P4KAFSaQTmG7$fxu3@zzsa?gy~Cl44#p(0Qu!=)VsquE%)_*vXpKxd)6bAJ zzguD9USV2oZY(yF29R42(szrdI@zk)p?g;zF3fc&8)X%f+S=Dq>tO=ec zXCB~LzXGms+X(JXp>dLIsx(NTI<5$e+(edA#xX8h!mzv>7hqkao101+n}$ubW}hNG zaMrW2ElMP>WopT4M;7-VVwc<L$xZK7;vKu`OD8%i10e42wl;)v+8EZkX842I3Fy z9L>)Kne#_DuG@TGt3M^_%kQdCar0~ULEBat>wjr67kAopSMB&N%Y4mS^>v=bc<9aI zpd;JzeEqw-!r9>FG9KCBBMg$w`57qxQZL<1Dj071H=c?8?%0`(nHCS*POcyRmj~C) zJ~u;2nKLqTP@t}zG(*WTdu;aL#o*HO{d|)b^~13iqOSc$rM+A&*k_(el%4klypf$u z9A`z#x|>8z#*K@;BS{u=vkmGJqtD-sM;pH;VUKRUt2QSd@G%T|b)_mmvwVoXd6MQ) zZGLFjw9jST{cEht0wzS80y^-i&c9h9tKP`4EiAR*J;`qwSdO>gE43tL4_AY~Ry!P7$~HY`rWclb3eF zwA#VVM=!@cDks?wX>6-+z)>9U!5U^U^Fmxxlp;e=Tp;JoE9Lp=CvYPaU96+-j2v;; zCX-8dGDY2j*~lt!DsdQ^aT2{>f_SQv75h0dYzv5^`V%96x;Ty<&1v1KWtpE2B`#4D zw|FyM#q7VPxq05Z*i@tN^n55Wk{hgPdw5gTxzX@jp~d^~;%57ua!971T+W93G_w$O zSxZf6^(%QL`B9By4<(0d_t$vOxTUK@How)`m7P!J9PFg0#wavZO<$Feu;KU_Xl;{E zx-7G)#MU=u)okvuOl}bqvLO_{Qq5yla8$h!a46ABHg6gnW6rjD?ZMiZ>8{k@%hLsD z(_ky`n(nW@!nSZdctOTz68j({`6`^%`>eUjqx@B$SK$7xtF8FHkxUDKQ?6)U~(x+P+sw3g(G8;dmZ3Nk7wb$ae2AobhaeOWbZjNRv=$H{0XRGSL@G7ff2bLu|D8iL%@FZI!v{{FP-iL>uFzLtV@QODZQDYs${?f3$q+np_VqJ{Ll=E_IprT6e zsb!9rJNR>xoo$DY{`si%z1pVnrCqrBDJ5&f1$vP+RBOW3c#)S8!rsE^Zd|7@J=A~p z$wlgSQ_JRVJ^W0i?%|qbHTJ1UBJTN&KHyUFs&=8>;NDQN!Jd!D<>WPAG#?;}iFUk^ zWUZcKKEa~7(CZ=lyGy0)(_%f0N~Qo-|& z4jxgvoXoo9Rp927wovcT{tMr(=)h@ka%oFj+UurFzu}+D*Mca7jD_TQJfFnHoQIft zmn$-z?=W+9w8@a)W-BEPIx*%cloKa6QR|8oWt*R-(o0SXUpz2id!8mlj+Nw(-+M3c zzv6*^Lv1NNwJ2d|QIOm{yKnz8+QrtgrDVK80J>MYa@CXU-{F^Q=di_4rv5r&JT00L zIAPf2z`fBJqUPl79bV=+cZPe?UcFapjyoJ}y{Ng%c4*bV_h(JeZc`R!8GY!`J1;Z& z?z^C}y0j4OmT%5Jn|LE$~QH( zx&cZZCMlW5VB)PWKc#uBMy%#qeM*R*4#fsk48;}~N<<&Os!0A+vEq%UbgpmQe+?7e zEW#<-oM<@S$jdJE9xY4y1d(}oeGCi9tZp{}6E8P&e0Sp6-0b4r$lKK4EP{zz+!fWB zgDO-#ge~hpA)98Kw%HS93)K!sr18Rh%v&xh1ze*gj9~8P5yynf>a88B?pLZl+h^oS zz&2c0Ha^goF4BUdX^vH8I4-k6=9orP_hpoUdy0yaZ}{bFr>6JK&agBV4=}0Pd^kzd zc%5Z=Dd$O}gy87F!G%+S?xE`Lyi@FxyI-jtk=YwTS!v@gL#)M>lIyO+yjOmegK^7A zX4ThazoaC5nAwvTry9(cDL3{t@4+(Fb|b{QH>~HD$}>wr<}1M-)r%UVP79u z6R=&NeJxX??=2@hRv(j|PTob%;u9Mx)-J~PNubqWkrJ~Q4ReY^gO9F`5t?mlz zMEnR+;4r0qz7v{@!yNX%$+*QAampi z##9rspV#0dX`B^mE5n|vqtSxh&qi8Mih0e5UtgCW| z%vSLWWHMo2D48)#(7n{X>{*bUNPh1}A&F#bV{L85P+V%`g)yMrq6Dbqr=+u zgEqZ$8YLV$3rW8%(UTzUR!DU(aifXjMA){(;v6dX_V>Y$r|O@RRn`hQDJjX+VlUB3 z=t4-`!i(Lr3T=6YoB@=?V#Lqml2B}zs`It{^9jRGT7E?zpPsA3zS8zf zZmuRSl?XdYQqtaVWkp?GNxW=+_5Act?@CcW zthyF}KG!o;7?vbhyL9bOSk(k)(@39+h@AI;2GvZ(Y6@mUTognie7)0!iFZA;N{pYyN*PC7kT z{C{0kAawudC9`OBbpf^u^-881aYqUUPhBX357uA{4d~wHt>#V2cLfsNw!#jS2I$+g zu^>FF*iT<3sI*)#rUdf@KdTa$X1(Cx=Piq-5`BloF7Bb(7>~Gs@b{9Uo9`UGIqxsz z(BJ4A%fsamIDFMd;Gv+U&_^8I%^~7I^^;TyDi3Mjsogz))>5Jy6&Y#r!TgESde0l1 zZkT|Q9I}N!IB=uhaK*Bv?{(Cl9q-uBZ<|u#-y2z3<6ZA+l5!{lA7^AgY=N zBCi7Uq4-c`ei~524oGIfABd*`!AhxkE>~nE zg~>;I7M@MOKLWZdi*OKxd=>|`(|{5{7Z*!bOL#>JfD^^LzYUcBvQ`@;#GL7?EW}bk zT^>j`r&+GZJ(wnoy$fSXe(2(#HYvEaPQ;T-07|NzS#dk(@{49KmPzOLJYoue*)pOa z5;wMXi&qBSB-(_r4V8o68Po%piykC6`BVO{C9wl2D-vRUv$u`dzPKX~Qa-S2u;8!{ zM1;2AnuidaJ}?}-{V0k5Nh%Cz*zChHsYu+E{dWjyV3@LupeS`%5xwbj{E`=RjKwzw zf0eVvd!pTt;4i_>e~w7PYVh9e2F>LP3d~$D+FF{hc4?;R{d)V z&D%gFp_ht~XuD@Xj+--1&!w8MX_B z0n`=*z7aA1<@a&iYry9yRz6m>w@k(T-Ki9~cxwME=xAE*&!Ar2-6fbUu~FD6f| z`NYirj&1-D$p`>u+ux@^X~^(&y%GVx(bpfu;7{akc#KZuBR+QiN}hId#qx5^1dAW% z&68Jge+REK$-f9#me&6Kryr=bYsjd&#hV4B+w)WLabD0+)}BH=l;hWPaEYzRYoBG& z{q4R#8=^iWHFd+4%L*7AF0Eavo&#@oDv4V#{?S%Mc*p{Wljon3FPoU(7(sVQWH-X? zkwE?Xw^b;Qrq`=k_prlAGM z>6I9^d-*N(X4_lKo6ViA+cg~qgqrsZb@0)rT;kqY&0%Q?80lL#IT!1w!%rDF)yIJX zKI|&>lMBg;xL#9uR4Gsww|NV{mwfm;Dbq}`j)3pz$4+EiWZY7!&8{BDANsS;3n^Jx z;zZpJY6aXzk0)M3F5|#i6{q~;Kie$r{m0U(c|6vNEjLLY_7BZ>`nY*)dsMObr9$oD z(?5?DkVwKxm&Tm!tA0OuCRcM0J;_6Cil!1YDmQGI)+v_;ijPY}8tj*oIrJM;w*0%^ zM%1icyO0S=jP{*u6i*;>vb7t2C|}gCS;G8efcz=_2o0}BKI3w$MSHjp910)cd{MZH zz3v!sPG)5lv@Dn`__cx-p>r zd<74uoWobk%$HG=+^%U*?;%a4Kk3xX*tEB!<36>k~yC3EnKa~7h zYN?nSF=+A51WaK)7k4$NJeHxCR6^#vP`4t-rSq-aWxH>~Zh-FgV?r%4Qx4 zn-J_y##O%-|e-_N}c{D23r%P%#b^Y6;2zZwy+ zvLeOJQxC^(*Sp*slG2ABc_c)k(EPX{<>WDQvmBl7(;96zk@Y%SV{}sI=ilC# zBfYnYuIs&|c|nOC0D0kiFFMvjV zCK->$Wotw%E{!3d80L{2vI z>>s3=IE*xw=FcdGnq;+N)|r)uQ`rZ;riw(Tz5E#d8jdRlTd%P5_ahc%j(geP-hJhE zpH`%vx!QW|C~dlmJi@Z4aPEE@&3IUZgDbg zE6>^ZJa6k~69P2}nR!TBA$b%4KTN7h%0Kp{L@Bon39mLm8(lc~J*@!=>OgI;T^#eV z?`^*&lBP2j$*Y3Bhijl#M@32nhU!372TH5{@AkQ9NA*nH_DvK5x`8Rk{D{4_sRoUt z>Uf|~tUx@FKzxrB;iXh?lvCZP3>b^EF=?P3r)MkRWJ<1~1nAOY#AVq=H-+pHyzx=} zL{je=ae?)c`&9G%6}|l=vg#fMxvJx5?3Kii-KeQYv7?lcVVwR7)VkDJVh%jtrLmxIjyoBDOYZ#89ehN8GlwrATro_~~W~_N0FqMVwJow7bI{Ay&+`Xnr zHr_HksvC=dk)H{K;hh``+H#jkNx~o9Y^l`y-){tl;T?Z1qsHfx#WV#piughar+I8w zY5W>s>N!>(tg>aKMs;2k7mI6c@{>Cw&n2u%+3z-ZuYTt-ZejaVQFBUeH_cn@ddW7@ z_nK#fk?~}T+P9Y)Xuqeky}3es5xT%@XooF@%1BRJLpmQhRmB*+2mxxYzLum8HiYRD&91pN4<=LJlT-mOUQ7vBm( z(}wy0o^uX#7IvalXlJZ>+L}Q>`F<}4;9_Q(oiIHGYaK&lWi1(+W$F10b2Z!U`U{w1 z1psn0Y)myKg-mopqK@HwA>o*O&kiS1*8&o`B|?>?QojV_8TEmfQHwhrBC)4>OzwZIOBcVLBEaHM*pSAacnscKelI;dNfmLRawCnDIRqsW9$&fpP z*FRT%5qnuT`ihZ63GzmFWBt3*VC{av!q=(pcNd#8gUB^?X9lO*`&OgZ@(pcwzwtKs zO@3E?ahhDeQvP%L)5KN-!2YL7N?}Y#0eA#b5DEc1tUd(%-_p^{rzRav$y_}@UNRLQ zOL@Y^!HK`p+QQO-c10ccl7$p{8L25Re%6bE!^J9b&g7RyUbm-yf)W+Kq#)b&pX-iA z>9OoWSO7u#@V0|mPc?iSH&M-^+KdPJKG=TT72esuM@Gj{p^V@nZcIYwjWQ#E`dOyjnB zf$ZvnnXo^oxJ-t|0vwJ9G(1|3Sx|jhxN~M2hROL1`&%eybT@aHBAm5RGH4kvMIFbg zw**!hwmhSKlZhG$vs*izKVSmof6spwxv)oyJcQeG2^o=+BbU{fSn^)TmllyNZ;W|* zRtpaABhi$jnhkZ5uZ6zFWCry)oTb+VEVy@KICcx!)e^Aog=0AM{nn7zgs{D%^!n&n zqFZ|gbd`~h#I5YUgJ6?#VE$CGX&g@dP%d09YFE$|TsRXNjUj?|Q9V69O{c>7XDh@9 z&};^iJBIxHFWaQ_C)#*(A`nDl3w~qtnvtU6mgWQ=Kr!~w zdhs1SrZz3&YxraHC`2!OFY&5x+B;kgN4ahUgg&y}B?$m*-#2oKx<0V0NEmajpI9nC ztgc&3dtqBl%|}&V)>y>z$~E}BD4DS%#z=XjrBcV3G~^tPJ2UcQBt%ThO|1e1^8v0q@2?O(bN~pU7^{1zkhj?WhL0t>B&~l_C9h~ zIINcn!)GuuGgLA1o}yehu6x2k%LoqNA>@&r{Io;#7A&MDc(_HaY7Tw-oh>-RZrO}k z9hJbbFf_QSk*Lv0cVoMH-|_4^^9#xh#o<6?F7`2X2vw3_mWQ6i>{l)(Y5z-j+ENMw zk;JMm`h@`B_UwylybK1o20Mc=LcstQq@vxh0WzEvfkH`u@WtjR=1D0M) z)YjRrB>iJarq8i{(-)O-N@HEtS)m+1b*#r}VZU%l#V7bJ(KpU-TOGAV=}a@lvWN(J5K+60f`S z^()wG+E12{M%THFph*GUHOL=6K8cp2GKg0}Fw1o%wJSa3UYaLYQO2I4qQD{jgd|2c z8AjXt?I4 z%wI3?)ctO~UCrb{wC054sM$I%dsP4^XHCek{r+8D9Q(Ok%S!6c+lIi9gk16D-E<5H zXbfDUVOe{~jkfT|Xzc*2nX>38fluRti2YfR{F~ocwENFW?qpMd*|zBnqlO1pD`O1Imko==d-l?j*iO>oGaS!NQ(fWqs-tnZaxGA+~_~G0R7x@DRzJ;W@;?{kG8VC8gXW& zheWy&J5I{jIU*m0T0FTCF^|6mGej0ZL2$24rw7S`cd)==KkBTx@X5c0@NxM7O~-44 zf&5q@lY-C71RWn1SeQ{Y%-ONQCTLb$dBT-M@I~wyit9 z(0bM1(I@hDd@sI+-oyI6&Y8V5ugXGoeI`s>IQsOK8_?jRtpou7cu9+4 z*s`-WW$}HfMBc{uu<0!my)+?t&Ypzj1?xDSVXa|3IqLc|$_Tj=hvvMQNovWT*3F%50O zhQLfxhqDXiZ4x9?La1otc8Wdc+`XV8@_9CMLXmnx@x(jD`&u#{N7ees{;b%~^InOB zDi@`^gmMjB(Y=i&ZQtUHs4NvA_(@of1A8Y-{ZaaEjAp*zPXYukR-ht)oEv*CFzS~B zKAo;?iaNJ-nq5VDjCe>ymBDS)NBzXI2&^;Xb4j{1l@fqmkj6(5#)<`gfSj-AJ^6Pl zve^Slm8`lY(y?em9kY1pQv6?jqY|{=Hw90Be9rXZq20fi76u`(_bumP;z@C`VZ9D-?gN7s7NP$Y^*8x4ZTOi63|wnB8(C`>D9{ zYI+AdySgnV8-JOwD&4a^y%GlRX;0}LPl|zFu*$-grpo8(rv%jmE9KMGbLgmHXwy|Q zX8eMi9nlhYxrWY}Z^zd0)%LKub_4AUoeu%uLT7?`1ZC9K%a*RSdYbA zax@CdnoN3H#%x{iz}%IbZK9`+mc4?gH$tfo!J&xEI1}$+VpQW5)M>K3F{^r&{`UUua%eC`~B9{ z$RwEb;g*5{XN`^{7$p6tPt)uUb^GisKMP!BzkNa&kpa{W3wuV3-x4vKH~VE+Bmi?g zc1J>vw4(fyVgdFZ#JCwL#XqryMS_>mDZ}_u+Un+0;f=}JPkw-Q&Kh>`Os-1-unnW& z&^0MfSqU!8WDD?&RwVdID!b60OR z7q)8Zc(c_ae~hzt9V*%W&GZU^`KzTGg$>mB5RbqV_d2^_&KTsj|g~e@$CSju6Tls67V7*9gh#;1F93Q6M;AJ5d|? zN{ZE1rWiBhbf3}Btaed3J?A^syoL>!vXGeVde?o?jwy?u5v?1Nz~WvE- zI0c0X8MTDObtr3}G!#TM@4B`&Z)QZ#@acS--_;M&H30Z*UD?Hpet@cG9wk4a643O0 z_@*^}<<@SuY<#~(aCO!lQ{U5sGBC+$y!|a#3Ta=B&#?Uxy{nr#Rv=k!Gsg_#$-V(T zP!r|(Cc%}nmrq9-#JP5;l1?W&44+YE@l~M;#aG}GByFYLZe$@V8w(A2hwYdJR1 zBxa4126Na`UN=8+SmJGpMsHvbkams~%bPcxTX;9dDai6F*GPmZs@1_7XV3A+@)WF8 z@PR2nmN0D6=W}26xG>(hi!R}+ySX7!Pj_B-?eNwK4t@u$I9 zacibH_$K+rkw=8k1+J-;RlF*8BfylMo>x5n@fjiO`R)dTST3+7jDAY4*O>bgWhpc;gDqjzKXwn64?tpGE=qs>MIKkE%|AQV(r-;FGYtz6Ih!!D!b7y2EhEr zsv+w0-j1V#(Jsf;_w=L37TAu*`&20HxX0OPLG|EU|FL&N${TS2s(@?~tK7}%#dW9m ztpKZUyc#&Xh`~LFa?7tLK_&zqbV%P%yarf?KLKc)y8)V1$ z2ma#VaWH~!2u^&Y#rKNI+Ua;;&fB-+5#pYMjhG%~E)p!-<;@biR>WR!Uf4CDT z%5Pqqouw#OTeY;@YfMtB8Pb-FUV`SzRi?j83{K--BYni=cUmza<9Qn?c4jd11zpr6 z`OrEInNc)_z-plWS=O_^Jj0(YpfPy<;VkF4Co*m8bvqH0S~9mVk-5z|N`Hpflo+Mo z@36RX@W=mhNBOL9`RiUumn3N!`BclRwbe_lq7IfTd({+7kAwn+?3s-?&R6-YTv?=l z+eg4`Bn(r5v~OQXaC$C8jvRl_&#(V&fh$nRclAdD8CK*F0AS>)(2Lz?(1#q{!odcm zLVPyx9%{nEW8Q5%1x~-)XR<8SAI*_MQqK{g7JcRu42@%J@g{QjNF{lsnqIW{3?SIS z_saJ}hVAfr&8DqV=Er}q@x$QWF9cm~jV;C^395chZ4&_HQTcD;T2LZ^q7pk9iNuD% zR@mB>*P0O93&NUr|7M0}g%z})gNq?1iZXiaLS!{j#+z=+!#c|IFIW1d3?KM_YM1gc zGP{Qf6x{gh*p_W3`RrdHf)4S_STARZ;?x8^1%rgP%#Tu=S9MLe@^7W-AAfK`+UxKK z-YvGdfcNOMABYn8x^*OZb^a@vjaQVq+jf0mVTf4O!s7o#8Z7si4Xb^H zG>i{DEP9XMGe3IPR$TF zx!$A?iAcNvTTl1sJ!g7MywL=lDKs@m@4jH`K(6B-7;; z_F>g;R38(UQb@2Mgl3ObA$qNe#eKioxU|IuzM2_adC^(3{Bzu8uNxMn_MroA&9l(< zd+w=Dld=a1?R%J)EWL0n@?(_Zww*%$Cw`5`y&pAm7puu@7Ba}^{rNssS5A6J}L zqFb;>YQ?-fR1o_S^jx>j&;2Ks*WE?Y^>u7Uk3q(U^)O+*UErBE@Z$Rsx%*4*z2X1T z`QuO=l&$k`Yj{yF&+2ydc(rtU<$^xvemJrc9w8UhPFt%B^4JT)ttFR+%4Sxq7KBIa zGED=U));;%_ng2_{hCe68L;Wq#t6I=7hdJ!X-lJHk78Ux699d2hiiTP_H7Em>q5jF zkpe3U!Al>lLW$UWq&vFlaQ9DB9)x9X+<~jrR2yA?Uye<;?cB|b?O2p0Z=4~Hwm!}p zwH+~;xDd3HU%{=kq+zdwbr``~7;q=e#WjB_y~< z5CVY+nWIhYArKx4_;nKC10x&GBEgG|2O>>fBSWJ70)lZ6dARZVlRQk#pFoV1hnvX5 zVBTS2D%b#Te1vxhQ6&@?35LM?5CS&9F93&Kp952asVS>zE2|+K)wJZ{hA;&9qpqf+ zp{ee^KHnRU3;nyHrivQa;DD>Tx;)$nJXr;VMn!|qXl*SoEe$2`WEd6}jB~;HSOx%U zW}0w>3S4V-i6z?6+DaZ~44#7nf^gsih4T#}tS&M3k06AA5i@Od6+l-_LqkO!t_@x| zc>8%r1pNDLY;5hpzgpU09$ZUZTSXnFxy~al(i^`n4<2g>vsAW-4sdV_Qgd@O*TTdi z*5{CL5ySvO==wBuxQeCgxK$ugO`8xz)ChL<@hAJbYm&%1*g%YpIU)=b5bkQ>?uz$zgrlty=+HnLKR38j zhz1aBgrhm!A_`__97ezgX}G{J z79_l-G1}YI$0lHRW*i;nV`GSM_jSW)6YVrK9b?dD zL^Dm2t0e;K1NRGxw)1zkwXlpfF)<8?4Gy=rw8MjAZ5AEk>R{$b zEbVL&fg0v$qKld~!q(XdZ%u>&g~!Hfhr0%#HApxuW3m-dD?A+I6XvRpvTz|=`Gy$z zN5CUoBkcTvicoG2rns;`YYp&h7j0+dtcB9B#KIA-YH*T|y9_D(IPn* zMZ!ZJ90+z~A8dq?b*QDamZh=3PK=+KZ;TI0%iYWs4faIXgj>hzIAWc&e8YfG8U@)z ztq$YisAwZ?TSTloCfeA{#UjYtC)5dT>>Y!!f@`|^dJ{3`>VfuJt`WpluQLnPP}4Hf zHdAv4K5d4IutP+K;ItgTGu#z0W)`fiVdd@?=&I@CZ-IrmXa)jGX3i);E+WV;)Egca z78q@|I?vn>M$&?|W3)R)Jt)vBG8VkSxB%xe z0vC}P%GXLAOJ4Q5)t^;9{_)r~_XYp|y%gc557gejg+Qbs<|c-Y(VpY^C-1vB%_n=k zFxa+xi=^p$3BEVbAs-R{%i4lgCN~@sNa8YYnztk#i;xySeeK2e?e`^iZXZ`5i)_r5 zw%WWCef`63SzM-v%v{Pby*js1#7Ok1*E;yg=bvilzASXFY&v<5d~c*`cINoN?>^UJ zI-PFvr$rrgi34Fq`o)|d+yoNY!9<8K0cuD>7(GD$JWl}$CQYy7TN>f`lj=uibIvn zDp{q4u}u>%nkTVZp}hw-@Na#%y~3rU(5gV!DfG!VKD}EpGpt6rj3ctiTO}`+AFusF z;G-I_U$~jrn7~Ch!jd zEk2sNDwivaT(s3+{^J|aRbFt{^ZAzxeT(yHi2ef`__kyMJvMa|qYmZQh^Nep%r|>2 z%U0AaKefu&w)3RU;|N2P@L8=Bx{sl8!hOFz>>>v);Se<*wTwJ`E< z>s8GvFW*+X_a9xnLXZ%Z=Nx-g4yEyR^9lCD)Ke9`m5Xt^+2qOo<1N+OW`eJbv<2TR zj9-pf!0W5fCldn&^_HSWKQ%hJ9LF8XlRDkRL-jdX0kBl@o85dx`DYX}?}= zR=xClw5$15(&q62adq-UZ@0xWj&9ta`$y)7vPjh{;5-$6>hJYs@Z<-T651>(o=saU zy!74W!A@?qiRU_q>qeG|aT!D3aQ7o`%P!s3m%>kQkn=;LF^g06)Y$`^rxtdeLf7>)#foyYwqGjdCMl!PcyC`*}F|RjZ>d0?i;^B zt#$>jI^(S#^yzNpEGyYfjyMzY?HCh*Uv#)>MRW0tDY;tNi zs?PSGGj<)hjF?%Kr$1!79|h$ci<^4e_EL^Af^P4--fkM=nWLe1Mp*xk!Iy^tz5{$} zNWSbG2CZ%z_sgT8@!aKy0i9#QwH422zXag9tkdcB++Mez@gp};C>Ws(f`IlXBi3j3y3G%9pKR1q%`=Z)Jf4%LV zH(>wL;AKR>nSepy7QnOp5az6Ijk=fFR6SCSV^*=u3X7 zhbZ;o62e&odE!`Y9+JBFJ=YsKI#7> zr7HP46Q{E#-N^i(9U4rRxUo2uz^Xf{D}zBF0)+NzS+!)8v(6phG>eVAufb9lR~0cb zZ@|5Ecjc~1;0(2nw)FjNO7rqI=YyvtcK&|b-SO*(LK5MXIlZWUq}c3yjNzqbJs#|k zgI<`T6ucd z^O@_!lfkXI$auyj!Id_>$x9nI??P92J|B83=G8LF$rXbhlt0n`NnA7V(rPT?6W(`h zHqI&+W@?tYTV}96qna>-T{7aj*&KK~HC3_S;fxKtMO5H7aGG2%ceaq)2h)Om>IcQn z8MCd_%wyn*3@Lk2M7>ubiy)Or>FAb>3-_j)tEpP(5qGUL%^qtZZf8 z>-th?q{rw1hvH3u4MEw&M&)%jdgOECe6Fkf9D_5DFQplRu`0t1yP<+Li?lB^S*g_lW1d#(+`;=%VNHp5B*Ujd zw*XbED*5H}t*?C-xQXspmZB^2YzsVW-EzN@Mu>la(Tl8p?By+4Q=@*+pM0p%@ed|~ zJVL9J3@z$_$4>veQxQ1i{$mfg{V#z8a_3dUb6IuZYQPOQWj{FER^>zqHrIBkyRe{_ zc!^q8bbn&77$uNzE!{Xnqbs|eF@&&_X`;nv3?6OTzm0tH@yC7Ah?^D=cIkzp?;>F~ z(&wLKJ&Zz%#&W>Kg=-c?B50by_Hf03yziHkBoiRa3`mNHj0kVS{_hy37E~+M4$7_) zl+J|nn!hQahqS4&NV;fbbqDOhjqPaJiTxodO?nSwd* z#dl|cGX`ti3MB~n4rN<^frXDAE8oHNg1$YlPNGU=8*jE{#dwPBC7bS7?{ z;mf&dk8L(dQ=B(IBh1#Rioff{@Uus>+!dT1*C*MO*uslO zrsnUKhu*ecTX%03Qlst!2AvjnB%eCDw({OW?)ze4Ui1LJ6Zee41?a_ddgeVlO0C!e z&`c`SwO24fL}1N&GWWex7lpfAH;6PyuA77`P1Kbkadm_)2kgvQlgZ=QckfmSc5=2@ zagssy`d$b5-wEXcJ;JwbNIZ2)Z=GnZ`1>pyKveNK_pE{7U!pfH8g~PtTl_T=3@)!9 z88^RIpY`QWaomJN8pPMB;&&7EByu1}CBHnQQT@-WdkQ!ju1P9?MGdH1 zEyCxLNSW5U4Zds`dgr)FddYFhL4tQ;edPq+C_`UB8Xy|BD6i7`DRRh%mB@j!u@akrRFfHu}JxMUm{iyh`h~a=3C(-WL#6zt#cebyHX)>X*C8 zcj1zO&^9HWb6XQGZnquHB)PmrXIdsh+LO294^d7mB)4vDLi$SWY-r{GSha8l)EgW& zvJXA*vpbYPI(D{KV#84sIqVZa{J*s~r?_u>{MvqqCE_Q4{G}TxFmw&3a(24a9!^R< z#ympy`a4gKV){wNQbsOE0~9h^o9=|&thmHGZOc3UWJ`?>UsEn)>-(m3X7ovv;)bE? z|5gb3diQnipybguiOB<%BsW3v8hRs0?5xwtl`q8Ec-f>Mi3Z$`+_wQdBibLnKl)~c z+*jRj&-DY1hP%O2!+x`x5lT${2=^HF{`?uEO@FB_Su z1VlV5HqII>I1Gv>xo8=#bS5>@FWmiw&eliKA=>@t>y;x8?TW%;bNvlMb=6-0b=K>} z=6ACX{bz)aR{Xy%JbpR4)bn|4rT1&T004@xvLL6ro#V?uBfO3xXHq`ddVMV4rBivmx{|*HG?efxj&)< zI0}pYb)sfrqW1a5OSravg#!EfTN50c0$rTg$C~n$<+-|uskdT1Z^eGcjueowLk+a) zrb89^A2}sCo|T*bh}Hc`;!N~;wD7+HMHL*YC3n`Cbt6UPf_r(>g4+it*`^_(e_uEu zGiD^a>*DL~x;`-C6WX(X73nN~LRe_8w)oN5hb_7AdY@JFzWCFn?jqP1JzvlQ z5LK`|b@5Mlz^A*pEmzcy_aH(K%gf6@ULwRVc&H1X@1|{$(6)7d6etfe#B5dSR7z#s z{B)Z(gIwB@H!qjclst(C#uutUqBJku@t>RsAi9I&7>hrpP>nLW2z z_1TFGC(rn$sFN)|Br%ruNC!$vIcqs)q(HG~WpQNuDC-W3Zk{z%5x;Z?)FZrDt$B*b zmHGD77(LynSkwTZuOcX2W#99tZsM>z+rO~$3M^lr6~Y12PuH|lFv_T1kM;zXCdCbb z;>qh5chFo`d#m3M;rKs^y%EjI81cNexG<7_Lw@8BYp$OQf%Jz3t52Q@o2>ORx)M@i1TN=ljpGDpj|w&8x>5C;ELYx~7o8n1SYBG_vA!5%{;GaBu__~+b=`&ll*$4( zSoh3H(Xtpg>)l?$5limM!oW&Xf4@56`xVLemy{gFYT`@@lM*@+Z!EeOrGs~s1`rtH zSA=;w`=34crE2uo5KAe<`Z$p*eJi;+F~#_?&kts+H_Ui<7Ndk05~qiAye8ybc0Cfi z+pqVVmPeyrF3OmmWao92cz{w+o%sOpmHz03uVW$i6UbxM+<`?FV!S5i;-N;QzPWuD z%463f;oHj#9I#Zsy`J4Y|8*=r>WtgVJWlI_Hc+JWaZs=0j|120qq+@OTn-!8xqk3g z_#uaoqZ9&=_DPgx&d!sQAhs~?c_7sB%P~*l8svnJRqFFg)yQY-x1&C}SU;{GG39m_ zM(7sL$YezN+26fAbTbP9!du=!wAXpf6!%RJ2Vq03-9L1mCW3HJuc*(B_bdM!Gg&nY zr`HF?{}qYObE5p6J(C6{OLk-?Z}+dqHMFYRrjsL2IopF&!SvLTO9px>#-Zs6vJ}Z{ zXk-)!!*nUbyW6CfTtCYqP7|@%2Yc^#W~8aO8}EwJ@N}!m>y5m)+S&LInZ|H5ivK{p z-Yp_4T5(ChCk?``f3>S-TfUrJO5dphYH(!7p31V~sivkrAQ1F_j@Kg-n?VbO#@GjB z`X>coc3pRi*_lqhWN)y~;+kZR45Hqky+aZ#uIlU>Y{7WZ9yQxHG{{?%xVjqMYPUEw+x;(fbtHL=Sx~YkE0;2*F0#{gjasI=jB&RDY}-Ru+pm6*pf-z9{VuKfKTAc zacZ$y+G>ZyzB=@HcNIQkX;KcA-q4t(xY`}aAID3V-rd5(#>;Pd$CGdc+R~#7=3fL| zi>9wH6PuT1z5*Y{zB#uIMqP|v&=MAdZsDP~>z*=b6Zlo(LEKd~$d;zm8?d+X28bGP z0~9mIxoBk1yqd0ni2?v(a)%r@(7no@gI#J^a8=|N z8p1w#CNHs^M%`+J6%;vO17TO~J17TmhZMjaJoKU}14$cxwjQ4aSp=O2VcO^=1b3mh z-EGMohSD&wnYi2aJ<>}?Z(Fe`1`xKG%@r|egJ*ME&ceCIB?O88xl_K z1+Yh`{@Ltl&dk-rGY1dz(7itYxT6_P_fod%g(idn(ZVV%eCcSU(9aKNPNBebxn7CL zG!9Wj*5Q;v3@^Iqw=LkQox7?x>81RQKcjWg1M0R<6AiuqJ$%`Ot<`6?lk`)!^3nj_ zX=o7q2v|B8s^9_TMb`-^)fdSzGuqQHi!|&9k~O-*;0NeMxd(O&KzjiK3Dssj5~CM& zVRK!)!Rl9LUiZ$+Ed_diR}eS@w3?jdv`5aA8(>?i06hXw^uBMbYeDp)M3G!xXcI8n z-Q*^4I6v_Ns0s=jhi&US4Y}zFOi3scSg;c#-SeA9eLUkGDRRyV!bX`nm+_(NY{TK* zvVgQHT4z~;MvWsqJY%2$Xj{Fzm}@Ar)ME0|K>F)h2$TF;z2dp_(ldqTXM&bMBrR^B zwFKK`vnaw)S^}Wj{JYHEN=%zXT}_#C+4+5IW*qa_RzL7nm>Be$$1zNt};S%&6UFUw~$tK=! zK(uez?00AybTLcn6`9HK zy%x!z@DS+Xp=bjM)HKKAc1uEKfsSdkows?Is*b%@k5@tZHv4oWiY`?osVtLe4mi(x zfc3LQBjI*xA_7ljPI3CeT7p#3$cjc-#VcU3q%?-RD2n^>)f;OOfn*3%Sn-aA*#%DL zHH@`DG&rnBU$q)`p^^MDu#Ezj6oCr}X9J$@3JVOS0wC*lExk06Be|iZHg205?=Vxw z*53YxL)llSOzKN9NM}Vpq}H!sCoh0=HwBqpzSbp>P114&?*Tj%XOD*8w7&+;q+!DT zVoe7nTiyn=qBgiv!%rufKp=eMtKS7M)6N7#tRF3 z0Pc~$E_8Lu$RNewDoi)(r(@E0<$?uJB7cK^VwlKB3%^p&_}dE?EcvI$Ejzcj+VE=r zV7kr+5*qnoXm_7%~)mg(5=$Ki$UczW=)eE#Q&Gp5+F zu!OOmYMa6smiWn=$XJeltuHd{>!}dm@^nePFTzQnx8A%sKQmt5e~g80$p0t>`r7tv z^7?lkDDGwC0ZR2Ex2tY;`$N?>Prkj;rD)_Yh&aQGmx0BSxTBx$W!))%+Jw0V&@xFZ zlr-O0ORh%gv91DiuycXfe$+*)10Ye`PZeIOo5fTf#^cj{bjcIJ@}9Ah`f;v>ant6t zJ@Ein*aQ(K)CVA+*$c<@+{Pu@cunzl*_(i@bv|zeYnHjA<44we$itwve0kr|*oIH{ zJjRRi3K%+BUX@t$ZcHC~VC-jWH-ol(McsFd0P&lPXW{e@`?X$m`a}g^yqNVkGyfQb z)CX@qfIROb%|UJdswzEm;y~MaI8j(XQ!C`l=V}~jvY&F5leU=lzN`FrP&=p8I?pfu zGXOl=SfNHUW;1X9D)T^nV;I&fKOS4WEC`!A3| zJ~RC_QTR*om1#XnV(dh34G9qs3JNu#1ahw>Pcw-0sYj0`bS*=l+fX|7r69uMs;!FTMJS$rsP)3o^S*-uJOPvPV2&w*=&lKs>%Y&RmOPk ztqxX!@h+W1p_L3A69KoW`YX5Os#~Wyzg-=a3|22~4RC4yx4AL@U&RMC*!O>nn9IVE Yd6_az#a9x*_lF_orWliQqZ6n92gE5aHUIzs diff --git a/jest.config.ts b/jest.config.ts deleted file mode 100644 index 59f99ba5..00000000 --- a/jest.config.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { Config } from "@jest/types"; -// Sync object -const jestConfig: Config.InitialOptions = { - verbose: true, - transform: { - "^.+\\.tsx?$": "ts-jest", - }, - moduleNameMapper: { - "^@bc/(.*)$": "/src/$1", - }, - clearMocks: true, - resetMocks: true, - coveragePathIgnorePatterns: ["/node_modules/", "/test/"], - testTimeout: 120000 -}; -export default jestConfig; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index aed41d5e..00000000 --- a/package-lock.json +++ /dev/null @@ -1,13295 +0,0 @@ -{ - "name": "@kie/build-chain-action", - "version": "3.0.10", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@kie/build-chain-action", - "version": "3.0.10", - "license": "ISC", - "dependencies": { - "@actions/artifact": "^1.1.0", - "@actions/core": "^1.8.2", - "@actions/exec": "^1.1.1", - "@actions/glob": "^0.3.0", - "@kie/build-chain-configuration-reader": "^3.0.9", - "@octokit/rest": "^18.12.0", - "@octokit/types": "^6.39.0", - "commander": "^9.3.0", - "fs-extra": "^10.1.0", - "http-proxy-agent": "^5.0.0", - "reflect-metadata": "^0.1.13", - "simple-git": "^3.7.1", - "typedi": "^0.10.0" - }, - "bin": { - "build-chain": "build/index.js" - }, - "devDependencies": { - "@kie/act-js": "^2.0.0", - "@kie/mock-github": "^1.0.0", - "@types/fs-extra": "^9.0.13", - "@types/jest": "^28.1.1", - "@types/node": "^17.0.41", - "@typescript-eslint/eslint-plugin": "^5.27.1", - "@typescript-eslint/parser": "^5.27.1", - "@vercel/ncc": "^0.34.0", - "eslint": "^8.17.0", - "husky": "^8.0.1", - "jest": "^28.1.1", - "jest-sonar-reporter": "^2.0.0", - "nock": "^13.2.7", - "npm-run-all": "^4.1.5", - "ts-jest": "^28.0.4", - "ts-node": "^10.8.1", - "tsc-alias": "^1.8.2", - "typescript": "^4.7.3" - }, - "engines": { - "node": ">= 14.19.3" - } - }, - "../act-js": { - "name": "@kie/act-js", - "version": "1.1.1", - "extraneous": true, - "license": "SEE LICENSE IN LICENSE", - "dependencies": { - "@kie/mock-github": "^0.1.2", - "express": "^4.18.1", - "yaml": "^2.1.3" - }, - "bin": { - "act-js": "build/bin/act" - }, - "devDependencies": { - "@octokit/rest": "^19.0.5", - "@types/express": "^4.17.13", - "@types/jest": "^28.1.3", - "@types/node": "^18.0.0", - "@typescript-eslint/eslint-plugin": "^5.29.0", - "@typescript-eslint/parser": "^5.29.0", - "axios": "^1.1.3", - "eslint": "^8.18.0", - "jest": "^28.1.1", - "jest-sonar-reporter": "^2.0.0", - "prettier": "^2.7.1", - "ts-jest": "^28.0.5", - "ts-node": "^10.8.1", - "tsc-alias": "^1.7.1", - "typescript": "^4.7.4" - } - }, - "../build-chain-configuration-reader": { - "name": "@kie/build-chain-configuration-reader", - "version": "3.0.8", - "extraneous": true, - "license": "Apache-2.0", - "dependencies": { - "ajv": "^8.11.0", - "axios": "^0.27.2", - "yaml": "^2.1.1" - }, - "devDependencies": { - "@types/jest": "^28.1.1", - "@types/node": "^17.0.41", - "@typescript-eslint/eslint-plugin": "^5.27.1", - "@typescript-eslint/parser": "^5.27.1", - "eslint": "^8.17.0", - "husky": "^8.0.1", - "jest": "^28.1.1", - "jest-sonar-reporter": "^2.0.0", - "nock": "^13.2.9", - "ts-jest": "^28.0.4", - "ts-node": "^10.8.1", - "tsc-alias": "^1.7.1", - "typescript": "^4.7.3" - } - }, - "node_modules/@actions/artifact": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@actions/artifact/-/artifact-1.1.0.tgz", - "integrity": "sha512-shO+w/BAnzRnFhfsgUao8sxjByAMqDdfvek2LLKeCueBKXoTrAcp7U/hs9Fdx+z9g7Q0mbIrmHAzAAww4HK1bQ==", - "dependencies": { - "@actions/core": "^1.2.6", - "@actions/http-client": "^2.0.1", - "tmp": "^0.2.1", - "tmp-promise": "^3.0.2" - } - }, - "node_modules/@actions/core": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz", - "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==", - "dependencies": { - "@actions/http-client": "^2.0.1", - "uuid": "^8.3.2" - } - }, - "node_modules/@actions/exec": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", - "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", - "dependencies": { - "@actions/io": "^1.0.1" - } - }, - "node_modules/@actions/glob": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.3.0.tgz", - "integrity": "sha512-tJP1ZhF87fd6LBnaXWlahkyvdgvsLl7WnreW1EZaC8JWjpMXmzqWzQVe/IEYslrkT9ymibVrKyJN4UMD7uQM2w==", - "dependencies": { - "@actions/core": "^1.2.6", - "minimatch": "^3.0.4" - } - }, - "node_modules/@actions/http-client": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz", - "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", - "dependencies": { - "tunnel": "^0.0.6" - } - }, - "node_modules/@actions/io": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.2.tgz", - "integrity": "sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==" - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.13.tgz", - "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.13.tgz", - "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.13", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.13", - "@babel/types": "^7.18.13", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.13.tgz", - "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.13", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.13.tgz", - "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.13.tgz", - "integrity": "sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.13", - "@babel/types": "^7.18.13", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.13.tgz", - "integrity": "sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.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" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/core": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", - "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/reporters": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^28.1.3", - "jest-config": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-resolve-dependencies": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "jest-watcher": "^28.1.3", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/core/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/@jest/environment": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", - "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", - "dev": true, - "dependencies": { - "expect": "^28.1.3", - "jest-snapshot": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", - "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect-utils/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", - "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", - "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/types": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", - "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", - "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.13", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", - "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", - "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.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" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@kie/act-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@kie/act-js/-/act-js-2.0.0.tgz", - "integrity": "sha512-tZVLZwyKXll/clwC4OXREax9LCECmzVpvRgVJUYPGqhwQRY64kpdcQeId2c2wqgLXzo3Cfd5E/i39nspFwfA6g==", - "dev": true, - "dependencies": { - "@kie/mock-github": "^1.0.0", - "ajv": "^8.12.0", - "express": "^4.18.1", - "yaml": "^2.1.3" - }, - "bin": { - "act-js": "build/bin/act" - } - }, - "node_modules/@kie/act-js/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@kie/act-js/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/@kie/build-chain-configuration-reader": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@kie/build-chain-configuration-reader/-/build-chain-configuration-reader-3.0.9.tgz", - "integrity": "sha512-gJYFlIraEDEcuQHAY7vb5vLJUj4smRhuBo9sTEZGyccp4xjckCXyKULqjU51pWc1goIM0k224c6jjTIqZFthUQ==", - "dependencies": { - "ajv": "^8.11.0", - "axios": "^0.27.2", - "yaml": "^2.1.1" - } - }, - "node_modules/@kie/build-chain-configuration-reader/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@kie/build-chain-configuration-reader/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/@kie/mock-github": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@kie/mock-github/-/mock-github-1.0.0.tgz", - "integrity": "sha512-Cb1ogHO6Ebf4OR9zFTNPE04ZOS7r1saW/JEiX0m9NEOLbIhcsIYE8Nft+jB6ruho8yVX79fou/bDmQoEurztQA==", - "dev": true, - "dependencies": { - "@octokit/openapi-types-ghec": "^14.0.0", - "ajv": "^8.11.0", - "express": "^4.18.1", - "fast-glob": "^3.2.12", - "fs-extra": "^10.1.0", - "nock": "^13.2.7", - "simple-git": "^3.8.0", - "totalist": "^3.0.0" - } - }, - "node_modules/@kie/mock-github/node_modules/ajv": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", - "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@kie/mock-github/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/@kwsites/file-exists": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", - "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", - "dependencies": { - "debug": "^4.1.1" - } - }, - "node_modules/@kwsites/promise-deferred": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", - "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==" - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", - "dependencies": { - "@octokit/types": "^6.0.3" - } - }, - "node_modules/@octokit/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz", - "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==", - "peer": true, - "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": "^8.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core/node_modules/@octokit/auth-token": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz", - "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==", - "peer": true, - "dependencies": { - "@octokit/types": "^8.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core/node_modules/@octokit/endpoint": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz", - "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==", - "peer": true, - "dependencies": { - "@octokit/types": "^8.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core/node_modules/@octokit/graphql": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz", - "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==", - "peer": true, - "dependencies": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^8.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core/node_modules/@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", - "peer": true - }, - "node_modules/@octokit/core/node_modules/@octokit/request": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz", - "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==", - "peer": true, - "dependencies": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core/node_modules/@octokit/request-error": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz", - "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==", - "peer": true, - "dependencies": { - "@octokit/types": "^8.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core/node_modules/@octokit/types": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.0.0.tgz", - "integrity": "sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==", - "peer": true, - "dependencies": { - "@octokit/openapi-types": "^14.0.0" - } - }, - "node_modules/@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", - "dependencies": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", - "dependencies": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "12.11.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", - "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" - }, - "node_modules/@octokit/openapi-types-ghec": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types-ghec/-/openapi-types-ghec-14.0.0.tgz", - "integrity": "sha512-xhd9oEvn2aroGn+sk09Ptx/76Y7aKU0EIgHukHPCU1+rGJreO36baEEk6k8ZPblieHNM39FcykJQmtDrETm0KA==", - "dev": true - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", - "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", - "dependencies": { - "@octokit/types": "^6.40.0" - }, - "peerDependencies": { - "@octokit/core": ">=2" - } - }, - "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { - "version": "6.41.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", - "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", - "dependencies": { - "@octokit/openapi-types": "^12.11.0" - } - }, - "node_modules/@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", - "dependencies": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", - "dependencies": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "node_modules/@octokit/rest": { - "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", - "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", - "dependencies": { - "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.8", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^5.12.0" - } - }, - "node_modules/@octokit/rest/node_modules/@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", - "dependencies": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/rest/node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", - "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", - "dependencies": { - "@octokit/types": "^6.39.0", - "deprecation": "^2.3.1" - }, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/types": { - "version": "6.39.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.39.0.tgz", - "integrity": "sha512-Mq4N9sOAYCitTsBtDdRVrBE80lIrMBhL9Jbrw0d+j96BAzlq4V+GLHFJbHokEsVvO/9tQupQdoFdgVYhD2C8UQ==", - "dependencies": { - "@octokit/openapi-types": "^12.7.0" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.24.28", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.28.tgz", - "integrity": "sha512-dgJd3HLOkLmz4Bw50eZx/zJwtBq65nms3N9VBYu5LTjJ883oBFkTyXRlCB/ZGGwqYpJJHA5zW2Ibhl5ngITfow==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "node_modules/@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.0.tgz", - "integrity": "sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.1.tgz", - "integrity": "sha512-C2p7yqleUKtCkVjlOur9BWVA4HgUQmEj/HWCt5WzZ5mLXrWnyIfl0wGuArc+kBXsy0ZZfLp+7dywB4HtSVYGVA==", - "dev": true, - "dependencies": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "17.0.42", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.42.tgz", - "integrity": "sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", - "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.11.tgz", - "integrity": "sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.28.0.tgz", - "integrity": "sha512-DXVU6Cg29H2M6EybqSg2A+x8DgO9TCUBRp4QEXQHJceLS7ogVDP0g3Lkg/SZCqcvkAP/RruuQqK0gdlkgmhSUA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.28.0", - "@typescript-eslint/type-utils": "5.28.0", - "@typescript-eslint/utils": "5.28.0", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.28.0.tgz", - "integrity": "sha512-ekqoNRNK1lAcKhZESN/PdpVsWbP9jtiNqzFWkp/yAUdZvJalw2heCYuqRmM5eUJSIYEkgq5sGOjq+ZqsLMjtRA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.28.0", - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/typescript-estree": "5.28.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.28.0.tgz", - "integrity": "sha512-LeBLTqF/he1Z+boRhSqnso6YrzcKMTQ8bO/YKEe+6+O/JGof9M0g3IJlIsqfrK/6K03MlFIlycbf1uQR1IjE+w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/visitor-keys": "5.28.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.28.0.tgz", - "integrity": "sha512-SyKjKh4CXPglueyC6ceAFytjYWMoPHMswPQae236zqe1YbhvCVQyIawesYywGiu98L9DwrxsBN69vGIVxJ4mQQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/utils": "5.28.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.28.0.tgz", - "integrity": "sha512-2OOm8ZTOQxqkPbf+DAo8oc16sDlVR5owgJfKheBkxBKg1vAfw2JsSofH9+16VPlN9PWtv8Wzhklkqw3k/zCVxA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.28.0.tgz", - "integrity": "sha512-9GX+GfpV+F4hdTtYc6OV9ZkyYilGXPmQpm6AThInpBmKJEyRSIjORJd1G9+bknb7OTFYL+Vd4FBJAO6T78OVqA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/visitor-keys": "5.28.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.28.0.tgz", - "integrity": "sha512-E60N5L0fjv7iPJV3UGc4EC+A3Lcj4jle9zzR0gW7vXhflO7/J29kwiTGITA2RlrmPokKiZbBy2DgaclCaEUs6g==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.28.0", - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/typescript-estree": "5.28.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.28.0.tgz", - "integrity": "sha512-BtfP1vCor8cWacovzzPFOoeW4kBQxzmhxGoOpt0v1SFvG+nJ0cWaVdJk7cky1ArTcFHHKNIxyo2LLr3oNkSuXA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.28.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@vercel/ncc": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz", - "integrity": "sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==", - "dev": true, - "bin": { - "ncc": "dist/ncc/cli.js" - } - }, - "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==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "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" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "node_modules/babel-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", - "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", - "dev": true, - "dependencies": { - "@jest/transform": "^28.1.3", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.1.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", - "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@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-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", - "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^28.1.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "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/before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, - "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/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001383", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001383.tgz", - "integrity": "sha512-swMpEoTp5vDoGBZsYZX7L7nXHe6dsHxi9o6/LKf/f0LukVtnrxly5GVb/fWdCDTqi/yw6Km6tiJ0pmBacm0gbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "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" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", - "dev": true - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", - "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "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==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/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==", - "dev": true, - "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/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "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/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "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==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.230", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.230.tgz", - "integrity": "sha512-3pwjAK0qHSDN9+YAF4fJknsSruP7mpjdWzUSruIJD/JCH77pEh0SorEyb3xVaKkfwk2tzjOt2D8scJ0KAdfXLA==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", - "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "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.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "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.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/espree": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", - "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/expect/node_modules/diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "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/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/express/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==", - "dev": true, - "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/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "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" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "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==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "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/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "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==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "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" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "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==", - "dev": true, - "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/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/husky": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.1.tgz", - "integrity": "sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==", - "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "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==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "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.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "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==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "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-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==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.1.tgz", - "integrity": "sha512-qw9YHBnjt6TCbIDMPMpJZqf9E12rh6869iZaN08/vpOGgHJSAaLLUn6H8W3IAEuy34Ls3rct064mZLETkxJ2XA==", - "dev": true, - "dependencies": { - "@jest/core": "^28.1.1", - "@jest/types": "^28.1.1", - "import-local": "^3.0.2", - "jest-cli": "^28.1.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", - "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-changed-files/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-circus": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", - "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "p-limit": "^3.1.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-config": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", - "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.3", - "@jest/types": "^28.1.3", - "babel-jest": "^28.1.3", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^28.1.3", - "jest-environment-node": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-config/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-config/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", - "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", - "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "jest-util": "^28.1.3", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-environment-node": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", - "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", - "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", - "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-leak-detector/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-message-util/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-mock": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", - "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", - "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", - "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", - "dev": true, - "dependencies": { - "jest-regex-util": "^28.0.2", - "jest-snapshot": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runner": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", - "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/environment": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "graceful-fs": "^4.2.9", - "jest-docblock": "^28.1.1", - "jest-environment-node": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-leak-detector": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-resolve": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-util": "^28.1.3", - "jest-watcher": "^28.1.3", - "jest-worker": "^28.1.3", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runner/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-runtime": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", - "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/globals": "^28.1.3", - "@jest/source-map": "^28.1.2", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", - "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "natural-compare": "^1.4.0", - "pretty-format": "^28.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-sonar-reporter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jest-sonar-reporter/-/jest-sonar-reporter-2.0.0.tgz", - "integrity": "sha512-ZervDCgEX5gdUbdtWsjdipLN3bKJwpxbvhkYNXTAYvAckCihobSLr9OT/IuyNIRT1EZMDDwR6DroWtrq+IL64w==", - "dev": true, - "dependencies": { - "xml": "^1.0.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", - "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "leven": "^3.1.0", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-validate/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "dev": true, - "dependencies": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-worker/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jest/node_modules/jest-cli": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", - "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", - "dev": true, - "dependencies": { - "@jest/core": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "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==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "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/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "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/mylas": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/mylas/-/mylas-2.1.13.tgz", - "integrity": "sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==", - "dev": true, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/raouldeheer" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/nock": { - "version": "13.2.7", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.7.tgz", - "integrity": "sha512-R6NUw7RIPtKwgK7jskuKoEi4VFMqIHtV2Uu9K/Uegc4TA5cqe+oNMYslZcUmnVNQCTG6wcSqUBaGTDd7sq5srg==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.21", - "propagate": "^2.0.0" - }, - "engines": { - "node": ">= 10.13" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm-run-all/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/npm-run-all/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/npm-run-all/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/npm-run-all/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-run-all/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "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==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "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.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "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" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/plimit-lit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.5.0.tgz", - "integrity": "sha512-Eb/MqCb1Iv/ok4m1FqIXqvUKPISufcjZ605hl3KM/n8GaX8zfhtgdLwZU3vKjuHGh2O9Rjog/bHTq8ofIShdng==", - "dev": true, - "dependencies": { - "queue-lit": "^1.5.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "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==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-lit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/queue-lit/-/queue-lit-1.5.0.tgz", - "integrity": "sha512-IslToJ4eiCEE9xwMzq3viOO5nH8sUWUCwoElrhNMozzr9IIt2qqvB4I+uHu/zJTQVqc9R5DFwok4ijNK1pU3fA==", - "dev": true - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "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/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==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "dev": true, - "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/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "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": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "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/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "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/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", - "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/simple-git": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.16.0.tgz", - "integrity": "sha512-zuWYsOLEhbJRWVxpjdiXl6eyAyGo/KzVW+KFhhw9MqEEJttcq+32jTWSGyxTdf9e/YCohxRE+9xpWFj9FdiJNw==", - "dependencies": { - "@kwsites/file-exists": "^1.1.1", - "@kwsites/promise-deferred": "^1.1.1", - "debug": "^4.3.4" - }, - "funding": { - "type": "github", - "url": "https://github.com/steveukx/git-js?sponsor=1" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", - "dev": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.padend": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", - "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/tmp-promise": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", - "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", - "dependencies": { - "tmp": "^0.2.0" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/totalist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", - "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", - "dev": true, - "engines": { - "node": ">=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/ts-jest": { - "version": "28.0.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.5.tgz", - "integrity": "sha512-Sx9FyP9pCY7pUzQpy4FgRZf2bhHY3za576HMKJFs+OnQ9jS96Du5vNsDKkyedQkik+sEabbKAnCliv9BEsHZgQ==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^28.0.0", - "json5": "^2.2.1", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "^21.0.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "babel-jest": "^28.0.0", - "jest": "^28.0.0", - "typescript": ">=4.3" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/ts-node": { - "version": "10.8.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", - "integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tsc-alias": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.2.tgz", - "integrity": "sha512-ukBkcNekOgwtnSWYLD5QsMX3yQWg7JviAs8zg3qJGgu4LGtY3tsV4G6vnqvOXIDkbC+XL9vbhObWSpRA5/6wbg==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.3", - "commander": "^9.0.0", - "globby": "^11.0.4", - "mylas": "^2.1.9", - "normalize-path": "^3.0.0", - "plimit-lit": "^1.2.6" - }, - "bin": { - "tsc-alias": "dist/bin/index.js" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedi": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/typedi/-/typedi-0.10.0.tgz", - "integrity": "sha512-v3UJF8xm68BBj6AF4oQML3ikrfK2c9EmZUyLOfShpJuItAqVBHWP/KtpGinkSsIiP6EZyyb6Z3NXyW9dgS9X1w==" - }, - "node_modules/typescript": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", - "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "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/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==", - "dev": true, - "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==", - "dev": true, - "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/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", - "dev": true - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.3.tgz", - "integrity": "sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==", - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "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.0.0" - }, - "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==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@actions/artifact": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@actions/artifact/-/artifact-1.1.0.tgz", - "integrity": "sha512-shO+w/BAnzRnFhfsgUao8sxjByAMqDdfvek2LLKeCueBKXoTrAcp7U/hs9Fdx+z9g7Q0mbIrmHAzAAww4HK1bQ==", - "requires": { - "@actions/core": "^1.2.6", - "@actions/http-client": "^2.0.1", - "tmp": "^0.2.1", - "tmp-promise": "^3.0.2" - } - }, - "@actions/core": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz", - "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==", - "requires": { - "@actions/http-client": "^2.0.1", - "uuid": "^8.3.2" - } - }, - "@actions/exec": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", - "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", - "requires": { - "@actions/io": "^1.0.1" - } - }, - "@actions/glob": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.3.0.tgz", - "integrity": "sha512-tJP1ZhF87fd6LBnaXWlahkyvdgvsLl7WnreW1EZaC8JWjpMXmzqWzQVe/IEYslrkT9ymibVrKyJN4UMD7uQM2w==", - "requires": { - "@actions/core": "^1.2.6", - "minimatch": "^3.0.4" - } - }, - "@actions/http-client": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz", - "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", - "requires": { - "tunnel": "^0.0.6" - } - }, - "@actions/io": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.2.tgz", - "integrity": "sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==" - }, - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.13.tgz", - "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==", - "dev": true - }, - "@babel/core": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.13.tgz", - "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.13", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.13", - "@babel/types": "^7.18.13", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.13.tgz", - "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", - "dev": true, - "requires": { - "@babel/types": "^7.18.13", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.13.tgz", - "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - } - }, - "@babel/traverse": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.13.tgz", - "integrity": "sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.13", - "@babel/types": "^7.18.13", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.13.tgz", - "integrity": "sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.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" - } - }, - "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", - "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/reporters": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^28.1.3", - "jest-config": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-resolve-dependencies": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "jest-watcher": "^28.1.3", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "@jest/environment": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", - "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3" - } - }, - "@jest/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", - "dev": true, - "requires": { - "expect": "^28.1.3", - "jest-snapshot": "^28.1.3" - } - }, - "@jest/expect-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", - "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", - "dev": true, - "requires": { - "jest-get-type": "^28.0.2" - }, - "dependencies": { - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - } - } - }, - "@jest/fake-timers": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", - "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - } - }, - "@jest/globals": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", - "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/types": "^28.1.3" - } - }, - "@jest/reporters": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", - "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^9.0.1" - } - }, - "@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.24.1" - } - }, - "@jest/source-map": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", - "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.13", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - } - }, - "@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", - "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", - "dev": true, - "requires": { - "@jest/test-result": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "slash": "^3.0.0" - } - }, - "@jest/transform": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", - "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - } - }, - "@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.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" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@kie/act-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@kie/act-js/-/act-js-2.0.0.tgz", - "integrity": "sha512-tZVLZwyKXll/clwC4OXREax9LCECmzVpvRgVJUYPGqhwQRY64kpdcQeId2c2wqgLXzo3Cfd5E/i39nspFwfA6g==", - "dev": true, - "requires": { - "@kie/mock-github": "^1.0.0", - "ajv": "^8.12.0", - "express": "^4.18.1", - "yaml": "^2.1.3" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "@kie/build-chain-configuration-reader": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@kie/build-chain-configuration-reader/-/build-chain-configuration-reader-3.0.9.tgz", - "integrity": "sha512-gJYFlIraEDEcuQHAY7vb5vLJUj4smRhuBo9sTEZGyccp4xjckCXyKULqjU51pWc1goIM0k224c6jjTIqZFthUQ==", - "requires": { - "ajv": "^8.11.0", - "axios": "^0.27.2", - "yaml": "^2.1.1" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - } - } - }, - "@kie/mock-github": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@kie/mock-github/-/mock-github-1.0.0.tgz", - "integrity": "sha512-Cb1ogHO6Ebf4OR9zFTNPE04ZOS7r1saW/JEiX0m9NEOLbIhcsIYE8Nft+jB6ruho8yVX79fou/bDmQoEurztQA==", - "dev": true, - "requires": { - "@octokit/openapi-types-ghec": "^14.0.0", - "ajv": "^8.11.0", - "express": "^4.18.1", - "fast-glob": "^3.2.12", - "fs-extra": "^10.1.0", - "nock": "^13.2.7", - "simple-git": "^3.8.0", - "totalist": "^3.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", - "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "@kwsites/file-exists": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", - "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", - "requires": { - "debug": "^4.1.1" - } - }, - "@kwsites/promise-deferred": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", - "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==" - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", - "requires": { - "@octokit/types": "^6.0.3" - } - }, - "@octokit/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz", - "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==", - "peer": true, - "requires": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "dependencies": { - "@octokit/auth-token": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz", - "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==", - "peer": true, - "requires": { - "@octokit/types": "^8.0.0" - } - }, - "@octokit/endpoint": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz", - "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==", - "peer": true, - "requires": { - "@octokit/types": "^8.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/graphql": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz", - "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==", - "peer": true, - "requires": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^8.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", - "peer": true - }, - "@octokit/request": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz", - "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==", - "peer": true, - "requires": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/request-error": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz", - "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==", - "peer": true, - "requires": { - "@octokit/types": "^8.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "@octokit/types": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.0.0.tgz", - "integrity": "sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==", - "peer": true, - "requires": { - "@octokit/openapi-types": "^14.0.0" - } - } - } - }, - "@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", - "requires": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", - "requires": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/openapi-types": { - "version": "12.11.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", - "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" - }, - "@octokit/openapi-types-ghec": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types-ghec/-/openapi-types-ghec-14.0.0.tgz", - "integrity": "sha512-xhd9oEvn2aroGn+sk09Ptx/76Y7aKU0EIgHukHPCU1+rGJreO36baEEk6k8ZPblieHNM39FcykJQmtDrETm0KA==", - "dev": true - }, - "@octokit/plugin-paginate-rest": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", - "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", - "requires": { - "@octokit/types": "^6.40.0" - }, - "dependencies": { - "@octokit/types": { - "version": "6.41.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", - "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", - "requires": { - "@octokit/openapi-types": "^12.11.0" - } - } - } - }, - "@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "requires": {} - }, - "@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", - "requires": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", - "requires": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "@octokit/rest": { - "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", - "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", - "requires": { - "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.8", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^5.12.0" - }, - "dependencies": { - "@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", - "requires": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/plugin-rest-endpoint-methods": { - "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", - "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", - "requires": { - "@octokit/types": "^6.39.0", - "deprecation": "^2.3.1" - } - } - } - }, - "@octokit/types": { - "version": "6.39.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.39.0.tgz", - "integrity": "sha512-Mq4N9sOAYCitTsBtDdRVrBE80lIrMBhL9Jbrw0d+j96BAzlq4V+GLHFJbHokEsVvO/9tQupQdoFdgVYhD2C8UQ==", - "requires": { - "@octokit/openapi-types": "^12.7.0" - } - }, - "@sinclair/typebox": { - "version": "0.24.28", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.28.tgz", - "integrity": "sha512-dgJd3HLOkLmz4Bw50eZx/zJwtBq65nms3N9VBYu5LTjJ883oBFkTyXRlCB/ZGGwqYpJJHA5zW2Ibhl5ngITfow==", - "dev": true - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.0.tgz", - "integrity": "sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.1.tgz", - "integrity": "sha512-C2p7yqleUKtCkVjlOur9BWVA4HgUQmEj/HWCt5WzZ5mLXrWnyIfl0wGuArc+kBXsy0ZZfLp+7dywB4HtSVYGVA==", - "dev": true, - "requires": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/node": { - "version": "17.0.42", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.42.tgz", - "integrity": "sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==", - "dev": true - }, - "@types/prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", - "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.11.tgz", - "integrity": "sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.28.0.tgz", - "integrity": "sha512-DXVU6Cg29H2M6EybqSg2A+x8DgO9TCUBRp4QEXQHJceLS7ogVDP0g3Lkg/SZCqcvkAP/RruuQqK0gdlkgmhSUA==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.28.0", - "@typescript-eslint/type-utils": "5.28.0", - "@typescript-eslint/utils": "5.28.0", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.28.0.tgz", - "integrity": "sha512-ekqoNRNK1lAcKhZESN/PdpVsWbP9jtiNqzFWkp/yAUdZvJalw2heCYuqRmM5eUJSIYEkgq5sGOjq+ZqsLMjtRA==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.28.0", - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/typescript-estree": "5.28.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.28.0.tgz", - "integrity": "sha512-LeBLTqF/he1Z+boRhSqnso6YrzcKMTQ8bO/YKEe+6+O/JGof9M0g3IJlIsqfrK/6K03MlFIlycbf1uQR1IjE+w==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/visitor-keys": "5.28.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.28.0.tgz", - "integrity": "sha512-SyKjKh4CXPglueyC6ceAFytjYWMoPHMswPQae236zqe1YbhvCVQyIawesYywGiu98L9DwrxsBN69vGIVxJ4mQQ==", - "dev": true, - "requires": { - "@typescript-eslint/utils": "5.28.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.28.0.tgz", - "integrity": "sha512-2OOm8ZTOQxqkPbf+DAo8oc16sDlVR5owgJfKheBkxBKg1vAfw2JsSofH9+16VPlN9PWtv8Wzhklkqw3k/zCVxA==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.28.0.tgz", - "integrity": "sha512-9GX+GfpV+F4hdTtYc6OV9ZkyYilGXPmQpm6AThInpBmKJEyRSIjORJd1G9+bknb7OTFYL+Vd4FBJAO6T78OVqA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/visitor-keys": "5.28.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.28.0.tgz", - "integrity": "sha512-E60N5L0fjv7iPJV3UGc4EC+A3Lcj4jle9zzR0gW7vXhflO7/J29kwiTGITA2RlrmPokKiZbBy2DgaclCaEUs6g==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.28.0", - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/typescript-estree": "5.28.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.28.0.tgz", - "integrity": "sha512-BtfP1vCor8cWacovzzPFOoeW4kBQxzmhxGoOpt0v1SFvG+nJ0cWaVdJk7cky1ArTcFHHKNIxyo2LLr3oNkSuXA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.28.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "@vercel/ncc": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz", - "integrity": "sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "babel-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", - "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", - "dev": true, - "requires": { - "@jest/transform": "^28.1.3", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.1.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", - "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@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-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", - "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^28.1.3", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001383", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001383.tgz", - "integrity": "sha512-swMpEoTp5vDoGBZsYZX7L7nXHe6dsHxi9o6/LKf/f0LukVtnrxly5GVb/fWdCDTqi/yw6Km6tiJ0pmBacm0gbg==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.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" - } - }, - "ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "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==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", - "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "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==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.230", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.230.tgz", - "integrity": "sha512-3pwjAK0qHSDN9+YAF4fJknsSruP7mpjdWzUSruIJD/JCH77pEh0SorEyb3xVaKkfwk2tzjOt2D8scJ0KAdfXLA==", - "dev": true - }, - "emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "dev": true - }, - "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==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "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==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", - "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "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.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "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.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "espree": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", - "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "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" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true - }, - "expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", - "dev": true, - "requires": { - "@jest/expect-utils": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true - }, - "jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "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==", - "dev": true - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "requires": { - "@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": { - "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==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "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==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "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==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "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-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "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" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "husky": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.1.tgz", - "integrity": "sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "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==", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "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==", - "dev": true - }, - "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "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==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "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==", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" - }, - "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==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.1.tgz", - "integrity": "sha512-qw9YHBnjt6TCbIDMPMpJZqf9E12rh6869iZaN08/vpOGgHJSAaLLUn6H8W3IAEuy34Ls3rct064mZLETkxJ2XA==", - "dev": true, - "requires": { - "@jest/core": "^28.1.1", - "@jest/types": "^28.1.1", - "import-local": "^3.0.2", - "jest-cli": "^28.1.1" - }, - "dependencies": { - "jest-cli": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", - "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", - "dev": true, - "requires": { - "@jest/core": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - } - } - } - }, - "jest-changed-files": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", - "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", - "dev": true, - "requires": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - }, - "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - } - } - }, - "jest-circus": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", - "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "p-limit": "^3.1.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true - }, - "jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "jest-config": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", - "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.3", - "@jest/types": "^28.1.3", - "babel-jest": "^28.1.3", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^28.1.3", - "jest-environment-node": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-docblock": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", - "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", - "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "jest-util": "^28.1.3", - "pretty-format": "^28.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "jest-environment-node": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", - "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true - }, - "jest-haste-map": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", - "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - } - }, - "jest-leak-detector": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", - "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", - "dev": true, - "requires": { - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "jest-mock": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", - "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "dev": true - }, - "jest-resolve": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", - "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", - "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", - "dev": true, - "requires": { - "jest-regex-util": "^28.0.2", - "jest-snapshot": "^28.1.3" - } - }, - "jest-runner": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", - "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/environment": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "graceful-fs": "^4.2.9", - "jest-docblock": "^28.1.1", - "jest-environment-node": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-leak-detector": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-resolve": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-util": "^28.1.3", - "jest-watcher": "^28.1.3", - "jest-worker": "^28.1.3", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - } - } - }, - "jest-runtime": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", - "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/globals": "^28.1.3", - "@jest/source-map": "^28.1.2", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - } - }, - "jest-snapshot": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", - "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "natural-compare": "^1.4.0", - "pretty-format": "^28.1.3", - "semver": "^7.3.5" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true - }, - "jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "jest-sonar-reporter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jest-sonar-reporter/-/jest-sonar-reporter-2.0.0.tgz", - "integrity": "sha512-ZervDCgEX5gdUbdtWsjdipLN3bKJwpxbvhkYNXTAYvAckCihobSLr9OT/IuyNIRT1EZMDDwR6DroWtrq+IL64w==", - "dev": true, - "requires": { - "xml": "^1.0.1" - } - }, - "jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", - "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "leven": "^3.1.0", - "pretty-format": "^28.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "dev": true, - "requires": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - } - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "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==", - "dev": true - }, - "memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "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==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "mylas": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/mylas/-/mylas-2.1.13.tgz", - "integrity": "sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "nock": { - "version": "13.2.7", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.7.tgz", - "integrity": "sha512-R6NUw7RIPtKwgK7jskuKoEi4VFMqIHtV2Uu9K/Uegc4TA5cqe+oNMYslZcUmnVNQCTG6wcSqUBaGTDd7sq5srg==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.21", - "propagate": "^2.0.0" - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "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==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "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.3" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@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" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "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==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "plimit-lit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.5.0.tgz", - "integrity": "sha512-Eb/MqCb1Iv/ok4m1FqIXqvUKPISufcjZ605hl3KM/n8GaX8zfhtgdLwZU3vKjuHGh2O9Rjog/bHTq8ofIShdng==", - "dev": true, - "requires": { - "queue-lit": "^1.5.0" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "queue-lit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/queue-lit/-/queue-lit-1.5.0.tgz", - "integrity": "sha512-IslToJ4eiCEE9xwMzq3viOO5nH8sUWUCwoElrhNMozzr9IIt2qqvB4I+uHu/zJTQVqc9R5DFwok4ijNK1pU3fA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - } - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "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==", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "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==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shell-quote": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", - "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "simple-git": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.16.0.tgz", - "integrity": "sha512-zuWYsOLEhbJRWVxpjdiXl6eyAyGo/KzVW+KFhhw9MqEEJttcq+32jTWSGyxTdf9e/YCohxRE+9xpWFj9FdiJNw==", - "requires": { - "@kwsites/file-exists": "^1.1.1", - "@kwsites/promise-deferred": "^1.1.1", - "debug": "^4.3.4" - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.padend": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", - "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "requires": { - "rimraf": "^3.0.0" - } - }, - "tmp-promise": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", - "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", - "requires": { - "tmp": "^0.2.0" - } - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "totalist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", - "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", - "dev": true - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "ts-jest": { - "version": "28.0.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.5.tgz", - "integrity": "sha512-Sx9FyP9pCY7pUzQpy4FgRZf2bhHY3za576HMKJFs+OnQ9jS96Du5vNsDKkyedQkik+sEabbKAnCliv9BEsHZgQ==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^28.0.0", - "json5": "^2.2.1", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "^21.0.1" - } - }, - "ts-node": { - "version": "10.8.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", - "integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - } - }, - "tsc-alias": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.2.tgz", - "integrity": "sha512-ukBkcNekOgwtnSWYLD5QsMX3yQWg7JviAs8zg3qJGgu4LGtY3tsV4G6vnqvOXIDkbC+XL9vbhObWSpRA5/6wbg==", - "dev": true, - "requires": { - "chokidar": "^3.5.3", - "commander": "^9.0.0", - "globby": "^11.0.4", - "mylas": "^2.1.9", - "normalize-path": "^3.0.0", - "plimit-lit": "^1.2.6" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedi": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/typedi/-/typedi-0.10.0.tgz", - "integrity": "sha512-v3UJF8xm68BBj6AF4oQML3ikrfK2c9EmZUyLOfShpJuItAqVBHWP/KtpGinkSsIiP6EZyyb6Z3NXyW9dgS9X1w==" - }, - "typescript": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", - "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "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==", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "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==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "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" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yaml": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.3.tgz", - "integrity": "sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==" - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "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.0.0" - } - }, - "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==", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index f47bc687..00000000 --- a/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "@kie/build-chain-action", - "version": "3.0.10", - "description": "Library to execute commands based on github projects dependencies.", - "main": "dist/index.js", - "author": "", - "license": "ISC", - "private": false, - "bin": { - "build-chain": "./build/index.js" - }, - "scripts": { - "build": "run-p build:*", - "build:cli": "ncc build -o build --minify src/bin/entry-point/cli.ts", - "build:action": "ncc build -o dist --minify src/bin/entry-point/github-action.ts", - "dev:build": "tsc && tsc-alias", - "test": "jest unitary/", - "pretest:e2e": "ncc build -o dist-e2e --minify src/bin/entry-point/github-action.ts", - "test:e2e": "jest e2e/", - "posttest:e2e": "rm -rf dist-e2e", - "test:report": "npm test -- --coverage --testResultsProcessor=jest-sonar-reporter", - "lint": "eslint . --ext .ts", - "lint:fix": "npm run lint -- --fix", - "prepare": "husky install" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/kiegroup/github-action-build-chain.git" - }, - "keywords": [], - "bugs": { - "url": "https://github.com/kiegroup/github-action-build-chain/issues" - }, - "homepage": "https://github.com/kiegroup/github-action-build-chain#readme", - "devDependencies": { - "@kie/act-js": "^2.0.0", - "@kie/mock-github": "^1.0.0", - "@types/fs-extra": "^9.0.13", - "@types/jest": "^28.1.1", - "@types/node": "^17.0.41", - "@typescript-eslint/eslint-plugin": "^5.27.1", - "@typescript-eslint/parser": "^5.27.1", - "@vercel/ncc": "^0.34.0", - "eslint": "^8.17.0", - "husky": "^8.0.1", - "jest": "^28.1.1", - "jest-sonar-reporter": "^2.0.0", - "nock": "^13.2.7", - "npm-run-all": "^4.1.5", - "ts-jest": "^28.0.4", - "ts-node": "^10.8.1", - "tsc-alias": "^1.8.2", - "typescript": "^4.7.3" - }, - "dependencies": { - "@actions/artifact": "^1.1.0", - "@actions/core": "^1.8.2", - "@actions/exec": "^1.1.1", - "@actions/glob": "^0.3.0", - "@kie/build-chain-configuration-reader": "^3.0.9", - "@octokit/rest": "^18.12.0", - "@octokit/types": "^6.39.0", - "commander": "^9.3.0", - "fs-extra": "^10.1.0", - "http-proxy-agent": "^5.0.0", - "reflect-metadata": "^0.1.13", - "simple-git": "^3.7.1", - "typedi": "^0.10.0" - }, - "engines": { - "node": ">= 14.19.3" - } -} diff --git a/src/bin/entry-point/cli.ts b/src/bin/entry-point/cli.ts deleted file mode 100644 index 43ea5c6f..00000000 --- a/src/bin/entry-point/cli.ts +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env node - -import { CLIRunner } from "@bc/bin/runners/cli-runner"; - -new CLIRunner().execute(); \ No newline at end of file diff --git a/src/bin/entry-point/github-action.ts b/src/bin/entry-point/github-action.ts deleted file mode 100644 index 7ad246ba..00000000 --- a/src/bin/entry-point/github-action.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { GithubActionRunner } from "@bc/bin/runners/github-action-runner"; - -new GithubActionRunner().execute(); \ No newline at end of file diff --git a/src/bin/runners/cli-runner.ts b/src/bin/runners/cli-runner.ts deleted file mode 100644 index 4e38f16b..00000000 --- a/src/bin/runners/cli-runner.ts +++ /dev/null @@ -1,41 +0,0 @@ -import "reflect-metadata"; -import { Runner } from "@bc/bin/runners/runner"; -import { EntryPoint } from "@bc/domain/entry-point"; -import Container from "typedi"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; - -export class CLIRunner extends Runner { - constructor() { - super(EntryPoint.CLI); - } - - async execute(): Promise { - // parse arguments - const args = Container.get(CLIArguments); - args.getCommand().parse(); - - // initialize configuration - await this.initConfiguration(); - - // execute pre section - const preResult = await this.executePre(); - if (preResult.isFailure) { - this.printExecutionFailure(preResult.output); - return process.exit(1); - } - - // execute flow: checkout node chain -> execute commands for each phase -> upload artifacts - const flowResult = await this.executeFlow(); - - // execute post section - const postResult = await this.executePost(flowResult.isFailure); - - if (flowResult.isFailure || postResult.isFailure) { - this.printNodeExecutionFailure(flowResult.output.executionResult.before); - this.printNodeExecutionFailure(flowResult.output.executionResult.commands); - this.printNodeExecutionFailure(flowResult.output.executionResult.after); - this.printExecutionFailure(postResult.output); - return process.exit(1); - } - } -} diff --git a/src/bin/runners/github-action-runner.ts b/src/bin/runners/github-action-runner.ts deleted file mode 100644 index 48579429..00000000 --- a/src/bin/runners/github-action-runner.ts +++ /dev/null @@ -1,55 +0,0 @@ -import "reflect-metadata"; -import { Runner } from "@bc/bin/runners/runner"; -import { EntryPoint } from "@bc/domain/entry-point"; -import Container from "typedi"; -import { JobSummaryService } from "@bc/service/job-summary/job-summary-service"; -import { defaultFlowResult } from "@bc/domain/flow"; -import { ActionArguments } from "@bc/service/arguments/action/action-arguments"; - -export class GithubActionRunner extends Runner { - constructor() { - super(EntryPoint.GITHUB_EVENT); - } - - async execute(): Promise { - // parse arguments - const args = Container.get(ActionArguments); - args.parse(); - - // initialize configuration - await this.initConfiguration(); - - const jobSummaryService = Container.get(JobSummaryService); - - // execute pre section - const preResult = await this.executePre(); - if (preResult.isFailure) { - // io task is involved so start it as a promise and wait for it when actually needed - const promise = jobSummaryService.generateSummary(defaultFlowResult, preResult.output, []); - this.printExecutionFailure(preResult.output); - await promise; - return process.exit(1); - } - - // execute flow: checkout node chain -> execute commands for each phase -> upload artifacts - const flowResult = await this.executeFlow(); - - // execute post section - const postResult = await this.executePost(flowResult.isFailure); - - // post a job summary - // io task is involved so start it as a promise and wait for it when actually needed - const promise = jobSummaryService.generateSummary(flowResult.output, preResult.output, postResult.output); - - if (flowResult.isFailure || postResult.isFailure) { - this.printNodeExecutionFailure(flowResult.output.executionResult.before); - this.printNodeExecutionFailure(flowResult.output.executionResult.commands); - this.printNodeExecutionFailure(flowResult.output.executionResult.after); - this.printExecutionFailure(postResult.output); - await promise; - return process.exit(1); - } - - await promise; - } -} diff --git a/src/bin/runners/runner.ts b/src/bin/runners/runner.ts deleted file mode 100644 index 232188d6..00000000 --- a/src/bin/runners/runner.ts +++ /dev/null @@ -1,110 +0,0 @@ -import Container from "typedi"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { constants } from "@bc/domain/constants"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { PreExecutor } from "@bc/service/pre-post/pre"; -import { FlowService } from "@bc/service/flow/flow-service"; -import { PostExecutor } from "@bc/service/pre-post/post"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { UploadResponse } from "@actions/artifact"; -import { FlowResult } from "@bc/domain/flow"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; - -export abstract class Runner { - private logger: BaseLoggerService; - - constructor(entryPoint: EntryPoint) { - Container.set(constants.CONTAINER.ENTRY_POINT, entryPoint); - this.logger = Container.get(LoggerService).logger; - } - - abstract execute(): Promise; - - protected async initConfiguration(): Promise { - const configService = Container.get(ConfigurationService); - await configService.init(); - } - - protected async executePre(): Promise<{ isFailure: boolean; output: ExecuteCommandResult[] }> { - const preService = Container.get(PreExecutor); - const preResult = await preService.run(); - return { isFailure: this.commandExecutionFailure(preResult), output: preResult }; - } - - protected async executeFlow(): Promise<{ isFailure: boolean; output: FlowResult }> { - const flowService = Container.get(FlowService); - const flowResult = await flowService.run(); - return { - isFailure: - this.nodeExecutionFailure(flowResult.executionResult.before) || - this.nodeExecutionFailure(flowResult.executionResult.commands) || - this.nodeExecutionFailure(flowResult.executionResult.after) || - this.archiveArtifactsFailure(flowResult.artifactUploadResults), - output: flowResult, - }; - } - - protected async executePost(flowExecutionResult: boolean): Promise<{ isFailure: boolean; output: ExecuteCommandResult[] }> { - Container.set("post.executionSuccess", flowExecutionResult); - const postService = Container.get(PostExecutor); - const postResult = await postService.run(); - return { isFailure: this.commandExecutionFailure(postResult), output: postResult }; - } - - /** - * Prints the failed commands in the following format - * [Error] Failed to execute cmd1 : - * [Error] This is a multiline error msg - * [Error] broken down line wise - * @param result - */ - protected printExecutionFailure(result: ExecuteCommandResult[]) { - result.forEach(res => { - if (res.result === ExecutionResult.NOT_OK) { - this.logger.error(`Failed to execute ${res.command} :`); - res.errorMessage.split("\n").forEach(msg => this.logger.error(msg)); - } - }); - } - - /** - * Prints the failed commands for the node chain in the following format - * [Error] Failed to execute commands for owner1/project1 - * [Error] Failed to execute cmd1 : - * [Error] This is a multiline error msg - * [Error] broken down line wise - * @param result - */ - protected printNodeExecutionFailure(result: ExecuteNodeResult[]) { - result.forEach(res => { - if (this.commandExecutionFailure(res.executeCommandResults)) { - this.logger.error(`Failed to execute commands for ${res.node.project}`); - this.printExecutionFailure(res.executeCommandResults); - } - }); - } - - private archiveArtifactsFailure(result: PromiseSettledResult[]) { - return !!result.find(res => res.status === "rejected"); - } - - /** - * Return true if there are no nodes' with a failed commands execution - * @param result - * @returns - */ - private nodeExecutionFailure(result: ExecuteNodeResult[]) { - return result.reduce((prev, curr) => prev || this.commandExecutionFailure(curr.executeCommandResults), false); - } - - /** - * Return true if there is command whose execution failed - * @param result - * @returns - */ - private commandExecutionFailure(result: ExecuteCommandResult[]) { - return !!result.find(res => res.result === ExecutionResult.NOT_OK); - } -} diff --git a/src/domain/checkout.ts b/src/domain/checkout.ts deleted file mode 100644 index 449846cd..00000000 --- a/src/domain/checkout.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Node } from "@kie/build-chain-configuration-reader"; - -export type CheckoutInfo = { - sourceName: string; - sourceGroup: string; - sourceBranch: string; - targetName: string; - targetGroup: string; - targetBranch: string; - repoDir: string; - merge: boolean; -}; - -export type CheckedOutNode = { - node: Node; - checkoutInfo?: CheckoutInfo -} diff --git a/src/domain/cli.ts b/src/domain/cli.ts deleted file mode 100644 index a1924a0c..00000000 --- a/src/domain/cli.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** Defines all the types of command line actions */ -export enum CLIActionType { - BUILD = "build", - TOOLS = "tools", -} - -/** Defines all the types of tools available */ -export enum ToolType { - PROJECT_LIST = "project-list", -} diff --git a/src/domain/configuration.ts b/src/domain/configuration.ts deleted file mode 100644 index a41c3c91..00000000 --- a/src/domain/configuration.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Endpoints } from "@octokit/types"; - -export type GitConfiguration = { - serverUrl?: string; - serverUrlWithToken?: string; - action?: string; - actor?: string; - author?: string; - jobId?: string; - ref?: string; - workflow?: string; - repository?: string; -}; - -export type ProjectConfiguration = { - repository?: string; - name?: string; - group?: string; - branch?: string; -}; - -export type EventData = Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}"]["response"]["data"] | Record; diff --git a/src/domain/constants.ts b/src/domain/constants.ts deleted file mode 100644 index bf837f41..00000000 --- a/src/domain/constants.ts +++ /dev/null @@ -1,8 +0,0 @@ -export const constants = { - CONTAINER: { - ENTRY_POINT: "entry-point", - }, - GITHUB: { - TOKEN: "token", - }, -}; diff --git a/src/domain/entry-point.ts b/src/domain/entry-point.ts deleted file mode 100644 index 2be4f048..00000000 --- a/src/domain/entry-point.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum EntryPoint { - CLI, - GITHUB_EVENT, -} diff --git a/src/domain/errors.ts b/src/domain/errors.ts deleted file mode 100644 index c20381e5..00000000 --- a/src/domain/errors.ts +++ /dev/null @@ -1,2 +0,0 @@ -export class NotFoundError extends Error {} -export class InvalidInput extends Error {} diff --git a/src/domain/execute-command-result.ts b/src/domain/execute-command-result.ts deleted file mode 100644 index db522927..00000000 --- a/src/domain/execute-command-result.ts +++ /dev/null @@ -1,14 +0,0 @@ -export interface ExecuteCommandResult { - startingDate: number; - endingDate: number; - time: number; - result: ExecutionResult; - errorMessage: string; - command: string; -} - -export enum ExecutionResult { - OK = "OK", - NOT_OK = "NOT OK", - SKIP = "SKIP", -} diff --git a/src/domain/execute-node-result.ts b/src/domain/execute-node-result.ts deleted file mode 100644 index 079cc5a0..00000000 --- a/src/domain/execute-node-result.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ExecuteCommandResult } from "@bc/domain/execute-command-result"; -import { Node } from "@kie/build-chain-configuration-reader"; - -export interface ExecuteNodeResult { - node: Node; - executeCommandResults: ExecuteCommandResult[]; -} diff --git a/src/domain/execution-phase.ts b/src/domain/execution-phase.ts deleted file mode 100644 index bdb10b4a..00000000 --- a/src/domain/execution-phase.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum ExecutionPhase { - BEFORE = "before", - CURRENT = "commands", - AFTER = "after", -} diff --git a/src/domain/flow.ts b/src/domain/flow.ts deleted file mode 100644 index 189e9e9f..00000000 --- a/src/domain/flow.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { UploadResponse } from "@actions/artifact"; -import { CheckedOutNode } from "@bc/domain/checkout"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { ExecutionPhase } from "@bc/domain/execution-phase"; - -export type FlowResult = { - checkoutInfo: CheckedOutNode[]; - artifactUploadResults: PromiseSettledResult[]; - executionResult: { - [key in ExecutionPhase]: ExecuteNodeResult[] - } -} - -export const defaultFlowResult: FlowResult = { - checkoutInfo: [], - artifactUploadResults: [], - executionResult: { - before: [], - after: [], - commands: [] - } -}; \ No newline at end of file diff --git a/src/domain/inputs.ts b/src/domain/inputs.ts deleted file mode 100644 index 2b0bf8ff..00000000 --- a/src/domain/inputs.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { CLIActionType, ToolType } from "@bc/domain/cli"; -import { OptionValues } from "commander"; - -/** Defines all the types of build flows */ -export enum FlowType { - CROSS_PULL_REQUEST = "cross_pr", - FULL_DOWNSTREAM = "full_downstream", - SINGLE_PULL_REQUEST = "single_pr", - BRANCH = "branch", -} - -/** - * Defines the available level of logs - */ -export enum LoggerLevel { - INFO, - TRACE, - DEBUG, -} - -/** - * Defines all parsed input values for cli and github action - */ -export interface InputValues extends OptionValues { - definitionFile: string; - outputFolder?: string; - flowType?: FlowType; - CLICommand?: CLIActionType; - CLISubCommand?: FlowType | ToolType; - skipExecution: boolean; - skipParallelCheckout: boolean; - skipCheckout: boolean; - skipProjectCheckout?: string[]; - skipProjectExecution?: string[]; - startProject?: string; - loggerLevel: LoggerLevel; - annotationsPrefix?: string; - customCommandTreatment?: string[]; - token?: string; - url?: string; - branch?: string; - group?: string; -} - -/** - * Default value used for initialization - */ -export const defaultInputValues: Readonly = { - definitionFile: "", - skipExecution: false, - skipCheckout: false, - skipParallelCheckout: false, - loggerLevel: LoggerLevel.INFO, -}; diff --git a/src/domain/node-execution.ts b/src/domain/node-execution.ts deleted file mode 100644 index 764c2676..00000000 --- a/src/domain/node-execution.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Node } from "@kie/build-chain-configuration-reader"; - -export enum NodeExecutionLevel { - UPSTREAM = "upstream", - CURRENT = "current", - DOWNSTREAM = "downstream", -} - -export type NodeExecution = { - node: Node, - cwd?: string -} \ No newline at end of file diff --git a/src/domain/node.ts b/src/domain/node.ts deleted file mode 100644 index ff79231f..00000000 --- a/src/domain/node.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Node } from "@kie/build-chain-configuration-reader"; - -export const defaultNodeValue: Readonly = { - project: "", - parents: [], - children: [] -}; diff --git a/src/domain/treatment-options.ts b/src/domain/treatment-options.ts deleted file mode 100644 index 04d5684a..00000000 --- a/src/domain/treatment-options.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface TreatmentOptions { - replaceExpressions?: string[]; - mavenBinary?: string; -} diff --git a/src/service/arguments/action/action-arguments.ts b/src/service/arguments/action/action-arguments.ts deleted file mode 100644 index d0cd7006..00000000 --- a/src/service/arguments/action/action-arguments.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { FlowType, InputValues, LoggerLevel } from "@bc/domain/inputs"; -import * as core from "@actions/core"; -import { OptionValues } from "commander"; -import Container, { Service } from "typedi"; -import { InputService } from "@bc/service/inputs/input-service"; -import { InvalidInput } from "@bc/domain/errors"; - -/** - * Parses all inputs from github action workflow files - */ -@Service() -export class ActionArguments { - /** - * Converts user input to corresponding FlowType enum - * @param flowType value for "flow-type" input - * @returns corresponding enum - */ - private getFlowType(flowType: string): FlowType { - if (Object.values(FlowType).includes(flowType as FlowType)) { - return flowType as FlowType; - } else { - // deprecated flowtype. Keep until full compatibility is reached with existing ci - switch (flowType) { - case "pull-request": - return FlowType.CROSS_PULL_REQUEST; - case "full-downstream": - return FlowType.FULL_DOWNSTREAM; - case "single": - return FlowType.SINGLE_PULL_REQUEST; - case "branch": - return FlowType.BRANCH; - } - throw new InvalidInput("Invalid flow-type"); - } - } - - /** - * Converts user input to corresponding LoggerLevel enum - * @param logLevel value for "logger-level" input - * @returns corresponding enum - */ - private getLoggerLevel(logLevel: string): LoggerLevel { - switch (logLevel) { - case "info": - case "": - return LoggerLevel.INFO; - case "debug": - return LoggerLevel.DEBUG; - case "trace": - return LoggerLevel.TRACE; - default: - throw new InvalidInput("Invalid logger-level"); - } - } - - /** - * Gets and sets the any additional flags defined in the workflow - * @param additionaFlags "additional flags for the execution, as it is done on the CLI side. Just semicolon (;) separated, like '--skipParallelCheckout;--skipExecution;-cct (mvn .*)||$1 -s settings.xml'" - * @returns parsed option values - */ - private getAdditionalFlags(additionaFlags: string): OptionValues { - if (additionaFlags === "") { - return {}; - } - const flags: OptionValues = {}; - additionaFlags - .trim() - .split(";") - .forEach(flag => { - const opt: string[] = flag.trim().split(" "); - if (opt[0].startsWith("--")) { - opt[0] = opt[0].substring(2); - } else if (opt[0].startsWith("-")) { - opt[0] = opt[0].substring(1); - } - if (opt.length === 1) { - // its a boolean flag - flags[opt[0]] = true; - } else { - flags[opt[0]] = opt.slice(1).join(" "); - } - }); - return flags; - } - - private getStringInput(key: string) { - const input = core.getInput(key); - return input === "" ? undefined : input; - } - - private getArrayInput(key: string) { - const input = this.getStringInput(key); - return input?.split(",").map(str => str.trim()); - } - - /** - * Gets the actual input from github action event and sets it in parsed input object - */ - parse() { - const input: InputValues = { - definitionFile: core.getInput("definition-file"), - flowType: this.getFlowType(core.getInput("flow-type")), - skipExecution: core.getBooleanInput("skip-execution"), - skipParallelCheckout: core.getBooleanInput("skip-parallel-checkout"), - skipProjectCheckout: this.getArrayInput("skip-project-checkout"), - skipProjectExecution: this.getArrayInput("skip-project-execution"), - skipCheckout: core.getBooleanInput("skip-checkout"), - startProject: this.getStringInput("starting-project"), - loggerLevel: this.getLoggerLevel(core.getInput("logger-level")), - annotationsPrefix: this.getStringInput("annotations-prefix"), - customCommandTreatment: this.getArrayInput("custom-command-treatment"), - ...this.getAdditionalFlags(core.getInput("additional-flags")), - }; - - Container.get(InputService).updateInputs(input); - } -} diff --git a/src/service/arguments/cli/build/abstract-pr-command.ts b/src/service/arguments/cli/build/abstract-pr-command.ts deleted file mode 100644 index e3bc56a6..00000000 --- a/src/service/arguments/cli/build/abstract-pr-command.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { CLIActionType } from "@bc/domain/cli"; -import { FlowType } from "@bc/domain/inputs"; -import { CommandConstructor } from "@bc/service/arguments/cli/command-constructor"; -import { Command } from "commander"; - -export abstract class AbstractPullRequestCommand implements CommandConstructor { - private readonly description: string; - private readonly type: FlowType; - private readonly alias: string; - - constructor(description: string, type: FlowType, alias: string) { - this.description = description; - this.type = type; - this.alias = alias; - } - - createCommand(): Command { - return new Command(this.type) - .alias(this.alias) // adding deprecated alias for backward compatibility. Keep until full compatibility is reached with existing ci - .description(this.description) - .requiredOption("-u, --url ", "pull request event url") - .option("-p, --startProject ", "The project to start the build from"); - } -} diff --git a/src/service/arguments/cli/build/branch-command.ts b/src/service/arguments/cli/build/branch-command.ts deleted file mode 100644 index cc1015da..00000000 --- a/src/service/arguments/cli/build/branch-command.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Command } from "commander"; -import { CommandConstructor } from "@bc/service/arguments/cli/command-constructor"; -import { FlowType } from "@bc/domain/inputs"; - -/** - * Create branch flow sub-subcommand for build subcommand - * @implements {CommandConstructor} - */ -export class BranchCommand implements CommandConstructor { - createCommand(): Command { - const program = new Command(FlowType.BRANCH); - program - .description("Execute branch build chain workflow") - .requiredOption("-p, --startProject ", "The project to start the build from") - .requiredOption("-b, --branch ", "The branch to get the project from") - .option("--fullProjectDependencyTree", "Checks out and execute the whole tree instead of the upstream build", false) - .option("-c, --command ", "The command(s) to execute for every project. This will override definition file configuration (just dependency tree will be taken into account)") - .option("-g, --group ", "The group to execute flow. It will take it from project argument in case it's not specified"); - - return program; - } -} diff --git a/src/service/arguments/cli/build/build-subcommand-factory.ts b/src/service/arguments/cli/build/build-subcommand-factory.ts deleted file mode 100644 index 041544b0..00000000 --- a/src/service/arguments/cli/build/build-subcommand-factory.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { CLIActionType } from "@bc/domain/cli"; -import { Command } from "commander"; -import { CommandConstructor } from "@bc/service/arguments/cli/command-constructor"; -import { BranchCommand } from "@bc/service/arguments/cli/build/branch-command"; -import { CrossPullRequestCommand } from "@bc/service/arguments/cli/build/cross-pr-command"; -import { FullDownstreamCommand } from "@bc/service/arguments/cli/build/fd-command"; -import { SinglePullRequestCommand } from "@bc/service/arguments/cli/build/single-pr-command"; -import { formatDate } from "@bc/utils/date"; -import { InputService } from "@bc/service/inputs/input-service"; -import Container from "typedi"; -import { FlowType, LoggerLevel } from "@bc/domain/inputs"; - -/** - * A factory to construct command line parsers for all the different kind of build flows - */ -export class BuildSubCommandFactory { - /** - * Constructs the argument parser for a command line utility - * @param buildType Type of command for which the parser has to be constructed - * @returns {Command} Returns command parser object or throws an error if the cmd is not defined - */ - static getCommand(buildType: FlowType): Command { - let commandFactory: CommandConstructor; - switch (buildType) { - case FlowType.CROSS_PULL_REQUEST: - commandFactory = new CrossPullRequestCommand(); - break; - case FlowType.SINGLE_PULL_REQUEST: - commandFactory = new SinglePullRequestCommand(); - break; - case FlowType.FULL_DOWNSTREAM: - commandFactory = new FullDownstreamCommand(); - break; - case FlowType.BRANCH: - commandFactory = new BranchCommand(); - break; - default: - throw new Error(`No command constructor specified for ${buildType}`); - } - - return commandFactory - .createCommand() - .requiredOption("-f, --definitionFile ", "The definition file, either a path to the filesystem or a URL to it") - .option("-o, --outputFolder ", "The folder path to store projects. Default is of the format 'build_chain_yyyymmddHHMMss'", `build_chain_${formatDate(new Date())}`) - .option("--token ", "The GITHUB_TOKEN. It can be set as an environment variable instead") - .option("-d, --debug", "Set debugging mode to true", false) - .option("--skipExecution", "A flag to skip execution and artifacts archiving for all projects. Overrides skipProjectExecution", false) - .option("--skipProjectExecution ", "A flag to skip execution and artifacts archiving for certain projects only") - .option("--skipParallelCheckout", "Checkout the project sequentially", false) - .option("-t, --customCommandTreatment ", "Each exp must be of the form . Regex defines the regular expression for what you want to replace with the ReplacementEx") - .option("--skipProjectCheckout ", "A list of projects to skip checkout.") - .option("--skipCheckout", "skip checkout for all projects. Overrides skipProjectCheckout", false) - .action((options) => { - const parsedInputs = Container.get(InputService); - if (options.debug) options.loggerLevel = LoggerLevel.DEBUG; - delete options.debug; - parsedInputs.updateInputs({ ...options, CLICommand: CLIActionType.BUILD, CLISubCommand: buildType }); - }); - } - - /** - * Constructs the parsers for all the commands available - * @returns {Command[]} Array of objects of command line parsers - */ - static getAllCommands(): Command[] { - return Object.keys(FlowType).map((buildType) => this.getCommand(FlowType[buildType as keyof typeof FlowType])); - } -} diff --git a/src/service/arguments/cli/build/cross-pr-command.ts b/src/service/arguments/cli/build/cross-pr-command.ts deleted file mode 100644 index f26af1aa..00000000 --- a/src/service/arguments/cli/build/cross-pr-command.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { FlowType } from "@bc/domain/inputs"; -import { AbstractPullRequestCommand } from "@bc/service/arguments/cli/build/abstract-pr-command"; - -/** - * Create cross pull request flow sub-subcommand for build subcommand - * @implements {CommandConstructor} - */ -export class CrossPullRequestCommand extends AbstractPullRequestCommand { - constructor() { - const description: string = "Execute cross pull request build chain workflow"; - const type: FlowType = FlowType.CROSS_PULL_REQUEST; - super(description, type, "pr"); - } -} diff --git a/src/service/arguments/cli/build/fd-command.ts b/src/service/arguments/cli/build/fd-command.ts deleted file mode 100644 index 98fd94e2..00000000 --- a/src/service/arguments/cli/build/fd-command.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { FlowType } from "@bc/domain/inputs"; -import { AbstractPullRequestCommand } from "@bc/service/arguments/cli/build/abstract-pr-command"; - -/** - * Create full downstream flow sub-subcommand for build subcommand - * @implements {CommandConstructor} - */ -export class FullDownstreamCommand extends AbstractPullRequestCommand { - constructor() { - const description: string = "Execute full downstream build chain workflow"; - const type: FlowType = FlowType.FULL_DOWNSTREAM; - super(description, type, "fd"); - } -} diff --git a/src/service/arguments/cli/build/single-pr-command.ts b/src/service/arguments/cli/build/single-pr-command.ts deleted file mode 100644 index acbcd443..00000000 --- a/src/service/arguments/cli/build/single-pr-command.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { FlowType } from "@bc/domain/inputs"; -import { AbstractPullRequestCommand } from "@bc/service/arguments/cli/build/abstract-pr-command"; - -/** - * Create single pull request flow sub-subcommand for build subcommand - * @implements {CommandConstructor} - */ -export class SinglePullRequestCommand extends AbstractPullRequestCommand { - constructor() { - const description: string = "Execute single pull request build chain workflow"; - const type: FlowType = FlowType.SINGLE_PULL_REQUEST; - super(description, type, "single"); - } -} diff --git a/src/service/arguments/cli/cli-arguments.ts b/src/service/arguments/cli/cli-arguments.ts deleted file mode 100644 index 10b7f503..00000000 --- a/src/service/arguments/cli/cli-arguments.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { CLIActionType } from "@bc/domain/cli"; -import { BuildSubCommandFactory } from "@bc/service/arguments/cli/build/build-subcommand-factory"; -import { ToolSubCommandFactory } from "@bc/service/arguments/cli/tools/tool-subcommand-factory"; -import { Command } from "commander"; -import { Service } from "typedi"; - -/** - * Constructs and compiles all the subcommands together to produce the main cli parser - */ -@Service() -export class CLIArguments { - /** - * Constructs the argument parser for the main command line utility - * @param options [OPTIONAL] configure the parser to not throw errors or write output. Useful for testing - * @returns {Command} Returns command parser object - */ - getCommand(options?: { exitOverride?: boolean; suppressOutput?: boolean }): Command { - const program = new Command(); - - program.name("build-chain").description("A CLI tool to perform the build chain github actions"); - - const buildSubProgram = new Command(CLIActionType.BUILD).description("Execute different flows"); - const toolSubProgram = new Command(CLIActionType.TOOLS).description("A bunch of utility tools"); - - BuildSubCommandFactory.getAllCommands().forEach(cmd => buildSubProgram.addCommand(this.setConfig(cmd, options))); - ToolSubCommandFactory.getAllCommands().forEach(cmd => toolSubProgram.addCommand(this.setConfig(cmd, options))); - - program.addCommand(buildSubProgram); - program.addCommand(toolSubProgram); - - return program; - } - - /** - * Configure the command line parser instance according to the options passed - * Updates the instance to not to throw any error and suppress output - * Useful for testing - * @param program command line parser - * @param options additional options to configure program instance - * @returns {Command} configured command line parser - */ - private setConfig(program: Command, options?: { exitOverride?: boolean; suppressOutput?: boolean }): Command { - if (options?.exitOverride) { - program.exitOverride(); - } - if (options?.suppressOutput) { - program.configureOutput({ - writeOut: () => undefined, - writeErr: () => undefined, - }); - } - return program; - } -} diff --git a/src/service/arguments/cli/command-constructor.ts b/src/service/arguments/cli/command-constructor.ts deleted file mode 100644 index db937c8d..00000000 --- a/src/service/arguments/cli/command-constructor.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Command } from "commander"; - -export interface CommandConstructor { - /** - * Construct the command line argument parser for the cli - * @returns {Command} Command line argument parser object - */ - createCommand(): Command; -} diff --git a/src/service/arguments/cli/tools/project-list.ts b/src/service/arguments/cli/tools/project-list.ts deleted file mode 100644 index d81c9657..00000000 --- a/src/service/arguments/cli/tools/project-list.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Command } from "commander"; -import { CommandConstructor } from "@bc/service/arguments/cli/command-constructor"; -import { ToolType } from "@bc/domain/cli"; - -/** - * Create command parser for project list tool - * @implements {CommandConstructor} - */ -export class ProjectListCommand implements CommandConstructor { - createCommand(): Command { - const program = new Command(ToolType.PROJECT_LIST); - program - .description("Prints a ordered by precendence list of projects") - .option("-s, --skipGroup ", "Remove group from project list"); - return program; - } -} diff --git a/src/service/arguments/cli/tools/tool-subcommand-factory.ts b/src/service/arguments/cli/tools/tool-subcommand-factory.ts deleted file mode 100644 index 16ded12f..00000000 --- a/src/service/arguments/cli/tools/tool-subcommand-factory.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { Command } from "commander"; -import { CommandConstructor } from "@bc/service/arguments/cli/command-constructor"; -import { CLIActionType, ToolType } from "@bc/domain/cli"; -import { ProjectListCommand } from "@bc/service/arguments/cli/tools/project-list"; -import { InputService } from "@bc/service/inputs/input-service"; -import Container from "typedi"; -import { LoggerLevel } from "@bc/domain/inputs"; - -/** - * A factory to construct command line parsers for all the different kind of tools - */ -export class ToolSubCommandFactory { - /** - * Constructs the argument parser for a command line utility - * @param toolType Type of command for which the parser has to be constructed - * @returns {Command | undefined} Returns command parser object or throws an error if the cmd is not defined - */ - static getCommand(toolType: ToolType): Command { - let commandFactory: CommandConstructor; - switch (toolType) { - case ToolType.PROJECT_LIST: - commandFactory = new ProjectListCommand(); - break; - default: - throw new Error(`No command constructor specified for ${toolType}`); - } - - return commandFactory - .createCommand() - .requiredOption("-f, --definitionFile ", "The definition file, either a path to the filesystem or a URL to it") - .option("-t, --token ", "The GITHUB_TOKEN. It can be set as an environment variable instead") - .option("-d, --debug", "Set debugging mode to true", false) - .action(options => { - const parsedInputs = Container.get(InputService); - if (options.debug) { - options.loggerLevel = LoggerLevel.DEBUG; - } - delete options.debug; - parsedInputs.updateInputs({ ...options, CLICommand: CLIActionType.TOOLS, CLISubCommand: toolType }); - }); - } - - /** - * Constructs the parsers for all the commands available - * @returns {Command[]} Array of objects of command line parsers - */ - static getAllCommands(): Command[] { - return Object.keys(ToolType).map(toolType => this.getCommand(ToolType[toolType as keyof typeof ToolType])); - } -} diff --git a/src/service/artifacts/artifact-service.ts b/src/service/artifacts/artifact-service.ts deleted file mode 100644 index 98eb23e0..00000000 --- a/src/service/artifacts/artifact-service.ts +++ /dev/null @@ -1,66 +0,0 @@ -import Container, { Service } from "typedi"; -import { Node, ArchiveDependencies } from "@kie/build-chain-configuration-reader"; -import { UploadService } from "@bc/service/artifacts/upload-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { UploadResponse } from "@actions/artifact"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; - -@Service() -export class ArtifactService { - private readonly uploadService: UploadService; - private readonly logger: BaseLoggerService; - - constructor() { - this.uploadService = Container.get(UploadService); - this.logger = Container.get(LoggerService).logger; - } - - private getNodesToArchive(nodeChain: Node[], startingNode: Node): Node[] { - const dependencies = startingNode.archiveArtifacts?.dependencies ?? ArchiveDependencies.NONE; - let result: Node[]; - switch (dependencies) { - case ArchiveDependencies.NONE: - result = startingNode.archiveArtifacts ? [startingNode] : []; - break; - case ArchiveDependencies.ALL: - result = nodeChain.filter(node => !!node.archiveArtifacts); - break; - default: - result = nodeChain.filter(node => node.archiveArtifacts && (dependencies.includes(node.project) || node.project === startingNode.project)); - } - return result; - } - - async uploadNodes(nodeChain: Node[], startingNode: Node): Promise[]> { - if (Container.get(constants.CONTAINER.ENTRY_POINT) === EntryPoint.CLI) { - this.logger.info("Will not upload any artifacts in CLI environment"); - return []; - } - - const nodesToArchive = this.getNodesToArchive(nodeChain, startingNode); - this.logger.info(nodesToArchive.length > 0 ? `Archiving artifacts for ${nodesToArchive.map(node => node.project)}` : "No artifacts to archive"); - const promises = nodesToArchive.map(async node => { - this.logger.info(`Project [${node.project}]. Uploading artifacts...`); - // archiveArtifacts will exist as it is verified by getNodesToArchive - return this.uploadService.upload(node.archiveArtifacts!, node.project); - }); - - const result = await Promise.allSettled(promises); - - result.forEach(res => { - if (res.status === "fulfilled") { - if (res.value.artifactItems.length > 0) { - this.logger.info(`Artifact ${res.value.artifactName} uploaded ${res.value.artifactItems.length} files: ${res.value.artifactItems}`); - } - if (res.value.failedItems.length > 0) { - this.logger.info(`Artifact ${res.value.artifactName} failed to upload ${res.value.failedItems.length} files: ${res.value.failedItems}`); - } - } else { - this.logger.info(`Failure in uploading artifacts for one or more nodes: ${res.reason}`); - } - }); - return result; - } -} diff --git a/src/service/artifacts/upload-service.ts b/src/service/artifacts/upload-service.ts deleted file mode 100644 index ae38b873..00000000 --- a/src/service/artifacts/upload-service.ts +++ /dev/null @@ -1,168 +0,0 @@ -import { create, GlobOptions } from "@actions/glob"; -import path from "path"; -import Container, { Service } from "typedi"; -import { stat } from "fs"; -import { promisify } from "util"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { ArchiveArtifacts, IfNoFile } from "@kie/build-chain-configuration-reader"; -import * as artifact from "@actions/artifact"; -import { logAndThrow } from "@bc/utils/log"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; - -const stats = promisify(stat); -type SearchResult = { filesToUpload: string[]; rootDirectory: string }; - -@Service() -export class UploadService { - private readonly logger: BaseLoggerService; - constructor() { - this.logger = Container.get(LoggerService).logger; - } - - private validateArtifactName(name: string) { - return name.replace(/[/\s":<>*?\\]/g, "_"); - } - - /** src: https://github.com/actions/upload-artifact/blob/main/src/search.ts#L31 */ - private getMultiPathLCA(searchPaths: string[]): string { - if (searchPaths.length < 2) { - throw new Error("At least two search paths must be provided"); - } - - const commonPaths: string[] = []; - const splitPaths: string[][] = []; - let smallestPathLength = Number.MAX_SAFE_INTEGER; - - // split each of the search paths using the platform specific separator - for (const searchPath of searchPaths) { - const splitSearchPath = path.normalize(searchPath).split(path.sep); - - // keep track of the smallest path length so that we don't accidentally later go out of bounds - smallestPathLength = Math.min(smallestPathLength, splitSearchPath.length); - splitPaths.push(splitSearchPath); - } - - // on Unix-like file systems, the file separator exists at the beginning of the file path, make sure to preserve it - if (searchPaths[0].startsWith(path.sep)) { - commonPaths.push(path.sep); - } - - // loop over all the search paths until there is a non-common ancestor or we go out of bounds - for (let splitIndex = 0; splitIndex < smallestPathLength; splitIndex++) { - let flag = true; - // check if the paths are the same at a specific index - for (let i = 1; i < splitPaths.length; i++) { - if (splitPaths[0][splitIndex] !== splitPaths[i][splitIndex]) { - // a non-common index has been reached - flag = false; - break; - } - } - if (!flag) { - break; - } - // if all are the same, add to the end result & increment the index - commonPaths.push(splitPaths[0][splitIndex]); - } - - return path.join(...commonPaths); - } - - private getRootDir(searchPaths: string[], searchResults: string[]) { - if (searchPaths.length > 1) { - this.logger.info("Multiple search paths detected. Calculating the least common ancestor of all paths"); - const lcaSearchPath = this.getMultiPathLCA(searchPaths); - this.logger.info(`The least common ancestor is ${lcaSearchPath}. This will be the root directory of the artifact`); - - return lcaSearchPath; - } - - /* - Special case for a single file artifact that is uploaded without a directory or wildcard pattern. The directory structure is - not preserved and the root directory will be the single files parent directory - */ - if (searchResults.length === 1 && searchPaths[0] === searchResults[0]) { - return path.dirname(searchResults[0]); - } - - return searchPaths[0]; - } - - private async findFilesToUpload( - searchPath: string, - globOptions: GlobOptions = { followSymbolicLinks: true, implicitDescendants: true, omitBrokenSymbolicLinks: true } - ): Promise { - const searchResults: string[] = []; - const globber = await create(searchPath, globOptions); - const rawSearchResults: string[] = await globber.glob(); - - /* - Files are saved with case insensitivity. Uploading both a.txt and A.txt will files to be overwritten - Detect any files that could be overwritten for user awareness - */ - const set = new Set(); - - /* - Directories will be rejected if attempted to be uploaded. This includes just empty - directories so filter any directories out from the raw search results - */ - for (const searchResult of rawSearchResults) { - const fileStats = await stats(searchResult); - // isDirectory() returns false for symlinks if using fs.lstat(), make sure to use fs.stat() instead - if (!fileStats.isDirectory()) { - searchResults.push(searchResult); - - // detect any files that would be overwritten because of case insensitivity - if (set.has(searchResult.toLowerCase())) { - this.logger.info( - `Uploads are case insensitive: ${searchResult} was detected that it will be overwritten by another file with the same path` - ); - } else { - set.add(searchResult.toLowerCase()); - } - } - } - - // Calculate the root directory for the artifact using the search paths that were utilized - const rootDirectory = this.getRootDir(globber.getSearchPaths(), searchResults); - - return { - filesToUpload: searchResults, - rootDirectory, - }; - } - - private noFileFound(archiveArtifacts: ArchiveArtifacts, searchPaths: string) { - switch (archiveArtifacts["if-no-files-found"]) { - case IfNoFile.ERROR: - throw logAndThrow(`No files were found with the provided path: ${searchPaths}. No artifacts will be uploaded.`); - case IfNoFile.IGNORE: - this.logger.info(`No files were found with the provided path: ${searchPaths}. No artifacts will be uploaded.`); - break; - case IfNoFile.WARN: - default: - this.logger.warn(`No files were found with the provided path: ${searchPaths}. No artifacts will be uploaded.`); - } - } - - async upload(archiveArtifacts: ArchiveArtifacts, projectName: string): Promise { - // remove the filter once build-chain-config reader is refactored - const searchPaths = archiveArtifacts.paths.filter(pathItem => pathItem.path).reduce((prev: string, curr) => prev.concat(curr.path, "\n"), ""); - const { filesToUpload, rootDirectory } = await this.findFilesToUpload(searchPaths); - const artifactName = this.validateArtifactName(archiveArtifacts.name ?? projectName); - - if (filesToUpload.length === 0) { - this.noFileFound(archiveArtifacts, searchPaths); - return { - artifactName, - artifactItems: [], - failedItems: [], - size: 0, - }; - } else { - this.logger.debug(`With the provided path (${searchPaths}), there will be ${filesToUpload.length} file(s) uploaded`); - this.logger.debug(`Root artifact directory is ${rootDirectory}`); - return artifact.create().uploadArtifact(artifactName, filesToUpload, rootDirectory, { continueOnError: false }); - } - } -} diff --git a/src/service/checkout/checkout-service.ts b/src/service/checkout/checkout-service.ts deleted file mode 100644 index 64594c41..00000000 --- a/src/service/checkout/checkout-service.ts +++ /dev/null @@ -1,252 +0,0 @@ -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { getMappedTarget, Node } from "@kie/build-chain-configuration-reader"; -import Container, { Service } from "typedi"; -import { copy } from "fs-extra"; -import path from "path"; -import { CheckedOutNode, CheckoutInfo } from "@bc/domain/checkout"; -import { GithubAPIService } from "@bc/service/git/github-api"; -import { GitCLIService } from "@bc/service/git/git-cli"; -import { logAndThrow } from "@bc/utils/log"; -import { NotFoundError } from "@bc/domain/errors"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; - -@Service() -export class CheckoutService { - private readonly config: ConfigurationService; - private readonly logger: BaseLoggerService; - - constructor() { - this.config = Container.get(ConfigurationService); - this.logger = Container.get(LoggerService).logger; - } - /** - * A node is cloned into a directory which is named as following: - * node.project = "owner/project 2" - * cloned dir = owner_project_2 - * @param node - * @returns name of the directory in which the node was cloned - */ - private getProjectDir(node: Node): string { - return path.join(this.config.getRootFolder(), node.project.replace(/[/\s]/g, "_")); - } - - /** - * Implement the 'clone' field functionality - * Clone the project in multiple folders specified in the clone field - * Prerequiste: the project must have already been cloned once - * @param node - * @returns - */ - private async cloneNode(node: Node): Promise { - const promises: Promise[] = []; - node.clone?.forEach(folder => { - promises.push(copy(this.getProjectDir(node), path.join(this.config.getRootFolder(), folder))); - }); - await Promise.all(promises); - } - - /** - * Check out the given node. Checking out involves the following - * 1. Skip checkout of the node if specified in the corresponding flags - * OR - * 1. Get the checkout info - * 2. Clone the target repository:branch - * 3. Merge the source repository:branch into target repository:branch ONLY if merge was true in checkout info - * 4. Clone (Copy) the target repository multiple times depending on the 'clone' field of the definition file - * @param node - * @returns checkout info for the node - */ - private async checkoutNode(node: Node): Promise { - // Don't checkout this node if skipCheckout flag is set to true or project is listed in skipProjectCheckout flag - if (this.config.skipCheckout(node)) { - this.logger.info(`${node.project} checkout skipped`); - return undefined; - } - - const checkoutInfo = await this.getCheckoutInfo(node); - this.logger.debug(`[${node.project}] CheckoutInfo - ${JSON.stringify(checkoutInfo)}`); - const gitCLIService = Container.get(GitCLIService); - - // get the url of the target repository that needs to be cloned - const targetCloneUrl = this.config.getCloneUrl(checkoutInfo.targetGroup, checkoutInfo.targetName); - - // clone the repository and switch to target branch (for branch flow target and source branch are the same) - await gitCLIService.clone(targetCloneUrl, checkoutInfo.repoDir, checkoutInfo.targetBranch).catch(err => { - this.logger.debug(JSON.stringify(err)); - logAndThrow( - `[${node.project}] Error cloning ${checkoutInfo.targetGroup}/${checkoutInfo.targetName} and switching to target branch ${checkoutInfo.targetBranch}` - ); - }); - if (checkoutInfo.merge) { - this.logger.debug(`[${node.project}] Merging ${checkoutInfo.sourceGroup}/${checkoutInfo.sourceName}:${checkoutInfo.sourceBranch} - into ${checkoutInfo.targetGroup}/${checkoutInfo.targetName}:${checkoutInfo.targetBranch}`); - - // get url of the source for the merge - const sourceCloneUrl = this.config.getCloneUrl(checkoutInfo.sourceGroup, checkoutInfo.sourceName); - - await gitCLIService.merge(checkoutInfo.repoDir, sourceCloneUrl, checkoutInfo.sourceBranch).catch(err => { - this.logger.debug(JSON.stringify(err)); - logAndThrow(`[${node.project}] Error merging ${checkoutInfo.sourceGroup}/${checkoutInfo.sourceName}:${checkoutInfo.sourceBranch} - into ${checkoutInfo.targetGroup}/${checkoutInfo.targetName}:${checkoutInfo.targetBranch}`); - }); - } - // clone multiple times if needed - await this.cloneNode(node); - - this.logger.info(`${node.project} checked out`); - - return checkoutInfo; - } - - /** - * Produces the checkout information for the given node - * Checkout information contains details about the source repository, target repository and whether source needs to be merged into target - * @param node - * @returns checkout info - */ - private async getCheckoutInfo(node: Node): Promise { - const githubAPIService = Container.get(GithubAPIService); - const starterNode = this.config.getStarterNode(); - const originalTarget = this.config.getTargetProject(); - // the current node is the current target - const currentTarget = { - // map the starting project target branch to the corresponding branch defined in the mapping for the current node - // target branch is guaranteed to exist since base always exist - mappedBranch: getMappedTarget(starterNode.project, starterNode.mapping, node.project, node.mapping, originalTarget.branch!), - name: node.project.split("/")[1], - group: node.project.split("/")[0], - }; - - const originalSource = this.config.getSourceProject(); - - /** - * Case 1: - * Check whether PR exists from node_forked:source_branch to node:mapped_branch - * (where node_forked is the fork of node owned by the same author as the source's author) - * Branch existance is automatically checked by hasPullRequest. If the branch does not exist => there is no PR - */ - const result = await githubAPIService - .getForkName(currentTarget.group, originalSource.group!, currentTarget.name) - .then(async forkName => { - // only check for PR if we were able to get a fork name - const hasPullRequestFromFork = await githubAPIService.hasPullRequest( - currentTarget.group, - currentTarget.name, - `${originalSource.group}/${forkName}:${originalSource.branch}`, - currentTarget.mappedBranch - ); - return { forkName, hasPullRequest: hasPullRequestFromFork }; - }) - .catch(err => { - if (err instanceof NotFoundError) { - return { forkName: "", hasPullRequest: false }; - } - throw err; - }); - if (result.hasPullRequest) { - return { - // source branch is guaranteed to exist since there is PR from the source branch and group - sourceBranch: originalSource.branch!, - sourceGroup: originalSource.group!, - sourceName: result.forkName, - targetBranch: currentTarget.mappedBranch, - targetGroup: currentTarget.group, - targetName: currentTarget.name, - repoDir: this.getProjectDir(node), - merge: true, - }; - } - - /** - * Case 2: - * Check whether PR exists from node:source_branch to node:mapped_branch - * Branch existance is automatically checked by hasPullRequest. If the branch does not exist => there is no PR - */ - const hasPullRequest = await githubAPIService.hasPullRequest( - currentTarget.group, - currentTarget.name, - `${currentTarget.group}:${originalSource.branch}`, - currentTarget.mappedBranch - ); - if (hasPullRequest) { - return { - // source branch is guaranteed to exist since there is PR from the source branch - sourceBranch: originalSource.branch!, - sourceGroup: currentTarget.group, - sourceName: currentTarget.name, - targetBranch: currentTarget.mappedBranch, - targetGroup: currentTarget.group, - targetName: currentTarget.name, - repoDir: this.getProjectDir(node), - merge: true, - }; - } - - /** - * Case 3: - * No PR available. Checkout node:mapped_branch - * No need to check for branch existance since when this node is tried to clone, it will error out - * if the branch does not exist - */ - return { - sourceBranch: currentTarget.mappedBranch, - sourceGroup: currentTarget.group, - sourceName: currentTarget.name, - targetBranch: currentTarget.mappedBranch, - targetGroup: currentTarget.group, - targetName: currentTarget.name, - repoDir: this.getProjectDir(node), - merge: false, - }; - } - - /** - * Checkout each node in the node chain sequentially - * @returns checkout information for each node - */ - private async checkoutDefinitionTreeSequential(): Promise { - const result: CheckedOutNode[] = []; - for (const node of this.config.nodeChain) { - const checkoutInfo = await this.checkoutNode(node); - result.push({ - node, - checkoutInfo, - }); - } - return result; - } - - /** - * Technically this method is concurrent and not parallel since promises are executed concurrently in a single thread js runtime. - * Although for our use case promises might be better since checkoutNode is a more I/O intensive task (cloning repo, copying dirs etc) - * Something to explore later would be to compare the performance of this method against one which uses worker threads. - */ - /** - * Checkout each node in the node chain parallely - * @returns checkout information for each node - */ - private async checkoutDefinitionTreeParallel(): Promise { - return Promise.all( - this.config.nodeChain.map(async node => - this.checkoutNode(node).then(checkoutInfo => { - return { - node, - checkoutInfo, - }; - }) - ) - ); - } - - /** - * Checkout each node in the node chain either parallely or sequentially depending on the skipParallelCheckout flag - * @param nodeChain - * @returns checkout information for each node - */ - async checkoutDefinitionTree(): Promise { - return this.config.skipParallelCheckout() ? - this.checkoutDefinitionTreeSequential() : - this.checkoutDefinitionTreeParallel(); - } -} diff --git a/src/service/command/execute-command-service.ts b/src/service/command/execute-command-service.ts deleted file mode 100644 index 4bbd7fd9..00000000 --- a/src/service/command/execute-command-service.ts +++ /dev/null @@ -1,68 +0,0 @@ -import Container, { Service } from "typedi"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { CommandTreatmentDelegator } from "@bc/service/command/treatment/command-treatment-delegator"; -import { CommandExecutorDelegator } from "@bc/service/command/executor/command-executor-delegator"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { ExecutionPhase } from "@bc/domain/execution-phase"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { NodeExecution, NodeExecutionLevel } from "@bc/domain/node-execution"; -import { Node } from "@kie/build-chain-configuration-reader"; - -@Service() -export class ExecuteCommandService { - - constructor(private _commandTreatmentDelegator: CommandTreatmentDelegator, - private _commandExecutorDelegator: CommandExecutorDelegator, - private _configurationService: ConfigurationService) { - } - - public async executeCommand(command: string, cwd?: string): Promise { - const treatedCommand = this._commandTreatmentDelegator.treatCommand(command, this._configurationService.getTreatmentOptions()); - return this._commandExecutorDelegator.executeCommand(treatedCommand, cwd); - } - - public async executeChainCommands(nodes: NodeExecution[], executionPhase: ExecutionPhase): Promise { - const result: ExecuteNodeResult[] = []; - for (const {node, cwd} of nodes) { - const commands = this.getNodeCommands(node, executionPhase, this._configurationService.getNodeExecutionLevel(node)); - result.push(await this.executeNodeCommands(node, commands ?? [], this._configurationService.skipExecution(node), cwd)); - } - return result; - } - - public getNodeCommands(node: Node, executionPhase: ExecutionPhase, nodeExecutionLevel: NodeExecutionLevel): string[] | undefined { - const commands = node[`${executionPhase}`]; - let levelCommands; - if (commands) { - levelCommands = commands[`${nodeExecutionLevel}`].length ? commands[`${nodeExecutionLevel}`] : commands[`${NodeExecutionLevel.CURRENT}`]; - } - if (!commands) { - Container.get(LoggerService).logger.debug(`No commands defined for project ${node.project} and phase ${executionPhase}`); - } else if (!levelCommands || !levelCommands.length) { - const levelMsg = nodeExecutionLevel !== NodeExecutionLevel.CURRENT ? `${nodeExecutionLevel} or ${NodeExecutionLevel.CURRENT}` : NodeExecutionLevel.CURRENT; - Container.get(LoggerService).logger.debug(`No commands defined for project ${node.project} phase ${executionPhase} and level ${levelMsg}`); - } - return levelCommands; - } - - private async executeNodeCommands(node: Node, commands: string[], skipExecution: boolean, cwd?: string): Promise { - const result: ExecuteNodeResult = { - node, - executeCommandResults: [], - }; - for (const command of commands) { - result.executeCommandResults.push(skipExecution ? - { - startingDate: Date.now(), - endingDate: Date.now(), - command, - result: ExecutionResult.SKIP, - errorMessage: "", - time: 0 - } : await this.executeCommand(command, cwd)); - } - return result; - } - -} \ No newline at end of file diff --git a/src/service/command/executor/bash-executor.ts b/src/service/command/executor/bash-executor.ts deleted file mode 100644 index 8d4b4b1d..00000000 --- a/src/service/command/executor/bash-executor.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { exec } from "@actions/exec"; -import { Service } from "typedi"; - -@Service() -export class BashExecutor { - - async execute(command: string, cwd?: string): Promise { - await exec(command, [], { cwd }); - } -} \ No newline at end of file diff --git a/src/service/command/executor/command-executor-delegator.ts b/src/service/command/executor/command-executor-delegator.ts deleted file mode 100644 index deba9d7d..00000000 --- a/src/service/command/executor/command-executor-delegator.ts +++ /dev/null @@ -1,42 +0,0 @@ -import Container, { Service } from "typedi"; -import { BashExecutor } from "@bc/service/command/executor/bash-executor"; -import { ExportExecutor } from "@bc/service/command/executor/export-executor"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { hrtimeToMs } from "@bc/utils/date"; - -@Service() -export class CommandExecutorDelegator { - - constructor(private _bashExecutor: BashExecutor, - private _exportExecutor: ExportExecutor) { - } - - public async executeCommand(command: string, cwd?: string): Promise { - const startHrTime = process.hrtime(); - const startingDate = Date.now(); - let result: ExecutionResult; - let errorMessage = ""; - - try { - this.isExport(command) ? await this._exportExecutor.execute(command, cwd) : await this._bashExecutor.execute(command, cwd); - result = ExecutionResult.OK; - } catch (ex) { - errorMessage = (ex instanceof Error) ? ex.message : "unknown"; - Container.get(LoggerService).logger.error(`Error executing command ${command}. ${errorMessage}`); - result = ExecutionResult.NOT_OK; - } - return { - startingDate, - command, - result, - errorMessage, - endingDate: Date.now(), - time: hrtimeToMs(startHrTime), - }; - } - - private isExport(command: string): boolean { - return command.trim().match(/^export .*=/) !== null; - } -} \ No newline at end of file diff --git a/src/service/command/executor/export-executor.ts b/src/service/command/executor/export-executor.ts deleted file mode 100644 index 99d332cb..00000000 --- a/src/service/command/executor/export-executor.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { exec } from "@actions/exec"; -import Container, { Service } from "typedi"; -import { LoggerService } from "@bc/service/logger/logger-service"; - -@Service() -export class ExportExecutor { - - async execute(command: string, cwd?: string): Promise { - const expressionCommand = new ExpressionCommand(command); - process.env[expressionCommand.variable] = await this.executeExpression(expressionCommand.expression, cwd); - Container.get(LoggerService).logger.debug(`The variable \`${expressionCommand.variable}\` has been set to the env with the value \`${process.env[expressionCommand.variable]}\``); - } - - private async executeExpression(expression: string, cwd?: string): Promise { - const expressionMatch = expression.match(/`(.*)`/); - const commandFromExpression = expressionMatch ? expressionMatch[1] : undefined; - if (commandFromExpression) { - let myOutput = ""; - const options = { - listeners: { - stdout: (data: Buffer) => { - myOutput += data.toString(); - }, - }, - cwd, - }; - await exec(commandFromExpression, [], options); - return myOutput; - } - return expression.replace(/['"]+/g, ""); - } -} - -class ExpressionCommand { - _variable: string; - _expression: string; - - constructor(command: string) { - const commandArray = this.getCommandArray(command); - this._variable = commandArray[1]; - this._expression = commandArray[2]; - } - - private getCommandArray(command: string): string[] { - const commandArray = command.match(/^export (\w+)=(.*)/); - if (!commandArray || commandArray.length !== 3) { - const message = `The export command ${command} is not properly defined. It should be something like "export VARIBLE=expression". Please fix it an try again.`; - Container.get(LoggerService).logger.error(message); - throw new Error(message); - } - return commandArray; - } - - get variable(): string { - return this._variable; - } - - get expression(): string { - return this._expression; - } -} \ No newline at end of file diff --git a/src/service/command/treatment/command-builder.ts b/src/service/command/treatment/command-builder.ts deleted file mode 100644 index 20fc46f8..00000000 --- a/src/service/command/treatment/command-builder.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { CommandTreatment } from "@bc/service/command/treatment/command-treatment"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; - -export class CommandBuilder { - private treatedCommand: string; - private readonly options?: TreatmentOptions; - - constructor(command: string, options?: TreatmentOptions) { - this.treatedCommand = command; - this.options = options; - } - - public treat(commandTreatment: CommandTreatment): CommandBuilder { - this.treatedCommand = commandTreatment.treat(this.treatedCommand, this.options); - return this; - } - - public build(): string { - return this.treatedCommand; - } - -} \ No newline at end of file diff --git a/src/service/command/treatment/command-treatment-delegator.ts b/src/service/command/treatment/command-treatment-delegator.ts deleted file mode 100644 index a355e753..00000000 --- a/src/service/command/treatment/command-treatment-delegator.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Service } from "typedi"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; -import { CommandBuilder } from "@bc/service/command/treatment/command-builder"; -import { EnvironmentCommandTreatment } from "@bc/service/command/treatment/environment-command-treatment"; -import { MavenCommandTreatment } from "@bc/service/command/treatment/maven-command-treatment"; -import { RegexCommandTreatment } from "@bc/service/command/treatment/regex-command-treatment"; - -@Service() -export class CommandTreatmentDelegator { - - constructor(private _environmentCommandTreatment: EnvironmentCommandTreatment, - private _mavenCommandTreatment: MavenCommandTreatment, - private _regexCommandTreatment: RegexCommandTreatment) { - } - - public treatCommand(command: string, options?: TreatmentOptions): string { - return new CommandBuilder(command, options) - .treat(this._environmentCommandTreatment) - .treat(this._mavenCommandTreatment) - .treat(this._regexCommandTreatment) - .build(); - } -} \ No newline at end of file diff --git a/src/service/command/treatment/command-treatment.ts b/src/service/command/treatment/command-treatment.ts deleted file mode 100644 index 0d29122b..00000000 --- a/src/service/command/treatment/command-treatment.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { TreatmentOptions } from "@bc/domain/treatment-options"; - -export interface CommandTreatment { - treat(command: string, options?: TreatmentOptions): string; -} \ No newline at end of file diff --git a/src/service/command/treatment/environment-command-treatment.ts b/src/service/command/treatment/environment-command-treatment.ts deleted file mode 100644 index 3c843a37..00000000 --- a/src/service/command/treatment/environment-command-treatment.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { CommandTreatment } from "@bc/service/command/treatment/command-treatment"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; -import { Service } from "typedi"; - -@Service() -export class EnvironmentCommandTreatment implements CommandTreatment { - - // eslint-disable-next-line - public treat(command: string, _options?: TreatmentOptions): string { - const variables = this.getVariablesFromCommand(command); - return variables?.length > 0 ? variables.reduce( - (acc, variable) => acc.replace(variable[0], process.env[variable[1]] ?? ""), - command, - ) : command; - } - - private getVariablesFromCommand(command: string): RegExpMatchArray[] { - return [...command.matchAll(/\${{ env\.(\w+) }}/g)]; - } - -} \ No newline at end of file diff --git a/src/service/command/treatment/maven-command-treatment.ts b/src/service/command/treatment/maven-command-treatment.ts deleted file mode 100644 index 23d13d1d..00000000 --- a/src/service/command/treatment/maven-command-treatment.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Service } from "typedi"; -import { CommandTreatment } from "@bc/service/command/treatment/command-treatment"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; - -@Service() -export class MavenCommandTreatment implements CommandTreatment { - - public treat(command: string, options?: TreatmentOptions): string { - return !this.isMavenCommand(command, options?.mavenBinary) ? command : `${command} -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B`; - } - - private isMavenCommand(command: string, mavenBinary = "mvn"): boolean { - return new RegExp(`.*${mavenBinary} .*`).test(command); - } - - -} \ No newline at end of file diff --git a/src/service/command/treatment/regex-command-treatment.ts b/src/service/command/treatment/regex-command-treatment.ts deleted file mode 100644 index 77dacb76..00000000 --- a/src/service/command/treatment/regex-command-treatment.ts +++ /dev/null @@ -1,65 +0,0 @@ -import Container, { Service } from "typedi"; -import { CommandTreatment } from "@bc/service/command/treatment/command-treatment"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; -import { LoggerService } from "@bc/service/logger/logger-service"; - -@Service() -export class RegexCommandTreatment implements CommandTreatment { - - public treat(command: string, options?: TreatmentOptions): string { - if (options?.replaceExpressions) { - Container.get(LoggerService).logger.debug(`[${RegexCommandTreatment.name}] Replacing command: \`${command}\` by expressions: '${options.replaceExpressions}'`); - const result = options.replaceExpressions.reduce( - (acc, replaceEx) => this.treatReplaceEx(acc, replaceEx), - command, - ); - Container.get(LoggerService).logger.debug( - result === command - ? `[${RegexCommandTreatment.name}] No replacement for \`${command}\`` - : `[${RegexCommandTreatment.name}] Replaced to: \`${result}\``, - ); - return result; - } else { - return command; - } - } - - private treatReplaceEx(command: string, replaceExpression: string) { - const replacementExpression = this.getReplacementExpression(replaceExpression); - return command.replace( - replacementExpression.regEx, - replacementExpression.replace, - ); - } - - private getReplacementExpression(replaceExpression: string): ReplacementExpression { - const split = replaceExpression.split("||"); - return new ReplacementExpression(this.createRegex(split[0]), split[1]); - } - - private createRegex(replaceExpression: string): RegExp { - const [, literal, flag] = replaceExpression.split("/"); - if (literal) { - return flag ? new RegExp(literal, flag) : new RegExp(literal); - } - return new RegExp(replaceExpression); - } -} - -class ReplacementExpression { - private readonly _regEx: RegExp; - private readonly _replace: string; - - constructor(regEx: RegExp, replace: string) { - this._regEx = regEx; - this._replace = replace; - } - - get regEx(): RegExp { - return this._regEx; - } - - get replace(): string { - return this._replace; - } -} \ No newline at end of file diff --git a/src/service/config/action-configuration.ts b/src/service/config/action-configuration.ts deleted file mode 100644 index d42618b3..00000000 --- a/src/service/config/action-configuration.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { EventData, GitConfiguration, ProjectConfiguration } from "@bc/domain/configuration"; -import { constants } from "@bc/domain/constants"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -import { logAndThrow } from "@bc/utils/log"; -import Container from "typedi"; -import { readFile } from "node:fs/promises"; -import { FlowType } from "@bc/domain/inputs"; - -export class ActionConfiguration extends BaseConfiguration { - - override loadProject(): { source: ProjectConfiguration; target: ProjectConfiguration } { - if (this.parsedInputs.flowType === FlowType.BRANCH) { - const projectName = this.parsedInputs.startProject ?? this.gitConfiguration.repository; - const decomposedName = projectName!.split("/"); - const projectConfig = { - branch: this.parsedInputs.branch ?? this.gitConfiguration.ref, - repository: projectName, - name: decomposedName[decomposedName.length - 1], - group: this.parsedInputs.group ?? decomposedName[0], - }; - return { - source: projectConfig, - target: projectConfig, - }; - } else { - return super.loadProject(); - } - } - - /** - * Process the various github env variables - * @returns a new GitConfiguration instance - */ - loadGitConfiguration(): GitConfiguration { - const serverUrl = process.env.GITHUB_SERVER_URL ? process.env.GITHUB_SERVER_URL.replace(/\/$/, "") : "https://github.com"; - return { - action: process.env.GITHUB_ACTION, - actor: process.env.GITHUB_ACTOR, - author: process.env.GITHUB_AUTHOR, - serverUrl: serverUrl, - serverUrlWithToken: serverUrl.replace("://", `://${Container.get(constants.GITHUB.TOKEN)}@`), - jobId: process.env.GITHUB_JOB, - ref: process.env.GITHUB_REF, - workflow: process.env.GITHUB_WORKFLOW, - repository: process.env.GITHUB_REPOSITORY, - }; - } - - /** - * Read the event payload file - * @returns the github event - */ - async loadGitEvent(): Promise { - if (this.parsedInputs.flowType === FlowType.BRANCH) { - return {}; - } - if (process.env.GITHUB_EVENT_PATH) { - this.logger.debug("Getting pull request information"); - const data = await readFile(process.env.GITHUB_EVENT_PATH, { - encoding: "utf8", - }); - return JSON.parse(data).pull_request; - } - logAndThrow("Make sure you are running it in a github environment"); - } - - /** - * Set the github token to the context - */ - loadToken(): void { - if (process.env.GITHUB_TOKEN) { - Container.set(constants.GITHUB.TOKEN, process.env.GITHUB_TOKEN); - } else { - logAndThrow("A github token is needed"); - } - } - - /** - * Get the flow type for the github event - * @returns - */ - getFlowType(): FlowType { - return this.parsedInputs.flowType!; - } -} diff --git a/src/service/config/base-configuration.ts b/src/service/config/base-configuration.ts deleted file mode 100644 index 861062d7..00000000 --- a/src/service/config/base-configuration.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { EventData, GitConfiguration, ProjectConfiguration } from "@bc/domain/configuration"; -import { defaultInputValues, FlowType, InputValues } from "@bc/domain/inputs"; -import { InputService } from "@bc/service/inputs/input-service"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { logAndThrow } from "@bc/utils/log"; -import Container from "typedi"; - -export abstract class BaseConfiguration { - protected _gitEventData: EventData; - protected _gitConfiguration: GitConfiguration; - protected _sourceProject: ProjectConfiguration; - protected _targetProject: ProjectConfiguration; - protected _parsedInputs: InputValues; - protected readonly logger: BaseLoggerService; - - constructor() { - this.logger = Container.get(LoggerService).logger; - this._parsedInputs = defaultInputValues; - this._gitEventData = {}; - this._gitConfiguration = {}; - this._sourceProject = {}; - this._targetProject = {}; - } - - async init() { - this._parsedInputs = this.loadParsedInput(); - this.loadToken(); - this._gitEventData = await this.loadGitEvent(); - this._gitConfiguration = this.loadGitConfiguration(); - const { source, target } = this.loadProject(); - this._sourceProject = source; - this._targetProject = target; - } - - get gitEventData(): EventData { - return this._gitEventData; - } - - get gitConfiguration(): GitConfiguration { - return this._gitConfiguration; - } - - get sourceProject(): ProjectConfiguration { - return this._sourceProject; - } - - get targetProject(): ProjectConfiguration { - return this._targetProject; - } - - get parsedInputs(): InputValues { - return this._parsedInputs; - } - - abstract loadGitConfiguration(): GitConfiguration; - - abstract loadGitEvent(): Promise; - - abstract loadToken(): void; - - abstract getFlowType(): FlowType; - - /** - * Create the source and target project configuration from the github event payload - * @returns a new { source: ProjectConfiguration; target: ProjectConfiguration } instance - */ - loadProject(): { source: ProjectConfiguration; target: ProjectConfiguration } { - return { - source: { - branch: this.gitEventData.head.ref, - repository: this.gitEventData.head.repo?.full_name, - name: this.gitEventData.head.repo?.name, - group: this.gitEventData.head.repo?.owner.login, - }, - target: { - branch: this.gitEventData.base.ref, - repository: this.gitEventData.base.repo.full_name, - name: this.gitEventData.base.repo.name, - group: this.gitEventData.base.repo.owner.login, - }, - }; - } - - /** - * Validates any user input and returns the stored user input from InputService if there were no errors - * @returns {InputValues} - */ - loadParsedInput(): InputValues { - const inputs: InputValues = Container.get(InputService).inputs; - - // customCommandTreatment values must be of the form: REGEX||REPLACE_REGEX - inputs.customCommandTreatment?.forEach(cct => { - if (cct.split("||").length !== 2) { - logAndThrow("Invalid format for custom command treatment. Required format: Regex||ReplaceRegex"); - } - }); - - // startProject must be of the form: OWNER/PROJECT - if (inputs.startProject && inputs.startProject.split("/").length !== 2) { - logAndThrow("Invalid start project. Start project must be of the form OWNER/PROJECT"); - } - - this.logger.debug(`Received input: ${JSON.stringify(inputs)}`); - - // parsed inputs will always have the default value. No need to check whether it is empty or not - return inputs; - } -} diff --git a/src/service/config/cli-configuration.ts b/src/service/config/cli-configuration.ts deleted file mode 100644 index e6ceeb1c..00000000 --- a/src/service/config/cli-configuration.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { EventData, GitConfiguration, ProjectConfiguration } from "@bc/domain/configuration"; -import { constants } from "@bc/domain/constants"; -import { FlowType } from "@bc/domain/inputs"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -import { OctokitService } from "@bc/service/git/octokit"; -import { logAndThrow } from "@bc/utils/log"; -import Container from "typedi"; - -export class CLIConfiguration extends BaseConfiguration { - - override loadProject(): { source: ProjectConfiguration; target: ProjectConfiguration } { - if (this.parsedInputs.CLISubCommand === FlowType.BRANCH) { - const projectName = this.parsedInputs.startProject!.split("/"); - const projectConfig = { - branch: this.parsedInputs.branch, - name: projectName[projectName.length - 1], - group: this.parsedInputs.group ?? projectName[0], - repository: this.parsedInputs.startProject, - }; - return { - source: projectConfig, - target: projectConfig, - }; - } else { - return super.loadProject(); - } - } - - /** - * Process user input to produce git configuration - * @returns - */ - loadGitConfiguration(): GitConfiguration { - const serverUrl = process.env.GITHUB_SERVER_URL ? process.env.GITHUB_SERVER_URL.replace(/\/$/, "") : "https://github.com"; - let gitConfig: GitConfiguration = { - serverUrl: serverUrl, - serverUrlWithToken: serverUrl.replace("://", `://${Container.get(constants.GITHUB.TOKEN)}@`), - }; - if (this.parsedInputs.CLISubCommand === FlowType.BRANCH) { - const group = this.parsedInputs.group ?? this.parsedInputs.startProject?.split("/")[0]; - if (!group) { - logAndThrow("Specify group option or set project name as GROUP_NAME/REPO_NAME"); - } - gitConfig = { - ...gitConfig, - actor: group, - ref: this.parsedInputs.branch, - }; - } - return gitConfig; - } - - /** - * Produce the event payload file for PR build using the events url. For branch build github event is empty - * @returns - */ - async loadGitEvent(): Promise { - if (this.parsedInputs.CLISubCommand === FlowType.BRANCH) { - return {}; - } - if (!this.parsedInputs.url) { - logAndThrow("If running from the CLI, event url needs to be defined"); - } - const PR_URL = /^https?:\/\/.+\/([^/\s]+)\/([^/\s]+)\/pull\/(\d+)$/; - const prCheck = this.parsedInputs.url.match(PR_URL); - if (prCheck) { - this.logger.debug("Getting pull request information"); - try { - const { data } = await Container.get(OctokitService).octokit.pulls.get({ - owner: prCheck[1], - repo: prCheck[2], - pull_number: parseInt(prCheck[3]), - }); - return data; - } catch (err) { - logAndThrow(`Invalid event url ${this.parsedInputs.url}`); - } - } - logAndThrow(`Invalid event url ${this.parsedInputs.url}. URL must be a github pull request event url or a github tree url`); - } - - /** - * Set the github token - * @returns - */ - loadToken(): void { - if (this.parsedInputs.token) { - Container.set(constants.GITHUB.TOKEN, this.parsedInputs.token); - } else if (process.env.GITHUB_TOKEN) { - Container.set(constants.GITHUB.TOKEN, process.env.GITHUB_TOKEN); - } else { - logAndThrow("A github token is needed"); - } - } - - /** - * Get the flow type if defined otherwise throw an error - * @returns - */ - getFlowType(): FlowType { - const subcmd = this.parsedInputs.CLISubCommand!; - if (Object.values(FlowType).includes(subcmd as FlowType)) { - return subcmd as FlowType; - } - logAndThrow("The CLI subcommand is a tool commaand. No flow defined"); - } -} diff --git a/src/service/config/configuration-service.ts b/src/service/config/configuration-service.ts deleted file mode 100644 index 7e58866f..00000000 --- a/src/service/config/configuration-service.ts +++ /dev/null @@ -1,216 +0,0 @@ -import Container, { Service } from "typedi"; -import { NodeExecutionLevel } from "@bc/domain/node-execution"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { CLIConfiguration } from "@bc/service/config/cli-configuration"; -import { ActionConfiguration } from "@bc/service/config/action-configuration"; -import { logAndThrow } from "@bc/utils/log"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; -import { ProjectConfiguration } from "@bc/domain/configuration"; -import { FlowType } from "@bc/domain/inputs"; -import { DefinitionFile, Post, Pre, Node } from "@kie/build-chain-configuration-reader"; -import { DefinitionFileReader } from "@bc/service/config/definition-file-reader"; - -@Service() -export class ConfigurationService { - private configuration: BaseConfiguration; - private _nodeChain: Node[]; - private _definitionFile: DefinitionFile; - - constructor() { - switch (Container.get(constants.CONTAINER.ENTRY_POINT)) { - case EntryPoint.CLI: - this.configuration = new CLIConfiguration(); - break; - case EntryPoint.GITHUB_EVENT: - this.configuration = new ActionConfiguration(); - break; - default: - logAndThrow("Invalid entrypoint. Please contact with the administrator or report and issue to build-chain tool repository"); - } - this._nodeChain = []; - this._definitionFile = { version: "2.1" }; - } - - get nodeChain(): Node[] { - return this._nodeChain; - } - - get definitionFile(): DefinitionFile { - return this._definitionFile; - } - - /** - * Load all necessary data for the configuration object - */ - async init() { - await this.configuration.init(); - const definitionFileReader = new DefinitionFileReader(this.configuration); - this._definitionFile = await definitionFileReader.getDefinitionFile(); - this._nodeChain = await definitionFileReader.generateNodeChain(this.getStarterProjectName()); - } - - /** - * Get the name of the project starting the build-chain - * @returns {string} - */ - getStarterProjectName(): string { - const startProject = - this.configuration.parsedInputs.startProject ?? - process.env.GITHUB_REPOSITORY ?? - this.configuration.gitEventData.base.repo.full_name; - if (!startProject) { - logAndThrow("Start project needs to be defined or build chain must be run in a Github environment"); - } - return startProject; - } - - /** - * Check whether the given node is the starter project - * @param node - * @returns {Boolean} true if the node is the starter project - */ - isNodeStarter(node: Node): boolean { - return node.project === this.getStarterProjectName(); - } - - /** - * Finds the starter node - * @returns {Node} starter node - */ - getStarterNode(): Node { - const starterNode = this.nodeChain.find(node => this.isNodeStarter(node)); - if (!starterNode) { - logAndThrow(`There's no project ${this.getStarterProjectName()} in the chain - This is normally due the project starting the job (or the one selected to behave like so it's not in the project tree information. - Please choose a different project like starter or define the project ${this.getStarterProjectName()} in the tree.`); - } - return starterNode; - } - - /** - * Gets the execution level (current, upstream or downstream) for the given node - * @param node - * @returns {NodeExecutionLevel} Upstream, current or downstream - */ - getNodeExecutionLevel(node: Node): NodeExecutionLevel { - const starterNodeIndex = this.nodeChain.indexOf(this.getStarterNode()); - const currentNodeIndex = this.nodeChain.indexOf(node); - if (currentNodeIndex < starterNodeIndex) { - return NodeExecutionLevel.UPSTREAM; - } else if (currentNodeIndex > starterNodeIndex) { - return NodeExecutionLevel.DOWNSTREAM; - } else { - return NodeExecutionLevel.CURRENT; - } - } - - /** - * Checks whether execution needs to be skipped for the given node - * @param node - * @returns {Boolean} true if execution needs to be skipped otherwise false - */ - skipExecution(node: Node): boolean { - if (this.configuration.parsedInputs.skipExecution) { - return true; - } - return this.configuration.parsedInputs.skipProjectExecution ? this.configuration.parsedInputs.skipProjectExecution.includes(node.project) : false; - } - - /** - * Checks whether given node needs to be checked out or not - * @param node - * @returns {Boolean} true if checking out needs to be skipped for the given node otherwise false - */ - skipCheckout(node: Node): boolean { - if (this.configuration.parsedInputs.skipCheckout) { - return true; - } - return this.configuration.parsedInputs.skipProjectCheckout ? this.configuration.parsedInputs.skipProjectCheckout.includes(node.project) : false; - } - - /** - * Checks whether checkout should be sequential or parallel - * @returns {Boolean} true if checkout should be sequential otherwise false - */ - skipParallelCheckout(): boolean { - return this.configuration.parsedInputs.skipParallelCheckout; - } - - /** - * Parses user input from custom command treatment option to create the treatment option object - * @returns {TreatmentOptions} Construct the treatment options domain object - */ - getTreatmentOptions(): TreatmentOptions { - if (this.configuration.parsedInputs.customCommandTreatment) { - return { - replaceExpressions: this.configuration.parsedInputs.customCommandTreatment, - }; - } - return {}; - } - - /** - * Returns the information for the target repository. For PR flow types it is the base branch - * @returns - */ - getTargetProject(): ProjectConfiguration { - return this.configuration.targetProject; - } - - /** - * Returns the information for the source repository. For PR flow types it is the head branch - * @returns - */ - getSourceProject(): ProjectConfiguration { - return this.configuration.sourceProject; - } - - /** - * Root folder is outputFolder if defined via options otherwise GITHUB_WORKSPACE. - * If both of these are undefined, it is the current working directory - * @returns - */ - getRootFolder(): string { - return this.configuration.parsedInputs.outputFolder ?? process.env.GITHUB_WORKSPACE ?? process.cwd(); - } - - /** - * Return the flow type of the current build or throw an error is the build is not - * of any flow type - * @returns - */ - getFlowType(): FlowType { - return this.configuration.getFlowType(); - } - - /** - * Returns the clone url for the given repo group and name - * @param group owner of the repository - * @param repoName name of the repository - * @returns - */ - getCloneUrl(group: string, repoName: string): string { - if (process.env.ACT) { - return `${process.env.ACT_REPO}${group}/${repoName}`; - } - return `${this.configuration.gitConfiguration.serverUrlWithToken}/${group}/${repoName}`; - } - - getPre(): Pre | undefined { - return this.definitionFile.pre; - } - - getPost(): Post | undefined { - return this.definitionFile.post; - } - - getDefinitionFileUrl(): string { - return this.configuration.parsedInputs.definitionFile; - } - - getEventUrl(): string { - return this.getFlowType() === FlowType.BRANCH ? "" : this.configuration.gitEventData.html_url; - } -} diff --git a/src/service/config/definition-file-reader.ts b/src/service/config/definition-file-reader.ts deleted file mode 100644 index 6e63a83a..00000000 --- a/src/service/config/definition-file-reader.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { constants } from "@bc/domain/constants"; -import { FlowType } from "@bc/domain/inputs"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { logAndThrow } from "@bc/utils/log"; -import { - DefinitionFile, - getOrderedListForProject, - getTreeForProject, - parentChainFromNode, - readDefinitionFile, - Node, - ReaderOpts, -} from "@kie/build-chain-configuration-reader"; -import Container from "typedi"; - -export class DefinitionFileReader { - private configuration: BaseConfiguration; - private logger: BaseLoggerService; - - constructor(configuration: BaseConfiguration) { - this.configuration = configuration; - this.logger = Container.get(LoggerService).logger; - } - - private async generateNodeChainWithOptions( - starterProject: string, - options: ReaderOpts - ): Promise { - let nodeChain: Node[]; - switch (this.configuration.getFlowType()) { - case FlowType.BRANCH: { - if (this.configuration.parsedInputs.fullProjectDependencyTree) { - nodeChain = await getOrderedListForProject( - this.configuration.parsedInputs.definitionFile, - starterProject, - options - ); - } else { - const node = await getTreeForProject( - this.configuration.parsedInputs.definitionFile, - starterProject, - options - ); - if (!node) { - throw new Error("Starting project not found"); - } - nodeChain = parentChainFromNode(node); - } - break; - } - case FlowType.CROSS_PULL_REQUEST: { - const node = await getTreeForProject( - this.configuration.parsedInputs.definitionFile, - starterProject, - options - ); - if (!node) { - throw new Error("Starting project not found"); - } - nodeChain = parentChainFromNode(node); - break; - } - case FlowType.FULL_DOWNSTREAM: { - nodeChain = await getOrderedListForProject( - this.configuration.parsedInputs.definitionFile, - starterProject, - options - ); - break; - } - case FlowType.SINGLE_PULL_REQUEST: { - const node = await getTreeForProject( - this.configuration.parsedInputs.definitionFile, - starterProject, - options - ); - if (!node) { - throw new Error("Starting project not found"); - } - nodeChain = [node]; - } - } - return nodeChain; - } - - async getDefinitionFile(): Promise { - try { - return await readDefinitionFile( - this.configuration.parsedInputs.definitionFile, - { - ...this.configuration.sourceProject, - token: Container.get(constants.GITHUB.TOKEN), - } - ); - } catch (err) { - this.logger.debug( - "Did not find correct definition file, trying target" - ); - } - - try { - return await readDefinitionFile( - this.configuration.parsedInputs.definitionFile, - { - ...this.configuration.targetProject, - token: Container.get(constants.GITHUB.TOKEN), - } - ); - } catch (err) { - logAndThrow("Invalid definition file"); - } - } - - async generateNodeChain(starterProject: string): Promise { - try { - return await this.generateNodeChainWithOptions(starterProject, { - ...this.configuration.sourceProject, - token: Container.get(constants.GITHUB.TOKEN), - }); - } catch (err) { - this.logger.debug( - "Did not find correct definition on file, trying target" - ); - } - - try { - return await this.generateNodeChainWithOptions(starterProject, { - ...this.configuration.targetProject, - token: Container.get(constants.GITHUB.TOKEN), - }); - } catch (err) { - logAndThrow("Invalid definition file"); - } - } -} diff --git a/src/service/flow/flow-service.ts b/src/service/flow/flow-service.ts deleted file mode 100644 index 7f989e25..00000000 --- a/src/service/flow/flow-service.ts +++ /dev/null @@ -1,193 +0,0 @@ -import { CheckedOutNode } from "@bc/domain/checkout"; -import { ExecutionResult } from "@bc/domain/execute-command-result"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { ExecutionPhase } from "@bc/domain/execution-phase"; -import { FlowResult } from "@bc/domain/flow"; -import { NodeExecution } from "@bc/domain/node-execution"; -import { ArtifactService } from "@bc/service/artifacts/artifact-service"; -import { CheckoutService } from "@bc/service/checkout/checkout-service"; -import { ExecuteCommandService } from "@bc/service/command/execute-command-service"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import Container, { Service } from "typedi"; - -@Service() -export class FlowService { - private configService: ConfigurationService; - private checkoutService: CheckoutService; - private executor: ExecuteCommandService; - private logger: BaseLoggerService; - private artifactService: ArtifactService; - - constructor() { - this.configService = Container.get(ConfigurationService); - this.checkoutService = Container.get(CheckoutService); - this.executor = Container.get(ExecuteCommandService); - this.artifactService = Container.get(ArtifactService); - this.logger = Container.get(LoggerService).logger; - } - - async run(): Promise { - this.logger.startGroup("Execution Plan"); - this.printExecutionPlan(); - this.logger.endGroup(); - - this.logger.startGroup( - `Checking out ${this.configService.getStarterProjectName()} and its dependencies (${this.configService.nodeChain.length} projects in total). It can take some time.` - ); - const checkoutInfo = await this.checkoutService.checkoutDefinitionTree(); - this.logger.endGroup(); - this.logger.startGroup("Checkout summary"); - this.printCheckoutSummary(checkoutInfo); - this.logger.endGroup(); - - /** - * Cannot directly map checkoutInfo into NodeExecution array since the order of nodes might change when parallely checking - * out the node chain - */ - const nodeChainForExecution: NodeExecution[] = this.configService.nodeChain.map(node => ({ - node, - // nodeCheckoutInfo will never be undefined since checkoutInfo is constructed from node chain and so node project will exist - cwd: checkoutInfo.find(info => info.node.project === node.project)!.checkoutInfo?.repoDir, - })); - - // not looping through the keys of ExecutionPhase just so that we can enforce the order in which the phases need to be executed - const before = await this.executeAndPrint(nodeChainForExecution, ExecutionPhase.BEFORE); - const commands = await this.executeAndPrint(nodeChainForExecution, ExecutionPhase.CURRENT); - const after = await this.executeAndPrint(nodeChainForExecution, ExecutionPhase.AFTER); - - // archive artifacts - this.logger.startGroup("Uploading artifacts"); - const artifactUploadResults = await this.artifactService.uploadNodes(this.configService.nodeChain, this.configService.getStarterNode()); - this.logger.endGroup(); - - return { checkoutInfo, artifactUploadResults, executionResult: { after, commands, before } }; - } - - /** - * Prints the execution plan for the node chain in the following format: - * - * 3 projects will be executed - * [owner/project] - * Level type: current - * [before] - * cmd1 - * cmd2 - * [command] - * cmd1 - * [after] - * cmd1 - * [abc/xyz] - * Level type: downstream - * No command will be executed (this project will be skipped) - * [def/ghi] - * Level type: upstream - * [before] - * cmd1 - * [after] - * cmd1 - */ - private printExecutionPlan() { - this.logger.info(`${this.configService.nodeChain.length} projects will be executed`); - this.configService.nodeChain.forEach(node => { - const nodeLevel = this.configService.getNodeExecutionLevel(node); - this.logger.info(`[${node.project}]`); - this.logger.info(`\t Level type: ${nodeLevel}`); - - if (this.configService.skipExecution(node)) { - this.logger.info("\t No command will be executed (this project will be skipped)"); - } else { - const before = this.executor.getNodeCommands(node, ExecutionPhase.BEFORE, nodeLevel); - const current = this.executor.getNodeCommands(node, ExecutionPhase.CURRENT, nodeLevel); - const after = this.executor.getNodeCommands(node, ExecutionPhase.AFTER, nodeLevel); - - if (before?.length) { - this.logger.info(`\t [${ExecutionPhase.BEFORE}]`); - this.logger.info(`\t\t ${before.join("\n")}`); - } - - if (current?.length) { - this.logger.info(`\t [${ExecutionPhase.CURRENT}]`); - this.logger.info(`\t\t ${current.join("\n")}`); - } - - if (after?.length) { - this.logger.info(`\t [${ExecutionPhase.AFTER}]`); - this.logger.info(`\t\t ${after.join("\n")}`); - } - } - }); - } - - /** - * Prints the checkout info for the node chain in the following format: - * - * [owner/project] - * Project taken from owner/project:main - * Merged owner1/project-forked: - * [abc/xyz] - * This project wasn't checked out - * [def/ghi] - * Project taken from def/ghi:dev - */ - private printCheckoutSummary(checkoutInfo: CheckedOutNode[]) { - checkoutInfo.forEach(info => { - this.logger.info(`[${info.node.project}]`); - if (info.checkoutInfo) { - this.logger.info(`\t Project taken from ${info.checkoutInfo.targetGroup}/${info.checkoutInfo.targetName}:${info.checkoutInfo.targetBranch}`); - if (info.checkoutInfo.merge) { - this.logger.info( - `\t Merged ${info.checkoutInfo.sourceGroup}/${info.checkoutInfo.sourceName}:${info.checkoutInfo.sourceBranch} into branch ${info.checkoutInfo.targetBranch}` - ); - } - } else { - this.logger.info("\t This project wasn't checked out"); - } - }); - } - - /** - * Prints the checkout info for the node chain in the following format: - * - * [owner/project] - * [OK] cmd1 [Executed in: 10s] - * [abc/xyz] - * No commands were found for this project - * [def/ghi] - * [NOT_OK] cmd2 [Executed in: 5s] - * Error: msg - */ - private printExecutionSummary(result: ExecuteNodeResult[], phase: ExecutionPhase) { - result.forEach(res => { - if (this.isNodeExecutionSkipped(res)) { - this.logger.info(`[${phase.toUpperCase()}] Skipped ${res.node.project}`); - } else { - if (!res.executeCommandResults.length) { - this.logger.info(`[${phase.toUpperCase()}] No commands were found for ${res.node.project}`); - } - res.executeCommandResults.forEach(cmdRes => { - this.logger.startGroup(`[${phase.toUpperCase()}] [${res.node.project}] ${cmdRes.command}`); - this.logger.info(`${cmdRes.result} [Executed in ${cmdRes.time} ms]`); - if (cmdRes.result === ExecutionResult.NOT_OK) { - this.logger.error(cmdRes.errorMessage); - } - this.logger.endGroup(); - }); - } - }); - } - - private async executeAndPrint(chain: NodeExecution[], phase: ExecutionPhase): Promise { - this.logger.startGroup(`Executing ${phase}`); - const result = await this.executor.executeChainCommands(chain, phase); - this.logger.info(`Execution summary for phase ${phase}`); - this.printExecutionSummary(result, phase); - this.logger.endGroup(); - return result; - } - - private isNodeExecutionSkipped(result: ExecuteNodeResult) { - return !!result.executeCommandResults.find(res => res.result === ExecutionResult.SKIP); - } -} diff --git a/src/service/git/git-cli.ts b/src/service/git/git-cli.ts deleted file mode 100644 index c7daad1f..00000000 --- a/src/service/git/git-cli.ts +++ /dev/null @@ -1,165 +0,0 @@ -import simpleGit, { SimpleGit } from "simple-git"; -import Container, { Service } from "typedi"; -import fs from "fs"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { GitExecutorResult } from "simple-git/dist/src/lib/types"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; - -type GitErrorHandlerFunction = (error: Buffer | Error | undefined, result: Omit) => Buffer | Error | undefined; - -@Service() -export class GitCLIService { - private readonly logger: BaseLoggerService; - - constructor() { - this.logger = Container.get(LoggerService).logger; - } - - /** - * Returns a git instance configured to execute commands in the directory specified or in the current directory - * @param cwd [OPTIONAL] working directory on which the git commands will be executed in - * @return {SimpleGit} git instance - */ - private git(cwd?: string, errorHandler?: GitErrorHandlerFunction): SimpleGit { - const gitConfig = { ...(cwd ? { baseDir: cwd } : {}), ...(errorHandler ? { errors: errorHandler } : {}) }; - return simpleGit(gitConfig).addConfig("user.name", "Github").addConfig("user.email", "noreply@github.com"); - } - - /** - * Returns the git version - * @returns {Promise} - */ - async version(): Promise { - const rawOutput = await simpleGit().raw("version"); - const match = rawOutput.match(/(\d+\.\d+(\.\d+)?)/); - return match ? match[1] : undefined; - } - - /** - * Clone a repository - * @param from url or path from which the repository should be cloned from - * @param to location at which the repository should be cloned at - * @param branch branch which should be cloned - */ - async clone(from: string, to: string, branch: string) { - if (!fs.existsSync(to)) { - // don't use this.git since it will configure git with local user.name and user.email which requires cwd to be a git repo - await simpleGit().clone(from, to, ["--quiet", "--shallow-submodules", "--no-tags", "--branch", branch]); - } else { - this.logger.warn(`Folder ${to} already exist. Won't clone`); - } - } - - /** - * Git fetch from a particular branch - * @param cwd repository in which fetch should be performed - * @param branch fetch from the given branch - */ - async fetch(cwd: string, branch: string) { - await this.git(cwd).fetch("origin", branch, ["--quiet"]); - } - - /** - * Gets the most recent common ancestor for the given branches or commits - * Equivalent of 'git merge-base' - * @param cwd the git repo in which merge-base should be executed - * @param refs branches or commits for which we need to find the most recent common ancestor - * @returns - */ - async getCommonAncestor(cwd: string, ...refs: string[]): Promise { - if (refs.length === 1) { - return refs[0]; - } else if (refs.length < 1) { - throw new Error("empty refs!"); - } - - const errorHandler: GitErrorHandlerFunction = (error, result) => { - // ignore the error if git exited with status code 1 - if (result.exitCode === 1 || result.exitCode === 0) { - return; - } - if (error) { - return error; - } - return Buffer.concat([...result.stdOut, ...result.stdErr]); - }; - return (await this.git(cwd, errorHandler).raw("merge-base", "--octopus", ...refs)).trim(); - } - - /** - * Gets the parents of commits reachable from HEAD but not ref - * @param cwd git repo - * @param ref ref from which the reachable commits are excluded - * @returns Array of parent commits - */ - async getReachableParentCommits(cwd: string, ref: string): Promise { - return (await this.git(cwd).raw("rev-list", "--parents", `${ref}..HEAD`)) - .split(/\n/g) - .map(line => line.split(/ /g).slice(1)) - .flat(); - } - - /** - * Equivalent to 'git pull --no-rebase url branch' - * @param cwd git repo in which the merge is to be performed - * @param repositoryUrl remote/url to pull from - * @param branch branch to pull from - */ - async merge(cwd: string, repositoryUrl: string, branch: string) { - await this.git(cwd).pull(repositoryUrl, branch, ["--no-rebase", "--allow-unrelated-histories"]); - } - - /** - * Return the sha-1 hash of the HEAD reference - * @param cwd git repo - * @returns sha string - */ - async head(cwd: string): Promise { - return this.git(cwd).raw("show-ref", "--head", "-s", "/HEAD"); - } - - /** - * Return the sha-1 hash of the given branch reference - * @param cwd git repo - * @param branch branch whose sha is to be returned - * @returns sha string - */ - async sha(cwd: string, branch: string): Promise { - return this.git(cwd).raw("show-ref", "-s", `refs/remotes/origin/${branch}`); - } - - /** - * Rename the current branch - * @param cwd git repo - * @param newBranchName new branch name - */ - async rename(cwd: string, newBranchName: string) { - await this.git(cwd).branch(["--move", newBranchName]); - } - - /** - * autosquash commits in on the given branch - * Equivalent to 'git rebase --quiet --autosquash branch' - * @param cwd git repo - * @param branch branch to be rebased - */ - async rebase(cwd: string, branch: string) { - await this.git(cwd).rebase(["--quiet", "--autosquash", branch]); - } - - /** - * Perform a push - * Equivalent to 'git push --quiet origin branch' or if using force then - * equivalent to 'git push --quiet --force-with-lease origin branch' - * @param cwd git repo - * @param force whether to use force or not - * @param branch branch to push - */ - async push(cwd: string, force: boolean, branch: string) { - const options = ["--quiet"]; - if (force) { - options.push("--force-with-lease"); - } - await this.git(cwd).push("origin", branch, options); - } -} diff --git a/src/service/git/github-api.ts b/src/service/git/github-api.ts deleted file mode 100644 index 1e4b751e..00000000 --- a/src/service/git/github-api.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { NotFoundError } from "@bc/domain/errors"; -import { OctokitService } from "@bc/service/git/octokit"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { logAndThrow } from "@bc/utils/log"; -import { Octokit } from "@octokit/rest"; -import { Endpoints } from "@octokit/types"; -import Container, { Service } from "typedi"; - -@Service() -export class GithubAPIService { - private readonly logger: BaseLoggerService; - private readonly octokit: Octokit; - - constructor() { - this.logger = Container.get(LoggerService).logger; - this.octokit = Container.get(OctokitService).octokit; - } - - /** - * Check whether the given branch exists for the given repo and owner - * @param owner repo owner - * @param repo repo name - * @param branch branch that we need to check for existence - * @returns whether branch exists or not - */ - async doesBranchExist(owner: string, repo: string, branch: string): Promise { - try { - await this.octokit.repos.getBranch({ owner, repo, branch }); - return true; - } catch (err) { - this.logger.warn(`project github.com/${owner}/${repo}:${branch} does not exist. It's not necessarily an error.`); - return false; - } - } - - /** - * Checks whether the given repo has any open pull requests for a given head branch either in the forked repo or in the original repo - * @param owner repo owner - * @param repo repo name - * @param head source/head branch to filter PRs by - * @param base base branch to filter PRs by - * @returns whether there is any open pull request - */ - async hasPullRequest(owner: string, repo: string, head?: string, base?: string): Promise { - let query: Endpoints["GET /repos/{owner}/{repo}/pulls"]["parameters"] = { owner, repo, state: "open" }; - if (!base && !head) { - logAndThrow(`[${owner}/${repo}] Either head or base needs to be defined while requesting pull request information`); - } - if (base) { - query = { ...query, base }; - } - if (head) { - query = { ...query, head }; - } - try { - const { status, data } = await this.octokit.pulls.list(query); - return status === 200 && data.length > 0; - } catch (err) { - let msg = `Error getting pull request list from https://api.github.com/repos/${owner}/${repo}/pulls?state=open`; - if (base) { - msg += `&base=${base}`; - } - if (head) { - msg += `&head=${head}`; - } - this.logger.error(msg); - throw err; - } - } - - /** - * Possible replacement of getRepository, getForkedProject and build-chain-flow-helper,js/getForkedProjectName - * - * getForkedProjectName basically gets the name if source and target owner are same. Otherwise it finds all the forked projects - * for target owner's repo and returns the name of the forked project whose owner is source owner - */ - /** - * Returns the project name of the forked repo - * @param targetOwner the actual owner of the given repo - * @param sourceOwner the owner of the forked repo - * @param repo repo name - * @returns project name of the forked repo - */ - async getForkName(targetOwner: string, sourceOwner: string, repo: string): Promise { - try { - // ensure that repo exists - if (targetOwner === sourceOwner) { - await this.octokit.repos.get({ - owner: sourceOwner, - repo, - }); - return repo; - } else { - // find repo from fork list - for await (const response of this.octokit.paginate.iterator(this.octokit.repos.listForks, { - owner: targetOwner, - repo, - })) { - const forkedRepo = response.data.find(project => project.owner.login === sourceOwner); - if (forkedRepo) { - return forkedRepo.name; - } - } - - throw new NotFoundError(); - } - } catch (err) { - this.logger.error(`Error getting fork name for ${targetOwner}/${repo} where owner is ${sourceOwner}`); - throw err; - } - } -} diff --git a/src/service/git/octokit.ts b/src/service/git/octokit.ts deleted file mode 100644 index c674eac2..00000000 --- a/src/service/git/octokit.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { constants } from "@bc/domain/constants"; -import { Octokit } from "@octokit/rest"; -import Container, { Service } from "typedi"; -import { HttpProxyAgent } from "http-proxy-agent"; - -@Service() -export class OctokitService { - private _octokit: Octokit; - - constructor() { - /** - * Behind the scenes act-js uses proxies to mock apis. It expects that all clients respect the http_proxy env variable. - * Most of the clients do but there are some which don't and in our case Octokit doesn't. Their reasoning being that people - * might use Octokit in browsers which doesn't follow this convention - https://github.com/octokit/octokit.js/issues/2098#issuecomment-844673894 - * - * So using http-proxy-agent is a workaround to force Octokit to respect proxies - * One added advantage of this is that when build-chain is used in an enterprise setting, it might need to go through proxies and - * this workaround will help with that. - */ - const proxy = process.env["http_proxy"]; - this._octokit = new Octokit({ - auth: Container.get(constants.GITHUB.TOKEN), - userAgent: "kiegroup/github-build-chain-action", - request: { agent: proxy ? new HttpProxyAgent(proxy) : undefined }, - }); - } - - get octokit() { - return this._octokit; - } -} diff --git a/src/service/inputs/input-service.ts b/src/service/inputs/input-service.ts deleted file mode 100644 index 7566bf8f..00000000 --- a/src/service/inputs/input-service.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { defaultInputValues, InputValues } from "@bc/domain/inputs"; -import { Service } from "typedi"; - -@Service() -export class InputService { - // store parsed options - private _inputs: InputValues = defaultInputValues; - - /** - * Getter for parsed options - * @returns Object containing parsed options - */ - get inputs(): InputValues { - return this._inputs; - } - - /** - * Updates the parsed options - * @param updatedInputs Options that were obtained from the parser - */ - updateInputs(updatedInputs: InputValues) { - this._inputs = { ...this.inputs, ...updatedInputs }; - } -} diff --git a/src/service/job-summary/job-summary-service.ts b/src/service/job-summary/job-summary-service.ts deleted file mode 100644 index e7a4b21a..00000000 --- a/src/service/job-summary/job-summary-service.ts +++ /dev/null @@ -1,148 +0,0 @@ -import Container, { Service } from "typedi"; -import * as core from "@actions/core"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { FlowType } from "@bc/domain/inputs"; -import { GitCLIService } from "@bc/service/git/git-cli"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { CheckedOutNode } from "@bc/domain/checkout"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { FlowResult } from "@bc/domain/flow"; -import { ExecutionPhase } from "@bc/domain/execution-phase"; - -@Service() -export class JobSummaryService { - private configService: ConfigurationService; - private gitService: GitCLIService; - - constructor() { - this.configService = Container.get(ConfigurationService); - this.gitService = Container.get(GitCLIService); - } - - async generateSummary(flowResult: FlowResult, preResult: ExecuteCommandResult[], postResult: ExecuteCommandResult[]) { - const flowType = this.configService.getFlowType(); - if (flowType === FlowType.BRANCH) { - return; - } - const localExecution = core.summary - .emptyBuffer() - .addRaw("You can copy paste the following commands to locally execute build chain tool.", true) - .addCodeBlock( - `npm i @kie/build-chain-action -g\nbuild-chain build ${flowType} -f ${this.configService.getDefinitionFileUrl()} -u ${this.configService.getEventUrl()}` - ) - .addEOL() - .addRaw(`**Git Version**: \`${await this.gitService.version()}\``, true) - .addRaw("> **_Notice_**: The `GITHUB_TOKEN` should be set in the environment.", true) - .stringify(); - - const before = this.constructExecutionResult(flowResult.executionResult.before, flowResult.checkoutInfo); - const current = this.constructExecutionResult(flowResult.executionResult.commands, flowResult.checkoutInfo); - const after = this.constructExecutionResult(flowResult.executionResult.after, flowResult.checkoutInfo); - const pre = this.constructPrePostResult(preResult); - const post = this.constructPrePostResult(postResult); - - await core.summary - .emptyBuffer() - .addHeading("Build Chain Execution Summary") - .addEOL() - .addRaw( - `**Project Starting the Job:** [${this.configService.getStarterProjectName()}](https://github.com/${this.configService.getStarterProjectName()})`, - true - ) - .addRaw(`

Pre

${pre}
`, true) - .addRaw(`

Execution phase: ${ExecutionPhase.BEFORE}

${before}
`, true) - .addRaw(`

Execution phase: ${ExecutionPhase.CURRENT}

${current}
`, true) - .addRaw(`

Execution phase: ${ExecutionPhase.AFTER}

${after}
`, true) - .addRaw(`

Post

${post}
`, true) - .addRaw(`

Local Execution

${localExecution}
`, true) - .write(); - } - - private constructPrePostResult(result: ExecuteCommandResult[]): string { - const prePostTableHeaders = [ - { data: "Command", header: true }, - { data: "Execution Result", header: true }, - { data: "Execution Time", header: true }, - ]; - const data = result.map(res => [res.command, this.getExecutionResultString(res.result), `${res.time}`]); - return core.summary - .emptyBuffer() - .addTable([prePostTableHeaders, ...data]) - .stringify(); - } - - private constructExecutionResult(executionNodeResult: ExecuteNodeResult[], checkoutInfo: CheckedOutNode[]): string { - const tableHeaders = [ - { data: "Project", header: true }, - { data: "Source", header: true }, - { data: "Target", header: true }, - { data: "Merged", header: true }, - { data: "Execution Result", header: true }, - { data: "Avg Execution Time", header: true }, - ]; - return core.summary - .emptyBuffer() - .addTable([tableHeaders, ...this.getExecutionResultData(executionNodeResult, checkoutInfo)]) - .addEOL() - .addRaw("```mermaid", true) - .addRaw(this.constructGraph(executionNodeResult), true) - .addRaw("```", true) - .stringify(); - } - - private getExecutionResult(executeCommandResults: ExecuteCommandResult[]): ExecutionResult { - return executeCommandResults.find(res => res.result !== ExecutionResult.OK)?.result ?? ExecutionResult.OK; - } - - private getExecutionResultString(result: ExecutionResult): string { - switch (result) { - case ExecutionResult.NOT_OK: - return "\u274C"; - case ExecutionResult.SKIP: - return "⛔"; - default: - return "\u2705"; - } - } - - private getExecutionResultData(executionResult: ExecuteNodeResult[], checkoutInfo: CheckedOutNode[]): string[][] { - return executionResult.map(res => { - const nodeCheckoutInfo = checkoutInfo.find(info => info.node.project === res.node.project)!.checkoutInfo; - const result = this.getExecutionResultString(this.getExecutionResult(res.executeCommandResults)); - - return [ - res.node.project, - nodeCheckoutInfo ? `${nodeCheckoutInfo.targetGroup}/${nodeCheckoutInfo.targetName}:${nodeCheckoutInfo.targetBranch}` : "checkout skipped", - nodeCheckoutInfo ? `${nodeCheckoutInfo.sourceGroup}/${nodeCheckoutInfo.sourceName}:${nodeCheckoutInfo.sourceBranch}` : "checkout skipped", - nodeCheckoutInfo?.merge ? "\u2705" : "\u274C", - result, - res.executeCommandResults.length > 0 - ? `${res.executeCommandResults.reduce((prev, curr) => prev + curr.time, 0) / res.executeCommandResults.length}` - : "0", - ]; - }); - } - - private constructGraph(executionResult: ExecuteNodeResult[]) { - return `flowchart LR; - ${executionResult - .map(res => { - const result = this.getExecutionResult(res.executeCommandResults); - let className = "okClass"; - switch (result) { - case ExecutionResult.NOT_OK: - className = "errorClass"; - break; - case ExecutionResult.SKIP: - className = "noEntry"; - break; - } - return `${res.node.project}:::${className}`; - }) - .join("==>")} - ${executionResult.map(res => `click ${res.node.project} 'https://github.com/${res.node.project}'`).join("\n\t\t\t\t")} - classDef okClass fill:#218838,stroke:#1e7e34,color: #fff,border-radius: 4px - classDef errorClass fill:#dc3545,stroke:#dc3545,color: #fff,border-radius: 4px - classDef noEntry fill:#6c757d,stroke:#6c757d,color: #fff,border-radius: 4px`; - } -} diff --git a/src/service/logger/base-logger-service.ts b/src/service/logger/base-logger-service.ts deleted file mode 100644 index b1f321e0..00000000 --- a/src/service/logger/base-logger-service.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { LoggerLevel } from "@bc/domain/inputs"; -import { InputService } from "@bc/service/inputs/input-service"; -import { Logger } from "@bc/service/logger/logger"; -import Container from "typedi"; - -export abstract class BaseLoggerService { - - private readonly _logger: Logger; - private readonly input: InputService; - - protected constructor() { - this._logger = new Logger(); - this.input = Container.get(InputService); - } - - abstract startGroup(message: string): void; - - abstract endGroup(): void; - - public debug(message: string): void { - if (this.input.inputs.loggerLevel == LoggerLevel.DEBUG) { - this._logger.log("[DEBUG]", message); - } - } - - public info(message: string): void { - this._logger.log("[INFO]", message); - } - - public trace(message: string): void { - if (this.input.inputs.loggerLevel == LoggerLevel.TRACE) { - this._logger.log("[TRACE]", message); - } - } - - public warn(message: string): void { - this._logger.log("[WARN]", message); - } - - public error(message: string): void { - this._logger.log("[ERROR]", message); - } - - get logger(): Logger { - return this._logger; - } -} \ No newline at end of file diff --git a/src/service/logger/cli-logger-service.ts b/src/service/logger/cli-logger-service.ts deleted file mode 100644 index dec47f43..00000000 --- a/src/service/logger/cli-logger-service.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; - -export class CLILoggerService extends BaseLoggerService { - - constructor() { - super(); - } - - endGroup(): void { - super.logger.emptyLine(); - } - - startGroup(message: string): void { - super.logger.log("#", message); - } -} \ No newline at end of file diff --git a/src/service/logger/github-action-logger-service.ts b/src/service/logger/github-action-logger-service.ts deleted file mode 100644 index d591f622..00000000 --- a/src/service/logger/github-action-logger-service.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import * as core from "@actions/core"; - -export class GithubActionLoggerService extends BaseLoggerService { - - constructor() { - super(); - } - - endGroup(): void { - core.endGroup(); - } - - startGroup(message: string): void { - core.startGroup(message); - } -} \ No newline at end of file diff --git a/src/service/logger/logger-service.ts b/src/service/logger/logger-service.ts deleted file mode 100644 index b48c38b8..00000000 --- a/src/service/logger/logger-service.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { CLILoggerService } from "@bc/service/logger/cli-logger-service"; -import { GithubActionLoggerService } from "@bc/service/logger/github-action-logger-service"; -import Container, { Service } from "typedi"; - -@Service() -export class LoggerService { - private _logger: BaseLoggerService; - - constructor() { - const entryPoint = Container.get(constants.CONTAINER.ENTRY_POINT); - switch (entryPoint) { - case EntryPoint.CLI: - this._logger = new CLILoggerService(); - break; - case EntryPoint.GITHUB_EVENT: - this._logger = new GithubActionLoggerService(); - break; - default: - throw new Error(`No LoggerService defined for ${entryPoint}`); - } - } - - get logger() { - return this._logger; - } -} \ No newline at end of file diff --git a/src/service/logger/logger.ts b/src/service/logger/logger.ts deleted file mode 100644 index 4b0e6569..00000000 --- a/src/service/logger/logger.ts +++ /dev/null @@ -1,11 +0,0 @@ -export class Logger { - log(prefix: string, ...str: string[]) { - // eslint-disable-next-line no-console - console.log.apply(console, [prefix, ...str]); - } - - emptyLine() { - this.log("", ""); - } - -} diff --git a/src/service/pre-post/post.ts b/src/service/pre-post/post.ts deleted file mode 100644 index e5d6fa1c..00000000 --- a/src/service/pre-post/post.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { ExecuteCommandResult } from "@bc/domain/execute-command-result"; -import { PrePostExecutor } from "@bc/service/pre-post/pre-post"; -import { Inject, Service } from "typedi"; - -@Service() -export class PostExecutor extends PrePostExecutor { - private executionSuccess: boolean; - - constructor(@Inject("post.executionSuccess") executionSuccess: boolean) { - super(); - this.executionSuccess = executionSuccess; - } - - async run(): Promise { - const post = this.configService.getPost(); - let result: ExecuteCommandResult[] = []; - if (post) { - this.logger.startGroup("Executing post section"); - if (this.executionSuccess) { - this.logger.info("execution result is OK, so 'success' and 'always' sections will be executed"); - if (post.success) { - result = await this.execute(post.success); - } - } else { - this.logger.info("execution result is NOT OK, so 'failure' and 'always' sections will be executed"); - if (post.failure) { - result = await this.execute(post.failure); - } - } - if (post.always) { - result = [...result, ...await this.execute(post.always)]; - } - this.logger.endGroup(); - } - return result; - } -} diff --git a/src/service/pre-post/pre-post.ts b/src/service/pre-post/pre-post.ts deleted file mode 100644 index 9370f650..00000000 --- a/src/service/pre-post/pre-post.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { ExecuteCommandResult } from "@bc/domain/execute-command-result"; -import { ExecuteCommandService } from "@bc/service/command/execute-command-service"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import Container from "typedi"; - -export abstract class PrePostExecutor { - protected configService: ConfigurationService; - protected logger: BaseLoggerService; - protected executeService: ExecuteCommandService; - - constructor() { - this.configService = Container.get(ConfigurationService); - this.logger = Container.get(LoggerService).logger; - this.executeService = Container.get(ExecuteCommandService); - } - - protected async execute(cmds: string | string[]): Promise { - const result: ExecuteCommandResult[] = []; - if (Array.isArray(cmds)) { - for (const cmd of cmds) { - result.push(await this.executeService.executeCommand(cmd, process.cwd())); - } - } else { - result.push(await this.executeService.executeCommand(cmds, process.cwd())); - } - return result; - } -} diff --git a/src/service/pre-post/pre.ts b/src/service/pre-post/pre.ts deleted file mode 100644 index abb32f47..00000000 --- a/src/service/pre-post/pre.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { ExecuteCommandResult } from "@bc/domain/execute-command-result"; -import { PrePostExecutor } from "@bc/service/pre-post/pre-post"; -import { Service } from "typedi"; - -@Service() -export class PreExecutor extends PrePostExecutor { - async run(): Promise { - const pre = this.configService.getPre(); - let result: ExecuteCommandResult[] = []; - if (pre) { - this.logger.startGroup("Executing pre section"); - result = await this.execute(pre); - this.logger.endGroup(); - } - return result; - } -} \ No newline at end of file diff --git a/src/utils/date.ts b/src/utils/date.ts deleted file mode 100644 index 551698b6..00000000 --- a/src/utils/date.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Converts a date object into a string of the format yyyymmddHHMMss - * @param date A Date object - * @returns {string} String of the format yyyymmddHHMMss - */ -function formatDate(date: Date): string { - return `${date.getFullYear()}${date.getMonth()}${date.getDate()}${date.getHours()}${date.getMinutes()}${date.getSeconds()}`; -} - -function hrtimeToMs(startHrTime: [number, number], endHrTime: [number, number] = process.hrtime(startHrTime)): number { - return endHrTime[0] * 1000 + endHrTime[1] / 1000000; -} - -export { formatDate, hrtimeToMs }; diff --git a/src/utils/log.ts b/src/utils/log.ts deleted file mode 100644 index ba97f8d0..00000000 --- a/src/utils/log.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { LoggerService } from "@bc/service/logger/logger-service"; -import Container from "typedi"; - -export function logAndThrow(errorMessage: string): never { - Container.get(LoggerService).logger.error(errorMessage); - throw new Error(errorMessage); -} diff --git a/test/e2e/branch/branch.test.ts b/test/e2e/branch/branch.test.ts deleted file mode 100644 index 39d10b39..00000000 --- a/test/e2e/branch/branch.test.ts +++ /dev/null @@ -1,353 +0,0 @@ -import { GitActionTypes, MockGithub, Moctokit } from "@kie/mock-github"; -import path from "path"; -import { Act } from "@kie/act-js"; -import { logActOutput } from "../helper/logger"; - -let mockGithub: MockGithub; -beforeEach(async () => { - mockGithub = new MockGithub( - { - repo: { - "build-chain": { - files: [ - { - src: path.resolve(__dirname, "..", "resources"), - dest: ".github/", - }, - { - src: path.join(__dirname, "branch.yaml"), - dest: ".github/workflows/branch.yaml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "action.yml"), - dest: "action.yml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "dist-e2e"), - dest: "dist", - }, - ], - }, - "owner1/project1": { - pushedBranches: ["branchB", "8.B"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "8.B", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner1/project2": { - pushedBranches: ["branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner1/project4": { - pushedBranches: ["branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner2/project4": { - pushedBranches: ["branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - }, - }, - path.join(__dirname, "setup") - ); - await mockGithub.setup(); -}); - -afterEach(async () => { - await mockGithub.teardown(); -}); - -test("full downstream where 1 project has a PR and one doesn't", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("ACT_REPO", `${parentDir}${path.sep}` ?? "") - .setEnv("STARTING_PROJECT", "owner1/project2") - .setEnv( - "CLONE_DIR", - `${path.join(parentDir, "project2")} ${path.join(parentDir, "project1")}` - ) - .setEnv("ADDITIONAL_FLAGS", "--fullProjectDependencyTree; --branch branchB") - .runEvent("push", { - ...logActOutput("branch-1.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner1", - repo: /project(1|2|4)/, - }) - .setResponse({ status: 200, data: {}, repeat: 3 }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: /project(2|4)/, - }) - .setResponse({ status: 200, data: [], repeat: 4 }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: "project1", - }) - .setResponse({ status: 200, data: [{ title: "pr" }] }), - ], - }); - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(15); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("3 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: downstream") - ); - - // checkout summary - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project1:8.B") - ); - expect(group4.output).toEqual( - expect.stringContaining("Merged owner1/project1:branchB into branch 8.B") - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project2:branchB") - ); - expect(group4.output).not.toEqual( - expect.stringContaining( - "Merged owner1/project2:branchB into branch branchB" - ) - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project4:branchB") - ); - expect(group4.output).not.toEqual( - expect.stringContaining( - "Merged owner1/project4:branchB into branch branchB" - ) - ); - - // before section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing before"); - expect(group5.output).toEqual( - expect.stringContaining(" before upstream owner1/project1") - ); - - // current section - const group7 = result[1].groups![6]; - expect(group7.name).toBe("Executing commands"); - expect(group7.output).toEqual(expect.stringContaining("default upstream")); - expect(group7.output).toEqual( - expect.stringContaining("current owner1/project2") - ); - expect(group7.output).toEqual(expect.stringContaining("default current")); - - // after section - const group11 = result[1].groups![10]; - expect(group11.name).toBe("Executing after"); - expect(group11.output).toEqual( - expect.stringContaining("default after current") - ); - expect(group11.output).toEqual( - expect.stringContaining("default after current") - ); - expect(group11.output).toEqual( - expect.stringContaining("default after current") - ); - - const group15 = result[1].groups![14]; - expect(group15.name).toBe("Uploading artifacts"); - expect(group15.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); - -test("cross-pr with no PRs", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("ACT_REPO", `${parentDir}${path.sep}` ?? "") - .setEnv("STARTING_PROJECT", "owner1/project2") - .setEnv( - "CLONE_DIR", - `${path.join(parentDir, "project1")} ${path.join(parentDir, "project2")}` - ) - .setEnv("ADDITIONAL_FLAGS", "--branch branchB") - .runEvent("push", { - ...logActOutput("branch-2.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner1", - repo: /project(1|2)/, - }) - .setResponse({ status: 200, data: {}, repeat: 2 }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: /project(1|2)/, - }) - .setResponse({ status: 200, data: [], repeat: 4 }), - ], - }); - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(13); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("2 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - - // checkout summary. important to verify the mapped targets - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project1:8.B") - ); - expect(group4.output).not.toEqual( - expect.stringContaining("Merged owner1/project1:branchB into branch 8.B") - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project2:branchB") - ); - expect(group4.output).not.toEqual( - expect.stringContaining( - "Merged owner1/project2:branchB into branch branchB" - ) - ); - - // before section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing before"); - expect(group5.output).toEqual( - expect.stringContaining(" before upstream owner1/project1") - ); - - // current section - const group7 = result[1].groups![6]; - expect(group7.name).toBe("Executing commands"); - expect(group7.output).toEqual(expect.stringContaining("default upstream")); - expect(group7.output).toEqual( - expect.stringContaining("current owner1/project2") - ); - - // after section - const group10 = result[1].groups![9]; - expect(group10.name).toBe("Executing after"); - expect(group10.output).toEqual( - expect.stringContaining("default after current") - ); - expect(group10.output).toEqual( - expect.stringContaining("default after current") - ); - - // artifacts - const group13 = result[1].groups![12]; - expect(group13.name).toBe("Uploading artifacts"); - expect(group13.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - // clone check is done during the workflow execution. just verify it succeeded here - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); diff --git a/test/e2e/branch/branch.yaml b/test/e2e/branch/branch.yaml deleted file mode 100644 index f9a98068..00000000 --- a/test/e2e/branch/branch.yaml +++ /dev/null @@ -1,18 +0,0 @@ -name: Branch - -on: push -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: ./build-chain - with: - definition-file: build-chain/.github/definition-file.yaml - flow-type: branch - starting-project: ${{ env.STARTING_PROJECT }} - additional-flags: ${{ env.ADDITIONAL_FLAGS }} - - name: Check for clones - run: result="exist"; for dir in $CLONE_DIR; do test ! -d $dir && result="does not exist" && break; done; echo "$result" - - name: clean up - run: rm -rf owner1_* && rm -rf project* diff --git a/test/e2e/cross-pr/cross-pr.test.ts b/test/e2e/cross-pr/cross-pr.test.ts deleted file mode 100644 index 63a3d6d1..00000000 --- a/test/e2e/cross-pr/cross-pr.test.ts +++ /dev/null @@ -1,474 +0,0 @@ -import { GitActionTypes, MockGithub, Moctokit } from "@kie/mock-github"; -import path from "path"; -import { Act } from "@kie/act-js"; -import { logActOutput } from "../helper/logger"; - -let mockGithub: MockGithub; -beforeEach(async () => { - mockGithub = new MockGithub( - { - repo: { - "build-chain": { - files: [ - { - src: path.resolve(__dirname, "..", "resources"), - dest: ".github/", - }, - { - src: path.join(__dirname, "cross-pr.yaml"), - dest: ".github/workflows/cross-pr.yaml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "action.yml"), - dest: "action.yml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "dist-e2e"), - dest: "dist", - }, - ], - }, - "owner1/project1": { - pushedBranches: ["branchA", "branchB", "8.B", "7.x"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - { - action: GitActionTypes.PUSH, - branch: "8.B", - }, - { - action: GitActionTypes.PUSH, - branch: "7.x", - }, - ], - }, - "owner1/project2": { - pushedBranches: ["branchA", "branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner1/project3": { - pushedBranches: ["branchC"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchC", - }, - ], - }, - "owner1/project4": { - pushedBranches: ["branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner2/project3": { - pushedBranches: ["branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - "owner2/project4": { - pushedBranches: ["branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - }, - }, - path.join(__dirname, "setup") - ); - await mockGithub.setup(); -}); - -afterEach(async () => { - await mockGithub.teardown(); -}); - -test("PR from owner1/target:branchA to owner2/target:branchB while using mapping of the starting project (mapping.dependencies.X)", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("ACT_REPO", `${parentDir}${path.sep}` ?? "") - .setEnv("STARTING_PROJECT", "owner1/project4") - .setEnv( - "CLONE_DIR", - `${path.join(parentDir, "project1")} ${path.join( - parentDir, - "project2" - )} ${path.join(parentDir, "project3")}` - ) - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner2/project4", - name: "project4", - owner: { - login: "owner2", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project4", - name: "project4", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("cross-pr-1.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: "project4", - }) - .setResponse({ - status: 200, - data: [ - { - name: "project4", - owner: { - login: "owner2", - }, - }, - ], - }), - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: "project3", - }) - .setResponse({ - status: 200, - data: [{ name: "project3", owner: { login: "owner2" } }], - }), - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: /project(1|2)/, - }) - .setResponse({ - status: 200, - data: [], - repeat: 2, - }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: /project(1|2|3|4)/, - }) - .setResponse({ status: 200, data: [{ title: "pr" }], repeat: 4 }), - ], - }); - - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(17); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("4 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - - // checkout project. important to verify the mapped targets - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project1:7.x") - ); - expect(group4.output).toEqual( - expect.stringContaining("Merged owner1/project1:branchA into branch 7.x") - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project2:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner1/project2:branchA into branch branchB" - ) - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project3:branchC") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner2/project3:branchA into branch branchC" - ) - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project4:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner2/project4:branchA into branch branchB" - ) - ); - - // before section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing before"); - expect(group5.output).toEqual( - expect.stringContaining(" before upstream owner1/project1") - ); - - // current section - const group7 = result[1].groups![6]; - expect(group7.name).toBe("Executing commands"); - expect(group7.output).toEqual(expect.stringContaining("default upstream")); - expect(group7.output).toEqual( - expect.stringContaining("upstream owner1/project2") - ); - expect(group7.output).toEqual(expect.stringContaining("default current")); - - // after section - const group12 = result[1].groups![11]; - expect(group12.name).toBe("Executing after"); - expect(group12.output).toEqual( - expect.stringContaining("default after current") - ); - expect(group12.output).toEqual( - expect.stringContaining("default after current") - ); - expect(group12.output).toEqual( - expect.stringContaining("default after current") - ); - expect(group12.output).toEqual( - expect.stringContaining("default after current") - ); - - // artifacts - const group17 = result[1].groups![16]; - expect(group17.name).toBe("Uploading artifacts"); - expect(group17.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - // clone check is done during the workflow execution. just verify it succeeded here - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); - -test("PR from target:branchA to target:branchB while using mapping of a non-starting project (mapping.dependant.X)", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("ACT_REPO", `${parentDir}${path.sep}` ?? "") - .setEnv("STARTING_PROJECT", "owner1/project2") - .setEnv( - "CLONE_DIR", - `${path.join(parentDir, "project1")} ${path.join(parentDir, "project2")}` - ) - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner1/project2", - name: "project2", - owner: { - login: "owner1", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project2", - name: "project2", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("cross-pr-2.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner1", - repo: /project(1|2)/, - }) - .setResponse({ status: 200, data: {}, repeat: 2 }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: /project(1|2)/, - }) - .setResponse({ status: 200, data: [{ title: "pr" }], repeat: 2 }), - ], - }); - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(13); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("2 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - - // checkout projects. important to verify the mapped targets - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project1:8.B") - ); - expect(group4.output).toEqual( - expect.stringContaining("Merged owner1/project1:branchA into branch 8.B") - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project2:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner1/project2:branchA into branch branchB" - ) - ); - - // before section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing before"); - expect(group5.output).toEqual( - expect.stringContaining(" before upstream owner1/project1") - ); - - // current section - const group7 = result[1].groups![6]; - expect(group7.name).toBe("Executing commands"); - expect(group7.output).toEqual(expect.stringContaining("default upstream")); - expect(group7.output).toEqual( - expect.stringContaining("current owner1/project2") - ); - - // after section - const group10 = result[1].groups![9]; - expect(group10.name).toBe("Executing after"); - expect(group10.output).toEqual( - expect.stringContaining("default after current") - ); - expect(group10.output).toEqual( - expect.stringContaining("default after current") - ); - - // artifacts - const group13 = result[1].groups![12]; - expect(group13.name).toBe("Uploading artifacts"); - expect(group13.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - // clone check is done during the workflow execution. just verify it succeeded here - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); diff --git a/test/e2e/cross-pr/cross-pr.yaml b/test/e2e/cross-pr/cross-pr.yaml deleted file mode 100644 index 6ae43b7a..00000000 --- a/test/e2e/cross-pr/cross-pr.yaml +++ /dev/null @@ -1,17 +0,0 @@ -name: Cross PR - -on: pull_request -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: ./build-chain - with: - definition-file: build-chain/.github/definition-file.yaml - flow-type: cross_pr - starting-project: ${{ env.STARTING_PROJECT }} - - name: Check for clones - run: result="exist"; for dir in $CLONE_DIR; do test ! -d $dir && result="does not exist" && break; done; echo "$result" - - name: clean up - run: rm -rf owner1_* && rm -rf project* diff --git a/test/e2e/full-downstream/full-downstream.test.ts b/test/e2e/full-downstream/full-downstream.test.ts deleted file mode 100644 index bcaccfbb..00000000 --- a/test/e2e/full-downstream/full-downstream.test.ts +++ /dev/null @@ -1,511 +0,0 @@ -import { GitActionTypes, MockGithub, Moctokit } from "@kie/mock-github"; -import path from "path"; -import { Act } from "@kie/act-js"; -import { logActOutput } from "../helper/logger"; - -let mockGithub: MockGithub; -beforeEach(async () => { - mockGithub = new MockGithub( - { - repo: { - "build-chain": { - files: [ - { - src: path.resolve(__dirname, "..", "resources"), - dest: ".github/", - }, - { - src: path.join(__dirname, "full-downstream.yaml"), - dest: ".github/workflows/full-downstream.yaml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "action.yml"), - dest: "action.yml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "dist-e2e"), - dest: "dist", - }, - ], - }, - "owner1/project1": { - pushedBranches: ["branchA", "branchB", "8.B", "7.x"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - { - action: GitActionTypes.PUSH, - branch: "8.B", - }, - { - action: GitActionTypes.PUSH, - branch: "7.x", - }, - ], - }, - "owner1/project2": { - pushedBranches: ["branchA", "branchB", "8.x"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - { - action: GitActionTypes.PUSH, - branch: "8.x", - }, - ], - }, - "owner1/project3": { - pushedBranches: ["branchC", "8.x"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchC", - }, - { - action: GitActionTypes.PUSH, - branch: "8.x", - }, - ], - }, - "owner1/project4": { - pushedBranches: ["branchB", "branchA", "8.x"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "8.x", - }, - ], - }, - "owner2/project1": { - pushedBranches: ["branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - "owner2/project3": { - pushedBranches: ["branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - "owner2/project4": { - pushedBranches: ["branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - }, - }, - path.join(__dirname, "setup") - ); - await mockGithub.setup(); -}); - -afterEach(async () => { - await mockGithub.teardown(); -}); - -test("PR from owner1/target:branchA to owner2/target:branchB while using mapping of the starting project (mapping.dependencies.X)", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("ACT_REPO", `${parentDir}${path.sep}` ?? "") - .setEnv("STARTING_PROJECT", "owner1/project1") - .setEnv( - "CLONE_DIR", - `${path.join(parentDir, "project1")} ${path.join( - parentDir, - "project2" - )} ${path.join(parentDir, "project3")}` - ) - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner2/project1", - name: "project1", - owner: { - login: "owner2", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project1", - name: "project1", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("full-downstream-1.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: "project1", - }) - .setResponse({ - status: 200, - data: [ - { - name: "project1", - owner: { - login: "owner2", - }, - }, - ], - }), - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: "project3", - }) - .setResponse({ - status: 200, - data: [{ name: "project3", owner: { login: "owner2" } }], - }), - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: /project(2|4)/, - }) - .setResponse({ - status: 200, - data: [], - repeat: 2 - }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: /project(1|2|3|4)/, - }) - .setResponse({ status: 200, data: [{ title: "pr" }], repeat: 4 }), - ], - }); - - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(17); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("4 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: current") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: downstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: downstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: downstream")); - - // checkout projects. important to verify the mapped targets - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project1:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining("Merged owner2/project1:branchA into branch branchB") - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project2:8.x") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner1/project2:branchA into branch 8.x" - ) - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project3:8.x") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner2/project3:branchA into branch 8.x" - ) - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project4:8.x") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner1/project4:branchA into branch 8.x" - ) - ); - - // before section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing before"); - expect(group5.output).toEqual( - expect.stringContaining(" before current owner1/project1") - ); - - // current section - const group7 = result[1].groups![6]; - expect(group7.name).toBe("Executing commands"); - expect(group7.output).toEqual(expect.stringContaining("current owner1/project1")); - expect(group7.output).toEqual( - expect.stringContaining("current owner1/project2") - ); - expect(group7.output).toEqual(expect.stringContaining("default current")); - - // after section - const group12 = result[1].groups![11]; - expect(group12.name).toBe("Executing after"); - expect(group12.output).toEqual( - expect.stringContaining("default after current") - ); - expect(group12.output).toEqual( - expect.stringContaining("after downstream owner1/project2") - ); - expect(group12.output).toEqual( - expect.stringContaining("default after current") - ); - expect(group12.output).toEqual( - expect.stringContaining("default after current") - ); - - // artifacts - const group17 = result[1].groups![16]; - expect(group17.name).toBe("Uploading artifacts"); - expect(group17.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - // clone check is done during the workflow execution. just verify it succeeded here - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); - -test("PR from target:branchA to target:branchB while using mapping of a non-starting project (mapping.dependant.X)", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("ACT_REPO", `${parentDir}${path.sep}` ?? "") - .setEnv("STARTING_PROJECT", "owner1/project2") - .setEnv("CLONE_DIR", path.join(parentDir, "project2")) - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner1/project2", - name: "project2", - owner: { - login: "owner1", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project2", - name: "project2", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("full-downstream-2.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner1", - repo: /project(1|2|4)/, - }) - .setResponse({ status: 200, data: {}, repeat: 3 }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: /project(1|2|4)/, - }) - .setResponse({ status: 200, data: [{ title: "pr" }], repeat: 3 }), - ], - }); - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(15); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("3 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: downstream") - ); - - // checkout projects - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project1:8.B") - ); - expect(group4.output).toEqual( - expect.stringContaining("Merged owner1/project1:branchA into branch 8.B") - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project2:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner1/project2:branchA into branch branchB" - ) - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project4:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner1/project4:branchA into branch branchB" - ) - ); - - // before section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing before"); - expect(group5.output).toEqual( - expect.stringContaining(" before upstream owner1/project1") - ); - - // current section - const group7 = result[1].groups![6]; - expect(group7.name).toBe("Executing commands"); - expect(group7.output).toEqual(expect.stringContaining("default upstream")); - expect(group7.output).toEqual( - expect.stringContaining("current owner1/project2") - ); - expect(group7.output).toEqual(expect.stringContaining("default current")); - - // after section - const group11 = result[1].groups![10]; - expect(group11.name).toBe("Executing after"); - expect(group11.output).toEqual( - expect.stringContaining("default after current") - ); - expect(group11.output).toEqual( - expect.stringContaining("default after current") - ); - expect(group11.output).toEqual( - expect.stringContaining("default after current") - ); - - const group15 = result[1].groups![14]; - expect(group15.name).toBe("Uploading artifacts"); - expect(group15.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); diff --git a/test/e2e/full-downstream/full-downstream.yaml b/test/e2e/full-downstream/full-downstream.yaml deleted file mode 100644 index 1f85b8b7..00000000 --- a/test/e2e/full-downstream/full-downstream.yaml +++ /dev/null @@ -1,17 +0,0 @@ -name: Full Downstream - -on: pull_request -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: ./build-chain - with: - definition-file: build-chain/.github/definition-file.yaml - flow-type: full_downstream - starting-project: ${{ env.STARTING_PROJECT }} - - name: Check for clones - run: result="exist"; for dir in $CLONE_DIR; do test ! -d $dir && result="does not exist" && break; done; echo "$result" - - name: clean up - run: rm -rf owner1_* && rm -rf project* diff --git a/test/e2e/helper/logger.ts b/test/e2e/helper/logger.ts deleted file mode 100644 index 532c65cc..00000000 --- a/test/e2e/helper/logger.ts +++ /dev/null @@ -1,4 +0,0 @@ -import path from "path"; - -export const logActOutput = (logFile: string) => - process.env.ACT_LOG ? { logFile: path.join(process.cwd(), logFile) } : {}; diff --git a/test/e2e/resources/definition-file.yaml b/test/e2e/resources/definition-file.yaml deleted file mode 100644 index 494d30ff..00000000 --- a/test/e2e/resources/definition-file.yaml +++ /dev/null @@ -1,45 +0,0 @@ -version: 2.2 - -dependencies: ./dependencies.yaml - -pre: | - echo "Executing pre step 1" - echo "Executing pre step 2" - -default: - build-command: - current: echo "default current" - upstream: echo "default upstream" - after: - current: echo "default after current" - -build: - - project: owner1/project1 - build-command: - before: - current: echo "before current owner1/project1" - upstream: echo "before upstream owner1/project1" - current: echo "current owner1/project1" - downstream: echo "downstream owner1/project1" - clone: - - project1 - - - project: owner1/project2 - build-command: - current: echo "current owner1/project2" - upstream: echo "upstream owner1/project2" - after: - downstream: echo "after downstream owner1/project2" - clone: - - project2 - - - project: owner1/project3 - build-command: - current: touch project3-current.log - upstream: touch project3-upstream.log - clone: - - project3 - archive-artifacts: - path: | - **/*.log - diff --git a/test/e2e/resources/dependencies.yaml b/test/e2e/resources/dependencies.yaml deleted file mode 100644 index ae3985d1..00000000 --- a/test/e2e/resources/dependencies.yaml +++ /dev/null @@ -1,36 +0,0 @@ -version: 2.2 -dependencies: - - project: owner1/project1 - mapping: - dependencies: - default: - - source: branchB - target: 8.x - dependant: - default: - - source: branchB - targetExpression: "(process.env.GITHUB_BASE_REF === '' ? 'branchB' : process.env.GITHUB_BASE_REF).replace('branch', '8.')" - - project: owner1/project2 - dependencies: - - project: owner1/project1 - - project: owner1/project3 - dependencies: - - project: owner1/project1 - - project: owner1/project4 - dependencies: - - project: owner1/project3 - - project: owner1/project2 - mapping: - dependencies: - default: - - source: branchB - target: 7.x - owner1/project3: - - source: branchB - target: branchC - dependant: - default: - - source: branch.* - target: 8.x - exclude: - - owner1/project2 \ No newline at end of file diff --git a/test/e2e/single-pr/single-pr.test.ts b/test/e2e/single-pr/single-pr.test.ts deleted file mode 100644 index 9ad3b650..00000000 --- a/test/e2e/single-pr/single-pr.test.ts +++ /dev/null @@ -1,516 +0,0 @@ -import { GitActionTypes, MockGithub, Moctokit } from "@kie/mock-github"; -import path from "path"; -import { Act } from "@kie/act-js"; -import { existsSync, rmSync } from "fs"; -import { logActOutput } from "../helper/logger"; - - -let mockGithub: MockGithub; -beforeEach(async () => { - mockGithub = new MockGithub( - { - repo: { - "build-chain": { - files: [ - { - src: path.resolve(__dirname, "..", "resources"), - dest: ".github/", - }, - { - src: path.join(__dirname, "single-pr.yaml"), - dest: ".github/workflows/single-pr.yaml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "action.yml"), - dest: "action.yml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "dist-e2e"), - dest: "dist", - }, - ], - }, - "owner1/project2": { - pushedBranches: ["branchA", "branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner1/project3": { - pushedBranches: ["branchA", "branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner2/project3": { - pushedBranches: ["branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - "owner1/project1": { - pushedBranches: ["branchA", "branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner2/project1-forked": { - pushedBranches: ["branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - }, - }, - path.join(__dirname, "setup") - ); - await mockGithub.setup(); -}); - -afterEach(async () => { - await mockGithub.teardown(); -}); - -test("PR from target:branchA to target:branchB", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("ACT_REPO", `${parentDir}${path.sep}` ?? "") - .setEnv("STARTING_PROJECT", "owner1/project2") - .setEnv("CLONE_DIR", path.join(parentDir, "project2")) - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner1/project2", - name: "project2", - owner: { - login: "owner1", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project2", - name: "project2", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("single-pr-1.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner1", - repo: "project2", - }) - .setResponse({ status: 200, data: {} }), - moctokit.rest.pulls.list().setResponse([ - { status: 200, data: [{ title: "pr" }] }, - ]), - ], - }); - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(10); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("1 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - - // checkout project - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project2:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner1/project2:branchA into branch branchB" - ) - ); - - // before section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing before"); - expect(group5.output).toEqual( - expect.stringContaining("No commands were found for owner1/project2") - ); - - // current section - const group6 = result[1].groups![5]; - expect(group6.name).toBe("Executing commands"); - expect(group6.output).toEqual( - expect.stringContaining("current owner1/project2") - ); - - // after section - const group8 = result[1].groups![7]; - expect(group8.name).toBe("Executing after"); - expect(group8.output).toEqual( - expect.stringContaining("default after current") - ); - - // artifacts - const group10 = result[1].groups![9]; - expect(group10.name).toBe("Uploading artifacts"); - expect(group10.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - // clone check is done during the workflow execution. just verify it succeeded here - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); - -test("PR from owner2/target:branchA to owner1/target:branchB", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const artifactPath = path.join(__dirname, "artifacts"); - const result = await act - .setGithubToken("token") - .setEnv("ACT_REPO", `${parentDir}${path.sep}` ?? "") - .setEnv("STARTING_PROJECT", "owner1/project3") - .setEnv("CLONE_DIR", path.join(parentDir, "project3")) - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner2/project3", - name: "project3", - owner: { - login: "owner2", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project3", - name: "project3", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("single-pr-2.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - artifactServer: { - path: artifactPath, - port: "42469", - }, - mockApi: [ - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: "project3", - }) - .setResponse({ - status: 200, - data: [ - { - name: "project3", - owner: { - login: "owner2", - }, - }, - ], - }), - moctokit.rest.pulls - .list() - .setResponse({ status: 200, data: [{ title: "pr" }] }), - ], - }); - - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(10); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("1 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - - // checkout project - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project3:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner2/project3:branchA into branch branchB" - ) - ); - - // before section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing before"); - expect(group5.output).toEqual( - expect.stringContaining("No commands were found for owner1/project3") - ); - - // current section - const group6 = result[1].groups![5]; - expect(group6.name).toBe("Executing commands"); - expect(group6.output).toEqual( - expect.stringContaining("touch project3-current.log") - ); - - // after section - const group8 = result[1].groups![7]; - expect(group8.name).toBe("Executing after"); - expect(group8.output).toEqual( - expect.stringContaining("default after current") - ); - - // artifacts - const group10 = result[1].groups![9]; - expect(group10.name).toBe("Uploading artifacts"); - expect(group10.output).toEqual( - expect.stringContaining("Artifact owner1_project3 uploaded 1 files") - ); - - // clone check is done during the workflow execution. just verify it succeeded here - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); - - // the first owner1_project3 is the parent dir of the artifact. The second one is - // because we didn't pass any artifact name so it uses the project name as the - // artifact name. So the repetition of owner1_project3 is expected - expect(existsSync(path.join(artifactPath, "1", "owner1_project3", "owner1_project3", "project3-current.log"))).toBe(true); - rmSync(artifactPath, { recursive: true }); -}); - -test("PR from owner2/target:branchA to owner1/target-different-name:branchB", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("ACT_REPO", `${parentDir}${path.sep}` ?? "") - .setEnv("STARTING_PROJECT", "owner1/project1") - .setEnv("CLONE_DIR", path.join(parentDir, "project1")) - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner2/project1-forked", - name: "project1-forked", - owner: { - login: "owner2", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project1", - name: "project1", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("single-pr-3.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: "project1", - }) - .setResponse({ - status: 200, - data: [ - { - name: "project1-forked", - owner: { - login: "owner2", - }, - }, - ], - }), - moctokit.rest.pulls - .list() - .setResponse({ status: 200, data: [{ title: "pr" }] }), - ], - }); - - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(11); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("1 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - - // checkout project - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project1:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner2/project1-forked:branchA into branch branchB" - ) - ); - - // before section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing before"); - expect(group5.output).toEqual( - expect.stringContaining("before current owner1/project1") - ); - - // current section - const group7 = result[1].groups![6]; - expect(group7.name).toBe("Executing commands"); - expect(group7.output).toEqual( - expect.stringContaining("current owner1/project1") - ); - - // after section - const group9 = result[1].groups![8]; - expect(group9.name).toBe("Executing after"); - expect(group9.output).toEqual( - expect.stringContaining("default after current") - ); - - // artifacts - const group11 = result[1].groups![10]; - expect(group11.name).toBe("Uploading artifacts"); - expect(group11.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - // clone check is done during the workflow execution. just verify it succeeded here - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); diff --git a/test/e2e/single-pr/single-pr.yaml b/test/e2e/single-pr/single-pr.yaml deleted file mode 100644 index d3d4eec2..00000000 --- a/test/e2e/single-pr/single-pr.yaml +++ /dev/null @@ -1,17 +0,0 @@ -name: Single PR - -on: pull_request -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: ./build-chain - with: - definition-file: build-chain/.github/definition-file.yaml - flow-type: single_pr - starting-project: ${{ env.STARTING_PROJECT }} - - name: Check for clones - run: test -d $CLONE_DIR && echo "exist" || echo "does not exist" - - name: clean up - run: rm -rf owner1_* && rm -rf project* diff --git a/test/unitary/bin/cli-runner.test.ts b/test/unitary/bin/cli-runner.test.ts deleted file mode 100644 index d442c91c..00000000 --- a/test/unitary/bin/cli-runner.test.ts +++ /dev/null @@ -1,169 +0,0 @@ -import "reflect-metadata"; -import { CLIRunner } from "@bc/bin/runners/cli-runner"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import Container from "typedi"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { PreExecutor } from "@bc/service/pre-post/pre"; -import { PostExecutor } from "@bc/service/pre-post/post"; -import { FlowService } from "@bc/service/flow/flow-service"; -import { defaultFlowResult, FlowResult } from "@bc/domain/flow"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { UploadResponse } from "@actions/artifact"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { defaultNodeValue } from "@bc/domain/node"; -import { Command } from "commander"; - -// disable logs -jest.spyOn(global.console, "log"); - -test("initialization", () => { - // ensure that entry point value is something other than CLI - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - - new CLIRunner(); - - expect(Container.get(constants.CONTAINER.ENTRY_POINT)).toBe(EntryPoint.CLI); -}); - -describe("execute", () => { - let cliRunner: CLIRunner; - const okResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - result: ExecutionResult.OK, - errorMessage: "", - time: 0, - command: "cmd1", - }; - - const notOkResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - result: ExecutionResult.NOT_OK, - errorMessage: "", - time: 0, - command: "cmd1", - }; - - const artifactOk: PromiseSettledResult = { - status: "fulfilled", - value: { artifactName: "test", failedItems: [], artifactItems: [], size: 2 }, - }; - - const artifactNotOk: PromiseSettledResult = { - status: "rejected", - reason: "something", - }; - - const nodeOk: ExecuteNodeResult = { - node: { ...defaultNodeValue, project: "owner1/project1" }, - executeCommandResults: [okResult, okResult], - }; - - const nodeNotOk: ExecuteNodeResult = { - node: { ...defaultNodeValue, project: "owner1/project1" }, - executeCommandResults: [okResult, notOkResult], - }; - - const flowOk: FlowResult = { - artifactUploadResults: [artifactOk], - checkoutInfo: [], - executionResult: { after: [nodeOk], commands: [nodeOk], before: [nodeOk] }, - }; - - beforeEach(() => { - cliRunner = new CLIRunner(); - jest.spyOn(Command.prototype, "parse").mockImplementation(() => undefined!); - }); - - test("success", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [okResult, okResult, okResult]); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => flowOk); - - await cliRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - }); - - test("failure: pre", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [notOkResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => []); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => defaultFlowResult); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - - await cliRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - expect(postSpy).toHaveBeenCalledTimes(0); - expect(flowSpy).toHaveBeenCalledTimes(0); - }); - - test("failure: post", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [notOkResult]); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => flowOk); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - - await cliRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - }); - - test.each([ - ["before", { after: [nodeOk], commands: [nodeOk], before: [nodeNotOk] }], - ["commands", { after: [nodeOk], commands: [nodeNotOk], before: [nodeOk] }], - ["after", { after: [nodeNotOk], commands: [nodeOk], before: [nodeOk] }], - ])("failure: flow - %p phase execution", async (_title, executionResult) => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => ({ - artifactUploadResults: [artifactOk], - checkoutInfo: [], - executionResult, - })); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - - await cliRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - }); - - test("failure: flow - artifact upload failure", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => ({ - artifactUploadResults: [artifactNotOk], - checkoutInfo: [], - executionResult: flowOk.executionResult, - })); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - - await cliRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - }); -}); diff --git a/test/unitary/bin/github-action-runner.test.ts b/test/unitary/bin/github-action-runner.test.ts deleted file mode 100644 index 1e246dbe..00000000 --- a/test/unitary/bin/github-action-runner.test.ts +++ /dev/null @@ -1,196 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import Container from "typedi"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { PreExecutor } from "@bc/service/pre-post/pre"; -import { PostExecutor } from "@bc/service/pre-post/post"; -import { FlowService } from "@bc/service/flow/flow-service"; -import { defaultFlowResult, FlowResult } from "@bc/domain/flow"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { UploadResponse } from "@actions/artifact"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { GithubActionRunner } from "@bc/bin/runners/github-action-runner"; -import { JobSummaryService } from "@bc/service/job-summary/job-summary-service"; -import { defaultNodeValue } from "@bc/domain/node"; -import { ActionArguments } from "@bc/service/arguments/action/action-arguments"; - - -// disable logs -jest.spyOn(global.console, "log"); - -test("initialization", () => { - // ensure that entry point value is something other than GITHUB_EVENT - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - - new GithubActionRunner(); - - expect(Container.get(constants.CONTAINER.ENTRY_POINT)).toBe(EntryPoint.GITHUB_EVENT); -}); - -describe("execute", () => { - let githubActionRunner: GithubActionRunner; - const okResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - result: ExecutionResult.OK, - errorMessage: "", - time: 0, - command: "cmd1", - }; - - const notOkResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - result: ExecutionResult.NOT_OK, - errorMessage: "", - time: 0, - command: "cmd1", - }; - - const artifactOk: PromiseSettledResult = { - status: "fulfilled", - value: { artifactName: "test", failedItems: [], artifactItems: [], size: 2 }, - }; - - const artifactNotOk: PromiseSettledResult = { - status: "rejected", - reason: "something", - }; - - const nodeOk: ExecuteNodeResult = { - node: { ...defaultNodeValue, project: "owner1/project1" }, - executeCommandResults: [okResult, okResult], - }; - - const nodeNotOk: ExecuteNodeResult = { - node: { ...defaultNodeValue, project: "owner1/project1" }, - executeCommandResults: [okResult, notOkResult], - }; - - const flowOk: FlowResult = { - artifactUploadResults: [artifactOk], - checkoutInfo: [], - executionResult: { after: [nodeOk], commands: [nodeOk], before: [nodeOk] }, - }; - - beforeEach(() => { - githubActionRunner = new GithubActionRunner(); - jest.spyOn(ActionArguments.prototype, "parse").mockImplementation(() => undefined); - }); - - test("success", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [okResult, okResult, okResult]); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => flowOk); - const jobSummarySpy = jest - .spyOn(JobSummaryService.prototype, "generateSummary") - .mockImplementation(async (_flowResult: FlowResult, _preResult: ExecuteCommandResult[], _postResult: ExecuteCommandResult[]) => undefined); - - await githubActionRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(jobSummarySpy).toHaveBeenCalledWith(flowOk, [okResult], [okResult, okResult, okResult]); - }); - - test("failure: pre", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [notOkResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => []); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => defaultFlowResult); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - const jobSummarySpy = jest - .spyOn(JobSummaryService.prototype, "generateSummary") - .mockImplementation(async (_flowResult: FlowResult, _preResult: ExecuteCommandResult[], _postResult: ExecuteCommandResult[]) => undefined); - - await githubActionRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - expect(jobSummarySpy).toHaveBeenCalledWith(defaultFlowResult, [notOkResult], []); - expect(postSpy).toHaveBeenCalledTimes(0); - expect(flowSpy).toHaveBeenCalledTimes(0); - }); - - test("failure: post", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [notOkResult]); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => flowOk); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - const jobSummarySpy = jest - .spyOn(JobSummaryService.prototype, "generateSummary") - .mockImplementation(async (_flowResult: FlowResult, _preResult: ExecuteCommandResult[], _postResult: ExecuteCommandResult[]) => undefined); - - await githubActionRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - expect(jobSummarySpy).toHaveBeenCalledWith(flowOk, [okResult], [notOkResult]); - }); - - test.each([ - ["before", { after: [nodeOk], commands: [nodeOk], before: [nodeNotOk] }], - ["commands", { after: [nodeOk], commands: [nodeNotOk], before: [nodeOk] }], - ["after", { after: [nodeNotOk], commands: [nodeOk], before: [nodeOk] }], - ])("failure: flow - %p phase execution", async (_title, executionResult) => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [okResult]); - - const flowResult = { - artifactUploadResults: [artifactOk], - checkoutInfo: [], - executionResult, - }; - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => flowResult); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - const jobSummarySpy = jest - .spyOn(JobSummaryService.prototype, "generateSummary") - .mockImplementation(async (_flowResult: FlowResult, _preResult: ExecuteCommandResult[], _postResult: ExecuteCommandResult[]) => undefined); - - await githubActionRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - expect(jobSummarySpy).toHaveBeenCalledWith(flowResult, [okResult], [okResult]); - }); - - test("failure: flow - artifact upload failure", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [okResult]); - - const flowResult = { - artifactUploadResults: [artifactNotOk], - checkoutInfo: [], - executionResult: flowOk.executionResult, - }; - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => flowResult); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - const jobSummarySpy = jest - .spyOn(JobSummaryService.prototype, "generateSummary") - .mockImplementation(async (_flowResult: FlowResult, _preResult: ExecuteCommandResult[], _postResult: ExecuteCommandResult[]) => undefined); - - await githubActionRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - expect(jobSummarySpy).toHaveBeenCalledWith(flowResult, [okResult], [okResult]); - - }); -}); diff --git a/test/unitary/bin/runner.test.ts b/test/unitary/bin/runner.test.ts deleted file mode 100644 index a3145d4c..00000000 --- a/test/unitary/bin/runner.test.ts +++ /dev/null @@ -1,180 +0,0 @@ -import "reflect-metadata"; -import { UploadResponse } from "@actions/artifact"; -import { Runner } from "@bc/bin/runners/runner"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { FlowResult } from "@bc/domain/flow"; -import { PreExecutor } from "@bc/service/pre-post/pre"; -import { PostExecutor } from "@bc/service/pre-post/post"; -import { FlowService } from "@bc/service/flow/flow-service"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { defaultNodeValue } from "@bc/domain/node"; - - -/** Dummy runner to test protected methods */ -class DummyRunner extends Runner { - async execute(): Promise { - return; - } - - async testExecutePre(): Promise<{ isFailure: boolean; output: ExecuteCommandResult[] }> { - return this.executePre(); - } - - async testExecuteFlow(): Promise<{ isFailure: boolean; output: FlowResult }> { - return this.executeFlow(); - } - - async testExecutePost(flowExecutionResult: boolean): Promise<{ isFailure: boolean; output: ExecuteCommandResult[] }> { - return this.executePost(flowExecutionResult); - } - - testPrintExecutionFailure(res: ExecuteCommandResult[]) { - this.printExecutionFailure(res); - } - - testPrintNodeExecutionFailure(res: ExecuteNodeResult[]) { - this.printNodeExecutionFailure(res); - } -} - -const okResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - result: ExecutionResult.OK, - errorMessage: "", - time: 0, - command: "cmd1", -}; - -const notOkResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - result: ExecutionResult.NOT_OK, - errorMessage: "multiline\nmsg", - time: 0, - command: "cmd1", -}; - -const skipResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - result: ExecutionResult.SKIP, - errorMessage: "", - time: 0, - command: "cmd1", -}; - -const artifactOk: PromiseSettledResult = { - status: "fulfilled", - value: { artifactName: "test", failedItems: [], artifactItems: [], size: 2 }, -}; - -const artifactNotOk: PromiseSettledResult = { - status: "rejected", - reason: "something", -}; - -const nodeOk: ExecuteNodeResult = { - node: { ...defaultNodeValue, project: "owner1/project1" }, - executeCommandResults: [okResult, skipResult], -}; - -const nodeNotOk: ExecuteNodeResult = { - node: { ...defaultNodeValue, project: "owner1/project1" }, - executeCommandResults: [okResult, notOkResult, skipResult], -}; - -let dummyRunner: DummyRunner; -beforeEach(() => { - // entrypoint does not matter here - dummyRunner = new DummyRunner(EntryPoint.GITHUB_EVENT); -}); - -test.each([ - ["executePre: success", false, [okResult, skipResult]], - ["executePre: failure", true, [okResult, skipResult, notOkResult]], -])("%p", async (_title: string, isFailure: boolean, output: ExecuteCommandResult[]) => { - jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => output); - await expect(dummyRunner.testExecutePre()).resolves.toStrictEqual({ isFailure, output }); -}); - -test.each([ - ["executePost: success", false, [okResult, skipResult]], - ["executePost: failure", true, [okResult, skipResult, notOkResult]], -])("%p", async (_title: string, isFailure: boolean, output: ExecuteCommandResult[]) => { - jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => output); - - // flowExecutionResult does not matter here - await expect(dummyRunner.testExecutePost(true)).resolves.toStrictEqual({ isFailure, output }); -}); - -test.each([ - [ - "executeFlow: success", - false, - { - artifactUploadResults: [artifactOk], - checkoutInfo: [], - executionResult: { after: [nodeOk], commands: [nodeOk], before: [nodeOk] }, - }, - ], - [ - "executeFlow: failure - before execution phase", - true, - { - artifactUploadResults: [artifactOk], - checkoutInfo: [], - executionResult: { after: [nodeOk], commands: [nodeOk], before: [nodeNotOk] }, - }, - ], - [ - "executeFlow: failure - commands execution phase", - true, - { - artifactUploadResults: [artifactOk], - checkoutInfo: [], - executionResult: { after: [nodeOk], commands: [nodeNotOk], before: [nodeOk] }, - }, - ], - [ - "executeFlow: failure - after execution phase", - true, - { - artifactUploadResults: [artifactOk], - checkoutInfo: [], - executionResult: { after: [nodeNotOk], commands: [nodeOk], before: [nodeOk] }, - }, - ], - [ - "executeFlow: failure - artifact upload", - true, - { - artifactUploadResults: [artifactNotOk], - checkoutInfo: [], - executionResult: { after: [nodeOk], commands: [nodeOk], before: [nodeOk] }, - }, - ], -])("%p", async (_title: string, isFailure: boolean, output: FlowResult) => { - jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => output); - await expect(dummyRunner.testExecuteFlow()).resolves.toStrictEqual({ isFailure, output }); -}); - -test.each([ - ["no failure", [okResult, okResult, skipResult], 0], - ["failure", [okResult, okResult, skipResult, notOkResult], 3], -])("printExecutionFailure - %p", (_title: string, result: ExecuteCommandResult[], numOfLogCalls: number) => { - const loggerSpy = jest.spyOn(BaseLoggerService.prototype, "error"); - dummyRunner.testPrintExecutionFailure(result); - expect(loggerSpy).toBeCalledTimes(numOfLogCalls); -}); - -test.each([ - ["no failure", [nodeOk, nodeOk], 0], - ["failure", [nodeOk, nodeNotOk, nodeOk], 4], -])("printNodeExecutionFailure - %p", (_title: string, result: ExecuteNodeResult[], numOfLogCalls: number) => { - const loggerSpy = jest.spyOn(BaseLoggerService.prototype, "error"); - dummyRunner.testPrintNodeExecutionFailure(result); - expect(loggerSpy).toBeCalledTimes(numOfLogCalls); -}); diff --git a/test/unitary/service/arguments/action/action-argument.test.ts b/test/unitary/service/arguments/action/action-argument.test.ts deleted file mode 100644 index c288740e..00000000 --- a/test/unitary/service/arguments/action/action-argument.test.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { InvalidInput } from "@bc/domain/errors"; -import { FlowType, InputValues, LoggerLevel } from "@bc/domain/inputs"; -import { ActionArguments } from "@bc/service/arguments/action/action-arguments"; -import { InputService } from "@bc/service/inputs/input-service"; -import "reflect-metadata"; -import Container from "typedi"; -const parsedInput = Container.get(InputService); - -const definitionFile = "/path/to/file"; -const skipProject = ["project1", "project2", "project3"]; -const skipAll = true; -const skipParallelCheckout = false; -const startProject = "project4"; -const fakeFlagValue = "abc"; -const additionaFlags = `--tempFlag;-z ${fakeFlagValue}`; -const customCommandTreatment = ["abc||xyz"]; - -const setGeneralInputs = (flowType: string) => { - process.env = { - "INPUT_DEFINITION-FILE": definitionFile, - "INPUT_SKIP-PROJECT-CHECKOUT": skipProject.join(", "), - "INPUT_SKIP-PROJECT-EXECUTION": skipProject.join(", "), - "INPUT_SKIP-EXECUTION": skipAll.toString(), - "INPUT_SKIP-CHECKOUT": skipAll.toString(), - "INPUT_SKIP-PARALLEL-CHECKOUT": skipParallelCheckout.toString(), - "INPUT_STARTING-PROJECT": startProject, - "INPUT_ADDITIONAL-FLAGS": additionaFlags, - "INPUT_FLOW-TYPE": flowType, - "INPUT_CUSTOM-COMMAND-TREATMENT": customCommandTreatment.join(", "), - }; -}; - -describe("Different flow types", () => { - test.each([ - ["cross_pr", FlowType.CROSS_PULL_REQUEST], - ["full_downstream", FlowType.FULL_DOWNSTREAM], - ["single_pr", FlowType.SINGLE_PULL_REQUEST], - ["branch", FlowType.BRANCH], - ["invalid", undefined], - ])("%p", (flowType: string, expectedFlowType: FlowType | undefined) => { - const parser = new ActionArguments(); - setGeneralInputs(flowType); - try { - parser.parse(); - const vals = parsedInput.inputs; - expect(vals.definitionFile).toBe(definitionFile); - expect(vals.skipProjectCheckout).toStrictEqual(skipProject); - expect(vals.skipProjectExecution).toStrictEqual(skipProject); - expect(vals.skipExecution).toBe(skipAll); - expect(vals.skipCheckout).toBe(skipAll); - expect(vals.skipParallelCheckout).toBe(skipParallelCheckout); - expect(vals.startProject).toBe(startProject); - expect(vals.tempFlag).toBe(true); - expect(vals.z).toBe("abc"); - expect(vals.loggerLevel).toBe(LoggerLevel.INFO); - expect(vals.flowType).toBe(expectedFlowType); - expect(vals.customCommandTreatment).toStrictEqual(customCommandTreatment); - } catch (err) { - expect(err).toBeInstanceOf(InvalidInput); - } - }); -}); - -describe("Different log levels", () => { - test.each([ - ["info", LoggerLevel.INFO], - ["trace", LoggerLevel.TRACE], - ["debug", LoggerLevel.DEBUG], - ["invalid", undefined], - ])("%p", (logLevel: string, expectedLogLevel: LoggerLevel | undefined) => { - const parser = new ActionArguments(); - setGeneralInputs("pull-request"); - process.env = { ...process.env, "INPUT_LOGGER-LEVEL": logLevel }; - try { - parser.parse(); - const vals = parsedInput.inputs; - expect(vals.definitionFile).toBe(definitionFile); - expect(vals.skipProjectCheckout).toStrictEqual(skipProject); - expect(vals.skipProjectExecution).toStrictEqual(skipProject); - expect(vals.skipExecution).toBe(skipAll); - expect(vals.skipCheckout).toBe(skipAll); - expect(vals.skipParallelCheckout).toBe(skipParallelCheckout); - expect(vals.startProject).toBe(startProject); - expect(vals.tempFlag).toBe(true); - expect(vals.z).toBe("abc"); - expect(vals.flowType).toBe(FlowType.CROSS_PULL_REQUEST); - expect(vals.loggerLevel).toBe(expectedLogLevel); - expect(vals.customCommandTreatment).toStrictEqual(customCommandTreatment); - } catch (err) { - expect(err).toBeInstanceOf(InvalidInput); - } - }); -}); - -describe("undefined inputs", () => { - test.each([ - ["empty string", "INPUT_STARTING-PROJECT", "startProject" as keyof InputValues], - ["array of empty strings", "INPUT_SKIP-PROJECT-CHECKOUT", "skipProjectCheckout" as keyof InputValues] - ])("undefined input should return undefined instead of %p", (_title: string, key: string, toCheckKey: keyof InputValues) => { - setGeneralInputs(FlowType.CROSS_PULL_REQUEST); - delete process.env[key]; - const parser = new ActionArguments(); - parser.parse(); - const vals = parsedInput.inputs; - expect(vals[toCheckKey]).toBe(undefined); - }); -}); diff --git a/test/unitary/service/arguments/cli/build-branch.test.ts b/test/unitary/service/arguments/cli/build-branch.test.ts deleted file mode 100644 index 5e576328..00000000 --- a/test/unitary/service/arguments/cli/build-branch.test.ts +++ /dev/null @@ -1,125 +0,0 @@ -import "reflect-metadata"; -import { CLIActionType } from "@bc/domain/cli"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; -import { InputService } from "@bc/service/inputs/input-service"; -import { formatDate } from "@bc/utils/date"; -import { Command, CommanderError } from "commander"; -import Container from "typedi"; -import { FlowType, LoggerLevel } from "@bc/domain/inputs"; - -let program: Command; - -// Define required arguments to be reused for each test -const startProject = "test"; -const definitionFile = "/path/to/file"; -const branch = "main"; - -// command to be executed -const command = [CLIActionType.BUILD, FlowType.BRANCH]; -const parsedInputs = Container.get(InputService); - -beforeEach(() => { - // Construct the a fresh instance of the cli each time - program = Container.get(CLIArguments).getCommand({ exitOverride: true, suppressOutput: true }); -}); - -describe("build branch flow cli", () => { - test("only required options", () => { - program.parse([...command, "-f", definitionFile, "-p", startProject, "-b", branch], { from: "user" }); - - // check all the required options are set and all the optional ones have the right default value if any - const option = parsedInputs.inputs; - expect(option.startProject).toBe(startProject); - expect(option.branch).toBe(branch); - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toMatch(new RegExp(`^build_chain_${formatDate(new Date()).slice(0, -2)}\\d\\d`)); - expect(option.loggerLevel).toBe(LoggerLevel.INFO); - expect(option.skipExecution).toBe(false); - expect(option.skipCheckout).toBe(false); - expect(option.skipParallelCheckout).toBe(false); - expect(option.fullProjectDependencyTree).toBe(false); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.BRANCH); - }); - - // check for missing required options - test.each([ - ["definition file", [...command, "-p", startProject, "-b", branch]], - ["starting project", [...command, "-f", definitionFile, "-b", branch]], - ["branch", [...command, "-f", definitionFile, "-p", startProject]], - ])("missing %p", (title: string, cmd: string[]) => { - try { - program.parse(cmd, { from: "user" }); - } catch (err) { - expect(err).toBeInstanceOf(CommanderError); - if (err instanceof CommanderError) { - expect(err.code).toBe("commander.missingMandatoryOptionValue"); - } - } - }); - - test("optional arguments", () => { - const token = "abc"; - const outputFolder = "qaz"; - const customCommandTreatment = ["abc||def"]; - const skipProject = ["pr1", "pr2"]; - const commandOption = ["cmd1", "cmd2"]; - const group = "gr1"; - - program.parse( - [ - ...command, - "-f", - definitionFile, - "-p", - startProject, - "--token", - token, - "-b", - branch, - "-o", - outputFolder, - "-t", - ...customCommandTreatment, - "--skipProjectCheckout", - ...skipProject, - "--skipProjectExecution", - ...skipProject, - "-g", - group, - "-c", - ...commandOption, - "--debug", - "--skipParallelCheckout", - "--skipExecution", - "--skipCheckout", - "--fullProjectDependencyTree", - ], - { from: "user" } - ); - - // check all the required options and optional options are set correctly - const option = parsedInputs.inputs; - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toBe(outputFolder); - expect(option.loggerLevel).toBe(LoggerLevel.DEBUG); - expect(option.skipExecution).toBe(true); - expect(option.skipCheckout).toBe(true); - expect(option.skipParallelCheckout).toBe(true); - expect(option.fullProjectDependencyTree).toBe(true); - expect(option.startProject).toBe(startProject); - expect(option.token).toBe(token); - expect(option.customCommandTreatment).toStrictEqual(customCommandTreatment); - expect(option.skipProjectCheckout).toStrictEqual(skipProject); - expect(option.skipProjectExecution).toStrictEqual(skipProject); - expect(option.branch).toBe(branch); - expect(option.group).toBe(group); - expect(option.command).toStrictEqual(commandOption); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.BRANCH); - }); -}); diff --git a/test/unitary/service/arguments/cli/build-cross_pr.test.ts b/test/unitary/service/arguments/cli/build-cross_pr.test.ts deleted file mode 100644 index c2f46af5..00000000 --- a/test/unitary/service/arguments/cli/build-cross_pr.test.ts +++ /dev/null @@ -1,112 +0,0 @@ -import "reflect-metadata"; -import { CLIActionType } from "@bc/domain/cli"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; -import { InputService } from "@bc/service/inputs/input-service"; -import { formatDate } from "@bc/utils/date"; -import { Command, CommanderError } from "commander"; -import Container from "typedi"; -import { FlowType, LoggerLevel } from "@bc/domain/inputs"; - -let program: Command; - -// Define required arguments to be reused for each test -const url = "test.com"; -const definitionFile = "/path/to/file"; - -// Command to be executed -const command = [CLIActionType.BUILD, FlowType.CROSS_PULL_REQUEST]; -const parsedInputs = Container.get(InputService); - -beforeEach(() => { - // Construct the a fresh instance of the cli each time - program = Container.get(CLIArguments).getCommand({ exitOverride: true, suppressOutput: true }); -}); - -describe("build cross pull request flow cli", () => { - test("only required options", () => { - program.parse([...command, "-f", definitionFile, "-u", url], { from: "user" }); - - // check all the required options are set and all the optional ones have the right default value if any - const option = parsedInputs.inputs; - expect(option.url).toBe(url); - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toMatch(new RegExp(`^build_chain_${formatDate(new Date()).slice(0, -2)}\\d\\d`)); - expect(option.loggerLevel).toBe(LoggerLevel.INFO); - expect(option.skipExecution).toBe(false); - expect(option.skipCheckout).toBe(false); - expect(option.skipParallelCheckout).toBe(false); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.CROSS_PULL_REQUEST); - }); - - // check for missing required options - test.each([ - ["definition file", [...command, "-u", url]], - ["url", [...command, "-f", definitionFile]], - ])("missing %p", (title: string, cmd: string[]) => { - try { - program.parse(cmd, { from: "user" }); - } catch (err) { - expect(err).toBeInstanceOf(CommanderError); - if (err instanceof CommanderError) { - expect(err.code).toBe("commander.missingMandatoryOptionValue"); - } - } - }); - - test("optional arguments", () => { - const startProject = "xyz"; - const token = "abc"; - const outputFolder = "qaz"; - const customCommandTreatment = ["abc||def"]; - const skipProject = ["pr1", "pr2"]; - - program.parse( - [ - ...command, - "-f", - definitionFile, - "-u", - url, - "-p", - startProject, - "--token", - token, - "-o", - outputFolder, - "-t", - ...customCommandTreatment, - "--skipProjectCheckout", - ...skipProject, - "--skipCheckout", - "--skipProjectExecution", - ...skipProject, - "--debug", - "--skipParallelCheckout", - "--skipExecution", - ], - { from: "user" } - ); - - // check all the required options and optional options are set correctly - const option = parsedInputs.inputs; - expect(option.url).toBe(url); - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toBe(outputFolder); - expect(option.loggerLevel).toBe(LoggerLevel.DEBUG); - expect(option.skipExecution).toBe(true); - expect(option.skipCheckout).toBe(true); - expect(option.skipParallelCheckout).toBe(true); - expect(option.startProject).toBe(startProject); - expect(option.token).toBe(token); - expect(option.customCommandTreatment).toStrictEqual(customCommandTreatment); - expect(option.skipProjectCheckout).toStrictEqual(skipProject); - expect(option.skipProjectExecution).toStrictEqual(skipProject); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.CROSS_PULL_REQUEST); - }); -}); diff --git a/test/unitary/service/arguments/cli/build-fd.test.ts b/test/unitary/service/arguments/cli/build-fd.test.ts deleted file mode 100644 index ee30d2e0..00000000 --- a/test/unitary/service/arguments/cli/build-fd.test.ts +++ /dev/null @@ -1,112 +0,0 @@ -import "reflect-metadata"; -import { CLIActionType } from "@bc/domain/cli"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; -import { InputService } from "@bc/service/inputs/input-service"; -import { formatDate } from "@bc/utils/date"; -import { Command, CommanderError } from "commander"; -import Container from "typedi"; -import { FlowType, LoggerLevel } from "@bc/domain/inputs"; - -let program: Command; - -// Define required arguments to be reused for each test -const url = "test.com"; -const definitionFile = "/path/to/file"; - -// Command to be executed -const command = [CLIActionType.BUILD, FlowType.FULL_DOWNSTREAM]; -const parsedInputs = Container.get(InputService); - -beforeEach(() => { - // Construct the a fresh instance of the cli each time - program = Container.get(CLIArguments).getCommand({ exitOverride: true, suppressOutput: true }); -}); - -describe("build full downstream pull request flow cli", () => { - test("only required options", () => { - program.parse([...command, "-f", definitionFile, "-u", url], { from: "user" }); - - // check all the required options are set and all the optional ones have the right default value if any - const option = parsedInputs.inputs; - expect(option.url).toBe(url); - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toMatch(new RegExp(`^build_chain_${formatDate(new Date()).slice(0, -2)}\\d\\d`)); - expect(option.loggerLevel).toBe(LoggerLevel.INFO); - expect(option.skipExecution).toBe(false); - expect(option.skipCheckout).toBe(false); - expect(option.skipParallelCheckout).toBe(false); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.FULL_DOWNSTREAM); - }); - - // check for missing required options - test.each([ - ["definition file", [...command, "-u", url]], - ["url", [...command, "-f", definitionFile]], - ])("missing %p", (title: string, cmd: string[]) => { - try { - program.parse(cmd, { from: "user" }); - } catch (err) { - expect(err).toBeInstanceOf(CommanderError); - if (err instanceof CommanderError) { - expect(err.code).toBe("commander.missingMandatoryOptionValue"); - } - } - }); - - test("optional arguments", () => { - const startProject = "xyz"; - const token = "abc"; - const outputFolder = "qaz"; - const customCommandTreatment = ["abc||def"]; - const skipProject = ["pr1", "pr2"]; - - program.parse( - [ - ...command, - "-f", - definitionFile, - "-u", - url, - "-p", - startProject, - "--token", - token, - "--skipProjectExecution", - ...skipProject, - "-o", - outputFolder, - "-t", - ...customCommandTreatment, - "--skipProjectCheckout", - ...skipProject, - "--debug", - "--skipParallelCheckout", - "--skipExecution", - "--skipCheckout", - ], - { from: "user" } - ); - - // check all the required options and optional options are set correctly - const option = parsedInputs.inputs; - expect(option.url).toBe(url); - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toBe(outputFolder); - expect(option.loggerLevel).toBe(LoggerLevel.DEBUG); - expect(option.skipExecution).toBe(true); - expect(option.skipCheckout).toBe(true); - expect(option.skipParallelCheckout).toBe(true); - expect(option.startProject).toBe(startProject); - expect(option.token).toBe(token); - expect(option.customCommandTreatment).toStrictEqual(customCommandTreatment); - expect(option.skipProjectCheckout).toStrictEqual(skipProject); - expect(option.skipProjectExecution).toStrictEqual(skipProject); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.FULL_DOWNSTREAM); - }); -}); diff --git a/test/unitary/service/arguments/cli/build-single.test.ts b/test/unitary/service/arguments/cli/build-single.test.ts deleted file mode 100644 index d0317a4b..00000000 --- a/test/unitary/service/arguments/cli/build-single.test.ts +++ /dev/null @@ -1,112 +0,0 @@ -import "reflect-metadata"; -import { CLIActionType } from "@bc/domain/cli"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; -import { InputService } from "@bc/service/inputs/input-service"; -import { formatDate } from "@bc/utils/date"; -import { Command, CommanderError } from "commander"; -import Container from "typedi"; -import { FlowType, LoggerLevel } from "@bc/domain/inputs"; - -let program: Command; - -// Define required arguments to be reused for each test -const url = "test.com"; -const definitionFile = "/path/to/file"; - -// Command to be executed -const command = [CLIActionType.BUILD, FlowType.SINGLE_PULL_REQUEST]; -const parsedInputs = Container.get(InputService); - -beforeEach(() => { - // Construct the a fresh instance of the cli each time - program = Container.get(CLIArguments).getCommand({ exitOverride: true, suppressOutput: true }); -}); - -describe("build single pull request flow cli", () => { - test("only required options", () => { - program.parse([...command, "-f", definitionFile, "-u", url], { from: "user" }); - - // check all the required options are set and all the optional ones have the right default value if any - const option = parsedInputs.inputs; - expect(option.url).toBe(url); - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toMatch(new RegExp(`^build_chain_${formatDate(new Date()).slice(0, -2)}\\d\\d`)); - expect(option.loggerLevel).toBe(LoggerLevel.INFO); - expect(option.skipExecution).toBe(false); - expect(option.skipCheckout).toBe(false); - expect(option.skipParallelCheckout).toBe(false); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.SINGLE_PULL_REQUEST); - }); - - // check for missing required options - test.each([ - ["definition file", [...command, "-u", url]], - ["url", [...command, "-f", definitionFile]], - ])("missing %p", (title: string, cmd: string[]) => { - try { - program.parse(cmd, { from: "user" }); - } catch (err) { - expect(err).toBeInstanceOf(CommanderError); - if (err instanceof CommanderError) { - expect(err.code).toBe("commander.missingMandatoryOptionValue"); - } - } - }); - - test("optional arguments", () => { - const startProject = "xyz"; - const token = "abc"; - const outputFolder = "qaz"; - const customCommandTreatment = ["abc||def"]; - const skipProject = ["pr1", "pr2"]; - - program.parse( - [ - ...command, - "-f", - definitionFile, - "-u", - url, - "-p", - startProject, - "--token", - token, - "--skipProjectExecution", - ...skipProject, - "-o", - outputFolder, - "-t", - ...customCommandTreatment, - "--skipProjectCheckout", - ...skipProject, - "--debug", - "--skipParallelCheckout", - "--skipExecution", - "--skipCheckout", - ], - { from: "user" } - ); - - // check all the required options and optional options are set correctly - const option = parsedInputs.inputs; - expect(option.url).toBe(url); - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toBe(outputFolder); - expect(option.loggerLevel).toBe(LoggerLevel.DEBUG); - expect(option.skipExecution).toBe(true); - expect(option.skipCheckout).toBe(true); - expect(option.skipParallelCheckout).toBe(true); - expect(option.startProject).toBe(startProject); - expect(option.token).toBe(token); - expect(option.customCommandTreatment).toStrictEqual(customCommandTreatment); - expect(option.skipProjectCheckout).toStrictEqual(skipProject); - expect(option.skipProjectExecution).toStrictEqual(skipProject); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.SINGLE_PULL_REQUEST); - }); -}); diff --git a/test/unitary/service/arguments/cli/tool-project_list.test.ts b/test/unitary/service/arguments/cli/tool-project_list.test.ts deleted file mode 100644 index 173ec0f6..00000000 --- a/test/unitary/service/arguments/cli/tool-project_list.test.ts +++ /dev/null @@ -1,65 +0,0 @@ -import "reflect-metadata"; -import { CLIActionType, ToolType } from "@bc/domain/cli"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; -import { InputService } from "@bc/service/inputs/input-service"; -import { Command, CommanderError } from "commander"; -import Container from "typedi"; -import { LoggerLevel } from "@bc/domain/inputs"; - -let program: Command; - -// Command to be executed -const command = [CLIActionType.TOOLS, ToolType.PROJECT_LIST]; - -// Define required arguments to be reused for each test -const definitionFile = "/path/to/file"; -const parsedInputs = Container.get(InputService); - -beforeEach(() => { - // Construct the a fresh instance of the cli each time - program = Container.get(CLIArguments).getCommand({ exitOverride: true, suppressOutput: true }); -}); - -describe("build single pull request flow cli", () => { - test("only required options", () => { - program.parse([...command, "-f", definitionFile], { from: "user" }); - - // check all the required options are set and all the optional ones have the right default value if any - const option = parsedInputs.inputs; - expect(option.definitionFile).toBe(definitionFile); - expect(option.loggerLevel).toBe(LoggerLevel.INFO); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.TOOLS); - expect(option.CLISubCommand).toBe(ToolType.PROJECT_LIST); - }); - - // check for missing required options - test("missing definition file", () => { - try { - program.parse(command, { from: "user" }); - } catch (err) { - expect(err).toBeInstanceOf(CommanderError); - if (err instanceof CommanderError) { - expect(err.code).toBe("commander.missingMandatoryOptionValue"); - } - } - }); - - test("optional arguments", () => { - const skipGroup = ["gr1", "gr2"]; - const token = "abc"; - - program.parse([...command, "-f", definitionFile, "--token", token, "-s", ...skipGroup, "-d"], { from: "user" }); - - // check all the required options and optional options are set correctly - const option = parsedInputs.inputs; - expect(option.skipGroup).toStrictEqual(skipGroup); - expect(option.token).toBe(token); - expect(option.loggerLevel).toBe(LoggerLevel.DEBUG); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.TOOLS); - expect(option.CLISubCommand).toBe(ToolType.PROJECT_LIST); - }); -}); diff --git a/test/unitary/service/artifacts/artifact-service.test.ts b/test/unitary/service/artifacts/artifact-service.test.ts deleted file mode 100644 index c52ed02f..00000000 --- a/test/unitary/service/artifacts/artifact-service.test.ts +++ /dev/null @@ -1,70 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { UploadService } from "@bc/service/artifacts/upload-service"; -import Container from "typedi"; -import { ArtifactService } from "@bc/service/artifacts/artifact-service"; -import { Node } from "@kie/build-chain-configuration-reader"; - -// disable logs -jest.spyOn(global.console, "log"); - -// just to initialize config service otheriwse not relevant -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - -const nodeChain: Node[] = [ - { - project: "owner1/project1", - parents: [], - children: [], - archiveArtifacts: { - name: "artifacts-project1", - dependencies: "all", - "if-no-files-found": "ignore", - paths: [{ path: "test", on: "success" }], - }, - }, - { - project: "owner2/project2", - parents: [], - children: [], - archiveArtifacts: { - name: "artifacts-project1", - dependencies: "none", - "if-no-files-found": "ignore", - paths: [{ path: "test", on: "success" }], - }, - }, - { - project: "owner3/project3", - parents: [], - children: [], - archiveArtifacts: { - name: "artifacts-project1", - dependencies: ["owner1/project1"], - "if-no-files-found": "ignore", - paths: [{ path: "test", on: "success" }], - }, - }, -]; - -test.each([ - ["none", 1, [nodeChain[1]]], - ["all", 0, nodeChain], - ["array of projects", 2, [nodeChain[0], nodeChain[2]]], -])("artifacts dependencies: %p", async (_title: string, startProjectIndex: number, nodesToArchive: Node[]) => { - const spyUpload = jest.spyOn(UploadService.prototype, "upload").mockImplementation(async () => { - return { - artifactName: "", - artifactItems: [], - failedItems: [], - size: 0, - }; - }); - const artifactService = Container.get(ArtifactService); - await artifactService.uploadNodes(nodeChain, nodeChain[startProjectIndex]); - expect(spyUpload).toHaveBeenCalledTimes(nodesToArchive.length); - nodesToArchive.forEach(node => { - expect(spyUpload).toHaveBeenCalledWith(node.archiveArtifacts, node.project); - }); -}); diff --git a/test/unitary/service/artifacts/upload-service.test.ts b/test/unitary/service/artifacts/upload-service.test.ts deleted file mode 100644 index bc2997bf..00000000 --- a/test/unitary/service/artifacts/upload-service.test.ts +++ /dev/null @@ -1,266 +0,0 @@ -import "reflect-metadata"; -import path from "path"; -import { mkdir, rm, writeFile } from "fs/promises"; -import { ArchiveArtifacts, IfNoFile } from "@kie/build-chain-configuration-reader"; -import { UploadService } from "@bc/service/artifacts/upload-service"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { create } from "@actions/artifact"; -import * as core from "@actions/core"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; - -jest.mock("@actions/artifact"); - -// disable logs -jest.spyOn(global.console, "log"); - -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); -let uploadService: UploadService; -const mockedCreate = create as jest.Mock; -const uploadOptions = { continueOnError: false }; - -const constructArchiveArtifacts = (search: string[], ifNoFilesFound: IfNoFile = "ignore" as IfNoFile): ArchiveArtifacts => { - return { - "if-no-files-found": ifNoFilesFound, - dependencies: "all", - name: "test", - paths: search.map(s => { - return { path: s, on: "success" }; - }), - }; -}; - -beforeEach(() => { - uploadService = Container.get(UploadService); - jest.spyOn(core, "debug").mockImplementation(() => undefined); - jest.spyOn(core, "info").mockImplementation(() => undefined); - jest.spyOn(core, "warning").mockImplementation(() => undefined); -}); - -describe("search files", () => { - const root = path.join(__dirname, "_temp"); - const searchItem1Path = path.join(root, "folder-a", "folder-b", "folder-c", "search-item1.txt"); - const searchItem2Path = path.join(root, "folder-d", "search-item2.txt"); - const searchItem3Path = path.join(root, "folder-d", "search-item3.txt"); - const searchItem4Path = path.join(root, "folder-d", "search-item4.txt"); - const searchItem5Path = path.join(root, "search-item5.txt"); - const extraSearchItem1Path = path.join(root, "folder-a", "folder-b", "folder-c", "extraSearch-item1.txt"); - const extraSearchItem2Path = path.join(root, "folder-d", "extraSearch-item2.txt"); - const extraSearchItem3Path = path.join(root, "folder-f", "extraSearch-item3.txt"); - const extraSearchItem4Path = path.join(root, "folder-h", "folder-i", "extraSearch-item4.txt"); - const extraSearchItem5Path = path.join(root, "folder-h", "folder-i", "extraSearch-item5.txt"); - const extraFileInFolderCPath = path.join(root, "folder-a", "folder-b", "folder-c", "extra-file-in-folder-c.txt"); - const amazingFileInFolderHPath = path.join(root, "folder-h", "amazing-item.txt"); - const lonelyFilePath = path.join(root, "folder-h", "folder-j", "folder-k", "lonely-file.txt"); - beforeEach(async () => { - await mkdir(path.dirname(searchItem1Path), { - recursive: true, - }); - await mkdir(path.join(root, "folder-a", "folder-b", "folder-e"), { - recursive: true, - }); - await mkdir(path.dirname(searchItem2Path), { - recursive: true, - }); - await mkdir(path.dirname(extraSearchItem3Path), { - recursive: true, - }); - await mkdir(path.join(root, "folder-g"), { - recursive: true, - }); - await mkdir(path.dirname(extraSearchItem4Path), { - recursive: true, - }); - await mkdir(path.dirname(lonelyFilePath), { - recursive: true, - }); - await Promise.all([ - writeFile(searchItem1Path, "search item1 file"), - writeFile(searchItem2Path, "search item2 file"), - writeFile(searchItem3Path, "search item3 file"), - writeFile(searchItem4Path, "search item4 file"), - writeFile(searchItem5Path, "search item5 file"), - writeFile(extraSearchItem1Path, "extraSearch item1 file"), - writeFile(extraSearchItem2Path, "extraSearch item2 file"), - writeFile(extraSearchItem3Path, "extraSearch item3 file"), - writeFile(extraSearchItem4Path, "extraSearch item4 file"), - writeFile(extraSearchItem5Path, "extraSearch item5 file"), - writeFile(extraFileInFolderCPath, "extra file"), - writeFile(amazingFileInFolderHPath, "amazing file"), - writeFile(lonelyFilePath, "all by itself"), - ]); - }); - - afterEach(async () => { - await rm(root, { recursive: true }); - }); - - test.each([ - ["Absolute Path", searchItem1Path], - ["Relative Path", path.join("test", "unitary", "service", "artifacts", "_temp", "folder-a", "folder-b", "folder-c", "search-item1.txt")], - ])("Single file search - %p", async (_title: string, searchPath: string) => { - const rootDir = path.join(root, "folder-a", "folder-b", "folder-c"); - const archiveConfig = constructArchiveArtifacts([searchPath]); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - expect(uploadArtifact).toHaveBeenCalledWith(archiveConfig.name, [searchItem1Path], rootDir, uploadOptions); - }); - - test("Single file using wildcard", async () => { - const searchPath = path.join(root, "folder-h", "**/*lonely*"); - const rootDir = path.join(root, "folder-h"); - const archiveConfig = constructArchiveArtifacts([searchPath]); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - expect(uploadArtifact).toHaveBeenCalledWith(archiveConfig.name, [lonelyFilePath], rootDir, uploadOptions); - }); - - test("Single file using directory", async () => { - const searchPath = path.join(root, "folder-h", "folder-j"); - const archiveConfig = constructArchiveArtifacts([searchPath]); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - expect(uploadArtifact).toHaveBeenCalledWith(archiveConfig.name, [lonelyFilePath], searchPath, uploadOptions); - }); - - test.each([ - ["Absolute Path", path.join(root, "folder-h"), path.join(root, "folder-h")], - ["Relative Path", path.join("test", "unitary", "service", "artifacts", "_temp", "folder-h"), path.join(root, "folder-h")], - ])("Directory search - %p", async (_title: string, searchPath: string, rootDir: string) => { - const archiveConfig = constructArchiveArtifacts([searchPath]); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - const filesToUpload = [amazingFileInFolderHPath, extraSearchItem4Path, extraSearchItem5Path, lonelyFilePath]; - expect(uploadArtifact).toHaveBeenCalled(); - const receivedName = uploadArtifact.mock.calls[0][0]; - const receivedFiles = uploadArtifact.mock.calls[0][1]; - const receivedRoot = uploadArtifact.mock.calls[0][2]; - const receivedOptions = uploadArtifact.mock.calls[0][3]; - expect(receivedName).toBe(archiveConfig.name); - expect(receivedFiles.sort()).toStrictEqual(filesToUpload.sort()); - expect(receivedRoot).toBe(rootDir); - expect(receivedOptions).toStrictEqual(uploadOptions); - }); - - test.each([ - ["Absolute Path", path.join(root, "**/*[Ss]earch*")], - ["Relative Path", path.join("test", "unitary", "service", "artifacts", "_temp", "**/*[Ss]earch*")], - ])("Wildcard search - %p", async (_title: string, searchPath) => { - const archiveConfig = constructArchiveArtifacts([searchPath]); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - expect(uploadArtifact).toHaveBeenCalled(); - const receivedName = uploadArtifact.mock.calls[0][0]; - const receivedFiles = uploadArtifact.mock.calls[0][1]; - const receivedRoot = uploadArtifact.mock.calls[0][2]; - const receivedOptions = uploadArtifact.mock.calls[0][3]; - const filesToUpload = [ - searchItem1Path, - searchItem2Path, - searchItem3Path, - searchItem4Path, - searchItem5Path, - extraSearchItem1Path, - extraSearchItem2Path, - extraSearchItem3Path, - extraSearchItem4Path, - extraSearchItem5Path, - ]; - expect(receivedName).toBe(archiveConfig.name); - expect(receivedFiles.sort()).toStrictEqual(filesToUpload.sort()); - expect(receivedRoot).toBe(root); - expect(receivedOptions).toStrictEqual(uploadOptions); - }); - - test("Multi path search - root directory", async () => { - const searchPath = [path.join(root, "folder-a"), path.join(root, "folder-d")]; - const archiveConfig = constructArchiveArtifacts(searchPath); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - expect(uploadArtifact).toHaveBeenCalled(); - const receivedName = uploadArtifact.mock.calls[0][0]; - const receivedFiles = uploadArtifact.mock.calls[0][1]; - const receivedRoot = uploadArtifact.mock.calls[0][2]; - const receivedOptions = uploadArtifact.mock.calls[0][3]; - const filesToUpload = [ - searchItem1Path, - searchItem2Path, - searchItem3Path, - searchItem4Path, - extraSearchItem1Path, - extraSearchItem2Path, - extraFileInFolderCPath, - ]; - expect(receivedName).toBe(archiveConfig.name); - expect(receivedFiles.sort()).toStrictEqual(filesToUpload.sort()); - expect(receivedRoot).toBe(root); - expect(receivedOptions).toStrictEqual(uploadOptions); - }); - - test("Multi path search - with exclude character", async () => { - const searchPath = [path.join(root, "folder-a"), path.join(root, "folder-d"), "!" + path.join(root, "folder-a", "folder-b", "**/extra*.txt")]; - const archiveConfig = constructArchiveArtifacts(searchPath); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - expect(uploadArtifact).toHaveBeenCalled(); - const receivedName = uploadArtifact.mock.calls[0][0]; - const receivedFiles = uploadArtifact.mock.calls[0][1]; - const receivedRoot = uploadArtifact.mock.calls[0][2]; - const receivedOptions = uploadArtifact.mock.calls[0][3]; - const filesToUpload = [searchItem1Path, searchItem2Path, searchItem3Path, searchItem4Path, extraSearchItem2Path]; - expect(receivedName).toBe(archiveConfig.name); - expect(receivedFiles.sort()).toStrictEqual(filesToUpload.sort()); - expect(receivedRoot).toBe(root); - expect(receivedOptions).toStrictEqual(uploadOptions); - }); - - test("Multi path search - non root directory", async () => { - const searchPath = [path.join(root, "folder-h", "folder-i"), path.join(root, "folder-h", "folder-j", "folder-k"), amazingFileInFolderHPath]; - const archiveConfig = constructArchiveArtifacts(searchPath); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - expect(uploadArtifact).toHaveBeenCalled(); - const receivedName = uploadArtifact.mock.calls[0][0]; - const receivedFiles = uploadArtifact.mock.calls[0][1]; - const receivedRoot = uploadArtifact.mock.calls[0][2]; - const receivedOptions = uploadArtifact.mock.calls[0][3]; - const filesToUpload = [amazingFileInFolderHPath, extraSearchItem4Path, extraSearchItem5Path, lonelyFilePath]; - expect(receivedName).toBe(archiveConfig.name); - expect(receivedFiles.sort()).toStrictEqual(filesToUpload.sort()); - expect(receivedRoot).toBe(path.join(root, "folder-h")); - expect(receivedOptions).toStrictEqual(uploadOptions); - }); -}); - -describe("upload", () => { - test.each([ - ["default", jest.spyOn(BaseLoggerService.prototype, "warn")], - ["warn", jest.spyOn(BaseLoggerService.prototype, "warn")], - ["ignore", jest.spyOn(BaseLoggerService.prototype, "info")], - ["error", jest.spyOn(BaseLoggerService.prototype, "error")], - ])("with no files found - %p", async (ifNoFilesFound: string, spy: jest.SpyInstance) => { - const archiveConfig = constructArchiveArtifacts([path.join(__dirname, "does-not-exist.txt")], ifNoFilesFound as IfNoFile); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - if (ifNoFilesFound === "error") { - await expect(uploadService.upload(archiveConfig, "project")).rejects.toThrowError(); - } else { - await expect(uploadService.upload(archiveConfig, "project")).resolves.toStrictEqual({ - artifactName: archiveConfig.name, - artifactItems: [], - failedItems: [], - size: 0, - }); - } - expect(spy).toHaveBeenCalledTimes(1); - }); -}); diff --git a/test/unitary/service/checkout/checkout-service.test.ts b/test/unitary/service/checkout/checkout-service.test.ts deleted file mode 100644 index 9f20d826..00000000 --- a/test/unitary/service/checkout/checkout-service.test.ts +++ /dev/null @@ -1,700 +0,0 @@ -import "reflect-metadata"; -import path from "path"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { ProjectConfiguration } from "@bc/domain/configuration"; -import { CheckoutService } from "@bc/service/checkout/checkout-service"; -import { rmSync } from "fs"; -import { GitCLIService } from "@bc/service/git/git-cli"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -import { serverUrl, nodeChain, fakeClone, checkClone } from "./helpers"; -import { Moctokit } from "@kie/mock-github"; - -// disable logs -jest.spyOn(global.console, "log"); - -/** - * just so the config service intialization succeeds. Otherwise not really needed - * since all config service functions will be mocked - */ -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); -Container.set(constants.GITHUB.TOKEN, "faketoken"); - -const checkoutService = Container.get(CheckoutService); -const moctokit = new Moctokit(); -let cloneSpy: jest.SpyInstance, mergeSpy: jest.SpyInstance; - -beforeEach(async () => { - //set node chain - jest.spyOn(ConfigurationService.prototype, "nodeChain", "get").mockImplementation(() => nodeChain); - - // skip checkout for the last node - jest - .spyOn(ConfigurationService.prototype, "skipCheckout") - .mockImplementationOnce(() => false) - .mockImplementationOnce(() => false) - .mockImplementationOnce(() => true); - - // mock git server url - jest.spyOn(BaseConfiguration.prototype, "gitConfiguration", "get").mockImplementation(() => { - return { serverUrlWithToken: serverUrl }; - }); - - // spy on git functions - cloneSpy = jest - .spyOn(GitCLIService.prototype, "clone") - .mockImplementationOnce(async (_from: string, to: string, _branch: string) => fakeClone(to)) - .mockImplementationOnce(async () => undefined); - mergeSpy = jest.spyOn(GitCLIService.prototype, "merge").mockImplementation(async () => undefined); -}); - - -describe.each([ - ["sequential", true], - ["parallel", false], -])("%p: starting project has a PR from non-forked repository", (_title: string, skipParallelCheckout: boolean) => { - const originalSource: ProjectConfiguration = { - name: "project2", - group: "owner2", - branch: "sbranch2", - repository: "owner2/project2", - }; - const originalTarget: ProjectConfiguration = { - name: "project2", - group: "owner2", - branch: "tbranch2", - repository: "owner2/project2", - }; - const rootFolder = path.join(__dirname, "non-forked-pr"); - - beforeEach(() => { - jest.spyOn(ConfigurationService.prototype, "getRootFolder").mockImplementation(() => rootFolder); - jest.spyOn(ConfigurationService.prototype, "getSourceProject").mockImplementation(() => originalSource); - jest.spyOn(ConfigurationService.prototype, "getTargetProject").mockImplementation(() => originalTarget); - jest.spyOn(ConfigurationService.prototype, "getStarterNode").mockImplementation(() => nodeChain[1]); - jest.spyOn(ConfigurationService.prototype, "skipParallelCheckout").mockImplementation(() => skipParallelCheckout); - }); - - afterEach(() => { - rmSync(rootFolder, { recursive: true }); - }); - - test("PR exists from node_forked:source_branch to node:mapped_branch", async () => { - - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: [{name: "project1-forked", owner: {login: "owner2"}}]}); - moctokit.rest.repos.get({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: {}}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner2/project1-forked:sbranch2", base: "tbranch1"}).reply({status: 200, data: [{title: "pr"}]}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2/project2:sbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:sbranch2", base: "tbranch2"}).reply({status: 200, data: [{title: "pr"}]}); - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(2); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), `${serverUrl}/owner2/project1-forked`, "sbranch2"); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), `${serverUrl}/owner2/project2`, "sbranch2"); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "sbranch2", - sourceGroup: "owner2", - sourceName: "project1-forked", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: true, - }, - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "sbranch2", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: true, - }, - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - }); - }); - - test("PR exists from node:source_branch to node:mapped_branch", async () => { - - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: [{name: "project1-forked", owner: {login: "owner4"}}]}); - moctokit.rest.repos.get({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: {}}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner1:sbranch2", base: "tbranch1"}).reply({status: 200, data: [{title: "pr"}]}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2/project2:sbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:sbranch2", base: "tbranch2"}).reply({status: 200, data: [{title: "pr"}]}); - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(2); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), `${serverUrl}/owner1/project1`, "sbranch2"); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), `${serverUrl}/owner2/project2`, "sbranch2"); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "sbranch2", - sourceGroup: "owner1", - sourceName: "project1", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: true, - }, - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "sbranch2", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: true, - }, - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - }); - }); - - test("No PR", async () => { - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: []}); - moctokit.rest.repos.get({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: {}}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner1:sbranch2", base: "tbranch1"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2/project2:sbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:sbranch2", base: "tbranch2"}).reply({status: 200, data: [{title: "pr"}]}); - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(1); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), `${serverUrl}/owner2/project2`, "sbranch2"); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "tbranch1", - sourceGroup: "owner1", - sourceName: "project1", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: false, - }, - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "sbranch2", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: true, - }, - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - }); - }); -}); - -describe.each([ - ["sequential", true], - ["parallel", false], -])("%p: starting project has a PR from forked repository", (_title: string, skipParallelCheckout: boolean) => { - const originalSource: ProjectConfiguration = { - name: "project2-forked", - group: "owner4", - branch: "sbranch2-forked", - repository: "owner4/project2-forked", - }; - const originalTarget: ProjectConfiguration = { - name: "project2", - group: "owner2", - branch: "tbranch2", - repository: "owner2/project2", - }; - const rootFolder = path.join(__dirname, "forked-pr"); - - beforeEach(() => { - jest.spyOn(ConfigurationService.prototype, "getRootFolder").mockImplementation(() => rootFolder); - jest.spyOn(ConfigurationService.prototype, "getSourceProject").mockImplementation(() => originalSource); - jest.spyOn(ConfigurationService.prototype, "getTargetProject").mockImplementation(() => originalTarget); - jest.spyOn(ConfigurationService.prototype, "getStarterNode").mockImplementation(() => nodeChain[1]); - jest.spyOn(ConfigurationService.prototype, "skipParallelCheckout").mockImplementation(() => skipParallelCheckout); - }); - - afterEach(() => { - rmSync(rootFolder, { recursive: true }); - }); - - test("PR exists from node_forked:source_branch to node:mapped_branch", async () => { - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: [{name: "project1-forked", owner: {login: "owner4"}}]}); - moctokit.rest.repos.listForks({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: [{name: "project2-forked", owner: {login: "owner4"}}]}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner4/project1-forked:sbranch2-forked", base: "tbranch1"}).reply({status: 200, data: [{title: "pr"}]}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner4/project2-forked:sbranch2-forked", base: "tbranch2"}).reply({status: 200, data: [{title: "pr"}]}); - - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(2); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), `${serverUrl}/owner4/project1-forked`, "sbranch2-forked"); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), `${serverUrl}/owner4/project2-forked`, "sbranch2-forked"); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "sbranch2-forked", - sourceGroup: "owner4", - sourceName: "project1-forked", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: true, - }, - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "sbranch2-forked", - sourceGroup: "owner4", - sourceName: "project2-forked", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: true, - }, - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - }); - }); - - test("PR exists from node:source_branch to node:mapped_branch", async () => { - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: []}); - moctokit.rest.repos.listForks({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: [{name: "project2-forked", owner: {login: "owner4"}}]}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner1:sbranch2-forked", base: "tbranch1"}).reply({status: 200, data: [{title: "pr"}]}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner4/project2-forked:sbranch2-forked", base: "tbranch2"}).reply({status: 200, data: [{title: "pr"}]}); - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(2); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), `${serverUrl}/owner1/project1`, "sbranch2-forked"); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), `${serverUrl}/owner4/project2-forked`, "sbranch2-forked"); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "sbranch2-forked", - sourceGroup: "owner1", - sourceName: "project1", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: true, - }, - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "sbranch2-forked", - sourceGroup: "owner4", - sourceName: "project2-forked", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: true, - }, - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - }); - }); - - test("No PR", async () => { - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: []}); - moctokit.rest.repos.listForks({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: [{name: "project2-forked", owner: {login: "owner4"}}]}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner1:sbranch2-forked", base: "tbranch1"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner4/project2-forked:sbranch2-forked", base: "tbranch2"}).reply({status: 200, data: [{title: "pr"}]}); - - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(1); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), `${serverUrl}/owner4/project2-forked`, "sbranch2-forked"); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "tbranch1", - sourceGroup: "owner1", - sourceName: "project1", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: false, - }, - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "sbranch2-forked", - sourceGroup: "owner4", - sourceName: "project2-forked", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: true, - }, - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - }); - }); -}); - -describe.each([ - ["sequential", true], - ["parallel", false], -])("%p: starting project has no PR", (_title: string, skipParallelCheckout: boolean) => { - const originalSource: ProjectConfiguration = { - name: "project2", - group: "owner2", - branch: "tbranch2", - repository: "owner2/project2", - }; - const originalTarget: ProjectConfiguration = { - name: "project2", - group: "owner2", - branch: "tbranch2", - repository: "owner2/project2", - }; - - const rootFolder = path.join(__dirname, "no-pr"); - - beforeEach(() => { - jest.spyOn(ConfigurationService.prototype, "getRootFolder").mockImplementation(() => rootFolder); - jest.spyOn(ConfigurationService.prototype, "getSourceProject").mockImplementation(() => originalSource); - jest.spyOn(ConfigurationService.prototype, "getTargetProject").mockImplementation(() => originalTarget); - jest.spyOn(ConfigurationService.prototype, "getStarterNode").mockImplementation(() => nodeChain[1]); - jest.spyOn(ConfigurationService.prototype, "skipParallelCheckout").mockImplementation(() => skipParallelCheckout); - }); - - afterEach(() => { - rmSync(rootFolder, { recursive: true }); - }); - - test("PR exists from node_forked:source_branch to node:mapped_branch", async () => { - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: [{name: "project1-forked", owner: {login: "owner2"}}]}); - moctokit.rest.repos.get({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: {}}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner2/project1-forked:tbranch2", base: "tbranch1"}).reply({status: 200, data: [{title: "pr"}]}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2/project2:tbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:tbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(1); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), `${serverUrl}/owner2/project1-forked`, "tbranch2"); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "tbranch2", - sourceGroup: "owner2", - sourceName: "project1-forked", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: true, - }, - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "tbranch2", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: false, - }, - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - }); - }); - - test("PR exists from node:source_branch to node:mapped_branch", async () => { - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: [{name: "project1-forked", owner: {login: "owner4"}}]}); - moctokit.rest.repos.get({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: {}}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner1:tbranch2", base: "tbranch1"}).reply({status: 200, data: [{title: "pr"}]}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2/project2:tbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:tbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(1); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), `${serverUrl}/owner1/project1`, "tbranch2"); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "tbranch2", - sourceGroup: "owner1", - sourceName: "project1", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: true, - }, - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "tbranch2", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: false, - }, - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - }); - }); - - test("No PR", async () => { - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: []}); - moctokit.rest.repos.get({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: {}}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner1:tbranch2", base: "tbranch1"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2/project2:tbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:tbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(0); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "tbranch1", - sourceGroup: "owner1", - sourceName: "project1", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: false, - }, - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "tbranch2", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: false, - }, - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - }); - }); -}); diff --git a/test/unitary/service/checkout/helpers.ts b/test/unitary/service/checkout/helpers.ts deleted file mode 100644 index c4e7edcc..00000000 --- a/test/unitary/service/checkout/helpers.ts +++ /dev/null @@ -1,81 +0,0 @@ -import path from "path"; -import { mkdirSync } from "fs"; -import { writeFile, readFile } from "fs/promises"; -import { Node } from "@kie/build-chain-configuration-reader"; - -export const nodeChain: Node[] = [ - { - project: "owner1/project1", - parents: [], - children: [], - clone: ["clone-1", "clone-2"], - mapping: { - dependant: { - default: [] - }, - dependencies: { - default: [] - }, - exclude: [] - }, - }, - { - project: "owner2/project2", - parents: [], - children: [], - mapping: { - exclude: [], - dependant: { - default: [] - }, - dependencies: { - default: [ - { - source: "tbranch2", - target: "main", - }, - ], - "owner1/project1": [ - { - source: "tbranch2", - target: "tbranch1", - }, - ], - }, - }, - }, - { - project: "owner3/project3", - parents: [], - children: [] - }, -]; - -export const serverUrl = "https://github.com"; -export const filename = "test.txt"; -export const depth1Dir = "depth1"; -export const depth2Dir = "depth2"; -export const filedata = "test"; -export const clones = ["clone-1", "clone-2"]; - -export const fakeClone = async (to: string) => { - mkdirSync(path.join(to, depth1Dir, depth2Dir), { recursive: true }); - await Promise.all([ - writeFile(path.join(to, filename), filedata), - writeFile(path.join(to, depth1Dir, depth2Dir, filename), filedata), - writeFile(path.join(to, depth1Dir, filename), filedata), - ]); -}; - -export const checkClone = async (rootFolder: string) => { - const promises: Promise[] = []; - clones.forEach(clone => { - const fullClonePath = path.join(rootFolder, clone); - promises.push( - expect(readFile(path.join(fullClonePath, filename), "utf8")).resolves.toBe(filedata), - expect(readFile(path.join(fullClonePath, depth1Dir, filename), "utf8")).resolves.toBe(filedata), - expect(readFile(path.join(fullClonePath, depth1Dir, depth2Dir, filename), "utf8")).resolves.toBe(filedata) - ); - }); - await Promise.all(promises); -}; diff --git a/test/unitary/service/command/execute-command-service.test.ts b/test/unitary/service/command/execute-command-service.test.ts deleted file mode 100644 index 5c86c1ab..00000000 --- a/test/unitary/service/command/execute-command-service.test.ts +++ /dev/null @@ -1,239 +0,0 @@ -import "reflect-metadata"; -import { ExecuteCommandService } from "@bc/service/command/execute-command-service"; -import { CommandTreatmentDelegator } from "@bc/service/command/treatment/command-treatment-delegator"; -import { CommandExecutorDelegator } from "@bc/service/command/executor/command-executor-delegator"; -import { ExecutionResult } from "@bc/domain/execute-command-result"; -import { ExecutionPhase } from "@bc/domain/execution-phase"; -import { defaultNodeValue } from "@bc/domain/node"; -import { NodeExecutionLevel } from "@bc/domain/node-execution"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { Node } from "@kie/build-chain-configuration-reader"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; - -// disable logs -jest.spyOn(global.console, "log"); -jest.mock("@bc/service/logger/base-logger-service"); -jest.mock("@bc/service/command/treatment/command-treatment-delegator"); -jest.mock("@bc/service/command/executor/command-executor-delegator"); -jest.mock("@bc/service/config/configuration-service"); - -// entry point for logging doesn't make a difference -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - -describe("ExecuteCommandService", () => { - test("executeCommand without cwd", async () => { - // Arrange - const commandTreatmentDelegator = jest.mocked(CommandTreatmentDelegator.prototype, true); - const commandExecutorDelegator = jest.mocked(CommandExecutorDelegator.prototype, true); - const configurationService = new ConfigurationService(); - - (ConfigurationService.prototype.getTreatmentOptions as jest.Mocked).mockReturnValueOnce("treatmentOptions"); - (CommandTreatmentDelegator.prototype.treatCommand as jest.Mocked).mockReturnValue("command x treated"); - (CommandExecutorDelegator.prototype.executeCommand as jest.Mocked).mockReturnValue({ result: ExecutionResult.OK }); - - const executeCommandService = new ExecuteCommandService(commandTreatmentDelegator, commandExecutorDelegator, configurationService); - - // Act - const executeCommandResultPromise = await executeCommandService.executeCommand("command X"); - - // Assert - expect(executeCommandResultPromise).toStrictEqual({ result: ExecutionResult.OK }); - expect(CommandTreatmentDelegator.prototype.treatCommand).toHaveBeenCalledTimes(1); - expect(CommandTreatmentDelegator.prototype.treatCommand).toHaveBeenCalledWith("command X", "treatmentOptions"); - expect(CommandExecutorDelegator.prototype.executeCommand).toHaveBeenCalledTimes(1); - expect(CommandExecutorDelegator.prototype.executeCommand).toHaveBeenCalledWith("command x treated", undefined); - }); - - test("executeCommand with cwd", async () => { - // Arrange - const commandTreatmentDelegator = jest.mocked(CommandTreatmentDelegator.prototype, true); - const commandExecutorDelegator = jest.mocked(CommandExecutorDelegator.prototype, true); - const configurationService = new ConfigurationService(); - - (ConfigurationService.prototype.getTreatmentOptions as jest.Mocked).mockReturnValueOnce("treatmentOptions"); - (CommandTreatmentDelegator.prototype.treatCommand as jest.Mocked).mockReturnValue("command x treated"); - (CommandExecutorDelegator.prototype.executeCommand as jest.Mocked).mockReturnValue({ result: ExecutionResult.OK }); - - const executeCommandService = new ExecuteCommandService(commandTreatmentDelegator, commandExecutorDelegator, configurationService); - - // Act - const executeCommandResultPromise = await executeCommandService.executeCommand("command X", "cwd"); - - // Assert - expect(executeCommandResultPromise).toStrictEqual({ result: ExecutionResult.OK }); - expect(CommandTreatmentDelegator.prototype.treatCommand).toHaveBeenCalledTimes(1); - expect(CommandTreatmentDelegator.prototype.treatCommand).toHaveBeenCalledWith("command X", "treatmentOptions"); - expect(CommandExecutorDelegator.prototype.executeCommand).toHaveBeenCalledTimes(1); - expect(CommandExecutorDelegator.prototype.executeCommand).toHaveBeenCalledWith("command x treated", "cwd"); - }); -}); - -describe("executeChainCommands", () => { - - const nodes: Node[] = [{ - ...defaultNodeValue, - project: "project1", - before: { - upstream: ["project1 before upstream 1"], - current: ["project1 before current 1", "project1 before current 2"], - downstream: ["project1 before downstream 1", "project1 before downstream 2", "project1 before downstream 3"], - }, - commands: { - upstream: ["project1 commands upstream 1"], - current: ["project1 commands current 1", "project1 commands current 2"], - downstream: ["project1 commands downstream 1", "project1 commands downstream 2", "project1 commands downstream 3"], - }, - after: { - upstream: ["project1 after upstream 1"], - current: ["project1 after current 1", "project1 after current 2"], - downstream: ["project1 after downstream 1", "project1 after downstream 2", "project1 after downstream 3"], - }, - }, { - ...defaultNodeValue, - project: "project2", - before: { - upstream: ["project2 before upstream 1"], - current: ["project2 before current 1", "project2 before current 2"], - downstream: ["project2 before downstream 1", "project2 before downstream 2", "project2 before downstream 3"], - }, - commands: { - upstream: ["project2 commands upstream 1"], - current: ["project2 commands current 1", "project2 commands current 2"], - downstream: ["project2 commands downstream 1", "project2 commands downstream 2", "project2 commands downstream 3"], - }, - after: { - upstream: ["project2 after upstream 1"], - current: ["project2 after current 1", "project2 after current 2"], - downstream: ["project2 after downstream 1", "project2 after downstream 2", "project2 after downstream 3"], - }, - }, { - ...defaultNodeValue, - project: "project3", - before: { - upstream: [], - current: ["project3 before current 1"], - downstream: [], - }, - commands: { - upstream: [], - current: ["project3 commands current 1", "project3 commands current 2"], - downstream: [], - }, - after: { - upstream: [], - current: ["project3 after current 1", "project3 after current 2", "project3 after current 3"], - downstream: [], - }, - }, { - ...defaultNodeValue, - project: "project4", - }, { - ...defaultNodeValue, - project: "project5", - before: { - upstream: [], - current: [], - downstream: [], - }, - commands: { - upstream: [], - current: [], - downstream: [], - }, - after: { - upstream: [], - current: [], - downstream: [], - }, - }, - ]; - - test("empty nodes", async () => { - // Arrange - const executionPhase: ExecutionPhase = ExecutionPhase.AFTER; - - const commandTreatmentDelegator = jest.mocked(CommandTreatmentDelegator.prototype, true); - const commandExecutorDelegator = jest.mocked(CommandExecutorDelegator.prototype, true); - const configurationService = new ConfigurationService(); - - const executeCommandService = new ExecuteCommandService(commandTreatmentDelegator, commandExecutorDelegator, configurationService); - - // Act - const result = await executeCommandService.executeChainCommands([], executionPhase); - - // Arrange - expect(result).toStrictEqual([]); - }); - - test.each([ - [ExecutionPhase.BEFORE, NodeExecutionLevel.UPSTREAM, false, undefined, [[{ command: "project1 before upstream 1" }], [{ command: "project2 before upstream 1" }], [{ command: "project3 before current 1" }]]], - [ExecutionPhase.BEFORE, NodeExecutionLevel.UPSTREAM, false, "whateverThePath", [[{ - command: "project1 before upstream 1", - cwd: "whateverThePath", - }], [{ command: "project2 before upstream 1", cwd: "whateverThePath" }], [{ - command: "project3 before current 1", - cwd: "whateverThePath", - }]]], - [ExecutionPhase.BEFORE, NodeExecutionLevel.CURRENT, false, undefined, [[{ command: "project1 before current 1" }, { command: "project1 before current 2" }], [{ command: "project2 before current 1" }, { command: "project2 before current 2" }], [{ command: "project3 before current 1" }]]], - [ExecutionPhase.BEFORE, NodeExecutionLevel.DOWNSTREAM, false, undefined, [[{ command: "project1 before downstream 1" }, { command: "project1 before downstream 2" }, { command: "project1 before downstream 3" }], [{ command: "project2 before downstream 1" }, { command: "project2 before downstream 2" }, { command: "project2 before downstream 3" }], [{ command: "project3 before current 1" }]]], - [ExecutionPhase.CURRENT, NodeExecutionLevel.UPSTREAM, false, undefined, [[{ command: "project1 commands upstream 1" }], [{ command: "project2 commands upstream 1" }], [{ command: "project3 commands current 1" }, { command: "project3 commands current 2" }]]], - [ExecutionPhase.CURRENT, NodeExecutionLevel.CURRENT, false, undefined, [[{ command: "project1 commands current 1" }, { command: "project1 commands current 2" }], [{ command: "project1 commands current 1" }, { command: "project1 commands current 2" }], [{ command: "project3 commands current 1" }, { command: "project3 commands current 2" }]]], - [ExecutionPhase.CURRENT, NodeExecutionLevel.DOWNSTREAM, false, undefined, [[{ command: "project1 commands downstream 1" }, { command: "project1 commands downstream 2" }, { command: "project1 commands downstream 3" }], [{ command: "project2 commands downstream 1" }, { command: "project2 commands downstream 2" }, { command: "project2 commands downstream 3" }], [{ command: "project3 commands current 1" }, { command: "project3 commands current 2" }]]], - [ExecutionPhase.AFTER, NodeExecutionLevel.UPSTREAM, false, undefined, [[{ command: "project1 after upstream 1" }], [{ command: "project2 after upstream 1" }], [{ command: "project3 after current 1" }, { command: "project3 after current 2" }, { command: "project3 after current 3" }]]], - [ExecutionPhase.AFTER, NodeExecutionLevel.CURRENT, false, undefined, [[{ command: "project1 after current 1" }, { command: "project1 after current 2" }], [{ command: "project2 after current 1" }, { command: "project2 after current 2" }], [{ command: "project3 after current 1" }, { command: "project3 after current 2" }, { command: "project3 after current 3" }]]], - [ExecutionPhase.AFTER, NodeExecutionLevel.DOWNSTREAM, false, undefined, [[{ command: "project1 after downstream 1" }, { command: "project1 after downstream 2" }, { command: "project1 after downstream 3" }], [{ command: "project2 after downstream 1" }, { command: "project2 after downstream 2" }, { command: "project2 after downstream 3" }], [{ command: "project3 after current 1" }, { command: "project3 after current 2" }, { command: "project3 after current 3" }]]], - [ExecutionPhase.AFTER, NodeExecutionLevel.DOWNSTREAM, false, undefined, [[{ command: "project1 after downstream 1" }, { command: "project1 after downstream 2" }, { command: "project1 after downstream 3" }], [{ command: "project2 after downstream 1" }, { command: "project2 after downstream 2" }, { command: "project2 after downstream 3" }], [{ command: "project3 after current 1" }, { command: "project3 after current 2" }, { command: "project3 after current 3" }]]], - ])("nodes. %p %p skipExecution %p", async (executionPhase: ExecutionPhase, nodeExecutionLevel: NodeExecutionLevel, skipExecution: boolean, cwd: string | undefined, expectedCalls: ({ command: string, cwd?: string })[][]) => { - // Arrange - const commandTreatmentDelegator = jest.mocked(CommandTreatmentDelegator.prototype, true); - const commandExecutorDelegator = jest.mocked(CommandExecutorDelegator.prototype, true); - const configurationService = jest.mocked(ConfigurationService.prototype, true); - (CommandExecutorDelegator.prototype.executeCommand as jest.Mocked).mockResolvedValue({ - startingDate: 1, - endingDate: 2, - time: 3, - result: ExecutionResult.OK, - command: "commandx", - }); - (ConfigurationService.prototype.getNodeExecutionLevel as jest.Mocked).mockReturnValue(nodeExecutionLevel); - (ConfigurationService.prototype.getNodeExecutionLevel as jest.Mocked).mockReturnValue(nodeExecutionLevel); - (ConfigurationService.prototype.skipExecution as jest.Mocked).mockReturnValue(skipExecution); - - const expectedNumberOfCalls = skipExecution ? 0 : expectedCalls.reduce((length: number, calls: ({ command: string, cwd?: string })[]) => length + calls.length, 0); - - const executeCommandService = new ExecuteCommandService(commandTreatmentDelegator, commandExecutorDelegator, configurationService); - - // Act - const result = await executeCommandService.executeChainCommands(nodes.map(node => ({node, cwd})), executionPhase); - - // Assert - expect(commandExecutorDelegator.executeCommand).toHaveBeenCalledTimes(expectedNumberOfCalls); - expect(commandTreatmentDelegator.treatCommand).toHaveBeenCalledTimes(expectedNumberOfCalls); - if (!skipExecution) { - expectedCalls.forEach(node => node.forEach(call => expect(commandTreatmentDelegator.treatCommand).toHaveBeenCalledWith(call.command, undefined))); - expectedCalls.forEach(node => node.forEach(call => expect(commandExecutorDelegator.executeCommand).toHaveBeenCalledWith(undefined, call.cwd))); - } - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledTimes(2); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledWith(`No commands defined for project project4 and phase ${executionPhase}`); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledWith(`No commands defined for project project5 phase ${executionPhase} and level ${nodeExecutionLevel !== NodeExecutionLevel.CURRENT ? `${nodeExecutionLevel} or ${NodeExecutionLevel.CURRENT}` : NodeExecutionLevel.CURRENT}`); - - const expectedResult = nodes.map((node, index) => ({ - node, executeCommandResults: expectedCalls[index] ? skipExecution ? expectedCalls[index].map(ec => ({ - startingDate: expect.any(Number), - endingDate: expect.any(Number), - result: ExecutionResult.SKIP, - command: ec.command, - })) : expectedCalls[index].map(() => ({ - startingDate: 1, - endingDate: 2, - time: 3, - result: ExecutionResult.OK, - command: "commandx", - })) : [], - })); - expect(result.map(r => r.executeCommandResults)).toStrictEqual(expectedResult.map(r => r.executeCommandResults)); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/command/executor/bash-executor.test.ts b/test/unitary/service/command/executor/bash-executor.test.ts deleted file mode 100644 index 969a7e2b..00000000 --- a/test/unitary/service/command/executor/bash-executor.test.ts +++ /dev/null @@ -1,34 +0,0 @@ -import "reflect-metadata"; -import { BashExecutor } from "@bc/service/command/executor/bash-executor"; -import { Container } from "typedi"; -import * as exec from "@actions/exec"; -jest.mock("@actions/exec"); - -describe("Bash Executor", () => { - test("ok. cwd", async () => { - // Arrange - const bashExecutor = Container.get(BashExecutor); - (exec as jest.Mocked).exec.mockResolvedValueOnce(Promise.resolve(0)); - - // Act - await bashExecutor.execute("command x", "whateverthepath"); - - // Arrange - expect(exec.exec).toHaveBeenCalledTimes(1); - expect(exec.exec).toHaveBeenCalledWith("command x", [], { cwd: "whateverthepath" }); - }); - - test("ok. no cwd", async () => { - // Arrange - const bashExecutor = Container.get(BashExecutor); - (exec as jest.Mocked).exec.mockResolvedValueOnce(Promise.resolve(0)); - - // Act - await bashExecutor.execute("command x"); - - // Arrange - expect(exec.exec).toHaveBeenCalledTimes(1); - expect(exec.exec).toHaveBeenCalledWith("command x", [], { cwd: undefined }); - }); -}); - diff --git a/test/unitary/service/command/executor/command-executor-delegator.test.ts b/test/unitary/service/command/executor/command-executor-delegator.test.ts deleted file mode 100644 index 2e78d00f..00000000 --- a/test/unitary/service/command/executor/command-executor-delegator.test.ts +++ /dev/null @@ -1,221 +0,0 @@ -import "reflect-metadata"; -import { CommandExecutorDelegator } from "@bc/service/command/executor/command-executor-delegator"; -import { BashExecutor } from "@bc/service/command/executor/bash-executor"; -import { ExportExecutor } from "@bc/service/command/executor/export-executor"; -import { ExecutionResult } from "@bc/domain/execute-command-result"; -import { hrtimeToMs } from "@bc/utils/date"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; - -jest.mock("@bc/service/logger/base-logger-service"); -jest.mock("@bc/utils/date"); - -describe("constructor", () => { - // entry point for logging doesn't make a difference - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - - test("ok", () => { - // Arrange - const bashExecutor = jest.mocked(BashExecutor.prototype, true); - const exportExecutor = jest.mocked(ExportExecutor.prototype, true); - - // Act - const commandExecutorDelegator = new CommandExecutorDelegator(bashExecutor, exportExecutor); - - // Assert - expect(commandExecutorDelegator["_bashExecutor"]).toBe(bashExecutor); - expect(commandExecutorDelegator["_exportExecutor"]).toBe(exportExecutor); - }); -}); - -describe("isExport", () => { - test("OK without cwd", async () => { - // Arrange - const command = "export VARIABLE=VALUE"; - - const bashExecutor = jest.mocked(BashExecutor.prototype, true); - const exportExecutor = jest.mocked(ExportExecutor.prototype, true); - const commandExecutorDelegator = new CommandExecutorDelegator(bashExecutor, exportExecutor); - - jest.spyOn(bashExecutor, "execute").mockResolvedValueOnce(); - jest.spyOn(exportExecutor, "execute").mockResolvedValueOnce(); - - (hrtimeToMs as jest.Mocked).mockReturnValue(1000); - - // Act - const result = await commandExecutorDelegator.executeCommand(command); - - // Assert - expect(result).toStrictEqual({ - command: "export VARIABLE=VALUE", - result: ExecutionResult.OK, - startingDate: expect.any(Number), - endingDate: expect.any(Number), - errorMessage: "", - time: 1000, - }); - expect(bashExecutor.execute).toHaveBeenCalledTimes(0); - expect(exportExecutor.execute).toHaveBeenCalledTimes(1); - expect(exportExecutor.execute).toHaveBeenCalledWith(command, undefined); - }); - - test("OK with cwd", async () => { - // Arrange - const command = "export VARIABLE=VALUE"; - const cwd = "path"; - - const bashExecutor = jest.mocked(BashExecutor.prototype, true); - const exportExecutor = jest.mocked(ExportExecutor.prototype, true); - const commandExecutorDelegator = new CommandExecutorDelegator(bashExecutor, exportExecutor); - - jest.spyOn(bashExecutor, "execute").mockResolvedValueOnce(); - jest.spyOn(exportExecutor, "execute").mockResolvedValueOnce(); - - (hrtimeToMs as jest.Mocked).mockReturnValue(2000); - - // Act - const result = await commandExecutorDelegator.executeCommand(command, cwd); - - // Assert - expect(result).toStrictEqual({ - command: "export VARIABLE=VALUE", - result: ExecutionResult.OK, - startingDate: expect.any(Number), - endingDate: expect.any(Number), - errorMessage: "", - time: 2000, - }); - expect(bashExecutor.execute).toHaveBeenCalledTimes(0); - expect(exportExecutor.execute).toHaveBeenCalledTimes(1); - expect(exportExecutor.execute).toHaveBeenCalledWith(command, cwd); - }); - - test("Error", async () => { - // Arrange - const command = "export VARIABLE=VALUE"; - const errorMessage = "whatever the error message"; - const bashExecutor = jest.mocked(BashExecutor.prototype, true); - - const exportExecutor = jest.mocked(ExportExecutor.prototype, true); - const commandExecutorDelegator = new CommandExecutorDelegator(bashExecutor, exportExecutor); - jest.spyOn(bashExecutor, "execute").mockResolvedValueOnce(); - jest.spyOn(exportExecutor, "execute").mockRejectedValue(new Error(errorMessage)); - - (hrtimeToMs as jest.Mocked).mockReturnValue(1000); - - // Act - const result = await commandExecutorDelegator.executeCommand(command); - - // Assert - expect(result).toStrictEqual({ - command: "export VARIABLE=VALUE", - errorMessage: "whatever the error message", - result: ExecutionResult.NOT_OK, - startingDate: expect.any(Number), - endingDate: expect.any(Number), - time: 1000 - }); - expect(bashExecutor.execute).toHaveBeenCalledTimes(0); - expect(exportExecutor.execute).toHaveBeenCalledTimes(1); - expect(exportExecutor.execute).toHaveBeenCalledWith(command, undefined); - expect(BaseLoggerService.prototype.error).toHaveBeenCalledTimes(1); - expect(BaseLoggerService.prototype.error).toHaveBeenCalledWith(`Error executing command ${command}. ${errorMessage}`); - }); -}); - -describe("not export command", () => { - test("OK without cwd", async () => { - // Arrange - const command = "whatever the command"; - - const bashExecutor = jest.mocked(BashExecutor.prototype, true); - const exportExecutor = jest.mocked(ExportExecutor.prototype, true); - const commandExecutorDelegator = new CommandExecutorDelegator(bashExecutor, exportExecutor); - - jest.spyOn(bashExecutor, "execute").mockResolvedValueOnce(); - jest.spyOn(exportExecutor, "execute").mockResolvedValueOnce(); - - (hrtimeToMs as jest.Mocked).mockReturnValue(1000); - - // Act - const result = await commandExecutorDelegator.executeCommand(command); - - // Assert - expect(result).toStrictEqual({ - command: "whatever the command", - result: ExecutionResult.OK, - startingDate: expect.any(Number), - time: 1000, - endingDate: expect.any(Number), - errorMessage: "", - }); - expect(bashExecutor.execute).toHaveBeenCalledTimes(1); - expect(exportExecutor.execute).toHaveBeenCalledTimes(0); - expect(bashExecutor.execute).toHaveBeenCalledWith(command, undefined); - }); - - test("OK with cwd", async () => { - // Arrange - const command = "whatever the command"; - const cwd = "path"; - - const bashExecutor = jest.mocked(BashExecutor.prototype, true); - const exportExecutor = jest.mocked(ExportExecutor.prototype, true); - const commandExecutorDelegator = new CommandExecutorDelegator(bashExecutor, exportExecutor); - - jest.spyOn(bashExecutor, "execute").mockResolvedValueOnce(); - jest.spyOn(exportExecutor, "execute").mockResolvedValueOnce(); - - (hrtimeToMs as jest.Mocked).mockReturnValue(1000); - - // Act - const result = await commandExecutorDelegator.executeCommand(command, cwd); - - // Assert - expect(result).toStrictEqual({ - command: "whatever the command", - result: ExecutionResult.OK, - startingDate: expect.any(Number), - time: 1000, - endingDate: expect.any(Number), - errorMessage: "", - }); - expect(bashExecutor.execute).toHaveBeenCalledTimes(1); - expect(exportExecutor.execute).toHaveBeenCalledTimes(0); - expect(bashExecutor.execute).toHaveBeenCalledWith(command, cwd); - }); - - test("Error", async () => { - // Arrange - const command = "whatever the command"; - const errorMessage = "whatever the error message"; - const bashExecutor = jest.mocked(BashExecutor.prototype, true); - - const exportExecutor = jest.mocked(ExportExecutor.prototype, true); - const commandExecutorDelegator = new CommandExecutorDelegator(bashExecutor, exportExecutor); - jest.spyOn(bashExecutor, "execute").mockRejectedValue(new Error(errorMessage)); - jest.spyOn(exportExecutor, "execute").mockResolvedValueOnce(); - - (hrtimeToMs as jest.Mocked).mockReturnValue(1000); - - // Act - const result = await commandExecutorDelegator.executeCommand(command); - - // Assert - expect(result).toStrictEqual({ - command: "whatever the command", - errorMessage: "whatever the error message", - result: ExecutionResult.NOT_OK, - startingDate: expect.any(Number), - time: 1000, - endingDate: expect.any(Number), - }); - expect(bashExecutor.execute).toHaveBeenCalledTimes(1); - expect(exportExecutor.execute).toHaveBeenCalledTimes(0); - expect(bashExecutor.execute).toHaveBeenCalledWith(command, undefined); - expect(BaseLoggerService.prototype.error).toHaveBeenCalledTimes(1); - expect(BaseLoggerService.prototype.error).toHaveBeenCalledWith(`Error executing command ${command}. ${errorMessage}`); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/command/executor/export-executor.test.ts b/test/unitary/service/command/executor/export-executor.test.ts deleted file mode 100644 index 061c2292..00000000 --- a/test/unitary/service/command/executor/export-executor.test.ts +++ /dev/null @@ -1,118 +0,0 @@ -import "reflect-metadata"; -import { Container } from "typedi"; -import * as exec from "@actions/exec"; -import { ExportExecutor } from "@bc/service/command/executor/export-executor"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { InputService } from "@bc/service/inputs/input-service"; -import { defaultInputValues, LoggerLevel } from "@bc/domain/inputs"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; - -jest.mock("@actions/exec"); -jest.mock("@bc/service/logger/base-logger-service"); - -describe("Export Command Executor", () => { - beforeEach(() => { - // entry point for logging doesn't make a difference - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - jest.spyOn(InputService.prototype, "inputs", "get").mockReturnValueOnce({...defaultInputValues, loggerLevel: LoggerLevel.DEBUG}); - }); - - test("no export command", async () => { - // Arrange - const exportCommandExecutor = Container.get(ExportExecutor); - - // Act - try { - await exportCommandExecutor.execute("command x", "whateverthepath"); - expect(true).toBe(false); - } catch (ex: unknown) { - expect((ex as Error).message).toBe("The export command command x is not properly defined. It should be something like \"export VARIBLE=expression\". Please fix it an try again."); - } - - // Arrange - expect(exec.exec).toHaveBeenCalledTimes(0); - expect(BaseLoggerService.prototype.error).toHaveBeenCalledTimes(1); - expect(BaseLoggerService.prototype.error).toHaveBeenCalledWith("The export command command x is not properly defined. It should be something like \"export VARIBLE=expression\". Please fix it an try again."); - }); - - test("simple export command", async () => { - // Arrange - const exportCommandExecutor = Container.get(ExportExecutor); - (exec as jest.Mocked).exec.mockResolvedValueOnce(Promise.resolve(0)); - - // Act - await exportCommandExecutor.execute("export VARIABLE1=newvalue", "whateverthepath"); - - // Arrange - expect(exec.exec).toHaveBeenCalledTimes(0); - expect(BaseLoggerService.prototype.warn).toHaveBeenCalledTimes(0); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledTimes(1); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledWith("The variable `VARIABLE1` has been set to the env with the value `newvalue`"); - expect(process.env["VARIABLE1"]).toBe("newvalue"); - }); - - test("simple export command with quotes", async () => { - // Arrange - const exportCommandExecutor = Container.get(ExportExecutor); - (exec as jest.Mocked).exec.mockResolvedValueOnce(Promise.resolve(0)); - - // Act - await exportCommandExecutor.execute("export VARIABLE2=\"VALUE1 VALUE 2\"", "whateverthepath"); - - // Arrange - expect(exec.exec).toHaveBeenCalledTimes(0); - expect(BaseLoggerService.prototype.warn).toHaveBeenCalledTimes(0); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledTimes(1); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledWith("The variable `VARIABLE2` has been set to the env with the value `VALUE1 VALUE 2`"); - expect(process.env["VARIABLE2"]).toBe("VALUE1 VALUE 2"); - }); - - test("simple export command with simple quotes", async () => { - // Arrange - const exportCommandExecutor = Container.get(ExportExecutor); - (exec as jest.Mocked).exec.mockResolvedValueOnce(Promise.resolve(0)); - - // Act - await exportCommandExecutor.execute("export VARIABLE3='VALUE1 VALUE 2'", "whateverthepath"); - - // Arrange - expect(exec.exec).toHaveBeenCalledTimes(0); - expect(BaseLoggerService.prototype.warn).toHaveBeenCalledTimes(0); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledTimes(1); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledWith("The variable `VARIABLE3` has been set to the env with the value `VALUE1 VALUE 2`"); - expect(process.env["VARIABLE3"]).toBe("VALUE1 VALUE 2"); - }); - - test("export command", async () => { - // Arrange - const exportCommandExecutor = Container.get(ExportExecutor); - (exec as jest.Mocked).exec.mockResolvedValueOnce(Promise.resolve(0)); - - // Act - await exportCommandExecutor.execute("export VARIABLE4=`whateverthecommand`", "whateverthepath"); - - // Arrange - expect(exec.exec).toHaveBeenCalledTimes(1); - expect(exec.exec).toHaveBeenCalledWith("whateverthecommand", [], { - "cwd": "whateverthepath", - "listeners": { "stdout": expect.anything() }, - }, - ); - expect(BaseLoggerService.prototype.warn).toHaveBeenCalledTimes(0); - }); - - test("no export command", async () => { - // Arrange - const exportCommandExecutor = Container.get(ExportExecutor); - - // Act - try { - await exportCommandExecutor.execute("whatever the command", "whateverthepath"); - expect(false).toBe(true); - } catch (ex: unknown) { - expect((ex as Error).message).toBe("The export command whatever the command is not properly defined. It should be something like \"export VARIBLE=expression\". Please fix it an try again."); - } - }); -}); - diff --git a/test/unitary/service/command/treatment/command-builder.test.ts b/test/unitary/service/command/treatment/command-builder.test.ts deleted file mode 100644 index 60a65375..00000000 --- a/test/unitary/service/command/treatment/command-builder.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { CommandBuilder } from "@bc/service/command/treatment/command-builder"; -import { EnvironmentCommandTreatment } from "@bc/service/command/treatment/environment-command-treatment"; - -describe("CommandBuilder", () => { - test("single treat", () => { - // Arrange - const environmentCommandTreatment = new EnvironmentCommandTreatment(); - const options = {}; - jest.spyOn(environmentCommandTreatment, "treat").mockReturnValueOnce("treated1"); - - // Act - const result = new CommandBuilder("commandx", options).treat(environmentCommandTreatment).build(); - - // Assert - expect(result).toBe("treated1"); - expect(environmentCommandTreatment.treat).toHaveBeenCalledTimes(1); - expect(environmentCommandTreatment.treat).toHaveBeenCalledWith("commandx", options); - }); - - test("multiple treat", () => { - // Arrange - const environmentCommandTreatment = new EnvironmentCommandTreatment(); - const options = { replaceExpressions: ["1", "2"] }; - jest.spyOn(environmentCommandTreatment, "treat").mockReturnValueOnce("treated1").mockReturnValueOnce("treated2").mockReturnValueOnce("treated3"); - - // Act - const result = new CommandBuilder("commandx", options).treat(environmentCommandTreatment).treat(environmentCommandTreatment).treat(environmentCommandTreatment).build(); - - // Assert - expect(result).toBe("treated3"); - expect(environmentCommandTreatment.treat).toHaveBeenCalledTimes(3); - expect(environmentCommandTreatment.treat).toHaveBeenCalledWith("commandx", options); - expect(environmentCommandTreatment.treat).toHaveBeenCalledWith("treated1", options); - expect(environmentCommandTreatment.treat).toHaveBeenCalledWith("treated2", options); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/command/treatment/command-treatment-delegator.test.ts b/test/unitary/service/command/treatment/command-treatment-delegator.test.ts deleted file mode 100644 index 0231cc19..00000000 --- a/test/unitary/service/command/treatment/command-treatment-delegator.test.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommandTreatmentDelegator } from "@bc/service/command/treatment/command-treatment-delegator"; -import { EnvironmentCommandTreatment } from "@bc/service/command/treatment/environment-command-treatment"; -import { MavenCommandTreatment } from "@bc/service/command/treatment/maven-command-treatment"; -import { RegexCommandTreatment } from "@bc/service/command/treatment/regex-command-treatment"; -import { CommandBuilder } from "@bc/service/command/treatment/command-builder"; - -jest.mock("@bc/service/command/treatment/environment-command-treatment"); -jest.mock("@bc/service/command/treatment/maven-command-treatment"); -jest.mock("@bc/service/command/treatment/regex-command-treatment"); -jest.mock("@bc/service/command/treatment/command-builder"); - -describe("CommandTreatmentDelegator", () => { - test("treatCommand", () => { - // Arrange - const environmentCommandTreatment = new EnvironmentCommandTreatment(); - const mavenCommandTreatment = new MavenCommandTreatment(); - const regexCommandTreatment = new RegexCommandTreatment(); - - (CommandBuilder.prototype.treat as jest.Mocked).mockReturnValue(CommandBuilder.prototype); - (CommandBuilder.prototype.build as jest.Mocked).mockReturnValue("treated"); - - // Act - const result = new CommandTreatmentDelegator(environmentCommandTreatment, mavenCommandTreatment, regexCommandTreatment).treatCommand("commandx", {}); - - // Assert - expect(CommandBuilder.prototype.treat).toHaveBeenCalledTimes(3); - expect(CommandBuilder.prototype.treat).toHaveBeenCalledWith(environmentCommandTreatment); - expect(CommandBuilder.prototype.treat).toHaveBeenCalledWith(mavenCommandTreatment); - expect(CommandBuilder.prototype.treat).toHaveBeenCalledWith(regexCommandTreatment); - expect(result).toBe("treated"); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/command/treatment/environment-command-treatment.test.ts b/test/unitary/service/command/treatment/environment-command-treatment.test.ts deleted file mode 100644 index 388ec8a5..00000000 --- a/test/unitary/service/command/treatment/environment-command-treatment.test.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { EnvironmentCommandTreatment } from "@bc/service/command/treatment/environment-command-treatment"; - -describe("EnvironmentCommandTreatment", () => { - test.each([ - ["Existing variable", "command x ${{ env.VARIABLE_1 }}", (): void => { - process.env.VARIABLE_1 = "VARIABLE_1_VALUE"; - }, "command x VARIABLE_1_VALUE"], - ["treat multiples variables variable", "command x ${{ env.VARIABLE_1 }} ${{ env.VARIABLE_1 }} ${{ env.VARIABLE_2 }} ${{ env.VARIABLE_3 }} ${{ env.VARIABLE_4 }}", (): void => { - process.env.VARIABLE_1 = "VARIABLE_1_VALUE"; - process.env.VARIABLE_2 = "VARIABLE_2_VALUE"; - process.env.VARIABLE_3 = "VARIABLE_3_VALUE"; - process.env.VARIABLE_4 = "VARIABLE_4_VALUE"; - }, "command x VARIABLE_1_VALUE VARIABLE_1_VALUE VARIABLE_2_VALUE VARIABLE_3_VALUE VARIABLE_4_VALUE"], - ["treat not existing variable", "command x ${{ env.VARIABLE_NOT_DEFINED }}", (): void => { - process.env.VARIABLE_1 = "VARIABLE_1_VALUE"; - }, "command x "], - ["no env variables on the command", "command x", (): void => { - process.env.VARIABLE_1 = "VARIABLE_1_VALUE"; - }, "command x"], - ["export command", "export VARIABLE_NAME=value", (): void => { - process.env.VARIABLE_NAME = "VARIABLE_VALUE"; - }, "export VARIABLE_NAME=value"], - ])("%p", (title: string, command: string, arrangeEnvVariables: () => void, expected: string) => { - // Arrange - arrangeEnvVariables(); - - // Act - const result = new EnvironmentCommandTreatment().treat(command, {}); - - // Assert - expect(result).toBe(expected); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/command/treatment/maven-command-treatment.test.ts b/test/unitary/service/command/treatment/maven-command-treatment.test.ts deleted file mode 100644 index 95f236aa..00000000 --- a/test/unitary/service/command/treatment/maven-command-treatment.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { MavenCommandTreatment } from "@bc/service/command/treatment/maven-command-treatment"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; - -describe("MavenCommandTreatment", () => { - test.each([ - ["maven simple command", "mvn install", {}, "mvn install -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B"], - ["maven simple command. Not specifying Maven binary", "maven install", {}, "maven install"], - ["maven simple command. Different Maven binary", "maven install", { mavenBinary: "maven" }, "maven install -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B"], - ["no maven command", "npm test", {}, "npm test"], - ["maven command from path", "/home/software/maven/bin/mvn clean", {}, "/home/software/maven/bin/mvn clean -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B"], - ])("%p", (title: string, command: string, options: TreatmentOptions, expected: string) => { - // Act - const result = new MavenCommandTreatment().treat(command, options); - - // Assert - expect(result).toBe(expected); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/command/treatment/regex-command-treatment.test.ts b/test/unitary/service/command/treatment/regex-command-treatment.test.ts deleted file mode 100644 index f28d1402..00000000 --- a/test/unitary/service/command/treatment/regex-command-treatment.test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import "reflect-metadata"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; -import { RegexCommandTreatment } from "@bc/service/command/treatment/regex-command-treatment"; -import { Container } from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { InputService } from "@bc/service/inputs/input-service"; -import { defaultInputValues, LoggerLevel } from "@bc/domain/inputs"; - -jest.mock("@bc/service/logger/base-logger-service"); - -describe("RegexCommandTreatment", () => { - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - - test.each([ - ["ok", "mvn clean install", { replaceExpressions: ["(mvn .*)||$1 -s settings.xml"] }, "mvn clean install -s settings.xml", 2], - ["ok. Two regex groups", "mvn clean install", { replaceExpressions: ["(mvn)(.*)||$1 -s settings.xml"] }, "mvn -s settings.xml", 2], - ["ok. Multiple replacements", "mvn clean install", { replaceExpressions: ["(mvn .*)||$1 -s settings.xml", "(.*)(settings.xml)||$1filesettings.yml"] }, "mvn clean install -s filesettings.yml", 2], - ["ok. Real Command", "mvn clean install -DskipTests -Dmaven.wagon.httpconnectionManager.ttlSeconds=25 -Dmaven.wagon.http.retryHandler.count=3 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B", { replaceExpressions: ["(^mvn .*)||$1 -s /home/emingora/.m2/settings.xml"] }, "mvn clean install -DskipTests -Dmaven.wagon.httpconnectionManager.ttlSeconds=25 -Dmaven.wagon.http.retryHandler.count=3 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B -s /home/emingora/.m2/settings.xml", 2], - ["ok. Regex with / /", "mvn clean install", { replaceExpressions: ["/(mvn .*)/||$1 -s settings.xml"] }, "mvn clean install -s settings.xml", 2], - ["ok. Regex with / /i", "mvn clean install", { replaceExpressions: ["/(mvn .*)/i||$1 -s settings.xml"] }, "mvn clean install -s settings.xml", 2], - ["No replacement. Regex not matching", "maven clean install", { replaceExpressions: ["/(mvn .*)/i||$1 -s settings.xml"] }, "maven clean install", 2], - ["No replacement. No replacement expression", "mvn clean install", {}, "mvn clean install", 0], - ])("%p", (title: string, command: string, options: TreatmentOptions, expected: string, times: number) => { - jest.spyOn(InputService.prototype, "inputs", "get").mockReturnValueOnce({...defaultInputValues, loggerLevel: LoggerLevel.DEBUG}); - - // Act - const result = new RegexCommandTreatment().treat(command, options); - - // Assert - expect(result).toBe(expected); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledTimes(times); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/config/action-configuration.test.ts b/test/unitary/service/config/action-configuration.test.ts deleted file mode 100644 index bcf5541a..00000000 --- a/test/unitary/service/config/action-configuration.test.ts +++ /dev/null @@ -1,238 +0,0 @@ -import "reflect-metadata"; -import { ActionConfiguration } from "@bc/service/config/action-configuration"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { readFile } from "node:fs/promises"; -import { defaultInputValues, FlowType } from "@bc/domain/inputs"; -import { InputService } from "@bc/service/inputs/input-service"; -import { MockGithub } from "@kie/mock-github"; -import { EventData } from "@bc/domain/configuration"; -jest.mock("node:fs/promises"); -jest.mock("@kie/build-chain-configuration-reader"); - -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); -let actionConfig = new ActionConfiguration(); -const readFileMock = readFile as jest.Mock; -const event = { - html_url: "https://github.com/pulls/270", - head: { - ref: "feature", - repo: { - full_name: "owner/project", - name: "project", - owner: { - login: "owner", - }, - }, - }, - base: { - ref: "main", - repo: { - full_name: "owner/project", - name: "project", - owner: { - login: "owner", - }, - }, - }, -}; - -// disable logs -jest.spyOn(global.console, "log"); - -beforeEach(async () => { - actionConfig = new ActionConfiguration(); -}); - -describe("load event data", () => { - test("success: non branch flow", async () => { - jest.spyOn(actionConfig, "parsedInputs", "get").mockImplementation(() => { - return { ...defaultInputValues, flowType: FlowType.CROSS_PULL_REQUEST }; - }); - const mockGithub = new MockGithub({ - env: { - event_path: "path", - }, - }); - await mockGithub.setup(); - readFileMock.mockResolvedValueOnce(JSON.stringify({ pull_request: event })); - const eventData = await actionConfig.loadGitEvent(); - expect(eventData).toStrictEqual(event); - }); - - test("success: branch flow", async () => { - jest.spyOn(actionConfig, "parsedInputs", "get").mockImplementation(() => { - return { ...defaultInputValues, flowType: FlowType.BRANCH }; - }); - const eventData = await actionConfig.loadGitEvent(); - expect(eventData).toStrictEqual({}); - }); - - test("failure", async () => { - delete process.env["GITHUB_EVENT_PATH"]; - await expect(actionConfig.loadGitEvent()).rejects.toThrowError(); - }); -}); - -describe("load git config", () => { - const token = "fakenotenvtoken"; - const env = { - action: "pull_request", - actor: "actor", - author: "author", - job: "job", - workflow: "workflow", - ref: "main", - server_url: "https://git.ca/", - token: "token", - repository: "owner/project", - workspace: "current", - }; - const mockGithub = new MockGithub({ - env, - }); - - beforeEach(async () => { - await mockGithub.setup(); - Container.set(constants.GITHUB.TOKEN, token); - }); - - afterEach(async () => { - await mockGithub.teardown(); - }); - - test("Without default github url", () => { - const config = actionConfig.loadGitConfiguration(); - const expectedData = { - action: env.action, - actor: env.actor, - author: env.author, - serverUrl: "https://git.ca", - serverUrlWithToken: `https://${token}@git.ca`, - jobId: env.job, - ref: env.ref, - workflow: env.workflow, - repository: env.repository, - }; - expect(config).toStrictEqual(expectedData); - }); - - test("With default github url", () => { - delete process.env["GITHUB_SERVER_URL"]; - const config = actionConfig.loadGitConfiguration(); - const expectedData = { - action: env.action, - actor: env.actor, - author: env.author, - serverUrl: "https://github.com", - serverUrlWithToken: `https://${token}@github.com`, - jobId: env.job, - ref: env.ref, - workflow: env.workflow, - repository: env.repository, - }; - expect(config).toStrictEqual(expectedData); - }); -}); - -describe("load source and target project", () => { - test("non branch flow", async () => { - jest.spyOn(actionConfig, "parsedInputs", "get").mockImplementation(() => { - return { ...defaultInputValues, flowType: FlowType.CROSS_PULL_REQUEST }; - }); - jest - .spyOn(actionConfig, "gitEventData", "get") - .mockImplementation(() => event as EventData); - const { source, target } = actionConfig.loadProject(); - const expectedSource = { - branch: event.head.ref, - repository: event.head.repo.full_name, - name: event.head.repo.name, - group: event.head.repo.owner.login, - }; - - const expectedTarget = { - branch: event.base.ref, - repository: event.base.repo.full_name, - name: event.base.repo.name, - group: event.base.repo.owner.login, - }; - - expect(source).toStrictEqual(expectedSource); - expect(target).toStrictEqual(expectedTarget); - }); - - test("branch flow", async () => { - jest.spyOn(actionConfig, "parsedInputs", "get").mockImplementation(() => { - return { ...defaultInputValues, flowType: FlowType.BRANCH }; - }); - jest - .spyOn(actionConfig, "gitConfiguration", "get") - .mockImplementation(() => { - return { - ref: "main", - repository: "owner/project", - }; - }); - const { source, target } = actionConfig.loadProject(); - const expectedConfig = { - branch: "main", - repository: "owner/project", - name: "project", - group: "owner", - }; - expect(source).toStrictEqual(expectedConfig); - expect(target).toStrictEqual(expectedConfig); - }); -}); - -describe("load token", () => { - test("success", async () => { - const mockGithub = new MockGithub({ - env: { - token: "token", - }, - }); - await mockGithub.setup(); - actionConfig.loadToken(); - expect(Container.get(constants.GITHUB.TOKEN)).toBe("token"); - await mockGithub.teardown(); - }); - test("failure", () => { - delete process.env["GITHUB_TOKEN"]; - expect(() => actionConfig.loadToken()).toThrowError(); - }); -}); - -describe("load input", () => { - test("success: validated input", () => { - const input = { - ...defaultInputValues, - customCommandTreatment: ["abc||def", "xyz||pqr"], - startProject: "owner/project", - }; - jest - .spyOn(InputService.prototype, "inputs", "get") - .mockImplementation(() => input); - expect(actionConfig.loadParsedInput()).toStrictEqual(input); - }); - - test("success: no input to validate", () => { - jest - .spyOn(InputService.prototype, "inputs", "get") - .mockImplementation(() => defaultInputValues); - expect(actionConfig.loadParsedInput()).toStrictEqual(defaultInputValues); - }); - - test("failure: invalidate input", () => { - const input = { - ...defaultInputValues, - customCommandTreatment: ["abc||def", "xyz|pqr"], - }; - jest - .spyOn(InputService.prototype, "inputs", "get") - .mockImplementation(() => input); - expect(() => actionConfig.loadParsedInput()).toThrowError(); - }); -}); diff --git a/test/unitary/service/config/cli-configuration.test.ts b/test/unitary/service/config/cli-configuration.test.ts deleted file mode 100644 index a7d580cc..00000000 --- a/test/unitary/service/config/cli-configuration.test.ts +++ /dev/null @@ -1,343 +0,0 @@ -import "reflect-metadata"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { CLIConfiguration } from "@bc/service/config/cli-configuration"; -import { defaultInputValues, FlowType, InputValues } from "@bc/domain/inputs"; -import { InputService } from "@bc/service/inputs/input-service"; -import { MockGithub, Moctokit } from "@kie/mock-github"; -import { EventData } from "@bc/domain/configuration"; -jest.mock("@kie/build-chain-configuration-reader"); - -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); -let cliConfig = new CLIConfiguration(); -const event = { - html_url: "https://github.com/pulls/270", - head: { - ref: "feature", - repo: { - full_name: "owner/project", - name: "project", - owner: { - login: "owner", - }, - }, - }, - base: { - ref: "main", - repo: { - full_name: "owner/project", - name: "project", - owner: { - login: "owner", - }, - }, - }, -}; - -// disable logs -jest.spyOn(global.console, "log"); - -beforeEach(async () => { - cliConfig = new CLIConfiguration(); -}); - -describe("load event data", () => { - const moctokit = new Moctokit(); - let currentInput: InputValues = { - ...defaultInputValues, - url: "http://github.com/owner/project/pull/270", - }; - beforeEach(() => { - jest - .spyOn(cliConfig, "parsedInputs", "get") - .mockImplementation(() => currentInput); - }); - afterEach(() => { - currentInput = { - ...defaultInputValues, - url: "http://github.com/owner/project/pull/270", - }; - }); - test("success: non-branch flow build", async () => { - moctokit.rest.pulls - .get({ - owner: "owner", - repo: "project", - pull_number: 270, - }) - .reply({ - status: 200, - data: event, - }); - Container.set(constants.GITHUB.TOKEN, "faketoken"); - const eventData = await cliConfig.loadGitEvent(); - expect(eventData).toStrictEqual(event); - }); - - test("success: branch flow build", async () => { - currentInput = { ...defaultInputValues, CLISubCommand: FlowType.BRANCH }; - const eventData = await cliConfig.loadGitEvent(); - expect(eventData).toStrictEqual({}); - }); - - test("failure: no url defined", async () => { - delete currentInput["url"]; - await expect(cliConfig.loadGitEvent()).rejects.toThrowError(); - }); - - test("failure: invalid url (caught by regex)", async () => { - currentInput["url"] = "https://git.com/"; - await expect(cliConfig.loadGitEvent()).rejects.toThrowError(); - }); - - test("failure: invalid url (passes regex)", async () => { - moctokit.rest.pulls.get().reply({ status: 404, data: {} }); - await expect(cliConfig.loadGitEvent()).rejects.toThrowError(); - }); -}); - -describe("load git config branch flow", () => { - const token = "fakenotenvtoken"; - let currentInput: InputValues = { - ...defaultInputValues, - CLISubCommand: FlowType.BRANCH, - group: "group", - branch: "main", - }; - const mockGithub = new MockGithub({ - env: { - action: "pull_request", - actor: "actor", - author: "author", - job: "job", - workflow: "workflow", - ref: "main", - server_url: "https://git.ca/", - token: "token", - repository: "owner/project", - workspace: "current", - }, - }); - beforeEach(async () => { - await mockGithub.setup(); - jest - .spyOn(cliConfig, "parsedInputs", "get") - .mockImplementation(() => currentInput); - Container.set(constants.GITHUB.TOKEN, token); - }); - - afterEach(async () => { - await mockGithub.teardown(); - currentInput = { - ...defaultInputValues, - CLISubCommand: FlowType.BRANCH, - group: "group", - branch: "main", - }; - }); - - test("success: without default github url", async () => { - const config = cliConfig.loadGitConfiguration(); - const expectedData = { - actor: "group", - serverUrl: "https://git.ca", - serverUrlWithToken: `https://${token}@git.ca`, - ref: "main", - }; - expect(config).toStrictEqual(expectedData); - }); - - test("success: with default github url", async () => { - delete process.env["GITHUB_SERVER_URL"]; - - const config = cliConfig.loadGitConfiguration(); - const expectedData = { - actor: "group", - serverUrl: "https://github.com", - serverUrlWithToken: `https://${token}@github.com`, - ref: "main", - }; - expect(config).toStrictEqual(expectedData); - }); - - test("failure: no group", async () => { - delete currentInput["group"]; - expect(cliConfig.loadGitConfiguration).toThrowError(); - }); -}); - -describe("load git config no branch flow", () => { - const token = "fakenotenvtoken"; - const mockGithub = new MockGithub({ - env: { - action: "pull_request", - actor: "actor", - author: "author", - job: "job", - workflow: "workflow", - ref: "main", - server_url: "https://git.ca/", - token: "token", - repository: "owner/project", - workspace: "current", - }, - }); - - beforeEach(async () => { - await mockGithub.setup(); - jest - .spyOn(cliConfig, "parsedInputs", "get") - .mockImplementation(() => defaultInputValues); - Container.set(constants.GITHUB.TOKEN, token); - }); - - afterEach(async () => { - await mockGithub.teardown(); - }); - - test("success: without default github url", async () => { - const config = cliConfig.loadGitConfiguration(); - const expectedData = { - serverUrl: "https://git.ca", - serverUrlWithToken: `https://${token}@git.ca`, - }; - expect(config).toStrictEqual(expectedData); - }); - - test("success: with default github url", async () => { - delete process.env["GITHUB_SERVER_URL"]; - - const config = cliConfig.loadGitConfiguration(); - const expectedData = { - serverUrl: "https://github.com", - serverUrlWithToken: `https://${token}@github.com`, - }; - expect(config).toStrictEqual(expectedData); - }); -}); - -describe("load source and target project", () => { - let currentInput: InputValues = { - ...defaultInputValues, - startProject: "owner/project", - group: "owner", - branch: "main", - url: "http://github.com/owner/project/pull/270", - }; - beforeEach(() => { - jest - .spyOn(cliConfig, "parsedInputs", "get") - .mockImplementation(() => currentInput); - }); - - afterEach(() => { - currentInput = { - ...defaultInputValues, - startProject: "owner/project", - group: "owner", - branch: "main", - url: "http://github.com/owner/project/pull/270", - }; - }); - - test("branch flow", () => { - currentInput["CLISubCommand"] = FlowType.BRANCH; - const expectedData = { - branch: "main", - name: "project", - group: "owner", - repository: "owner/project", - }; - const { source, target } = cliConfig.loadProject(); - expect(source).toStrictEqual(expectedData); - expect(target).toStrictEqual(expectedData); - }); - - test("Non branch flow", async () => { - jest - .spyOn(cliConfig, "gitEventData", "get") - .mockImplementation(() => event as EventData); - - const expectedSource = { - branch: event.head.ref, - repository: event.head.repo.full_name, - name: event.head.repo.name, - group: event.head.repo.owner.login, - }; - - const expectedTarget = { - branch: event.base.ref, - repository: event.base.repo.full_name, - name: event.base.repo.name, - group: event.base.repo.owner.login, - }; - const { source, target } = cliConfig.loadProject(); - expect(source).toStrictEqual(expectedSource); - expect(target).toStrictEqual(expectedTarget); - }); -}); - -describe("load token", () => { - test("success: via token flag", () => { - const token = "tokenflag"; - jest.spyOn(cliConfig, "parsedInputs", "get").mockImplementation(() => { - return { ...defaultInputValues, token }; - }); - cliConfig.loadToken(); - expect(Container.get(constants.GITHUB.TOKEN)).toBe(token); - }); - - test("success: via env", async () => { - const mockGithub = new MockGithub({ - env: { - token: "token", - }, - }); - await mockGithub.setup(); - cliConfig.loadToken(); - expect(Container.get(constants.GITHUB.TOKEN)).toBe("token"); - await mockGithub.teardown(); - - }); - - test("failure", () => { - jest.spyOn(cliConfig, "parsedInputs", "get").mockImplementation(() => { - return { ...defaultInputValues }; - }); - delete process.env["GITHUB_TOKEN"]; - expect(() => cliConfig.loadToken()).toThrowError(); - }); -}); - -describe("load input", () => { - test("success: validated input", () => { - const input = { - ...defaultInputValues, - customCommandTreatment: ["abc||def", "xyz||pqr"], - startProject: "owner/project", - }; - jest - .spyOn(InputService.prototype, "inputs", "get") - .mockImplementation(() => input); - expect(cliConfig.loadParsedInput()).toStrictEqual(input); - }); - - test("success: no input to validate", () => { - jest - .spyOn(InputService.prototype, "inputs", "get") - .mockImplementation(() => defaultInputValues); - expect(cliConfig.loadParsedInput()).toStrictEqual(defaultInputValues); - }); - - test("failure: invalidate input", () => { - const input = { - ...defaultInputValues, - customCommandTreatment: ["abc||def", "xyz|pqr"], - }; - jest - .spyOn(InputService.prototype, "inputs", "get") - .mockImplementation(() => input); - expect(() => cliConfig.loadParsedInput()).toThrowError(); - }); -}); diff --git a/test/unitary/service/config/configuration-service.test.ts b/test/unitary/service/config/configuration-service.test.ts deleted file mode 100644 index aa5489ac..00000000 --- a/test/unitary/service/config/configuration-service.test.ts +++ /dev/null @@ -1,368 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { defaultInputValues, FlowType, InputValues } from "@bc/domain/inputs"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import Container from "typedi"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -import { NodeExecutionLevel } from "@bc/domain/node-execution"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; -import { ToolType } from "@bc/domain/cli"; -import { DefinitionFileReader } from "@bc/service/config/definition-file-reader"; -import { Node } from "@kie/build-chain-configuration-reader"; -import { defaultNodeValue } from "@bc/domain/node"; -import { EventData } from "@bc/domain/configuration"; - -// disable logs -jest.spyOn(global.console, "log"); -jest.mock("@kie/build-chain-configuration-reader"); - -describe("initialization", () => { - beforeEach(() => { - jest - .spyOn(ConfigurationService.prototype, "init") - .mockImplementationOnce(async () => - Container.get(constants.CONTAINER.ENTRY_POINT) - ); - }); - test("action", async () => { - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - const config = new ConfigurationService(); - await expect(config.init()).resolves.toBe(EntryPoint.GITHUB_EVENT); - }); - - test("cli", async () => { - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - const config = new ConfigurationService(); - await expect(config.init()).resolves.toBe(EntryPoint.CLI); - }); - - test("incorrect entrypoint", async () => { - Container.set(constants.CONTAINER.ENTRY_POINT, "dummy"); - expect(() => new ConfigurationService()).toThrowError(); - }); -}); - -describe("methods", () => { - let config: ConfigurationService; - let currentInput: InputValues; - const startProject = "owner/project"; - - beforeAll(() => { - // doesn't matter whether it is a CLI or action - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - }); - - beforeEach(async () => { - currentInput = { - ...defaultInputValues, - startProject, - url: "https://github.com/owner/project/pull/270", - }; - - jest - .spyOn(BaseConfiguration.prototype, "parsedInputs", "get") - .mockImplementation(() => currentInput); - jest - .spyOn(DefinitionFileReader.prototype, "generateNodeChain") - .mockImplementation(async () => []); - jest - .spyOn(DefinitionFileReader.prototype, "getDefinitionFile") - .mockImplementation(async () => { - return { version: "2.1" }; - }); - jest - .spyOn(BaseConfiguration.prototype, "init") - .mockImplementation(async () => undefined); - - config = new ConfigurationService(); - await config.init(); - }); - - afterEach(() => { - currentInput = { - ...defaultInputValues, - startProject, - url: "https://github.com/owner/project/pull/270", - }; - }); - - test("getStarterProjectName: success", () => { - expect(config.getStarterProjectName()).toBe(startProject); - }); - - test("getStarterProjectName: failure", () => { - delete process.env["GITHUB_REPOSITORY"]; - delete currentInput["startProject"]; - expect(() => config.getStarterProjectName()).toThrowError(); - }); - - test.each([ - [true, startProject], - [false, "falsename"], - ])("isNodeStarter %p", (isNodeStarter: boolean, project: string) => { - expect(config.isNodeStarter({ ...defaultNodeValue, project })).toBe( - isNodeStarter - ); - }); - - test("getStarterNode: success", () => { - const chain: Node[] = [ - { ...defaultNodeValue, project: "abc" }, - { ...defaultNodeValue, project: startProject }, - { ...defaultNodeValue, project: "def" }, - ]; - const nodeFound: Node = { ...defaultNodeValue, project: startProject }; - jest - .spyOn(ConfigurationService.prototype, "nodeChain", "get") - .mockImplementation(() => chain); - expect(config.getStarterNode()).toStrictEqual(nodeFound); - }); - - test("getStarterNode: failure", () => { - const chain: Node[] = [ - { ...defaultNodeValue, project: "abc" }, - { ...defaultNodeValue, project: "xyz" }, - { ...defaultNodeValue, project: "def" }, - ]; - jest - .spyOn(ConfigurationService.prototype, "nodeChain", "get") - .mockImplementation(() => chain); - expect(() => config.getStarterNode()).toThrowError(); - }); - - test.each([ - ["upstream", 0, NodeExecutionLevel.UPSTREAM], - ["current", 1, NodeExecutionLevel.CURRENT], - ["downstream", 2, NodeExecutionLevel.DOWNSTREAM], - ])( - "getNodeExecutionLevel: %p", - ( - title: string, - currNodeIndex: number, - executionLevel: NodeExecutionLevel - ) => { - const chain: Node[] = [ - { ...defaultNodeValue, project: "abc" }, - { ...defaultNodeValue, project: startProject }, - { ...defaultNodeValue, project: "def" }, - ]; - jest - .spyOn(ConfigurationService.prototype, "nodeChain", "get") - .mockImplementation(() => chain); - expect(config.getNodeExecutionLevel(chain[currNodeIndex])).toBe( - executionLevel - ); - } - ); - - test.each([ - [ - "option skipExecution set to true", - { ...defaultNodeValue, project: "abc" }, - { ...defaultInputValues, skipExecution: true }, - true, - ], - [ - "option skipExecution set to false and skipProjectExecution contains project name", - { ...defaultNodeValue, project: "abc" }, - { ...defaultInputValues, skipProjectExecution: ["abc"] }, - true, - ], - [ - "option skipExecution set to false and skipProjectExecution does not contain project name", - { ...defaultNodeValue, project: "abc" }, - { ...defaultInputValues, skipProjectExecution: ["def"] }, - false, - ], - [ - "option skipExecution set to false and skipProjectExecution not defined", - { ...defaultNodeValue, project: "abc" }, - defaultInputValues, - false, - ], - ])( - "skipExecution: %p", - ( - title: string, - node: Node, - currInput: InputValues, - isExecutionSkipped: boolean - ) => { - currentInput = currInput; - expect(config.skipExecution(node)).toBe(isExecutionSkipped); - } - ); - - test.each([ - [ - "option skipCheckout set to true", - { ...defaultNodeValue, project: "abc" }, - { ...defaultInputValues, skipCheckout: true }, - true, - ], - [ - "option skipCheckout set to false and skipProjectCheckout contains project name", - { ...defaultNodeValue, project: "abc" }, - { ...defaultInputValues, skipProjectCheckout: ["abc"] }, - true, - ], - [ - "option skipCheckout set to false and skipProjectCheckout does not contain project name", - { ...defaultNodeValue, project: "abc" }, - { ...defaultInputValues, skipProjectCheckout: ["def"] }, - false, - ], - [ - "option skipCheckout set to false and skipProjectCheckout not defined", - { ...defaultNodeValue, project: "abc" }, - defaultInputValues, - false, - ], - ])( - "skipCheckout: %p", - ( - title: string, - node: Node, - currInput: InputValues, - isCheckoutSkipped: boolean - ) => { - currentInput = currInput; - expect(config.skipCheckout(node)).toBe(isCheckoutSkipped); - } - ); - - test.each([ - [ - "custom command treatment defined", - { ...defaultInputValues, customCommandTreatment: ["abc||xyz"] }, - { replaceExpressions: ["abc||xyz"] }, - ], - ["custom command treatment not defined", defaultInputValues, {}], - ])( - "getTreatmentOptions: success - %p", - ( - title: string, - currInput: InputValues, - treatmentOptions: TreatmentOptions - ) => { - currentInput = currInput; - expect(config.getTreatmentOptions()).toStrictEqual(treatmentOptions); - } - ); - - test("get target project", () => { - const project = { - branch: "main", - name: "project", - group: "owner", - repository: "owner/project", - }; - jest - .spyOn(BaseConfiguration.prototype, "targetProject", "get") - .mockImplementation(() => project); - expect(config.getTargetProject()).toStrictEqual(project); - }); - - test("get source project", () => { - const project = { - branch: "main", - name: "project", - group: "owner", - repository: "owner/project", - }; - jest - .spyOn(BaseConfiguration.prototype, "sourceProject", "get") - .mockImplementation(() => project); - expect(config.getSourceProject()).toStrictEqual(project); - }); - - test("get flow type: success", () => { - currentInput = { - ...defaultInputValues, - CLISubCommand: FlowType.CROSS_PULL_REQUEST, - }; - expect(config.getFlowType()).toBe(FlowType.CROSS_PULL_REQUEST); - }); - - test("get flow type: failure", () => { - currentInput = { - ...defaultInputValues, - CLISubCommand: ToolType.PROJECT_LIST, - }; - expect(() => config.getFlowType()).toThrowError(); - }); - - test("root folder from github workspace", () => { - process.env["GITHUB_WORKSPACE"] = "workspace"; - expect(config.getRootFolder()).toBe("workspace"); - delete process.env["GITHUB_WORKSPACE"]; - }); - - test("root folder from input", () => { - currentInput = { ...defaultInputValues, outputFolder: "current" }; - expect(config.getRootFolder()).toBe(currentInput.outputFolder); - }); - - test("root folder default", () => { - delete process.env["GITHUB_WORKSPACE"]; - expect(config.getRootFolder()).toBe(process.cwd()); - }); - - test("get clone url", () => { - const gitConfig = { serverUrlWithToken: "http://github.com" }; - jest - .spyOn(BaseConfiguration.prototype, "gitConfiguration", "get") - .mockImplementation(() => gitConfig); - expect(config.getCloneUrl("owner", "project")).toBe( - `${gitConfig.serverUrlWithToken}/owner/project` - ); - }); - - test("skipParallelCheckout", () => { - currentInput = { ...defaultInputValues, skipParallelCheckout: true }; - expect(config.skipParallelCheckout()).toBe( - currentInput.skipParallelCheckout - ); - }); - - test("getPre", () => { - jest - .spyOn(ConfigurationService.prototype, "definitionFile", "get") - .mockImplementation(() => { - return { - version: "2.1", - pre: ["hello"], - }; - }); - expect(config.getPre()).toStrictEqual(["hello"]); - }); - - test("getPost", () => { - jest - .spyOn(ConfigurationService.prototype, "definitionFile", "get") - .mockImplementation(() => { - return { - version: "2.1", - post: { - success: ["hello"], - }, - }; - }); - expect(config.getPost()).toStrictEqual({ success: ["hello"] }); - }); - - test.each([ - ["branch flow", FlowType.BRANCH, ""], - ["non branch flow", FlowType.CROSS_PULL_REQUEST, "url"], - ])("getEventUrl", (title: string, flowType: FlowType, expected: string) => { - currentInput = { - ...defaultInputValues, - CLISubCommand: flowType, - }; - jest - .spyOn(BaseConfiguration.prototype, "gitEventData", "get") - .mockImplementationOnce(() => ({ html_url: expected } as EventData)); - expect(config.getEventUrl()).toBe(expected); - }); -}); diff --git a/test/unitary/service/config/definition-file-reader.test.ts b/test/unitary/service/config/definition-file-reader.test.ts deleted file mode 100644 index 4911113b..00000000 --- a/test/unitary/service/config/definition-file-reader.test.ts +++ /dev/null @@ -1,199 +0,0 @@ -import "reflect-metadata"; -import { EventData, GitConfiguration } from "@bc/domain/configuration"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { defaultInputValues, FlowType } from "@bc/domain/inputs"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -import { getOrderedListForProject, getTreeForProject, parentChainFromNode, readDefinitionFile, Node } from "@kie/build-chain-configuration-reader"; -import fs from "fs"; -import path from "path"; -import Container from "typedi"; -import { DefinitionFileReader } from "@bc/service/config/definition-file-reader"; -jest.mock("@kie/build-chain-configuration-reader"); - -// disable logs -jest.spyOn(global.console, "log"); - -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); -Container.set(constants.GITHUB.TOKEN, "faketoken"); - - -class TestConfiguration extends BaseConfiguration { - getFlowType(): FlowType { - return FlowType.BRANCH; - } - - loadGitConfiguration(): GitConfiguration { - return {}; - } - - loadToken(): void {return;} - - async loadGitEvent(): Promise { - return {}; - } -} - -let definitionFileReader: DefinitionFileReader; - -beforeEach(() => { - definitionFileReader = new DefinitionFileReader(new TestConfiguration()); -}); - -describe.each([ - ["branch flow fdb", FlowType.BRANCH], - ["full downstream", FlowType.FULL_DOWNSTREAM] -])("generate node chain: %p", (_title: string, flowType: FlowType) => { - const data = JSON.parse(fs.readFileSync(path.join(__dirname, "projectNodes.json"), "utf8")); - const mockData: Node[] = data.mock; - - beforeEach(() => { - jest.spyOn(TestConfiguration.prototype, "getFlowType").mockImplementation(() => flowType); - jest.spyOn(BaseConfiguration.prototype, "parsedInputs", "get").mockImplementation(() => { - return { ...defaultInputValues, fullProjectDependencyTree: true }; - }); - }); - - test("success: from source generated placeholder", async () => { - const getOrderedListProjectMock = getOrderedListForProject as jest.Mock; - getOrderedListProjectMock.mockReturnValueOnce(mockData); - - await definitionFileReader.generateNodeChain(mockData[0].project); - expect(getOrderedListProjectMock).toHaveBeenCalledTimes(1); - }); - - test("success: from target generated placeholder", async () => { - const getOrderedListProjectMock = getOrderedListForProject as jest.Mock; - getOrderedListProjectMock - .mockImplementationOnce(() => { - throw new Error("Invalid definition file"); - }) - .mockReturnValueOnce(mockData); - - await definitionFileReader.generateNodeChain(mockData[0].project); - expect(getOrderedListProjectMock).toHaveBeenCalledTimes(2); - }); - - test("failure", async () => { - const getOrderedListProjectMock = getOrderedListForProject as jest.Mock; - getOrderedListProjectMock.mockImplementation(() => { - throw new Error("Invalid definition file"); - }); - await expect(definitionFileReader.generateNodeChain("test")).rejects.toThrowError(); - }); -}); - -describe.each([ - ["branch flow no fdb", FlowType.BRANCH], - ["cross pr", FlowType.CROSS_PULL_REQUEST], -])("generate node chain: %p", (_title: string, flowType: FlowType) => { - const data = JSON.parse(fs.readFileSync(path.join(__dirname, "projectNodes.json"), "utf8")); - const mockData: Node[] = data.mock; - - beforeEach(() => { - jest.spyOn(TestConfiguration.prototype, "getFlowType").mockImplementation(() => flowType); - jest.spyOn(BaseConfiguration.prototype, "parsedInputs", "get").mockImplementation(() => defaultInputValues); - }); - - test("success: from source generated placeholder", async () => { - const getTreeForProjectMock = getTreeForProject as jest.Mock; - const parentChainFromNodeMock = parentChainFromNode as jest.Mock; - getTreeForProjectMock.mockReturnValueOnce({project: "abc"}); - parentChainFromNodeMock.mockReturnValueOnce(mockData); - - await definitionFileReader.generateNodeChain(mockData[0].project); - expect(parentChainFromNodeMock).toHaveBeenCalledTimes(1); - expect(getTreeForProjectMock).toHaveBeenCalledTimes(1); - }); - - test("success: from target generated placeholder", async () => { - const getTreeForProjectMock = getTreeForProject as jest.Mock; - const parentChainFromNodeMock = parentChainFromNode as jest.Mock; - getTreeForProjectMock.mockImplementationOnce(() => { - throw new Error("Invalid definition file"); - }).mockReturnValueOnce({project: "abc"}); - parentChainFromNodeMock.mockReturnValueOnce(mockData); - - await definitionFileReader.generateNodeChain(mockData[0].project); - expect(parentChainFromNodeMock).toHaveBeenCalledTimes(1); - expect(getTreeForProjectMock).toHaveBeenCalledTimes(2); - }); - - test("failure", async () => { - const getTreeForProjectMock = getTreeForProject as jest.Mock; - getTreeForProjectMock.mockImplementation(() => { - throw new Error("Invalid definition file"); - }); - await expect(definitionFileReader.generateNodeChain("test")).rejects.toThrowError(); - }); -}); - -describe("generate node chain: single pr", () => { - const data = JSON.parse(fs.readFileSync(path.join(__dirname, "projectNodes.json"), "utf8")); - const mockData: Node[] = data.mock; - - beforeEach(() => { - jest.spyOn(TestConfiguration.prototype, "getFlowType").mockImplementation(() => FlowType.SINGLE_PULL_REQUEST); - jest.spyOn(BaseConfiguration.prototype, "parsedInputs", "get").mockImplementation(() => defaultInputValues); - }); - - test("success: from source generated placeholder", async () => { - const getTreeForProjectMock = getTreeForProject as jest.Mock; - getTreeForProjectMock.mockReturnValueOnce(mockData[0]); - - await definitionFileReader.generateNodeChain(mockData[0].project); - expect(getTreeForProjectMock).toHaveBeenCalledTimes(1); - }); - - test("success: from target generated placeholder", async () => { - const getTreeForProjectMock = getTreeForProject as jest.Mock; - getTreeForProjectMock.mockImplementationOnce(() => { - throw new Error("Invalid definition file"); - }).mockReturnValueOnce(mockData[0]); - - await definitionFileReader.generateNodeChain(mockData[0].project); - expect(getTreeForProjectMock).toHaveBeenCalledTimes(2); - }); - - test("failure", async () => { - const getTreeForProjectMock = getTreeForProject as jest.Mock; - getTreeForProjectMock.mockImplementation(() => { - throw new Error("Invalid definition file"); - }); - await expect(definitionFileReader.generateNodeChain("test")).rejects.toThrowError(); - }); -}); - -describe("get definition file", () => { - beforeEach(() => { - jest.spyOn(BaseConfiguration.prototype, "parsedInputs", "get").mockImplementation(() => defaultInputValues); - }); - - test("success: from source generated placeholder", async () => { - const readDefinitionFileMock = readDefinitionFile as jest.Mock; - readDefinitionFileMock.mockReturnValueOnce({version: "2.1"}); - - const nodeChain = await definitionFileReader.getDefinitionFile(); - expect(readDefinitionFileMock).toHaveBeenCalledTimes(1); - expect(nodeChain).toStrictEqual({version: "2.1"}); - }); - - test("success: from target generated placeholder", async () => { - const readDefinitionFileMock = readDefinitionFile as jest.Mock; - readDefinitionFileMock.mockImplementationOnce(() => { - throw new Error("Invalid definition file"); - }).mockReturnValueOnce({version: "2.1"}); - - const nodeChain = await definitionFileReader.getDefinitionFile(); - expect(readDefinitionFileMock).toHaveBeenCalledTimes(2); - expect(nodeChain).toStrictEqual({version: "2.1"}); - }); - - test("failure", async () => { - const readDefinitionFileMock = readDefinitionFile as jest.Mock; - readDefinitionFileMock.mockImplementation(() => { - throw new Error("Invalid definition file"); - }); - await expect(definitionFileReader.getDefinitionFile()).rejects.toThrowError(); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/config/projectNodes.json b/test/unitary/service/config/projectNodes.json deleted file mode 100644 index 64ee4d8f..00000000 --- a/test/unitary/service/config/projectNodes.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "mock": [ - { - "project": "root", - "dependencies": [{ "project": "depend" }], - "parent": [ - { - "project": "parent", - "dependencies": [], - "parent": [ - { - "project": "grandparent" - } - ] - }, - { - "project": "parent", - "dependencies": [], - "parent": [ - { - "project": "grandparent" - } - ], - "children": [ - { - "project": "sibling" - } - ], - "build": { - "build-command": { - "after": { - "upstream": "upstream", - "downstream": ["downstream"] - }, - "before": { - "upstream": "upstream", - "downstream": ["downstream"], - "current": ["current1", "current2"] - }, - "upstream": "upstream", - "downstream": "dowstream", - "current": ["current"] - } - } - }, - { - "project": "parent", - "dependencies": [{ "project": "depend" }], - "children": [ - { - "project": "sibling" - } - ] - } - ], - "children": [ - { - "project": "child", - "dependencies": [], - "parent": [ - { - "project": "grandparent" - } - ] - }, - { - "project": "child", - "dependencies": [], - "parent": [ - { - "project": "grandparent" - } - ], - "children": [ - { - "project": "sibling" - } - ] - }, - { - "project": "child", - "dependencies": [{ "project": "depend" }], - "children": [ - { - "project": "sibling" - } - ], - "build": { - "build-command": { - "after": { - "upstream": "upstream", - "downstream": ["downstream"] - }, - "before": { - "upstream": "upstream", - "downstream": ["downstream"], - "current": ["current1", "current2"] - }, - "upstream": "upstream", - "downstream": "dowstream", - "current": ["current"] - } - } - } - ], - "build": { - "build-command": { - "after": { - "upstream": "upstream", - "downstream": ["downstream"] - }, - "before": { - "upstream": "upstream", - "downstream": ["downstream"], - "current": ["current1", "current2"] - }, - "upstream": "upstream", - "downstream": "dowstream", - "current": ["current"] - } - }, - "mapping": { - "exclude": ["abc", "def"] - } - } - ] -} diff --git a/test/unitary/service/flow/flow-service.test.ts b/test/unitary/service/flow/flow-service.test.ts deleted file mode 100644 index 96b05814..00000000 --- a/test/unitary/service/flow/flow-service.test.ts +++ /dev/null @@ -1,227 +0,0 @@ -import "reflect-metadata"; -import { UploadResponse } from "@actions/artifact"; -import { CheckedOutNode } from "@bc/domain/checkout"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { ExecutionResult } from "@bc/domain/execute-command-result"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { ExecutionPhase } from "@bc/domain/execution-phase"; -import { FlowType } from "@bc/domain/inputs"; -import { NodeExecutionLevel } from "@bc/domain/node-execution"; -import { CheckoutService } from "@bc/service/checkout/checkout-service"; -import { ExecuteCommandService } from "@bc/service/command/execute-command-service"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { FlowService } from "@bc/service/flow/flow-service"; -import { GithubActionLoggerService } from "@bc/service/logger/github-action-logger-service"; -import Container from "typedi"; -import { ArtifactService } from "@bc/service/artifacts/artifact-service"; -import { Node } from "@kie/build-chain-configuration-reader"; -import { defaultNodeValue } from "@bc/domain/node"; - -const nodeChain: Node[] = [ - { - ...defaultNodeValue, - project: "owner1/project1", - before: { - upstream: ["cmd1"], - downstream: [], - current: [], - }, - }, - { - ...defaultNodeValue, - project: "owner2/project2", - before: { - current: ["cmd2-before"], - downstream: [], - upstream: [], - }, - commands: { - upstream: [], - downstream: [], - current: ["cmd2-current"], - }, - after: { - upstream: [], - downstream: [], - current: [], - }, - }, - { - ...defaultNodeValue, - project: "owner3/project3", - after: { - upstream: [], - downstream: [], - current: ["cmd3"], - }, - commands: { - upstream: [], - downstream: [], - current: [], - }, - }, -]; - -const checkoutInfo: CheckedOutNode[] = [ - { - node: nodeChain[0], - }, - { - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "main", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "main", - targetGroup: "owner2", - targetName: "project2", - merge: false, - repoDir: "owner2_project2", - }, - }, - { - node: nodeChain[2], - checkoutInfo: { - sourceBranch: "dev", - sourceGroup: "owner3-forked", - sourceName: "project3-forked", - targetBranch: "main", - targetGroup: "owner3", - targetName: "project3", - merge: true, - repoDir: "owner3_project3", - }, - }, -]; - -const executionResult: ExecuteNodeResult[] = [ - { - node: nodeChain[0], - executeCommandResults: [], - }, - { - node: nodeChain[1], - executeCommandResults: [ - { - startingDate: 0, - endingDate: 2, - time: 2, - command: "cmd2", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - { - node: nodeChain[2], - executeCommandResults: [ - { - startingDate: 0, - endingDate: 3, - time: 3, - command: "cmd3", - result: ExecutionResult.NOT_OK, - errorMessage: "error", - }, - ], - }, -]; - -const artifactUploadResults: PromiseSettledResult[] = []; - -test("run flow", async () => { - // entry point does not make any difference for this function - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - - // flow type does not make a difference for this function - const flowType = FlowType.BRANCH; - jest.spyOn(ConfigurationService.prototype, "getFlowType").mockImplementation(() => flowType); - - jest.spyOn(ConfigurationService.prototype, "nodeChain", "get").mockImplementation(() => nodeChain); - jest.spyOn(ConfigurationService.prototype, "getStarterProjectName").mockImplementation(() => nodeChain[1].project); - jest.spyOn(ConfigurationService.prototype, "getStarterNode").mockImplementation(() => nodeChain[1]); - jest - .spyOn(ConfigurationService.prototype, "skipExecution") - .mockImplementationOnce(() => true) - .mockImplementationOnce(() => false) - .mockImplementationOnce(() => false); - jest.spyOn(CheckoutService.prototype, "checkoutDefinitionTree").mockImplementation(async () => checkoutInfo); - jest.spyOn(ExecuteCommandService.prototype, "executeChainCommands").mockImplementation(async () => executionResult); - jest.spyOn(ArtifactService.prototype, "uploadNodes").mockImplementation(async () => []); - - const groupSpy = jest.spyOn(GithubActionLoggerService.prototype, "startGroup").mockImplementation(_msg => undefined); - jest.spyOn(GithubActionLoggerService.prototype, "endGroup").mockImplementation(() => undefined); - jest.spyOn(GithubActionLoggerService.prototype, "debug").mockImplementation(_msg => undefined); - const infoSpy = jest.spyOn(GithubActionLoggerService.prototype, "info").mockImplementation(_msg => undefined); - const errorSpy = jest.spyOn(GithubActionLoggerService.prototype, "error").mockImplementation(_msg => undefined); - - const flowService = Container.get(FlowService); - const result = await flowService.run(); - - // execution plan - expect(groupSpy).toHaveBeenNthCalledWith(1, "Execution Plan"); - expect(infoSpy).toHaveBeenNthCalledWith(1, `${nodeChain.length} projects will be executed`); - expect(infoSpy).toHaveBeenNthCalledWith(2, `[${nodeChain[0].project}]`); - expect(infoSpy).toHaveBeenNthCalledWith(3, `\t Level type: ${NodeExecutionLevel.UPSTREAM}`); - expect(infoSpy).toHaveBeenNthCalledWith(4, "\t No command will be executed (this project will be skipped)"); - expect(infoSpy).toHaveBeenNthCalledWith(5, `[${nodeChain[1].project}]`); - expect(infoSpy).toHaveBeenNthCalledWith(6, `\t Level type: ${NodeExecutionLevel.CURRENT}`); - expect(infoSpy).toHaveBeenNthCalledWith(7, `\t [${ExecutionPhase.BEFORE}]`); - expect(infoSpy).toHaveBeenNthCalledWith(8, "\t\t cmd2-before"); - expect(infoSpy).toHaveBeenNthCalledWith(9, `\t [${ExecutionPhase.CURRENT}]`); - expect(infoSpy).toHaveBeenNthCalledWith(10, "\t\t cmd2-current"); - expect(infoSpy).toHaveBeenNthCalledWith(11, `[${nodeChain[2].project}]`); - expect(infoSpy).toHaveBeenNthCalledWith(12, `\t Level type: ${NodeExecutionLevel.DOWNSTREAM}`); - expect(infoSpy).toHaveBeenNthCalledWith(13, `\t [${ExecutionPhase.AFTER}]`); - expect(infoSpy).toHaveBeenNthCalledWith(14, "\t\t cmd3"); - - // checkout summary - expect(groupSpy).toHaveBeenNthCalledWith(2, `Checking out ${nodeChain[1].project} and its dependencies (${nodeChain.length} projects in total). It can take some time.`); - expect(groupSpy).toHaveBeenNthCalledWith(3, "Checkout summary"); - expect(infoSpy).toHaveBeenNthCalledWith(15, `[${nodeChain[0].project}]`); - expect(infoSpy).toHaveBeenNthCalledWith(16, "\t This project wasn't checked out"); - expect(infoSpy).toHaveBeenNthCalledWith(17, `[${nodeChain[1].project}]`); - expect(infoSpy).toHaveBeenNthCalledWith(18, "\t Project taken from owner2/project2:main"); - expect(infoSpy).toHaveBeenNthCalledWith(19, `[${nodeChain[2].project}]`); - expect(infoSpy).toHaveBeenNthCalledWith(20, "\t Project taken from owner3/project3:main"); - expect(infoSpy).toHaveBeenNthCalledWith(21, "\t Merged owner3-forked/project3-forked:dev into branch main"); - - // execution summary: BEFORE - expect(groupSpy).toHaveBeenNthCalledWith(4, `Executing ${ExecutionPhase.BEFORE}`); - expect(infoSpy).toHaveBeenNthCalledWith(22, `Execution summary for phase ${ExecutionPhase.BEFORE}`); - expect(infoSpy).toHaveBeenNthCalledWith(23, `[${ExecutionPhase.BEFORE.toUpperCase()}] No commands were found for ${nodeChain[0].project}`); - expect(groupSpy).toHaveBeenNthCalledWith(5, `[${ExecutionPhase.BEFORE.toUpperCase()}] [${nodeChain[1].project}] cmd2`); - expect(infoSpy).toHaveBeenNthCalledWith(24, `${ExecutionResult.OK} [Executed in 2 ms]`); - expect(groupSpy).toHaveBeenNthCalledWith(6, `[${ExecutionPhase.BEFORE.toUpperCase()}] [${nodeChain[2].project}] cmd3`); - expect(infoSpy).toHaveBeenNthCalledWith(25, `${ExecutionResult.NOT_OK} [Executed in 3 ms]`); - expect(errorSpy).toHaveBeenNthCalledWith(1, "error"); - - // execution summary: CURRENT - expect(groupSpy).toHaveBeenNthCalledWith(7, `Executing ${ExecutionPhase.CURRENT}`); - expect(infoSpy).toHaveBeenNthCalledWith(26, `Execution summary for phase ${ExecutionPhase.CURRENT}`); - expect(infoSpy).toHaveBeenNthCalledWith(27, `[${ExecutionPhase.CURRENT.toUpperCase()}] No commands were found for ${nodeChain[0].project}`); - expect(groupSpy).toHaveBeenNthCalledWith(8, `[${ExecutionPhase.CURRENT.toUpperCase()}] [${nodeChain[1].project}] cmd2`); - expect(infoSpy).toHaveBeenNthCalledWith(28, `${ExecutionResult.OK} [Executed in 2 ms]`); - expect(groupSpy).toHaveBeenNthCalledWith(9, `[${ExecutionPhase.CURRENT.toUpperCase()}] [${nodeChain[2].project}] cmd3`); - expect(infoSpy).toHaveBeenNthCalledWith(29, `${ExecutionResult.NOT_OK} [Executed in 3 ms]`); - expect(errorSpy).toHaveBeenNthCalledWith(2, "error"); - - // execution summary: AFTER - expect(groupSpy).toHaveBeenNthCalledWith(10, `Executing ${ExecutionPhase.AFTER}`); - expect(infoSpy).toHaveBeenNthCalledWith(30, `Execution summary for phase ${ExecutionPhase.AFTER}`); - expect(infoSpy).toHaveBeenNthCalledWith(31, `[${ExecutionPhase.AFTER.toUpperCase()}] No commands were found for ${nodeChain[0].project}`); - expect(groupSpy).toHaveBeenNthCalledWith(11, `[${ExecutionPhase.AFTER.toUpperCase()}] [${nodeChain[1].project}] cmd2`); - expect(infoSpy).toHaveBeenNthCalledWith(32, `${ExecutionResult.OK} [Executed in 2 ms]`); - expect(groupSpy).toHaveBeenNthCalledWith(12, `[${ExecutionPhase.AFTER.toUpperCase()}] [${nodeChain[2].project}] cmd3`); - expect(infoSpy).toHaveBeenNthCalledWith(33, `${ExecutionResult.NOT_OK} [Executed in 3 ms]`); - expect(errorSpy).toHaveBeenNthCalledWith(3, "error"); - - expect(groupSpy).toHaveBeenNthCalledWith(13, "Uploading artifacts"); - - expect(result).toStrictEqual({ - checkoutInfo, - artifactUploadResults, - executionResult: { before: executionResult, after: executionResult, commands: executionResult }, - }); -}); diff --git a/test/unitary/service/git/git-cli.test.ts b/test/unitary/service/git/git-cli.test.ts deleted file mode 100644 index 7b7de2e3..00000000 --- a/test/unitary/service/git/git-cli.test.ts +++ /dev/null @@ -1,257 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { GitCLIService } from "@bc/service/git/git-cli"; -import { spawnSync } from "child_process"; -import fs from "fs"; -import path from "path"; -import Container from "typedi"; -import { assert } from "console"; -import { FileState, MockGithub, GitActionTypes } from "@kie/mock-github"; - -let git: GitCLIService; -let cwd: string; -let currentBranch: string; -let pushedBranches: string[]; -let localBranches: string[]; -let files: FileState[]; - -const mockGithub = new MockGithub( - { - repo: { - repoA: { - pushedBranches: ["sbranch", "tbranch"], - localBranches: ["lbranch"], - currentBranch: "main", - history: [ - { - action: GitActionTypes.PUSH, - branch: "main", - }, - { - action: GitActionTypes.PUSH, - branch: "sbranch", - }, - { - action: GitActionTypes.PUSH, - branch: "tbranch", - }, - ], - }, - }, - }, - path.join(__dirname, "setup-cli") -); - -beforeAll(async () => { - //setup - await mockGithub.setup(); - cwd = mockGithub.repo.getPath("repoA")!; - currentBranch = mockGithub.repo.getBranchState("repoA")!.currentBranch; - pushedBranches = mockGithub.repo.getBranchState("repoA")!.pushedBranches; - localBranches = mockGithub.repo.getBranchState("repoA")!.localBranches; - files = (await mockGithub.repo.getFileSystemState("repoA"))!; - - //make sure the setup is correct to run this test suite - assert( - pushedBranches.length > 1, - "your configuration must have a repository with pushed branches other than main" - ); - assert( - localBranches.length > 0, - "your configuration must have a repository with local branches i.e. not pushed branches" - ); - assert( - files.length > 0, - "your configuration needs at least 1 file committed to some branch which is not the current branch" - ); - - // disable logs - jest.spyOn(global.console, "log"); -}); - -afterAll(async () => { - await mockGithub.teardown(); -}); - -beforeEach(() => { - // create a fresh instance of git before each test - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - git = new GitCLIService(); -}); - -test("version", async () => { - const result = await git.version(); - const actualVersion = spawnSync("git", ["version"]).stdout.toString(); - const match = actualVersion.match(/(\d+\.\d+(\.\d+)?)/); - if (match) { - expect(result).toEqual(match[1]); - } else { - expect(result).toBe(undefined); - } -}); - -test.each([ - ["succes: destination does not exist", false], - ["failure: destination exists", true], -])("clone %p", async (_title: string, destExist: boolean) => { - // Setup - const dest = path.join(__dirname, "git-clone-test"); - - // test for failure - if (destExist) { - fs.mkdirSync(dest); - await git.clone(cwd, dest, "main"); - const files = fs.readdirSync(dest); - expect(files.length).toBe(0); - } - // test for success - else { - await git.clone(cwd, dest, "main"); - expect(fs.existsSync(dest)).toBe(true); - } - // Clean up - fs.rmSync(dest, { recursive: true }); -}); - -test("fetch", async () => { - await expect(git.fetch(cwd, currentBranch)).resolves.not.toThrowError(); -}); - -test("getCommonAncestor", async () => { - // using the code from original codebase to test whether the results match - const mergeBase = async (dir: string, ...refs: string[]) => { - if (refs.length === 1) { - return refs[0]; - } else if (refs.length < 1) { - throw new Error("empty refs!"); - } - let todo = refs; - - while (todo.length > 1) { - const rawCommand = spawnSync("git", ["merge-base", todo[0], todo[1]], { - cwd: dir, - }); - if (rawCommand.status === 1) { - return null; - } - const base = rawCommand.stdout.toString().trim(); - todo = [base].concat(todo.slice(2)); - } - return todo[0]; - }; - const result = await Promise.all([ - mergeBase(cwd, ...pushedBranches), - git.getCommonAncestor(cwd, ...pushedBranches), - ]); - expect(result[1]).toEqual(result[0]); -}); - -test("getReachableParentCommits", async () => { - const ref = pushedBranches[1]; - - // using code from original codebase to compare results - const rawCommand = spawnSync( - "git", - ["rev-list", "--parents", `${ref}..HEAD`], - { cwd } - ); - const output = rawCommand.stdout - .toString() - .split(/\n/g) - .map(line => line.split(/ /g).slice(1)) - .filter(commit => commit.length > 0) - .flat(); - const result = await git.getReachableParentCommits(cwd, ref); - expect(result).toStrictEqual(output); -}); - -test("merge", async () => { - // get a branch which is not the current branch and has a file committed - let branchToMergeFrom = ""; - for (let i = 0; i < files.length; i++) { - if (files[i].branch !== currentBranch) { - branchToMergeFrom = files[i].branch; - break; - } - } - assert( - branchToMergeFrom !== "", - "your configuration needs at least 1 file committed to some branch which is not on the current branch" - ); - - // merge the found branch to the current branch - await expect( - git.merge(cwd, "origin", branchToMergeFrom) - ).resolves.not.toThrowError(); - - // verify that files actually exist after branch is merged - for (let i = 0; i < files.length; i++) { - if (files[i].branch === branchToMergeFrom) { - expect(fs.existsSync(path.join(cwd, files[i].path))).toBe(true); - } - } -}); - -test("head", async () => { - const output = spawnSync("git", ["show-ref", "--head", "-s", "/HEAD"], { - cwd, - }).stdout.toString(); - const result = await git.head(cwd); - expect(result).toEqual(output); -}); - -test("sha", async () => { - const ref = pushedBranches[1]; - const output = spawnSync( - "git", - ["show-ref", "-s", `refs/remotes/origin/${ref}`], - { cwd } - ).stdout.toString(); - const result = await git.sha(cwd, ref); - expect(result).toEqual(output); -}); - -test("rename", async () => { - const ref = localBranches[0]; - const newName = "newBranchName"; - - //switch to local branch - spawnSync("git", ["checkout", ref], { cwd }); - - // change name - await git.rename(cwd, newName); - - // get the current branch name - const output = spawnSync("git", ["branch", "--show-current"], { cwd }) - .stdout.toString() - .trim(); - - expect(output).toEqual(newName); - - // go back to the original current branch - spawnSync("git", ["checkout", currentBranch], { cwd }); -}); - -test("rebase", async () => { - await expect(git.rebase(cwd, currentBranch)).resolves.not.toThrowError(); -}); - -test.each([ - ["with force", true], - ["without force", false], -])("push %p", async (title: string, withForce: boolean) => { - const expressionToTest = "GIT_CHERRY_SHOULD_NOT_INCLUDE_THIS_MSG"; - // create file to push - fs.writeFileSync(path.join(cwd, "test-push"), "testing git push"); - - // add and commit the file - spawnSync("git", ["add", "."], { cwd }); - spawnSync("git", ["commit", "-m", expressionToTest], { cwd }); - - await git.push(cwd, withForce, currentBranch); - - // use git cherry to verify this commit was pushed - const output = spawnSync("git", ["cherry", "-v"], { cwd }).stdout.toString(); - expect(output.includes(expressionToTest)).toBe(false); -}); diff --git a/test/unitary/service/git/github-api.test.ts b/test/unitary/service/git/github-api.test.ts deleted file mode 100644 index 57c6c4d0..00000000 --- a/test/unitary/service/git/github-api.test.ts +++ /dev/null @@ -1,169 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import Container from "typedi"; -import { GithubAPIService } from "@bc/service/git/github-api"; -import { Moctokit } from "@kie/mock-github"; - -let git: GithubAPIService; - -beforeAll(async () => { - // disable logs - jest.spyOn(global.console, "log"); -}); - -beforeEach(() => { - // create a fresh instance of git before each test - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - Container.set(constants.GITHUB.TOKEN, "fake_token"); - git = new GithubAPIService(); -}); - -test.each([ - ["branch exists", true, ["testgroup", "repoA", "main"], 200], - [ - "branch does not exist", - false, - ["testgroup", "repoA", "non_existent_branch"], - 404, - ], - [ - "repo does not exist", - false, - ["testgroup", "non-existant-repo", "main"], - 404, - ], -])( - "doesBranchExist %p", - async ( - _title: string, - branchExists: boolean, - args: string[], - status: number - ) => { - const moctokit = new Moctokit(); - moctokit.rest.repos - .getBranch({ owner: args[0], repo: args[1], branch: args[2] }) - .reply({ status: status as 200 | 404, data: {} }); - await expect(git.doesBranchExist(args[0], args[1], args[2])).resolves.toBe( - branchExists - ); - } -); - -test.each([ - [ - "success: head", - true, - ["testgroup", "repoA"], - ["sbranch", undefined], - [{ title: "pr" }], - ], - [ - "success: base", - true, - ["testgroup", "repoA"], - [undefined, "sbranch"], - [{ title: "pr" }], - ], - [ - "success: head and base", - true, - ["testgroup", "repoA"], - ["tbranch", "sbranch"], - [{ title: "pr" }], - ], - ["success: no pr", false, ["testgroup", "repoA"], ["tbranch", "sbranch"], []], -])( - "hasPullRequest %p", - async ( - _title: string, - hasPR: boolean, - args: string[], - optionalArgs: (string | undefined)[], - data - ) => { - const moctokit = new Moctokit(); - let query = {}; - if (optionalArgs[0]) { - query = { ...query, head: optionalArgs[0] }; - } - if (optionalArgs[1]) { - query = { ...query, base: optionalArgs[1] }; - } - moctokit.rest.pulls - .list({ owner: args[0], repo: args[1], state: "open", ...query }) - .reply({ status: 200, data }); - await expect( - git.hasPullRequest(args[0], args[1], optionalArgs[0], optionalArgs[1]) - ).resolves.toBe(hasPR); - } -); - -test.each([ - ["failure: no head or base", ["testgroup", "repoA"], [undefined, undefined]], - ["failure: api error", ["testgroup", "repoA"], ["tbranch", "sbranch"]], -])( - "hasPullRequest %p", - async ( - _title: string, - args: string[], - optionalArgs: (string | undefined)[] - ) => { - await expect( - git.hasPullRequest(args[0], args[1], optionalArgs[0], optionalArgs[1]) - ).rejects.toThrowError(); - } -); - -test.each([ - [ - "success: same source and target owner", - true, - ["target1", "target1", "repoA"], - ], - [ - "failure: same source and target owner", - false, - ["target2", "target2", "repoA"], - ], - [ - "success: different source and target owner", - true, - ["target3", "source", "repoA"], - ], - [ - "failure: different source and target owner", - false, - ["target4", "source", "repoA"], - ], -])( - "getForkName %p", - async (_title: string, testForSuccess: boolean, args: string[]) => { - const moctokit = new Moctokit(); - if (testForSuccess) { - moctokit.rest.repos - .get({ owner: args[1], repo: args[2] }) - .reply({ status: 200, data: {} }); - moctokit.rest.repos.listForks({ owner: args[0], repo: args[2] }).reply({ - status: 200, - data: [{ name: args[2], owner: { login: args[1] } }], - }); - - await expect(git.getForkName(args[0], args[1], args[2])).resolves.toBe( - args[2] - ); - } else { - moctokit.rest.repos - .get({ owner: args[1], repo: args[2] }) - .reply({ status: 404, data: {} }); - moctokit.rest.repos - .listForks({ owner: args[0], repo: args[2] }) - .reply({ status: 200, data: [] }); - - await expect( - git.getForkName(args[0], args[1], args[2]) - ).rejects.toThrowError(); - } - } -); diff --git a/test/unitary/service/git/octokit.test.ts b/test/unitary/service/git/octokit.test.ts deleted file mode 100644 index 6752b701..00000000 --- a/test/unitary/service/git/octokit.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { OctokitService } from "@bc/service/git/octokit"; -import { Octokit } from "@octokit/rest"; -import Container from "typedi"; - -test("Initialize a new instance without proxy", () => { - Container.set(constants.GITHUB.TOKEN, "fake_token"); - - expect(Container.get(OctokitService).octokit).toBeInstanceOf(Octokit); -}); - -test("Initialize a new instance with proxy", () => { - Container.set(constants.GITHUB.TOKEN, "fake_token"); - process.env["http_proxy"] = "http://localhost:8080"; - - expect(Container.get(OctokitService).octokit).toBeInstanceOf(Octokit); - delete process.env["http_proxy"]; -}); diff --git a/test/unitary/service/job-summary/expected-summary b/test/unitary/service/job-summary/expected-summary deleted file mode 100644 index 8e254f37..00000000 --- a/test/unitary/service/job-summary/expected-summary +++ /dev/null @@ -1,53 +0,0 @@ -

Build Chain Execution Summary

- -**Project Starting the Job:** [owner2/project2](https://github.com/owner2/project2) -

Pre

CommandExecution ResultExecution Time
cmd11
cmd22
cmd33
-
-

Execution phase: before

ProjectSourceTargetMergedExecution ResultAvg Execution Time
owner1/project1checkout skippedcheckout skipped0
owner2/project2owner2/project2:mainowner2/project2:main2
owner3/project3owner3/project3:mainowner3-forked/project3-forked:dev3
- -```mermaid -flowchart LR; - owner1/project1:::noEntry==>owner2/project2:::okClass==>owner3/project3:::errorClass - click owner1/project1 'https://github.com/owner1/project1' - click owner2/project2 'https://github.com/owner2/project2' - click owner3/project3 'https://github.com/owner3/project3' - classDef okClass fill:#218838,stroke:#1e7e34,color: #fff,border-radius: 4px - classDef errorClass fill:#dc3545,stroke:#dc3545,color: #fff,border-radius: 4px - classDef noEntry fill:#6c757d,stroke:#6c757d,color: #fff,border-radius: 4px -``` -
-

Execution phase: commands

ProjectSourceTargetMergedExecution ResultAvg Execution Time
owner1/project1checkout skippedcheckout skipped0
owner2/project2owner2/project2:mainowner2/project2:main2
owner3/project3owner3/project3:mainowner3-forked/project3-forked:dev3
- -```mermaid -flowchart LR; - owner1/project1:::noEntry==>owner2/project2:::okClass==>owner3/project3:::errorClass - click owner1/project1 'https://github.com/owner1/project1' - click owner2/project2 'https://github.com/owner2/project2' - click owner3/project3 'https://github.com/owner3/project3' - classDef okClass fill:#218838,stroke:#1e7e34,color: #fff,border-radius: 4px - classDef errorClass fill:#dc3545,stroke:#dc3545,color: #fff,border-radius: 4px - classDef noEntry fill:#6c757d,stroke:#6c757d,color: #fff,border-radius: 4px -``` -
-

Execution phase: after

ProjectSourceTargetMergedExecution ResultAvg Execution Time
owner1/project1checkout skippedcheckout skipped0
owner2/project2owner2/project2:mainowner2/project2:main2
owner3/project3owner3/project3:mainowner3-forked/project3-forked:dev3
- -```mermaid -flowchart LR; - owner1/project1:::noEntry==>owner2/project2:::okClass==>owner3/project3:::errorClass - click owner1/project1 'https://github.com/owner1/project1' - click owner2/project2 'https://github.com/owner2/project2' - click owner3/project3 'https://github.com/owner3/project3' - classDef okClass fill:#218838,stroke:#1e7e34,color: #fff,border-radius: 4px - classDef errorClass fill:#dc3545,stroke:#dc3545,color: #fff,border-radius: 4px - classDef noEntry fill:#6c757d,stroke:#6c757d,color: #fff,border-radius: 4px -``` -
-

Post

CommandExecution ResultExecution Time
cmd11
cmd22
cmd33
-
-

Local Execution

You can copy paste the following commands to locally execute build chain tool. -
npm i ${{ PACKAGE_NAME }} -g
-build-chain build cross_pr -f definitionFile -u eventUrl
- -**Git Version**: `1.0.1` -> **_Notice_**: The `GITHUB_TOKEN` should be set in the environment. -
diff --git a/test/unitary/service/job-summary/job-summary-service.test.ts b/test/unitary/service/job-summary/job-summary-service.test.ts deleted file mode 100644 index 1dafdc54..00000000 --- a/test/unitary/service/job-summary/job-summary-service.test.ts +++ /dev/null @@ -1,226 +0,0 @@ -import "reflect-metadata"; -import { UploadResponse } from "@actions/artifact"; -import { CheckedOutNode } from "@bc/domain/checkout"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { FlowType } from "@bc/domain/inputs"; -import { defaultNodeValue } from "@bc/domain/node"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { GitCLIService } from "@bc/service/git/git-cli"; -import { JobSummaryService } from "@bc/service/job-summary/job-summary-service"; -import { open, rm } from "fs/promises"; -import path from "path"; -import Container from "typedi"; -import { readFileSync } from "fs"; -import { Node } from "@kie/build-chain-configuration-reader"; - -const nodeChain: Node[] = [ - { - ...defaultNodeValue, - project: "owner1/project1", - before: { - upstream: ["cmd1"], - downstream: [], - current: [], - }, - }, - { - ...defaultNodeValue, - project: "owner2/project2", - before: { - current: ["cmd2-before"], - downstream: [], - upstream: [], - }, - commands: { - upstream: [], - downstream: [], - current: ["cmd2-current"], - }, - after: { - upstream: [], - downstream: [], - current: [], - }, - }, - { - ...defaultNodeValue, - project: "owner3/project3", - after: { - upstream: [], - downstream: [], - current: ["cmd3"], - }, - commands: { - upstream: [], - downstream: [], - current: [], - }, - }, -]; - -const checkoutInfo: CheckedOutNode[] = [ - { - node: nodeChain[0], - }, - { - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "main", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "main", - targetGroup: "owner2", - targetName: "project2", - merge: false, - repoDir: "owner2_project2", - }, - }, - { - node: nodeChain[2], - checkoutInfo: { - sourceBranch: "dev", - sourceGroup: "owner3-forked", - sourceName: "project3-forked", - targetBranch: "main", - targetGroup: "owner3", - targetName: "project3", - merge: true, - repoDir: "owner3_project3", - }, - }, -]; - -const executionResult: ExecuteNodeResult[] = [ - { - node: nodeChain[0], - executeCommandResults: [ - { - startingDate: 0, - endingDate: 0, - time: 0, - command: "cmd1", - result: ExecutionResult.SKIP, - errorMessage: "error", - }, - ], - }, - { - node: nodeChain[1], - executeCommandResults: [ - { - startingDate: 0, - endingDate: 2, - time: 2, - command: "cmd2", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - { - node: nodeChain[2], - executeCommandResults: [ - { - startingDate: 0, - endingDate: 3, - time: 3, - command: "cmd3", - result: ExecutionResult.NOT_OK, - errorMessage: "error", - }, - ], - }, -]; - -const artifactUploadResults: PromiseSettledResult[] = []; - -const prePostResult: ExecuteCommandResult[] = [ - { - startingDate: 0, - endingDate: 1, - time: 1, - command: "cmd1", - result: ExecutionResult.OK, - errorMessage: "", - }, - { - startingDate: 0, - endingDate: 2, - time: 2, - command: "cmd2", - result: ExecutionResult.NOT_OK, - errorMessage: "error", - }, - { - startingDate: 0, - endingDate: 3, - time: 3, - command: "cmd3", - result: ExecutionResult.OK, - errorMessage: "", - }, -]; - -const definitionFile = "definitionFile"; -const eventUrl = "eventUrl"; -const gitVersion = "1.0.1"; -const filename = path.join(__dirname, "summary"); - -beforeEach(async () => { - jest.spyOn(ConfigurationService.prototype, "getDefinitionFileUrl").mockImplementation(() => definitionFile); - jest.spyOn(ConfigurationService.prototype, "getEventUrl").mockImplementation(() => eventUrl); - jest.spyOn(ConfigurationService.prototype, "getStarterProjectName").mockImplementation(() => nodeChain[1].project); - jest.spyOn(GitCLIService.prototype, "version").mockImplementation(async () => gitVersion); - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - - const fd = await open(filename, "w"); - fd.close(); - process.env["GITHUB_STEP_SUMMARY"] = filename; -}); - -afterEach(async () => { - await rm(filename); - delete process.env["GITHUB_STEP_SUMMARY"]; -}); - -test("non-branch flow", async () => { - jest.spyOn(ConfigurationService.prototype, "getFlowType").mockImplementation(() => FlowType.CROSS_PULL_REQUEST); - const jobSummaryService = Container.get(JobSummaryService); - await jobSummaryService.generateSummary( - { - checkoutInfo, - artifactUploadResults, - executionResult: { before: executionResult, after: executionResult, commands: executionResult }, - }, - prePostResult, - prePostResult - ); - - const expected = readFileSync( - path.join(__dirname, "expected-summary"), - "utf8" - ).replace( - /\${{ PACKAGE_NAME }}/, - `${process.env.npm_package_name}` - ); - expect(readFileSync(filename, "utf8")).toBe(expected); -}); - -test("branch flow", async () => { - jest.spyOn(ConfigurationService.prototype, "getFlowType").mockImplementation(() => FlowType.BRANCH); - const jobSummaryService = Container.get(JobSummaryService); - await jobSummaryService.generateSummary( - { - checkoutInfo, - artifactUploadResults, - executionResult: { before: executionResult, after: executionResult, commands: executionResult }, - }, - prePostResult, - prePostResult - ); - - expect(readFileSync(filename, "utf8")).toBe(""); -}); diff --git a/test/unitary/service/logger/cli-logger-service.test.ts b/test/unitary/service/logger/cli-logger-service.test.ts deleted file mode 100644 index bed1f927..00000000 --- a/test/unitary/service/logger/cli-logger-service.test.ts +++ /dev/null @@ -1,106 +0,0 @@ -import "reflect-metadata"; -import { CLILoggerService } from "@bc/service/logger/cli-logger-service"; -import { Logger } from "@bc/service/logger/logger"; -import { defaultInputValues, LoggerLevel } from "@bc/domain/inputs"; -import { InputService } from "@bc/service/inputs/input-service"; - -jest.mock("@bc/service/logger/logger"); - -describe("cli logger service", () => { - test("info", () => { - // Arrange - const loggerService = new CLILoggerService(); - - // Act - loggerService.info("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(1); - expect(Logger.prototype.log).toBeCalledWith("[INFO]", "whatever the message"); - }); - - test.each([ - ["logger level is trace", LoggerLevel.TRACE, 1, ["[TRACE]", "whatever the message"]], - ["logger level is not trace", LoggerLevel.INFO, 0, []], - ])("trace - %p", (_title: string, loggerLevel: LoggerLevel, numCalls: number, args: string[]) => { - jest.spyOn(InputService.prototype, "inputs", "get").mockReturnValueOnce({...defaultInputValues, loggerLevel}); - - // Arrange - const loggerService = new CLILoggerService(); - - // Act - loggerService.trace("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(numCalls); - if (args.length > 0) { - expect(Logger.prototype.log).toBeCalledWith(...args); - } - }); - - test("warn", () => { - // Arrange - const loggerService = new CLILoggerService(); - - // Act - loggerService.warn("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(1); - expect(Logger.prototype.log).toBeCalledWith("[WARN]", "whatever the message"); - }); - - test.each([ - ["logger level is debug", LoggerLevel.DEBUG, 1, ["[DEBUG]", "whatever the message"]], - ["logger level is not debug", LoggerLevel.INFO, 0, []], - ])("debug - %p", (_title: string, loggerLevel: LoggerLevel, numCalls: number, args: string[]) => { - jest.spyOn(InputService.prototype, "inputs", "get").mockReturnValueOnce({...defaultInputValues, loggerLevel}); - - // Arrange - const loggerService = new CLILoggerService(); - - // Act - loggerService.debug("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(numCalls); - if (args.length > 0) { - expect(Logger.prototype.log).toBeCalledWith(...args); - } - }); - - test("error", () => { - // Arrange - const loggerService = new CLILoggerService(); - - // Act - loggerService.error("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(1); - expect(Logger.prototype.log).toBeCalledWith("[ERROR]", "whatever the message"); - }); - - test("startGroup", () => { - // Arrange - const loggerService = new CLILoggerService(); - - // Act - loggerService.startGroup("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(1); - expect(Logger.prototype.log).toBeCalledWith("#", "whatever the message"); - }); - - test("endGroup", () => { - // Arrange - const loggerService = new CLILoggerService(); - - // Act - loggerService.endGroup(); - - // Assert - expect(Logger.prototype.emptyLine).toHaveBeenCalledTimes(1); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/logger/github-action-logger-service.test.ts b/test/unitary/service/logger/github-action-logger-service.test.ts deleted file mode 100644 index b9a0e07c..00000000 --- a/test/unitary/service/logger/github-action-logger-service.test.ts +++ /dev/null @@ -1,112 +0,0 @@ -import "reflect-metadata"; -import { GithubActionLoggerService } from "@bc/service/logger/github-action-logger-service"; -import * as core from "@actions/core"; -import { Logger } from "@bc/service/logger/logger"; -import { defaultInputValues, LoggerLevel } from "@bc/domain/inputs"; -import { InputService } from "@bc/service/inputs/input-service"; - -jest.mock("@actions/core"); -jest.mock("@bc/service/logger/logger"); - - -describe("cli logger service", () => { - test("info", () => { - // Arrange - const loggerService = new GithubActionLoggerService(); - - // Act - loggerService.info("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(1); - expect(Logger.prototype.log).toBeCalledWith("[INFO]", "whatever the message"); - }); - - test.each([ - ["logger level is trace", LoggerLevel.TRACE, 1, ["[TRACE]", "whatever the message"]], - ["logger level is not trace", LoggerLevel.INFO, 0, []], - ])("trace - %p", (_title: string, loggerLevel: LoggerLevel, numCalls: number, args: string[]) => { - jest.spyOn(InputService.prototype, "inputs", "get").mockReturnValueOnce({...defaultInputValues, loggerLevel}); - - // Arrange - const loggerService = new GithubActionLoggerService(); - - - // Act - loggerService.trace("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(numCalls); - if (args.length > 0) { - expect(Logger.prototype.log).toBeCalledWith(...args); - } - }); - - test("warn", () => { - // Arrange - const loggerService = new GithubActionLoggerService(); - - // Act - loggerService.warn("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(1); - expect(Logger.prototype.log).toBeCalledWith("[WARN]", "whatever the message"); - }); - - test.each([ - ["logger level is debug", LoggerLevel.DEBUG, 1, ["[DEBUG]", "whatever the message"]], - ["logger level is not debug", LoggerLevel.INFO, 0, []], - ])("debug - %p", (_title: string, loggerLevel: LoggerLevel, numCalls: number, args: string[]) => { - jest.spyOn(InputService.prototype, "inputs", "get").mockReturnValueOnce({...defaultInputValues, loggerLevel}); - - // Arrange - const loggerService = new GithubActionLoggerService(); - - // Act - loggerService.debug("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(numCalls); - if (args.length > 0) { - expect(Logger.prototype.log).toBeCalledWith(...args); - } - }); - - test("error", () => { - // Arrange - const loggerService = new GithubActionLoggerService(); - - // Act - loggerService.error("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(1); - expect(Logger.prototype.log).toBeCalledWith("[ERROR]", "whatever the message"); - }); - - test("startGroup", () => { - // Arrange - const loggerService = new GithubActionLoggerService(); - - // Act - loggerService.startGroup("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(0); - expect(core.startGroup).toHaveBeenCalledTimes(1); - expect(core.startGroup).toHaveBeenCalledWith("whatever the message"); - }); - - test("endGroup", () => { - // Arrange - const loggerService = new GithubActionLoggerService(); - - // Act - loggerService.endGroup(); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(0); - expect(core.endGroup).toHaveBeenCalledTimes(1); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/logger/logger-service-factory.test.ts b/test/unitary/service/logger/logger-service-factory.test.ts deleted file mode 100644 index c418e15a..00000000 --- a/test/unitary/service/logger/logger-service-factory.test.ts +++ /dev/null @@ -1,48 +0,0 @@ -import "reflect-metadata"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { CLILoggerService } from "@bc/service/logger/cli-logger-service"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { GithubActionLoggerService } from "@bc/service/logger/github-action-logger-service"; -import { Container } from "typedi"; -import { constants } from "@bc/domain/constants"; - -describe("logger factory getInstance", () => { - beforeEach(() => { - Container.reset(); - }); - - test("CLI", () => { - // Arrange - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - - // Act - const result = Container.get(LoggerService).logger; - - // Assert - expect(result).toBeInstanceOf(CLILoggerService); - }); - - test("Github", () => { - // Arrange - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - - // Act - const result = Container.get(LoggerService).logger; - - // Assert - expect(result).toBeInstanceOf(GithubActionLoggerService); - }); - - test("Error", () => { - // Arrange - Container.set(constants.CONTAINER.ENTRY_POINT, 3); - - // Act - try { - Container.get(LoggerService).logger; - expect(true).toBe(false); - } catch (ex: unknown) { - expect((ex as Error).message).toBe("No LoggerService defined for 3"); - } - }); -}); diff --git a/test/unitary/service/logger/logger.test.ts b/test/unitary/service/logger/logger.test.ts deleted file mode 100644 index 9fb635f4..00000000 --- a/test/unitary/service/logger/logger.test.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Logger } from "@bc/service/logger/logger"; - -/* eslint-disable no-console */ -console.log = jest.fn(); - -describe("Logger.log", () => { - test("prefix", () => { - // Arrange - const logger = new Logger(); - // Act - logger.log("A"); - - // Arrange - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.log).toBeCalledWith("A"); - }); - - test("prefix and 1 message", () => { - // Arrange - const logger = new Logger(); - // Act - logger.log("A", "B"); - - // Arrange - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.log).toBeCalledWith("A", "B"); - }); - - test("prefix and 2 messages", () => { - // Arrange - const logger = new Logger(); - // Act - logger.log("A", "B", "C"); - - // Arrange - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.log).toBeCalledWith("A", "B", "C"); - }); -}); -describe("Logger.emptyLine", () => { - test("ok", () => { - // Arrange - const logger = new Logger(); - // Act - logger.emptyLine(); - - // Arrange - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.log).toBeCalledWith("", ""); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/pre-post/post.test.ts b/test/unitary/service/pre-post/post.test.ts deleted file mode 100644 index 6a3ee8e1..00000000 --- a/test/unitary/service/pre-post/post.test.ts +++ /dev/null @@ -1,155 +0,0 @@ -import "reflect-metadata"; -import { ExecuteCommandService } from "@bc/service/command/execute-command-service"; -import { PostExecutor } from "@bc/service/pre-post/post"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import * as core from "@actions/core"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; - -// just for initialization otherwise not relevant to testing -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); -// disable logs -jest.spyOn(global.console, "log"); -jest.spyOn(core, "startGroup").mockImplementation(() => undefined); -jest.spyOn(core, "endGroup").mockImplementation(() => undefined); - -const emptyCommandResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - command: "", - result: ExecutionResult.OK, - time: 0, - errorMessage: "" -}; - -describe("On success", () => { - let post: PostExecutor; - - beforeAll(() => { - Container.reset(); - Container.set("post.executionSuccess", true); - }); - - beforeEach(() => { - post = Container.get(PostExecutor); - }); - - test.each([ - ["single command", ["cmd"], ["cmd"]], - ["multiple commands", ["cmd1", "cmd2"], ["cmd1", "cmd2"]], - ])("No always: %p", async (_title: string, cmds: string[], executedCmds: string[]) => { - jest.spyOn(ConfigurationService.prototype, "getPost").mockImplementationOnce(() => { - return { - success: cmds, - }; - }); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementationOnce(async (_cmd: string, _cwd?: string) => emptyCommandResult); - await post.run(); - expect(execSpy).toHaveBeenCalledTimes(executedCmds.length); - executedCmds.forEach(cmd => { - expect(execSpy).toHaveBeenCalledWith(cmd, process.cwd()); - }); - }); - - test.each([ - ["single command", ["cmd"], ["cmd"]], - ["multiple commands", ["cmd1", "cmd2"], ["cmd1", "cmd2"]], - ])("With always: %p", async (_title: string, cmds: string[], executedCmds: string[]) => { - jest.spyOn(ConfigurationService.prototype, "getPost").mockImplementationOnce(() => { - return { - success: cmds, - always: cmds, - }; - }); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementationOnce(async (_cmd: string, _cwd?: string) => emptyCommandResult); - await post.run(); - expect(execSpy).toHaveBeenCalledTimes(executedCmds.length * 2); - [...executedCmds, ...executedCmds].forEach(cmd => { - expect(execSpy).toHaveBeenCalledWith(cmd, process.cwd()); - }); - }); - - test("no success", async () => { - jest.spyOn(ConfigurationService.prototype, "getPost").mockImplementationOnce(() => { - return { - failure: ["cmd"], - }; - }); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementationOnce(async (_cmd: string, _cwd?: string) => emptyCommandResult); - await post.run(); - expect(execSpy).toHaveBeenCalledTimes(0); - }); -}); - -describe("On failure", () => { - let post: PostExecutor; - - beforeAll(() => { - Container.reset(); - Container.set("post.executionSuccess", false); - }); - - beforeEach(() => { - post = Container.get(PostExecutor); - }); - - test.each([ - ["single command", ["cmd"], ["cmd"]], - ["multiple commands", ["cmd1", "cmd2"], ["cmd1", "cmd2"]], - ])("No always: %p", async (_title: string, cmds: string[], executedCmds: string[]) => { - jest.spyOn(ConfigurationService.prototype, "getPost").mockImplementationOnce(() => { - return { - failure: cmds, - }; - }); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementationOnce(async (_cmd: string, _cwd?: string) => emptyCommandResult); - await post.run(); - expect(execSpy).toHaveBeenCalledTimes(executedCmds.length); - executedCmds.forEach(cmd => { - expect(execSpy).toHaveBeenCalledWith(cmd, process.cwd()); - }); - }); - - test.each([ - ["single command", ["cmd"], ["cmd"]], - ["multiple commands", ["cmd1", "cmd2"], ["cmd1", "cmd2"]], - ])("With always: %p", async (_title: string, cmds: string[], executedCmds: string[]) => { - jest.spyOn(ConfigurationService.prototype, "getPost").mockImplementationOnce(() => { - return { - failure: cmds, - always: cmds, - }; - }); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementationOnce(async (_cmd: string, _cwd?: string) => emptyCommandResult); - - await post.run(); - expect(execSpy).toHaveBeenCalledTimes(executedCmds.length * 2); - [...executedCmds, ...executedCmds].forEach(cmd => { - expect(execSpy).toHaveBeenCalledWith(cmd, process.cwd()); - }); - }); - - test("no failure", async () => { - jest.spyOn(ConfigurationService.prototype, "getPost").mockImplementationOnce(() => { - return { - success: ["cmd"], - }; - }); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementationOnce(async (_cmd: string, _cwd?: string) => emptyCommandResult); - - await post.run(); - expect(execSpy).toHaveBeenCalledTimes(0); - }); -}); - -test("no post", async () => { - jest.spyOn(ConfigurationService.prototype, "getPost").mockImplementationOnce(() => { - return {}; - }); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementationOnce(async (_cmd: string, _cwd?: string) => emptyCommandResult); - const post = Container.get(PostExecutor); - await post.run(); - expect(execSpy).toHaveBeenCalledTimes(0); -}); diff --git a/test/unitary/service/pre-post/pre.test.ts b/test/unitary/service/pre-post/pre.test.ts deleted file mode 100644 index e0570418..00000000 --- a/test/unitary/service/pre-post/pre.test.ts +++ /dev/null @@ -1,49 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { PreExecutor } from "@bc/service/pre-post/pre"; -import { Pre } from "@kie/build-chain-configuration-reader"; -import Container from "typedi"; -import { ExecuteCommandService } from "@bc/service/command/execute-command-service"; -import * as core from "@actions/core"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; - -// just for initialization otherwise not relevant to testing -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - -// disable logs -jest.spyOn(global.console, "log"); -jest.spyOn(core, "startGroup").mockImplementation(() => undefined); -jest.spyOn(core, "endGroup").mockImplementation(() => undefined); - -const emptyCommandResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - command: "", - result: ExecutionResult.OK, - time: 0, - errorMessage: "" -}; - -test.each([ - ["single command", ["cmd"], ["cmd"]], - ["multiple commands", ["cmd1", "cmd2"], ["cmd1", "cmd2"]], -])("%p", async (_title: string, cmds: Pre, executedCmds: string[]) => { - jest.spyOn(ConfigurationService.prototype, "getPre").mockImplementation(() => cmds); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementation(async (_cmd: string, _cwd?: string) => emptyCommandResult); - const pre = Container.get(PreExecutor); - await pre.run(); - expect(execSpy).toHaveBeenCalledTimes(executedCmds.length); - executedCmds.forEach(cmd => { - expect(execSpy).toHaveBeenCalledWith(cmd, process.cwd()); - }); -}); - -test("no pre", async () => { - jest.spyOn(ConfigurationService.prototype, "getPre").mockImplementation(() => undefined); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementation(async (_cmd: string, _cwd?: string) => emptyCommandResult); - const pre = Container.get(PreExecutor); - await pre.run(); - expect(execSpy).toHaveBeenCalledTimes(0); -}); diff --git a/test/unitary/util/date.test.ts b/test/unitary/util/date.test.ts deleted file mode 100644 index e87c5a4f..00000000 --- a/test/unitary/util/date.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { hrtimeToMs } from "@bc/utils/date"; - -describe("hrtimeToMs", () => { - test("start no end", () => { - // Arrange - jest.useFakeTimers(); - const start: [number, number] = [1000000, 5]; - - // Act - const result = hrtimeToMs(start); - - // Assert - expect(result).toBe(-1000000000.000005); - }); - - test("start and end", () => { - // Arrange - jest.useFakeTimers(); - const start: [number, number] = [1000000, 5]; - const end: [number, number] = [1000000, 5]; - - // Act - const result = hrtimeToMs(start, end); - - // Assert - expect(result).toBe(1000000000.000005); - }); -}); \ No newline at end of file diff --git a/test/unitary/util/log.test.ts b/test/unitary/util/log.test.ts deleted file mode 100644 index 3fb6122e..00000000 --- a/test/unitary/util/log.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { logAndThrow } from "@bc/utils/log"; -import Container from "typedi"; - -// disable logs -jest.spyOn(global.console, "log"); - -test.each([ - ["cli", EntryPoint.CLI], - ["action", EntryPoint.GITHUB_EVENT], -])("log and throw: %p", (_title: string, entryPoint: EntryPoint) => { - Container.set(constants.CONTAINER.ENTRY_POINT, entryPoint); - const spy = jest.spyOn(BaseLoggerService.prototype, "error"); - expect(() => logAndThrow("message")).toThrowError(); - expect(spy).toHaveBeenCalledTimes(1); - expect(spy).toHaveBeenCalledWith("message"); -}); diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 959ba7c8..00000000 --- a/tsconfig.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "ES2020", - /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ - "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - - /* Modules */ - "module": "commonjs", - /* Specify what module code is generated. */ - // "rootDir": "./", /* Specify the root folder within your source files. */ - "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ - "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - "paths": { - "@bc/*": [ - "./src/*" - ] - }, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - "outDir": "./build", - /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - "importHelpers": false, - /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, - /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, - /* Ensure that casing is correct in imports. */ - - /* Type Checking */ - "strict": true, - /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true - /* Skip type checking all .d.ts files. */ - } -}