[
  {
    "path": ".clang-format",
    "content": "---\nLanguage: Cpp\n# BasedOnStyle:  LLVM\nAccessModifierOffset: -2\nAlignAfterOpenBracket: BlockIndent\nAlignArrayOfStructures: None\nAlignConsecutiveAssignments:\n  Enabled: false\n  AcrossEmptyLines: false\n  AcrossComments: false\n  AlignCompound: false\n  PadOperators: true\nAlignConsecutiveBitFields:\n  Enabled: false\n  AcrossEmptyLines: false\n  AcrossComments: false\n  AlignCompound: false\n  PadOperators: false\nAlignConsecutiveDeclarations:\n  Enabled: false\n  AcrossEmptyLines: false\n  AcrossComments: false\n  AlignCompound: false\n  PadOperators: false\nAlignConsecutiveMacros:\n  Enabled: false\n  AcrossEmptyLines: false\n  AcrossComments: false\n  AlignCompound: false\n  PadOperators: false\nAlignEscapedNewlines: Right\nAlignOperands: Align\nAlignTrailingComments:\n  Kind: Always\n  OverEmptyLines: 0\nAllowAllArgumentsOnNextLine: true\nAllowAllParametersOfDeclarationOnNextLine: true\nAllowShortBlocksOnASingleLine: Never\nAllowShortCaseLabelsOnASingleLine: false\nAllowShortEnumsOnASingleLine: true\nAllowShortFunctionsOnASingleLine: None\nAllowShortIfStatementsOnASingleLine: Never\nAllowShortLambdasOnASingleLine: All\nAllowShortLoopsOnASingleLine: false\nAlwaysBreakAfterDefinitionReturnType: None\nAlwaysBreakAfterReturnType: None\nAlwaysBreakBeforeMultilineStrings: false\nAlwaysBreakTemplateDeclarations: MultiLine\nAttributeMacros:\n  - __capability\nBinPackArguments: true\nBinPackParameters: true\nBitFieldColonSpacing: Both\nBraceWrapping:\n  AfterCaseLabel: false\n  AfterClass: false\n  AfterControlStatement: Never\n  AfterEnum: false\n  AfterExternBlock: false\n  AfterFunction: false\n  AfterNamespace: false\n  AfterObjCDeclaration: false\n  AfterStruct: false\n  AfterUnion: false\n  BeforeCatch: false\n  BeforeElse: false\n  BeforeLambdaBody: false\n  BeforeWhile: false\n  IndentBraces: false\n  SplitEmptyFunction: true\n  SplitEmptyRecord: true\n  SplitEmptyNamespace: true\nBreakAfterAttributes: Never\nBreakAfterJavaFieldAnnotations: false\nBreakArrays: true\nBreakBeforeBinaryOperators: None\nBreakBeforeConceptDeclarations: Always\nBreakBeforeBraces: Attach\nBreakBeforeInlineASMColon: OnlyMultiline\nBreakBeforeTernaryOperators: true\nBreakConstructorInitializers: BeforeColon\nBreakInheritanceList: BeforeColon\nBreakStringLiterals: true\nColumnLimit: 120\nCommentPragmas: '^ IWYU pragma:'\nCompactNamespaces: false\nConstructorInitializerIndentWidth: 4\nContinuationIndentWidth: 4\nCpp11BracedListStyle: true\nDerivePointerAlignment: false\nDisableFormat: false\nEmptyLineAfterAccessModifier: Never\nEmptyLineBeforeAccessModifier: LogicalBlock\nExperimentalAutoDetectBinPacking: false\nFixNamespaceComments: true\nForEachMacros:\n  - foreach\n  - Q_FOREACH\n  - BOOST_FOREACH\nIfMacros:\n  - KJ_IF_MAYBE\nIncludeBlocks: Preserve\nIncludeCategories:\n  - Regex: '^\"(llvm|llvm-c|clang|clang-c)/'\n    Priority: 2\n    SortPriority: 0\n    CaseSensitive: false\n  - Regex: '^(<|\"(gtest|gmock|isl|json)/)'\n    Priority: 3\n    SortPriority: 0\n    CaseSensitive: false\n  - Regex: '.*'\n    Priority: 1\n    SortPriority: 0\n    CaseSensitive: false\nIncludeIsMainRegex: '(Test)?$'\nIncludeIsMainSourceRegex: ''\nIndentAccessModifiers: false\nIndentCaseBlocks: false\nIndentCaseLabels: false\nIndentExternBlock: AfterExternBlock\nIndentGotoLabels: true\nIndentPPDirectives: None\nIndentRequiresClause: true\nIndentWidth: 4\nIndentWrappedFunctionNames: false\nInsertBraces: false\nInsertNewlineAtEOF: true\nInsertTrailingCommas: None\nIntegerLiteralSeparator:\n  Binary: 0\n  BinaryMinDigits: 0\n  Decimal: 0\n  DecimalMinDigits: 0\n  Hex: 0\n  HexMinDigits: 0\nJavaScriptQuotes: Leave\nJavaScriptWrapImports: true\nKeepEmptyLinesAtTheStartOfBlocks: true\nLambdaBodyIndentation: Signature\nLineEnding: DeriveLF\nMacroBlockBegin: ''\nMacroBlockEnd: ''\nMaxEmptyLinesToKeep: 1\nNamespaceIndentation: All\nObjCBinPackProtocolList: Auto\nObjCBlockIndentWidth: 2\nObjCBreakBeforeNestedBlockParam: true\nObjCSpaceAfterProperty: false\nObjCSpaceBeforeProtocolList: true\nPackConstructorInitializers: BinPack\nPenaltyBreakAssignment: 2\nPenaltyBreakBeforeFirstCallParameter: 19\nPenaltyBreakComment: 300\nPenaltyBreakFirstLessLess: 120\nPenaltyBreakOpenParenthesis: 0\nPenaltyBreakString: 1000\nPenaltyBreakTemplateDeclaration: 10\nPenaltyExcessCharacter: 1000000\nPenaltyIndentedWhitespace: 0\nPenaltyReturnTypeOnItsOwnLine: 60\nPointerAlignment: Right\nPPIndentWidth: -1\nQualifierAlignment: Leave\nReferenceAlignment: Pointer\nReflowComments: true\nRemoveBracesLLVM: false\nRemoveSemicolon: false\nRequiresClausePosition: OwnLine\nRequiresExpressionIndentation: OuterScope\nSeparateDefinitionBlocks: Always\nShortNamespaceLines: 1\nSortIncludes: CaseSensitive\nSortJavaStaticImport: Before\nSortUsingDeclarations: LexicographicNumeric\nSpaceAfterCStyleCast: false\nSpaceAfterLogicalNot: false\nSpaceAfterTemplateKeyword: true\nSpaceAroundPointerQualifiers: Default\nSpaceBeforeAssignmentOperators: true\nSpaceBeforeCaseColon: false\nSpaceBeforeCpp11BracedList: false\nSpaceBeforeCtorInitializerColon: true\nSpaceBeforeInheritanceColon: true\nSpaceBeforeParens: ControlStatements\nSpaceBeforeParensOptions:\n  AfterControlStatements: true\n  AfterForeachMacros: true\n  AfterFunctionDefinitionName: false\n  AfterFunctionDeclarationName: false\n  AfterIfMacros: true\n  AfterOverloadedOperator: false\n  AfterRequiresInClause: false\n  AfterRequiresInExpression: false\n  BeforeNonEmptyParentheses: false\nSpaceBeforeRangeBasedForLoopColon: true\nSpaceBeforeSquareBrackets: false\nSpaceInEmptyBlock: false\nSpaceInEmptyParentheses: false\nSpacesBeforeTrailingComments: 1\nSpacesInAngles: Never\nSpacesInConditionalStatement: false\nSpacesInContainerLiterals: true\nSpacesInCStyleCastParentheses: false\nSpacesInLineCommentPrefix:\n  Minimum: 1\n  Maximum: -1\nSpacesInParentheses: false\nSpacesInSquareBrackets: false\nStandard: Latest\nStatementAttributeLikeMacros:\n  - Q_EMIT\nStatementMacros:\n  - Q_UNUSED\n  - QT_REQUIRE_VERSION\nTabWidth: 4\nUseTab: Always\nWhitespaceSensitiveMacros:\n  - BOOST_PP_STRINGIZE\n  - CF_SWIFT_NAME\n  - NS_SWIFT_NAME\n  - PP_STRINGIZE\n  - STRINGIZE\n...\n\n"
  },
  {
    "path": ".github/actions/download-onnxruntime-linux.sh",
    "content": "#!/usr/bin/env bash\n\ncd \"$(dirname \"$0\")\" || exit\n\necho\necho \"Select onnxruntime version to download:\"\nAUTH_HEADER=\"\"\nif [ -n \"$GITHUB_TOKEN\" ]; then\n  AUTH_HEADER=\"-H \\\"Authorization: Bearer $GITHUB_TOKEN\\\"\"\nfi\n\nRAW_LIST=$(eval curl -s -H \"Accept: application/vnd.github+json\" \\\n  -H \"X-GitHub-Api-Version: 2022-11-28\" \\\n  $AUTH_HEADER \\\n  https://api.github.com/repos/microsoft/onnxruntime/releases/latest \\\n  | grep browser_download_url \\\n  | grep -E \"onnxruntime-linux-x64-([.0-9]+)tgz\" \\\n  | awk '{print $2}' \\\n  | tr -d '\"')\n\nitem=${RAW_LIST[0]}\n\nFILENAME=$(basename \"$item\")\n\necho\necho \"Downloading $item\"\necho\n\nwget -q \"$item\"\n\nsudo mkdir -p /usr/local/onnxruntime\nsudo tar vzxf \"$FILENAME\" -C /usr/local/onnxruntime --strip-components=1\nsudo sh -c 'echo \"/usr/local/onnxruntime/lib\" > /etc/ld.so.conf.d/onnxruntime.conf'\nsudo ldconfig\n\nrm -f \"$FILENAME\"\n\necho\necho \"Done\"\necho\n"
  },
  {
    "path": ".github/actions/download-onnxruntime-osx.sh",
    "content": "#!/usr/bin/env bash\n\ncd \"$(dirname \"$0\")\" || exit\n\necho\necho \"Select onnxruntime version to download:\"\nAUTH_HEADER=\"\"\nif [ -n \"$GITHUB_TOKEN\" ]; then\n  AUTH_HEADER=\"-H \\\"Authorization: Bearer $GITHUB_TOKEN\\\"\"\nfi\n\nRAW_LIST=$(eval curl -s -H \"Accept: application/vnd.github+json\" \\\n  -H \"X-GitHub-Api-Version: 2022-11-28\" \\\n  $AUTH_HEADER \\\n  https://api.github.com/repos/microsoft/onnxruntime/releases/latest \\\n  | grep browser_download_url \\\n  | grep -E \"onnxruntime-osx-arm64-([.0-9]+)tgz\" \\\n  | awk '{print $2}' \\\n  | tr -d '\"')\n\nitem=${RAW_LIST[0]}\n\n# check item is not empty\nif [ -z \"$item\" ]; then\n  echo \"Error: Could not find onnxruntime download link.\"\n  exit 1\nfi\n\nFILENAME=$(basename \"$item\")\n\necho\necho \"Downloading $item\"\necho\n\nwget -q \"$item\"\n\nsudo mkdir -p /usr/local/onnxruntime\nsudo tar vzxf \"$FILENAME\" -C /usr/local/onnxruntime --strip-components=2\n\nrm -f \"$FILENAME\"\n\necho\necho \"Done\"\necho\n\nexit 0\n"
  },
  {
    "path": ".github/actions/download-onnxruntime-windows.sh",
    "content": "#!/usr/bin/env bash\n\ncd \"$(dirname \"$0\")\" || exit\n\necho\necho \"Select onnxruntime version to download:\"\nRAW_LIST=$(curl -s -H \"Accept: application/vnd.github+json\" \\\n  -H \"X-GitHub-Api-Version: 2022-11-28\" \\\n  https://api.github.com/repos/microsoft/onnxruntime/releases/latest \\\n  | grep browser_download_url \\\n  | grep -E \"onnxruntime-win-x64-([.0-9]+)zip\" \\\n  | awk '{print $2}' \\\n  | tr -d '\"')\n\nitem=${RAW_LIST[0]}\n\nFILENAME=$(basename \"$item\")\nDIRNAME=\"${FILENAME%.zip}\"\n\necho\necho \"Downloading $item\"\necho\n\ncurl -q --output \"$FILENAME\" -L \"$item\"\n\nunzip \"$FILENAME\"\nmv ${DIRNAME} C:/msys64/usr/local/onnxruntime\nls -al C:/msys64/usr/local/onnxruntime\n\nrm -f \"$FILENAME\"\n\necho\necho \"Done\"\necho\n"
  },
  {
    "path": ".github/cache/dependencies-apt/.gitkeep",
    "content": ""
  },
  {
    "path": ".github/dependabot.yml",
    "content": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where the package manifests are located.\n# Please see the documentation for all configuration options:\n# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file\n\nversion: 2\nupdates:\n  - package-ecosystem: \"cmake\" # See documentation for possible values\n    directory: \"/\" # Location of package manifests\n    schedule:\n      interval: \"weekly\"\n"
  },
  {
    "path": ".github/workflows/cmake-linux.yml",
    "content": "# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml\nname: CMake on Linux\npermissions:\n  contents: read\n  pull-requests: write\n\non:\n  push:\n    branches: [ \"*\" ]\n  pull_request:\n    branches: [ \"*\" ]\n\njobs:\n  prepare-asset:\n    if: ${{ !contains(github.event.pull_request.labels.*.name, 'documentation') }}\n    runs-on: ubuntu-latest\n\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          lfs: false\n\n      - name: (Cache) Restore test fixtures\n        id: cache-test-fixtures\n        uses: actions/cache/restore@v5\n        with:\n          path: test/fixture\n          key: test-fixtures-v1\n          lookup-only: true\n\n      - name: Download assets(models)\n        if: steps.cache-test-fixtures.outputs.cache-hit != 'true'\n        shell: bash\n        run: |\n          ./test/fixture/download-test-fixtures.sh\n\n      - name: (Cache) Save test fixtures\n        if: steps.cache-test-fixtures.outputs.cache-hit != 'true'\n        uses: actions/cache/save@v5\n        with:\n          path: test/fixture\n          key: test-fixtures-v1\n\n  prepare-apt:\n    if: ${{ !contains(github.event.pull_request.labels.*.name, 'documentation') }}\n    runs-on: ${{ matrix.os }}\n\n    strategy:\n      fail-fast: false\n      matrix:\n        os: [ ubuntu-22.04, ubuntu-24.04 ]\n        build_type: [ Debug ]\n\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          lfs: false\n\n      - name: (Cache) Restore dependencies(apt)\n        id: cache-dependencies-apt\n        uses: actions/cache/restore@v5\n        with:\n          path: .github/cache/dependencies-apt\n          key: ${{ matrix.os }}-dependencies-apt-v1\n          lookup-only: true\n\n      - name: Prepare container(apt download)\n        shell: bash\n        if: steps.cache-dependencies-apt.outputs.cache-hit != 'true' && (startsWith(matrix.os, 'debian-') || startsWith(matrix.os, 'ubuntu-'))\n        run: |\n          cat /etc/os-release\n          sudo apt-get update -qq\n          sudo apt-get install -yq --download-only build-essential clang cmake libboost-all-dev libssl-dev libgtest-dev\n          cp /var/cache/apt/archives/*.deb .github/cache/dependencies-apt/\n\n      - name: (Cache) Save dependencies(apt)\n        if: steps.cache-dependencies-apt.outputs.cache-hit != 'true' && (startsWith(matrix.os, 'debian-') || startsWith(matrix.os, 'ubuntu-'))\n        uses: actions/cache/save@v5\n        with:\n          path: .github/cache/dependencies-apt\n          key: ${{ matrix.os }}-dependencies-apt-v1\n\n  build:\n    runs-on: ${{ matrix.os }}\n    needs: [ \"prepare-asset\", \"prepare-apt\" ]\n\n    strategy:\n      fail-fast: false\n      matrix:\n        os: [ ubuntu-22.04, ubuntu-24.04 ]\n        c_compiler: [ gcc, clang ]\n        build_type: [ Debug ]\n        include:\n          - c_compiler: gcc\n            cpp_compiler: g++\n          - c_compiler: clang\n            cpp_compiler: clang++\n\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          lfs: false\n\n      - name: (Cache) Restore dependencies(apt)\n        id: cache-dependencies-apt\n        uses: actions/cache/restore@v5\n        with:\n          path: .github/cache/dependencies-apt\n          key: ${{ matrix.os }}-dependencies-apt-v1\n          fail-on-cache-miss: true\n\n      - name: Prepare container(apt)\n        shell: bash\n        if: startsWith(matrix.os, 'debian-') || startsWith(matrix.os, 'ubuntu-')\n        run: |\n          cat /etc/os-release\n          sudo dpkg -i .github/cache/dependencies-apt/*.deb\n\n      - name: Prepare container(onnxruntime)\n        shell: bash\n        run: |\n          ./.github/actions/download-onnxruntime-linux.sh\n\n      - name: Set reusable strings\n        # Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.\n        id: strings\n        shell: bash\n        run: |\n          echo \"build-output-dir=${{ github.workspace }}/build\" >> \"$GITHUB_OUTPUT\"\n\n      - name: Configure CMake\n        # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.\n        # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type\n        run: >\n          cmake -B ${{ steps.strings.outputs.build-output-dir }}\n          -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}\n          -DCMAKE_C_COMPILER=${{ matrix.c_compiler }}\n          -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}\n          -S ${{ github.workspace }}\n\n      - name: Build\n        # Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).\n        run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }} --parallel 4\n\n      - name: (Cache) Restore test fixtures\n        uses: actions/cache/restore@v5\n        with:\n          path: test/fixture\n          key: test-fixtures-v1\n          fail-on-cache-miss: true\n\n      - name: Test\n        working-directory: ${{ steps.strings.outputs.build-output-dir }}\n        # Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).\n        # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail\n        run: ctest --extra-verbose --build-config ${{ matrix.build_type }}\n"
  },
  {
    "path": ".github/workflows/cmake-macos.yml",
    "content": "# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml\nname: CMake on MacOS\npermissions:\n  contents: read\n  pull-requests: write\n\non:\n  push:\n    branches: [ \"*\" ]\n  pull_request:\n    branches: [ \"*\" ]\n\njobs:\n  build:\n    if: ${{ !contains(github.event.pull_request.labels.*.name, 'documentation') }}\n    runs-on: ${{ matrix.os }}\n\n    strategy:\n      fail-fast: false\n\n      matrix:\n        os: [ macos-latest ]\n        build_type: [ Debug ]\n        c_compiler: [ clang ]\n        include:\n          - c_compiler: clang\n            cpp_compiler: clang++\n\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          lfs: false\n\n      - name: Prepare container(homebrew)\n        shell: bash\n        run: |\n          brew update\n          HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 brew install cmake boost openssl googletest\n          ./.github/actions/download-onnxruntime-osx.sh || HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 brew install onnxruntime\n\n      - name: Set reusable strings\n        # Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.\n        id: strings\n        shell: bash\n        run: |\n          echo \"build-output-dir=${{ github.workspace }}/build\" >> \"$GITHUB_OUTPUT\"\n\n      - name: Configure CMake\n        # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.\n        # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type\n        run: >\n          cmake -B ${{ steps.strings.outputs.build-output-dir }}\n          -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}\n          -DCMAKE_C_COMPILER=${{ matrix.c_compiler }}\n          -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}\n          -S ${{ github.workspace }}\n\n      - name: Build\n        # Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).\n        run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }} --parallel 4\n\n      - name: (Cache) Restore test fixtures\n        uses: actions/cache/restore@v5\n        with:\n          path: test/fixture\n          key: test-fixtures-v1\n          fail-on-cache-miss: true\n\n      - name: Test\n        working-directory: ${{ steps.strings.outputs.build-output-dir }}\n        # Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).\n        # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail\n        run: ctest --extra-verbose --build-config ${{ matrix.build_type }}\n"
  },
  {
    "path": ".github/workflows/cmake-windows.yml",
    "content": "# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml\nname: CMake on Windows\npermissions:\n  contents: read\n  pull-requests: write\n\non:\n  push:\n    branches: [ \"*\" ]\n  pull_request:\n    branches: [ \"*\" ]\n\njobs:\n  prepare-asset:\n    if: ${{ !contains(github.event.pull_request.labels.*.name, 'documentation') }}\n    runs-on: windows-latest\n\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          lfs: false\n\n      - name: (Cache) Restore test fixtures\n        id: cache-test-fixtures\n        uses: actions/cache/restore@v5\n        with:\n          path: test/fixture\n          key: test-fixtures-windows-v1\n          lookup-only: true\n\n      - name: Download assets(models)\n        if: steps.cache-test-fixtures.outputs.cache-hit != 'true'\n        shell: bash\n        run: |\n          ./test/fixture/download-test-fixtures.sh\n\n      - name: (Cache) Save test fixtures\n        if: steps.cache-test-fixtures.outputs.cache-hit != 'true'\n        uses: actions/cache/save@v5\n        with:\n          path: test/fixture\n          key: test-fixtures-windows-v1\n\n  prepare-vcpkg:\n    if: ${{ !contains(github.event.pull_request.labels.*.name, 'documentation') }}\n    runs-on: windows-latest\n    steps:\n      - name: (Cache) Restore vcpkg cache\n        id: cache-windows-vcpkg\n        uses: actions/cache/restore@v5\n        with:\n          path: C:\\vcpkg\\installed\n          key: windows-vcpkg-v4\n          lookup-only: true\n\n      - name: Install dependencies with vcpkg\n        if: steps.cache-windows-vcpkg.outputs.cache-hit != 'true'\n        run: |\n          C:\\vcpkg\\vcpkg.exe install boost-serialization boost-system boost-filesystem boost-program-options boost-thread boost-asio boost-beast gtest\n\n      - name: (Cache) Save vcpkg cache\n        if: steps.cache-windows-vcpkg.outputs.cache-hit != 'true'\n        uses: actions/cache/save@v5\n        with:\n          path: C:\\vcpkg\\installed\n          key: windows-vcpkg-v4\n\n  build:\n    needs: [ \"prepare-asset\", \"prepare-vcpkg\" ]\n    runs-on: windows-latest\n\n    strategy:\n      fail-fast: false\n      matrix:\n        build_type: [ Debug ]\n\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          lfs: false\n\n      - name: (Cache) Restore vcpkg cache\n        id: cache-windows-vcpkg\n        uses: actions/cache/restore@v5\n        with:\n          path: C:\\vcpkg\\installed\n          key: windows-vcpkg-v4\n          fail-on-cache-miss: true\n\n      - name: Install dependencies with MSYS2\n        run: |\n          C:\\msys64\\usr\\bin\\pacman.exe -S --noconfirm mingw-w64-x86_64-pkg-config\n\n      - name: Prepare container(onnxruntime)\n        shell: bash\n        run: |\n          ./.github/actions/download-onnxruntime-windows.sh\n\n      - name: Set reusable strings\n        # Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.\n        id: strings\n        shell: bash\n        run: |\n          echo \"build-output-dir=${{ github.workspace }}/build\" >> \"$GITHUB_OUTPUT\"\n\n      - name: Configure CMake\n        # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.\n        # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type\n        run: >\n          cmake -B ${{ steps.strings.outputs.build-output-dir }}\n          -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}\n          -DPKG_CONFIG_EXECUTABLE:FILEPATH=C:/msys64/mingw64/bin/pkg-config.exe\n          -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake\n          -DVCPKG_FEATURE_FLAGS=binarycaching\n          -S ${{ github.workspace }}\n\n      - name: Build\n        # Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).\n        run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }} --parallel 4\n\n      - name: (Cache) Restore test fixtures\n        uses: actions/cache/restore@v5\n        with:\n          path: test/fixture\n          key: test-fixtures-windows-v1\n          fail-on-cache-miss: true\n\n      - name: Test\n        working-directory: ${{ steps.strings.outputs.build-output-dir }}\n        # Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).\n        # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail\n        run: ctest --extra-verbose --build-config ${{ matrix.build_type }}\n"
  },
  {
    "path": ".github/workflows/codeql.yml",
    "content": "name: \"CodeQL\"\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n  schedule:\n    - cron: '18 0 * * 3'\n\njobs:\n  analyze:\n    if: ${{ !contains(github.event.pull_request.labels.*.name, 'documentation') }}\n    name: Analyze (${{ matrix.language }})\n    runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}\n    permissions:\n      # required for all workflows\n      security-events: write\n\n      # required to fetch internal or private CodeQL packs\n      packages: read\n\n      # only required for workflows in private repositories\n      actions: read\n      contents: read\n\n    strategy:\n      fail-fast: false\n      matrix:\n        include:\n          - language: c-cpp\n            build-mode: autobuild\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n\n      - name: Prepare container(onnxruntime)\n        if: runner.os == 'Linux'\n        shell: bash\n        run: |\n          ./.github/actions/download-onnxruntime-linux.sh\n\n      - name: Prepare container(onnxruntime)\n        if: runner.os == 'macOS'\n        shell: bash\n        run: |\n          HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 brew install cmake boost openssl googletest onnxruntime\n\n      # Initializes the CodeQL tools for scanning.\n      - name: Initialize CodeQL\n        uses: github/codeql-action/init@v4\n        with:\n          languages: ${{ matrix.language }}\n          build-mode: ${{ matrix.build-mode }}\n\n      - name: Perform CodeQL Analysis\n        uses: github/codeql-action/analyze@v4\n        with:\n          category: \"/language:${{matrix.language}}\"\n"
  },
  {
    "path": ".gitignore",
    "content": ".idea/\n.claude/\ncmake-build-debug*/\n.claude/\nCLAUDE.md\n\n*.onnx\n\nbuild/\nTesting/\nsrc/test/gen/\n\n# python\nvenv/\n__pycache__/\n*.py[cod]\n*$py.class\n\n/deploy/build-docker/out/\n"
  },
  {
    "path": "CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 3.22.0)\nproject(onnxruntime_server LANGUAGES CXX)\n\nset(CMAKE_CXX_STANDARD 17)\n\nadd_subdirectory(src)\n\nenable_testing()\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2023 Kibae Shin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# ONNX Runtime Server\n\n[![ONNX Runtime](https://img.shields.io/github/v/release/microsoft/onnxruntime?filter=v1.26.0&label=ONNX%20Runtime)](https://github.com/microsoft/onnxruntime)\n[![CMake on Linux](https://github.com/kibae/onnxruntime-server/actions/workflows/cmake-linux.yml/badge.svg)](https://github.com/kibae/onnxruntime-server/actions/workflows/cmake-linux.yml)\n[![CMake on MacOS](https://github.com/kibae/onnxruntime-server/actions/workflows/cmake-macos.yml/badge.svg)](https://github.com/kibae/onnxruntime-server/actions/workflows/cmake-macos.yml)\n[![CMake on Windows](https://github.com/kibae/onnxruntime-server/actions/workflows/cmake-windows.yml/badge.svg)](https://github.com/kibae/onnxruntime-server/actions/workflows/cmake-windows.yml)\n[![CodeQL](https://github.com/kibae/onnxruntime-server/actions/workflows/codeql.yml/badge.svg)](https://github.com/kibae/onnxruntime-server/actions/workflows/codeql.yml)\n[![License](https://img.shields.io/github/license/kibae/onnxruntime-server)](https://github.com/kibae/onnxruntime-server/blob/main/LICENSE)\n\n- [ONNX: Open Neural Network Exchange](https://onnx.ai/)\n- **The ONNX Runtime Server is a server that provides TCP and HTTP/HTTPS REST APIs for ONNX inference.**\n- ONNX Runtime Server aims to provide simple, high-performance ML inference and a good developer experience.\n    - If you have exported ML models trained in various environments as ONNX files, you can provide inference APIs\n      without writing additional code or\n      metadata. [Just place the ONNX files into the directory structure.](#run-the-server)\n    - Each ONNX session, you can choose to use CPU or CUDA.\n    - Analyze the input/output of ONNX models to provide type/shape information for your collaborators.\n    - Built-in Swagger API documentation makes it easy for collaborators to test ML models through the\n      API. ([API example](https://kibae.github.io/onnxruntime-server/swagger/))\n    - [Ready-to-run Docker images.](#docker) No build required.\n\n----\n\n<!-- TOC -->\n\n- [Build ONNX Runtime Server](#build-onnx-runtime-server)\n    - [Requirements](#requirements)\n        - [Install ONNX Runtime](#install-onnx-runtime)\n        - [Install dependencies](#install-dependencies)\n    - [Compile and Install](#compile-and-install)\n- [Install via a package manager](#install-via-a-package-manager)\n- [Run the server](#run-the-server)\n- [Docker](#docker)\n- [API](#api)\n- [How to use](#how-to-use)\n\n----\n\n# Build ONNX Runtime Server\n\n## Requirements\n\n- [ONNX Runtime](https://onnxruntime.ai/)\n- [Boost](https://www.boost.org/)\n- [CMake](https://cmake.org/), pkg-config\n- CUDA(*optional, for Nvidia GPU support*)\n- OpenSSL(*optional, for HTTPS*)\n\n----\n\n## Install ONNX Runtime\n\n#### Linux\n\n- Use `download-onnxruntime-linux.sh` script\n    - This script downloads the latest version of the binary and install to `/usr/local/onnxruntime`.\n    - Also, add `/usr/local/onnxruntime/lib` to `/etc/ld.so.conf.d/onnxruntime.conf` and run `ldconfig`.\n- Or manually download binary from [ONNX Runtime Releases](https://github.com/microsoft/onnxruntime/releases).\n\n#### Mac OS\n\n```shell\nbrew install onnxruntime\n```\n\n----\n\n## Install dependencies\n\n#### Ubuntu/Debian\n\n```shell\nsudo apt install cmake pkg-config libboost-all-dev libssl-dev\n\n# optional, for running tests\nsudo apt install libgtest-dev\n```\n\n##### (optional) CUDA support (CUDA 12.x/13.x, cuDNN 9.x)\n\n- Follow the instructions below to install the CUDA Toolkit and cuDNN.\n    - [CUDA Toolkit Installation Guide](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html)\n    - [CUDA Download for Ubuntu](https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=deb_network)\n\n```shell\n# CUDA 12\nsudo apt install cuda-toolkit-12 libcudnn9-dev-cuda-12\n# CUDA 13\nsudo apt install cuda-toolkit-13 libcudnn9-dev-cuda-13\n\n# optional, for Nvidia GPU support with Docker\nsudo apt install nvidia-container-toolkit\n```\n\n#### Mac OS\n\n```shell\nbrew install cmake boost openssl\n```\n\n----\n\n## Compile and Install\n\n```shell\ncmake -B build -S . -DCMAKE_BUILD_TYPE=Release\ncmake --build build --parallel\nsudo cmake --install build --prefix /usr/local/onnxruntime-server\n```\n\n----\n\n# Install via a package manager\n\n| OS         | Method | Command                     |\n|------------|--------|-----------------------------|\n| Arch Linux | AUR    | `yay -S onnxruntime-server` |\n\n----\n\n# Run the server\n\n- **You must enter the path option(`--model-dir`) where the models are located.**\n    - The onnx model files must be located in the following path:\n      `${model_dir}/${model_name}/${model_version}/model.onnx` or\n      `${model_dir}/${model_name}/${model_version}.onnx`\n\n| Files in `--model-dir`                                                   | Create session request body                         | Get/Execute session API URL path<br />(after created) |\n|--------------------------------------------------------------------------|-----------------------------------------------------|-------------------------------------------------------|\n| `model_name/model_version/model.onnx` or `model_name/model_version.onnx` | `{\"model\":\"model_name\", \"version\":\"model_version\"}` | `/api/sessions/model_name/model_version`              |\n| `sample/v1/model.onnx` or `sample/v1.onnx`                               | `{\"model\":\"sample\", \"version\":\"v1\"}`                | `/api/sessions/sample/v1`                             |\n| `sample/v2/model.onnx` or `sample/v2.onnx`                               | `{\"model\":\"sample\", \"version\":\"v2\"}`                | `/api/sessions/sample/v2`                             |\n| `other/20200101/model.onnx` or `other/20200101.onnx`                     | `{\"model\":\"other\", \"version\":\"20200101\"}`           | `/api/sessions/other/20200101`                        |\n\n- **You need to enable one of the following backends: TCP, HTTP, or HTTPS.**\n    - If you want to use TCP, you must specify the `--tcp-port` option.\n    - If you want to use HTTP, you must specify the `--http-port` option.\n    - If you want to use HTTPS, you must specify the `--https-port`, `--https-cert` and `--https-key` options.\n    - If you want to use Swagger, you must specify the `--swagger-url-path` option.\n- Use the `-h`, `--help` option to see a full list of options.\n- **All options can be set as environment variables.** This can be useful when operating in a container like Docker.\n    - Normally, command-line options are prioritized over environment variables, but if\n      the `ONNX_SERVER_CONFIG_PRIORITY=env` environment variable exists, environment variables have higher priority.\n      Within a Docker image, environment variables have higher priority.\n\n## Options\n\n| Option                    | Environment                         | Description                                                                                                                                                                                                                                                                                                                                     |\n|---------------------------|-------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `--workers`               | `ONNX_SERVER_WORKERS`               | Worker thread pool size.<br/>Default: `4`                                                                                                                                                                                                                                                                                                       |\n| `--request-payload-limit` | `ONNX_SERVER_REQUEST_PAYLOAD_LIMIT` | HTTP/HTTPS request payload size limit.<br />Default: 1024 * 1024 * 10(10MB)`                                                                                                                                                                                                                                                                    |\n| `--model-dir`             | `ONNX_SERVER_MODEL_DIR`             | Model directory path<br/>The onnx model files must be located in the following path:<br/>`${model_dir}/${model_name}/${model_version}/model.onnx` or<br/>`${model_dir}/${model_name}/${model_version}.onnx`<br/>Default: `models`                                                                                                               |\n| `--prepare-model`         | `ONNX_SERVER_PREPARE_MODEL`         | Pre-create some model sessions at server startup.<br/><br/>Format as a space-separated list of `model_name:model_version` or `model_name:model_version(opt1=val1, opt2=val2, ...)`. Option keys may use dotted notation to address nested groups (e.g. `cuda.device_id`, `session_options.intra_op_num_threads`). Repeating the `extensions` key accumulates a deduplicated array. Option entries that do not match the grammar are skipped silently rather than failing the whole list.<br/><br/>Examples:<br/>- `model1:v1 model2:v9`<br/>- `model1:v1(cuda=true) model2:v9(cuda=1)`<br/>- `bert:v1(cuda.device_id=0, cuda.gpu_mem_limit=2147483648)`<br/>- `bert:v1(session_options.intra_op_num_threads=4, session_options.graph_optimization_level=all)`<br/>- `bert:v1(extensions=/usr/local/lib/libortextensions.so)` |\n\n### Backend options\n\n| Option               | Environment                    | Description                                                                                                                                                                                     |\n|----------------------|--------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `--tcp-port`         | `ONNX_SERVER_TCP_PORT`         | Enable TCP backend and which port number to use.                                                                                                                                                |\n| `--http-port`        | `ONNX_SERVER_HTTP_PORT`        | Enable HTTP backend and which port number to use.                                                                                                                                               |\n| `--https-port`       | `ONNX_SERVER_HTTPS_PORT`       | Enable HTTPS backend and which port number to use.                                                                                                                                              |\n| `--https-cert`       | `ONNX_SERVER_HTTPS_CERT`       | SSL Certification file path for HTTPS                                                                                                                                                           |\n| `--https-key`        | `ONNX_SERVER_HTTPS_KEY`        | SSL Private key file path for HTTPS                                                                                                                                                             |\n| `--swagger-url-path` | `ONNX_SERVER_SWAGGER_URL_PATH` | Enable Swagger API document for HTTP/HTTPS backend.<br/>This value cannot start with \"/api/\" and \"/health\"<br />If not specified, swagger document not provided.<br />eg) /swagger or /api-docs |\n\n### Log options\n\n| Option              | Environment                   | Description                                                                 |\n|---------------------|-------------------------------|-----------------------------------------------------------------------------|\n| `--log-level`       | `ONNX_SERVER_LOG_LEVEL`       | Log level(debug, info, warn, error, fatal)                                  |\n| `--log-file`        | `ONNX_SERVER_LOG_FILE`        | Log file path.<br/>If not specified, logs will be printed to stdout.        |\n| `--access-log-file` | `ONNX_SERVER_ACCESS_LOG_FILE` | Access log file path.<br/>If not specified, logs will be printed to stdout. |\n\n----\n\n# Docker\n\n- Docker hub: [kibaes/onnxruntime-server](https://hub.docker.com/r/kibaes/onnxruntime-server)\n    - [\n      `1.26.0-linux-cuda13`](https://github.com/kibae/onnxruntime-server/blob/main/deploy/build-docker/linux-cuda13.dockerfile)\n      amd64(CUDA 13.x, cuDNN 9.x)\n    - [\n      `1.26.0-linux-cuda12`](https://github.com/kibae/onnxruntime-server/blob/main/deploy/build-docker/linux-cuda12.dockerfile)\n      amd64(CUDA 12.x, cuDNN 9.x)\n    - [\n      `1.26.0-linux-cpu`](https://github.com/kibae/onnxruntime-server/blob/main/deploy/build-docker/linux-cpu.dockerfile)\n      amd64, arm64\n\n```shell\nDOCKER_IMAGE=kibaes/onnxruntime-server:1.26.0-linux-cuda13 # or 1.26.0-linux-cuda12 or 1.26.0-linux-cpu\n\ndocker pull ${DOCKER_IMAGE}\n\n# simple http backend\ndocker run --name onnxruntime_server_container -d --rm --gpus all \\\n  -p 80:80 \\\n  -v \"/your_model_dir:/app/models\" \\\n  -v \"/your_log_dir:/app/logs\" \\\n  -e \"ONNX_SERVER_SWAGGER_URL_PATH=/api-docs\" \\\n  ${DOCKER_IMAGE}\n```\n\n- More information on using Docker images can be found here.\n    - https://hub.docker.com/r/kibaes/onnxruntime-server\n- [docker-compose.yml](https://github.com/kibae/onnxruntime-server/blob/main/deploy/build-docker/docker-compose.yaml)\n  example is available in the repository.\n\n----\n\n# API\n\n- [HTTP/HTTPS REST API](https://github.com/kibae/onnxruntime-server/wiki/REST-API(HTTP-HTTPS))\n    - API documentation (Swagger) is built in. If you want the server to serve swagger, add\n      the `--swagger-url-path=/swagger/` option at launch. This must be used with the `--http-port` or `--https-port`\n      option.\n      ```shell\n      ./onnxruntime_server --model-dir=YOUR_MODEL_DIR --http-port=8080 --swagger-url-path=/api-docs/\n      ```\n        - After running the server as above, you will be able to access the Swagger UI available\n          at `http://localhost:8080/api-docs/`.\n    - <picture><img src=\"https://cdn.simpleicons.org/swagger/green\" height=\"16\" align=\"center\" /></picture> [Swagger Sample](https://kibae.github.io/onnxruntime-server/swagger/)\n- [TCP API](https://github.com/kibae/onnxruntime-server/wiki/TCP-API)\n\n## ONNXRuntime Extensions Support\n\nTo use the [onnxruntime-extensions](https://github.com/microsoft/onnxruntime-extensions) (Custom Ops Library), supply\none or more library paths through the `extensions` array. The server registers each path with ORT in order and\ndeduplicates entries.\n\n```json\n{\n  \"model\": \"string\",\n  \"version\": \"string\",\n  \"option\": {\n    \"cuda\": ...,\n    \"extensions\": [\n      \"/absolute/path/to/libonnxruntime_extensions.so\"\n    ]\n  }\n}\n```\n\nThe legacy `ortextensions_path` (single string) is still accepted for backward compatibility; it is normalized into the\n`extensions` array on the server side and the response always echoes the normalized form.\n\n## Session-level options\n\nThe optional `session_options` object on a session-create request forwards the listed keys to the underlying\nonnxruntime `SessionOptions`. Only the JSON shape (types and our enum-string mapping) is validated on the server side;\nthe actual value validation is delegated to ORT, and the response echoes only the values ORT accepted.\n\n```json\n{\n  \"model\": \"string\",\n  \"version\": \"string\",\n  \"option\": {\n    \"session_options\": {\n      \"intra_op_num_threads\": 4,\n      \"inter_op_num_threads\": 1,\n      \"execution_mode\": \"sequential\",\n      \"graph_optimization_level\": \"all\",\n      \"enable_cpu_mem_arena\": true,\n      \"enable_mem_pattern\": true,\n      \"log_severity_level\": 2,\n      \"logid\": \"my-model\",\n      \"enable_profiling\": false,\n      \"profile_file_prefix\": \"/var/log/onnx/profile-\",\n      \"optimized_model_filepath\": \"/cache/optimized.onnx\",\n      \"free_dimension_overrides\": { \"batch\": 1 },\n      \"config_entries\": {\n        \"session.disable_prepacking\": \"1\"\n      }\n    }\n  }\n}\n```\n\n`config_entries` is round-tripped through `GetSessionConfigEntry`, so the response shows what ORT actually stored\n(string values; `true`/`42` become `\"1\"`/`\"42\"`).\n\n## CUDA execution provider options\n\nWhen CUDA is enabled, the `cuda` field accepts either a boolean / integer (legacy shorthand) or an object that maps to\n[CUDA Execution Provider options](https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html). The\nserver forwards the object to ORT via `UpdateCUDAProviderOptions` in a single batched call (per-key calls trigger a\nsibling-reset quirk in ORT V2). If any key is rejected by ORT, session creation fails with the ORT error message\nidentifying the offending key. The response is built from `GetCUDAProviderOptionsAsString` readback, so it reflects\nexactly what ORT stored.\n\n```json\n{\n  \"model\": \"string\",\n  \"version\": \"string\",\n  \"option\": {\n    \"cuda\": {\n      \"device_id\": 0,\n      \"gpu_mem_limit\": 2147483648,\n      \"arena_extend_strategy\": \"kNextPowerOfTwo\",\n      \"cudnn_conv_algo_search\": \"EXHAUSTIVE\",\n      \"cudnn_conv_use_max_workspace\": true,\n      \"do_copy_in_default_stream\": true,\n      \"enable_cuda_graph\": false\n    }\n  }\n}\n```\n\nBackward-compatible shortcuts:\n- `\"cuda\": true`  — enable CUDA with all defaults (`device_id=0`).\n- `\"cuda\": 1`     — enable CUDA on `device_id=1`.\n\nFor more details on the session creation request, please refer to\nthe [API documentation](https://kibae.github.io/onnxruntime-server/swagger/#/ONNX%20Runtime%20Session/createSession).\n\n\n----\n\n# How to use\n\n- A few things have been left out to help you get a rough idea of the usage flow.\n\n## Simple usage examples\n\n### Example of creating ONNX sessions at server startup\n\n```mermaid\n%%{init: {\n    'sequence': {'noteAlign': 'left', 'mirrorActors': true}\n}}%%\nsequenceDiagram\n    actor A as Administrator\n    box rgb(0, 0, 0, 0.1) \"ONNX Runtime Server\"\n        participant SD as Disk\n        participant SP as Process\n    end\n    actor C as Client\n    Note right of A: You have 3 models to serve.\n    A ->> SD: copy model files to disk.<br />\"/var/models/model_A/v1/model.onnx\"<br />\"/var/models/model_A/v2/model.onnx\"<br />\"/var/models/model_B/20201101/model.onnx\"\n    A ->> SP: Start server with --prepare-model option\n    activate SP\n    Note right of A: onnxruntime_server<br />--http-port=8080<br />--model-path=/var/models<br />--prepare-model=\"model_A:v1(cuda=0) model_A:v2(cuda=0)\"\n    SP -->> SD: Load model\n    Note over SD, SP: Load model from<br />\"/var/models/model_A/v1/model.onnx\"\n    SD -->> SP: Model binary\n    activate SP\n    SP -->> SP: Create<br />onnxruntime<br />session\n    deactivate SP\n    deactivate SP\n    rect rgb(100, 100, 100, 0.3)\n        Note over SD, C: Execute Session\n        C ->> SP: Execute session request\n        activate SP\n        Note over SP, C: POST /api/sessions/model_A/v1<br />{<br />\"x\": [[1], [2], [3]],<br />\"y\": [[2], [3], [4]],<br />\"z\": [[3], [4], [5]]<br />}\n        activate SP\n        SP -->> SP: Execute<br />onnxruntime<br />session\n        deactivate SP\n        SP ->> C: Execute session response\n        deactivate SP\n        Note over SP, C: {<br />\"output\": [<br />[0.6492120623588562],<br />[0.7610487341880798],<br />[0.8728854656219482]<br />]<br />}\n    end\n```\n\n### Example of the client creating and running ONNX sessions\n\n```mermaid\n%%{init: {\n    'sequence': {'noteAlign': 'left', 'mirrorActors': true}\n}}%%\nsequenceDiagram\n    actor A as Administrator\n    box rgb(0, 0, 0, 0.1) \"ONNX Runtime Server\"\n        participant SD as Disk\n        participant SP as Process\n    end\n    actor C as Client\n    Note right of A: You have 3 models to serve.\n    A ->> SD: copy model files to disk.<br />\"/var/models/model_A/v1/model.onnx\"<br />\"/var/models/model_A/v2/model.onnx\"<br />\"/var/models/model_B/20201101/model.onnx\"\n    A ->> SP: Start server\n    Note right of A: onnxruntime_server<br />--http-port=8080<br />--model-path=/var/models\n    rect rgb(100, 100, 100, 0.3)\n        Note over SD, C: Create Session\n        C ->> SP: Create session request\n        activate SP\n        Note over SP, C: POST /api/sessions<br />{\"model\": \"model_A\", \"version\": \"v1\"}\n        SP -->> SD: Load model\n        Note over SD, SP: Load model from<br />\"/var/models/model_A/v1/model.onnx\"\n        SD -->> SP: Model binary\n        activate SP\n        SP -->> SP: Create<br />onnxruntime<br />session\n        deactivate SP\n        SP ->> C: Create session response\n        deactivate SP\n        Note over SP, C: {<br />\"model\": \"model_A\",<br />\"version\": \"v1\",<br />\"created_at\": 1694228106,<br />\"execution_count\": 0,<br />\"last_executed_at\": 0,<br />\"inputs\": {<br />\"x\": \"float32[-1,1]\",<br />\"y\": \"float32[-1,1]\",<br />\"z\": \"float32[-1,1]\"<br />},<br />\"outputs\": {<br />\"output\": \"float32[-1,1]\"<br />}<br />}\n        Note right of C: 👌 You can know the type and shape<br />of the input and output.\n    end\n    rect rgb(100, 100, 100, 0.3)\n        Note over SD, C: Execute Session\n        C ->> SP: Execute session request\n        activate SP\n        Note over SP, C: POST /api/sessions/model_A/v1<br />{<br />\"x\": [[1], [2], [3]],<br />\"y\": [[2], [3], [4]],<br />\"z\": [[3], [4], [5]]<br />}\n        activate SP\n        SP -->> SP: Execute<br />onnxruntime<br />session\n        deactivate SP\n        SP ->> C: Execute session response\n        deactivate SP\n        Note over SP, C: {<br />\"output\": [<br />[0.6492120623588562],<br />[0.7610487341880798],<br />[0.8728854656219482]<br />]<br />}\n    end\n```\n\n## Contributors\n\n<a href=\"https://github.com/kibae/onnxruntime-server/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=kibae/onnxruntime-server\" />\n</a>\n"
  },
  {
    "path": "cmake/FindONNXRuntime.cmake",
    "content": "message(STATUS \"Looking for ONNX Runtime\")\n\nset(ONNX_RUNTIME_ROOT_DIR ENV ONNX_ROOT /usr/local/onnxruntime /usr /usr/local /opt/homebrew C:/msys64/usr/local/onnxruntime)\nset(ONNX_RUNTIME_INCLUDE_PATHS /usr/local/include/onnxruntime)\nset(MACOS_ONNX_RUNTIME_INCLUDE_PATHS /opt/homebrew/include/onnxruntime /opt/homebrew/include/onnxruntime/core/session /usr/local/include/onnxruntime/core/session)\n\nfind_path(ONNX_RUNTIME_INCLUDE_DIRS onnxruntime_cxx_api.h PATHS ${ONNX_RUNTIME_ROOT_DIR} ${ONNX_RUNTIME_INCLUDE_PATHS} ${MACOS_ONNX_RUNTIME_INCLUDE_PATHS} PATH_SUFFIXES include include/onnxruntime)\nfind_library(ONNX_RUNTIME_LIBRARY onnxruntime PATHS ${ONNX_RUNTIME_ROOT_DIR} PATH_SUFFIXES lib)\n\nfind_library(ONNX_RUNTIME_CUDA_LIBRARY onnxruntime_providers_cuda PATHS ${ONNX_RUNTIME_LIBRARY} ${ONNX_RUNTIME_ROOT_DIR} PATH_SUFFIXES lib)\n\nif (ONNX_RUNTIME_LIBRARY)\n    message(STATUS \"Found ONNX Runtime include dir: ${ONNX_RUNTIME_INCLUDE_DIRS}\")\n    message(STATUS \"Found ONNX Runtime library: ${ONNX_RUNTIME_LIBRARY}\")\n    get_filename_component(ONNX_RUNTIME_LIBRARY_DIRS ${ONNX_RUNTIME_LIBRARY} DIRECTORY)\n    set(ONNX_RUNTIME_LIBRARY_DIRS \"${ONNX_RUNTIME_LIBRARY_DIRS}\" CACHE STRING \"ONNX Runtime library directory\")\n    message(STATUS \"Found ONNX Runtime library dir: ${ONNX_RUNTIME_LIBRARY_DIRS}\")\n    if (ONNX_RUNTIME_CUDA_LIBRARY)\n        set(ONNX_RUNTIME_WITH_CUDA_PROVIDER TRUE CACHE BOOL \"ONNX Runtime with CUDA provider\")\n        set(ONNX_RUNTIME_LIBRARIES ${ONNX_RUNTIME_LIBRARY} ${ONNX_RUNTIME_CUDA_LIBRARY} CACHE STRING \"ONNX Runtime libraries\")\n    else ()\n        set(ONNX_RUNTIME_LIBRARIES ${ONNX_RUNTIME_LIBRARY} CACHE STRING \"ONNX Runtime libraries\")\n    endif ()\nendif ()\n\ninclude(FindPackageHandleStandardArgs)\nif (ONNX_RUNTIME_WITH_CUDA_PROVIDER)\n    find_package_handle_standard_args(ONNXRuntime DEFAULT_MSG ONNX_RUNTIME_INCLUDE_DIRS ONNX_RUNTIME_LIBRARY_DIRS ONNX_RUNTIME_LIBRARIES ONNX_RUNTIME_LIBRARY ONNX_RUNTIME_CUDA_LIBRARY)\n    mark_as_advanced(ONNX_RUNTIME_INCLUDE_DIRS ONNX_RUNTIME_LIBRARY_DIRS ONNX_RUNTIME_LIBRARIES ONNX_RUNTIME_LIBRARY ONNX_RUNTIME_CUDA_LIBRARY)\nelse ()\n    find_package_handle_standard_args(ONNXRuntime DEFAULT_MSG ONNX_RUNTIME_INCLUDE_DIRS ONNX_RUNTIME_LIBRARY_DIRS ONNX_RUNTIME_LIBRARIES ONNX_RUNTIME_LIBRARY)\n    mark_as_advanced(ONNX_RUNTIME_INCLUDE_DIRS ONNX_RUNTIME_LIBRARY_DIRS ONNX_RUNTIME_LIBRARIES ONNX_RUNTIME_LIBRARY)\nendif ()\n\n"
  },
  {
    "path": "deploy/build-docker/README.md",
    "content": "# Docker Build\n\n## x64 with CUDA\n\n- [ONNX Runtime Binary](https://github.com/microsoft/onnxruntime/releases) v1.26.0(latest) supports CUDA 12/13, cuDNN 9.\n- Two CUDA variants are available:\n    - `linux-cuda13`: Built on `nvidia/cuda:13.1.1-cudnn-devel-ubuntu24.04`, runtime based on `nvidia/cuda:13.1.1-cudnn-runtime-ubuntu24.04`\n    - `linux-cuda12`: Built on `nvidia/cuda:12.9.1-cudnn-devel-ubuntu24.04`, runtime based on `nvidia/cuda:12.9.1-cudnn-runtime-ubuntu24.04`\n- Multi-stage build is used to keep the final image small (devel for building, runtime for the final image).\n- **We need to check this for each release of the ONNX Runtime binary.**\n"
  },
  {
    "path": "deploy/build-docker/VERSION",
    "content": "export VERSION=1.26.0\nexport IMAGE_PREFIX=kibaes/onnxruntime-server\n"
  },
  {
    "path": "deploy/build-docker/build.sh",
    "content": "#!/usr/bin/env bash\n\ncd \"$(dirname \"$0\")\" || exit\nsource ./VERSION\n\ncd ../../\n\n\nif [ \"$1\" != \"--target=cuda\" ]; then\n  #   ______ .______    __    __\n  #  /      ||   _  \\  |  |  |  |\n  # |  ,----'|  |_)  | |  |  |  |\n  # |  |     |   ___/  |  |  |  |\n  # |  `----.|  |      |  `--'  |\n  #  \\______|| _|       \\______/\n  POSTFIX=linux-cpu\n  IMAGE_NAME=${IMAGE_PREFIX}:${VERSION}-${POSTFIX}\n\n  docker buildx build --platform linux/amd64 -t ${IMAGE_NAME} -f deploy/build-docker/${POSTFIX}.dockerfile --load . || exit 1\n  ./deploy/build-docker/docker-image-test.sh ${IMAGE_NAME} || exit 1\n  docker buildx build --platform linux/amd64,linux/arm64 -t ${IMAGE_NAME} -f deploy/build-docker/${POSTFIX}.dockerfile --push . || exit 1\nfi\n\n\nif [ \"$1\" != \"--target=cpu\" ]; then\n  #   ______  __    __   _______       ___         ___   ___    __    _  _\n  #  /      ||  |  |  | |       \\     /   \\        \\  \\ /  /   / /   | || |\n  # |  ,----'|  |  |  | |  .--.  |   /  ^  \\   _____\\  V  /   / /_   | || |_\n  # |  |     |  |  |  | |  |  |  |  /  /_\\  \\ |______>   <   | '_ \\  |__   _|\n  # |  `----.|  `--'  | |  '--'  | /  _____  \\      /  .  \\  | (_) |    | |\n  #  \\______| \\______/  |_______/ /__/     \\__\\    /__/ \\__\\  \\___/     |_|\n#  POSTFIX=linux-cuda11\n#  IMAGE_NAME=${IMAGE_PREFIX}:${VERSION}-${POSTFIX}\n#\n#  docker buildx build --platform linux/amd64 -t ${IMAGE_NAME} -f deploy/build-docker/${POSTFIX}.dockerfile --load . || exit 1\n#  ./deploy/build-docker/docker-image-test.sh ${IMAGE_NAME} 1 || exit 1\n#  docker buildx build --platform linux/amd64 -t ${IMAGE_NAME} -f deploy/build-docker/${POSTFIX}.dockerfile --push . || exit 1\n\n\n  POSTFIX=linux-cuda12\n  IMAGE_NAME=${IMAGE_PREFIX}:${VERSION}-${POSTFIX}\n\n  docker buildx build --platform linux/amd64 -t ${IMAGE_NAME} -f deploy/build-docker/${POSTFIX}.dockerfile --load . || exit 1\n  ./deploy/build-docker/docker-image-test.sh ${IMAGE_NAME} 1 || exit 1\n  docker buildx build --platform linux/amd64 -t ${IMAGE_NAME} -f deploy/build-docker/${POSTFIX}.dockerfile --push . || exit 1\n\n  POSTFIX=linux-cuda13\n  IMAGE_NAME=${IMAGE_PREFIX}:${VERSION}-${POSTFIX}\n\n  docker buildx build --platform linux/amd64 -t ${IMAGE_NAME} -f deploy/build-docker/${POSTFIX}.dockerfile --load . || exit 1\n  ./deploy/build-docker/docker-image-test.sh ${IMAGE_NAME} 1 || exit 1\n  docker buildx build --platform linux/amd64 -t ${IMAGE_NAME} -f deploy/build-docker/${POSTFIX}.dockerfile --push . || exit 1\nfi\n\n"
  },
  {
    "path": "deploy/build-docker/docker-compose.yaml",
    "content": "services:\n  # Available environment variables can be found at\n  # https://github.com/kibae/onnxruntime-server#run-the-server\n\n  onnxruntime_server_simple:\n    # After the docker container is up, you can use the REST API (http://localhost:8080).\n    # API documentation will be available at http://localhost:8080/api-docs.\n    image: kibaes/onnxruntime-server:1.26.0-linux-cuda13 # or 1.26.0-linux-cuda12\n    ports:\n      - \"8080:80\" # for http backend\n    volumes:\n      # for model files\n      # https://github.com/kibae/onnxruntime-server#run-the-server\n      - /your_model_dir:/app/models\n\n      # for log files\n      - /your_log_dir:/app/logs\n    environment:\n      # for swagger(optional)\n      - ONNX_SERVER_SWAGGER_URL_PATH=/api-docs\n    deploy:\n      resources:\n        reservations:\n          devices:\n            - driver: nvidia\n              count: 1\n              capabilities: [ gpu ]\n\n  onnxruntime_server_advanced:\n    # After the docker container is up, you can use the REST API (http://localhost, https://localhost).\n    # API documentation will be available at http://localhost/api-docs.\n    image: kibaes/onnxruntime-server:1.26.0-linux-cuda13 # or 1.26.0-linux-cuda12\n    ports:\n      - \"80:80\" # for http backend\n      - \"443:443\" # for https backend\n      - \"8001:8001\" # for tcp backend. binary protocol\n    volumes:\n      # for model files\n      # https://github.com/kibae/onnxruntime-server#run-the-server\n      - /your_model_dir:/app/models\n\n      # for log files\n      - /your_log_dir:/app/logs\n\n      # for cert files\n      - /your_cert_dir:/app/certs\n    environment:\n      # for https backend\n      - ONNX_SERVER_HTTPS_PORT=443\n\n      # https backend needs cert, key files\n      - ONNX_SERVER_HTTPS_CERT=/app/certs/cert.pem\n      - ONNX_SERVER_HTTPS_KEY=/app/certs/key.pem\n\n      # for onnx session preparation\n      - ONNX_SERVER_PREPARE_MODEL=\"model1:v1(cuda=true) model1:v2(cuda=0) model2:v2\"\n\n      # for swagger(optional)\n      - ONNX_SERVER_SWAGGER_URL_PATH=/api-docs\n    deploy:\n      resources:\n        reservations:\n          devices:\n            - driver: nvidia\n              count: 1\n              capabilities: [ gpu ]\n"
  },
  {
    "path": "deploy/build-docker/docker-image-test.sh",
    "content": "#!/usr/bin/env bash\n\ncd \"$(dirname \"$0\")\" || exit\n\nsource ./VERSION\n\nIMAGE_NAME=$1\nIS_CUDA=$2\n\necho\necho '.___________. _______     _______.___________.'\necho '|           ||   ____|   /       |           |'\necho '`---|  |----`|  |__     |   (----`---|  |----`'\necho '    |  |     |   __|     \\   \\       |  |'\necho '    |  |     |  |____.----)   |      |  |'\necho '    |__|     |_______|_______/       |__|'\necho\necho ${IMAGE_NAME}\necho\necho\n\ndocker stop docker_test || true\ndocker rm docker_test || true\ndocker run --name docker_test -d -p 8080:80 --gpus all -e \"ONNX_SERVER_SWAGGER_URL_PATH=/api-docs\" ${IMAGE_NAME} || exit 1\nsleep 1;\ndocker cp ../../test/fixture/sample docker_test:/app/models/ || exit 1\n\nAPI_VERSION_RESULT=$(curl -s \\\n  'http://localhost:8080/api/version' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' || exit 1)\n\nif [ \"${API_VERSION_RESULT}\" != \"${VERSION}\" ]; then\n  echo \"API version mismatch. Expected: ${VERSION}, Got: ${API_VERSION_RESULT}\"\n  exit 1\nfi\n\necho \"ONNX Server Version: ${VERSION}\"\n\nif [[ -v ${IS_CUDA} ]]; then\n  curl -sX 'POST' \\\n    'http://localhost:8080/api/sessions' \\\n    -H 'accept: application/json' \\\n    -H 'Content-Type: application/json' \\\n    -d '{\"model\": \"sample\", \"version\": \"2\", \"option\":{\"cuda\": true}}' | jq || exit 1\n\n  DEVICE_ID=$(curl -sX 'GET' \\\n    'http://localhost:8080/api/sessions/sample/2' \\\n    -H 'accept: application/json' | jq '.option.cuda.device_id' || exit 1)\n\n  if [ \"${DEVICE_ID}\" != \"0\" ]; then\n    echo \"CUDA is not available\"\n    exit 1\n  fi\nelse\n  curl -sX 'POST' \\\n    'http://localhost:8080/api/sessions' \\\n    -H 'accept: application/json' \\\n    -H 'Content-Type: application/json' \\\n    -d '{\"model\": \"sample\", \"version\": \"2\"}' | jq || exit 1\n\n  ERROR=$(curl -sX 'GET' \\\n    'http://localhost:8080/api/sessions/sample/2' \\\n    -H 'accept: application/json' | jq '.error' || exit 1)\n\n  if [ \"${ERROR}\" != \"null\" ]; then\n    echo ${ERROR}\n    exit 1\n  fi\nfi\n\ncurl -sX 'POST' \\\n  'http://localhost:8080/api/sessions/sample/2' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n  \"input_ids\": [\n    [\n      101, 11834, 21600, 2102, 9005, 12098, 8566, 5740, 6853, 1999, 1996, 2806, 1997, 15262, 19699, 14663, 1005, 1055,\n      3203, 8447, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0\n    ],\n    [\n      101, 3795, 3361, 3422, 16168, 19428, 1997, 1520, 2582, 7860, 1998, 28215, 1521, 3805, 102, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n    ],\n    [\n      101, 2054, 4511, 2323, 1045, 3288, 2000, 1037, 8179, 2283, 1029, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n    ]\n  ],\n  \"onnx::Equal_1\": [\n    [\n      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n    ],\n    [\n      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n    ],\n    [\n      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n    ]\n  ]\n}\n' | jq || exit 1\n\ncurl -sX 'GET' \\\n  'http://localhost:8080/api/sessions' \\\n  -H 'accept: application/json' | jq || exit 1\n\necho\necho '.______      ___           _______.     _______.'\necho '|   _  \\    /   \\         /       |    /       |'\necho '|  |_)  |  /  ^  \\       |   (----`   |   (----`'\necho '|   ___/  /  /_\\  \\       \\   \\        \\   \\    '\necho '|  |     /  _____  \\  .----)   |   .----)   |   '\necho '| _|    /__/     \\__\\ |_______/    |_______/    '\necho\n\ndocker rm docker_test -f || true\n"
  },
  {
    "path": "deploy/build-docker/download-onnxruntime.sh",
    "content": "#!/usr/bin/env bash\n\ncd \"$(dirname \"$0\")\" || exit\n\nOS=$1\nARCH=$2\n\necho\necho \"Select onnxruntime version to download:\"\nRAW_LIST=$(curl -s -H \"Accept: application/vnd.github+json\" \\\n  -H \"X-GitHub-Api-Version: 2022-11-28\" \\\n  https://api.github.com/repos/microsoft/onnxruntime/releases/latest \\\n  | grep browser_download_url \\\n  | grep -E \"onnxruntime-${OS}-${ARCH}-([.0-9]+)tgz\" \\\n  | awk '{print $2}' \\\n  | tr -d '\"' \\\n  | head -n 1)\n\nitem=${RAW_LIST[0]}\n\nFILENAME=$(basename \"$item\")\n\necho\necho \"Downloading $item\"\necho\n\nwget -q \"$item\"\n\nmkdir -p /usr/local/onnxruntime\ntar vzxf \"$FILENAME\" -C /usr/local/onnxruntime --strip-components=1\nsh -c 'echo \"/usr/local/onnxruntime/lib\" > /etc/ld.so.conf.d/onnxruntime.conf'\nldconfig\n\nrm -f \"$FILENAME\"\n\necho\necho \"Done\"\necho\n"
  },
  {
    "path": "deploy/build-docker/linux-cpu.dockerfile",
    "content": "FROM ubuntu:24.04 AS builder\n\nRUN apt update && apt install -y curl wget git build-essential cmake pkg-config libboost-all-dev libssl-dev\nRUN mkdir -p /app/source\n\nWORKDIR /app/source\nCOPY src /app/source/onnxruntime-server\nCOPY cmake /app/source/onnxruntime-server/cmake\nCOPY deploy/build-docker/download-onnxruntime.sh /app/source/onnxruntime-server/\n\nWORKDIR /app/source/onnxruntime-server\n\nARG TARGETPLATFORM\nRUN case ${TARGETPLATFORM} in \\\n         \"linux/amd64\")  ./download-onnxruntime.sh linux x64 ;; \\\n         \"linux/arm64\")  ./download-onnxruntime.sh linux aarch64 ;; \\\n    esac\n\nRUN cmake -DBoost_USE_STATIC_LIBS=ON -DOPENSSL_USE_STATIC_LIBS=ON -B build -S . -DCMAKE_BUILD_TYPE=Release\nRUN cmake --build build --parallel 8 --target onnxruntime_server_standalone\nRUN cmake --install build --prefix /app/onnxruntime-server\n\n# target\nFROM ubuntu:24.04 AS target\nCOPY --from=builder /app/onnxruntime-server /app\nCOPY --from=builder /usr/local/onnxruntime /usr/local/onnxruntime\n\nWORKDIR /app\nRUN mkdir -p models logs certs\n\nENV ONNX_SERVER_CONFIG_PRIORITY=env\nENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/onnxruntime/lib\nENTRYPOINT [\"/app/bin/onnxruntime_server\", \"--model-dir\", \"models\", \"--log-file\", \"logs/app.log\", \"--access-log-file\", \"logs/access.log\", \"--tcp-port\", \"6432\", \"--http-port\", \"80\"]\n"
  },
  {
    "path": "deploy/build-docker/linux-cuda12.dockerfile",
    "content": "FROM nvidia/cuda:12.9.1-cudnn-devel-ubuntu24.04 AS builder\n\nRUN apt update && apt install -y curl wget git build-essential cmake pkg-config libboost-all-dev libssl-dev\nRUN mkdir -p /app/source\n\nWORKDIR /app/source\nCOPY src /app/source/onnxruntime-server\nCOPY cmake /app/source/onnxruntime-server/cmake\nCOPY deploy/build-docker/download-onnxruntime.sh /app/source/onnxruntime-server/\n\nWORKDIR /app/source/onnxruntime-server\n\nARG TARGETPLATFORM\nRUN case ${TARGETPLATFORM} in \\\n         \"linux/amd64\")  ./download-onnxruntime.sh linux x64-gpu ;; \\\n    esac\n\nRUN cmake -DCUDA_SDK_ROOT_DIR=/usr/local/cuda-12 -DBoost_USE_STATIC_LIBS=ON -DOPENSSL_USE_STATIC_LIBS=ON -B build -S . -DCMAKE_BUILD_TYPE=Release\nRUN cmake --build build --parallel 8 --target onnxruntime_server_standalone\nRUN cmake --install build --prefix /app/onnxruntime-server\n\n# target\nFROM nvidia/cuda:12.9.1-cudnn-runtime-ubuntu24.04 AS target\nCOPY --from=builder /app/onnxruntime-server /app\nCOPY --from=builder /usr/local/onnxruntime /usr/local/onnxruntime\n\nWORKDIR /app\nRUN mkdir -p models logs certs\n\nENV ONNX_SERVER_CONFIG_PRIORITY=env\nENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12/lib64:/usr/local/onnxruntime/lib\nENTRYPOINT [\"/app/bin/onnxruntime_server\", \"--model-dir\", \"models\", \"--log-file\", \"logs/app.log\", \"--access-log-file\", \"logs/access.log\", \"--tcp-port\", \"6432\", \"--http-port\", \"80\"]\n"
  },
  {
    "path": "deploy/build-docker/linux-cuda13.dockerfile",
    "content": "FROM nvidia/cuda:13.1.1-cudnn-devel-ubuntu24.04 AS builder\n\nRUN apt update && apt install -y curl wget git build-essential cmake pkg-config libboost-all-dev libssl-dev\nRUN mkdir -p /app/source\n\nWORKDIR /app/source\nCOPY src /app/source/onnxruntime-server\nCOPY cmake /app/source/onnxruntime-server/cmake\nCOPY deploy/build-docker/download-onnxruntime.sh /app/source/onnxruntime-server/\n\nWORKDIR /app/source/onnxruntime-server\n\nARG TARGETPLATFORM\nRUN case ${TARGETPLATFORM} in \\\n         \"linux/amd64\")  ./download-onnxruntime.sh linux x64-gpu_cuda13 ;; \\\n    esac\n\nRUN cmake -DCUDA_SDK_ROOT_DIR=/usr/local/cuda-13 -DBoost_USE_STATIC_LIBS=ON -DOPENSSL_USE_STATIC_LIBS=ON -B build -S . -DCMAKE_BUILD_TYPE=Release\nRUN cmake --build build --parallel 8 --target onnxruntime_server_standalone\nRUN cmake --install build --prefix /app/onnxruntime-server\n\n# target\nFROM nvidia/cuda:13.1.1-cudnn-runtime-ubuntu24.04 AS target\nCOPY --from=builder /app/onnxruntime-server /app\nCOPY --from=builder /usr/local/onnxruntime /usr/local/onnxruntime\n\nWORKDIR /app\nRUN mkdir -p models logs certs\n\nENV ONNX_SERVER_CONFIG_PRIORITY=env\nENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-13/lib64:/usr/local/onnxruntime/lib\nENTRYPOINT [\"/app/bin/onnxruntime_server\", \"--model-dir\", \"models\", \"--log-file\", \"logs/app.log\", \"--access-log-file\", \"logs/access.log\", \"--tcp-port\", \"6432\", \"--http-port\", \"80\"]\n"
  },
  {
    "path": "deploy/update-version.sh",
    "content": "#!/usr/bin/env bash\n\ncd \"$(dirname \"$0\")/..\" || exit\n\nFROM_VERSION=$1\nTO_VERSION=$2\n\nif [ -z \"$FROM_VERSION\" ] || [ -z \"$TO_VERSION\" ]; then\n    echo \"Usage: $0 <from_version> <to_version>\"\n    exit 1\nfi\n\nFILES=(\n    \"README.md\"\n    \"docs/docker.md\"\n    \"docs/swagger/openapi.yaml\"\n    \"deploy/build-docker/VERSION\"\n    \"deploy/build-docker/docker-compose.yaml\"\n    \"deploy/build-docker/README.md\"\n    \"src/test/test_lib_version.cpp\"\n    )\n\npwd\n\nfor file in \"${FILES[@]}\"\ndo\n    echo \"Updating $file\"\n    sed -i \"s/${FROM_VERSION}/${TO_VERSION}/g\" \"$file\"\ndone\n\necho \"Done\"\necho\n\necho \"Update docker hub page\"\necho \"https://hub.docker.com/repository/docker/kibaes/onnxruntime-server/general\"\n\n"
  },
  {
    "path": "docs/docker.md",
    "content": "# ONNX Runtime Server\n\n- **The ONNX Runtime Server is a server that provides TCP and HTTP/HTTPS REST APIs for ONNX inference.**\n- https://github.com/kibae/onnxruntime-server\n\n# Supported tags and respective Dockerfile links\n\n- [`1.26.0-linux-cuda13`](https://github.com/kibae/onnxruntime-server/blob/main/deploy/build-docker/linux-cuda13.dockerfile) amd64(CUDA 13.x, cuDNN 9.x)\n- [`1.26.0-linux-cuda12`](https://github.com/kibae/onnxruntime-server/blob/main/deploy/build-docker/linux-cuda12.dockerfile) amd64(CUDA 12.x, cuDNN 9.x)\n- [`1.26.0-linux-cpu`](https://github.com/kibae/onnxruntime-server/blob/main/deploy/build-docker/linux-cpu.dockerfile) amd64, arm64\n\n# How to use this image\n\n- onnxruntime-server supports hardware acceleration with CUDA. To use the `--gpus all` option when running `docker run`,\n  the `nvidia-container-toolkit` package must be installed on the host OS.\n  ```shell\n  sudo apt install nvidia-container-toolkit\n  ```\n- This example assumes that your onnx files are located in the `/your_model_dir` directory on the host OS.\n  See [this document](https://github.com/kibae/onnxruntime-server#run-the-server) for paths and\n  naming conventions for onnx files\n    - `${model_dir}/${model_name}/${model_version}/model.onnx`\n- Available environment variables can be found at\n    - https://github.com/kibae/onnxruntime-server#run-the-server\n\n## General usage\n\n- After the docker container is up, you can use the REST API (http://localhost or https://localhost).\n    - API documentation will be available at http://localhost/api-docs.\n\n```shell\nDOCKER_IMAGE=kibaes/onnxruntime-server:1.26.0-linux-cuda13 # or 1.26.0-linux-cuda12 or 1.26.0-linux-cpu\n\ndocker pull ${DOCKER_IMAGE}\n\n# simple http backend\ndocker run --name onnxruntime_server_container -d --rm --gpus all \\\n  -p 80:80 \\\n  -v \"/your_model_dir:/app/models\" \\\n  -v \"/your_log_dir:/app/logs\" \\\n  -e \"ONNX_SERVER_SWAGGER_URL_PATH=/api-docs\" \\\n  ${DOCKER_IMAGE}\n\n# with https backend. cert, key files must be located in the /your_cert_dir directory on the host OS.\ndocker run --name onnxruntime_server_container -d --rm --gpus all \\\n  -p 80:80 \\\n  -p 443:443 \\\n  -v \"/your_model_dir:/app/models\" \\\n  -v \"/your_log_dir:/app/logs\" \\\n  -v \"/your_cert_dir:/app/certs\" \\\n  -e \"ONNX_SERVER_SWAGGER_URL_PATH=/api-docs\" \\\n  -e \"ONNX_SERVER_HTTPS_PORT=443\" \\\n  -e \"ONNX_SERVER_HTTPS_CERT=/app/certs/cert.pem\" \\\n  -e \"ONNX_SERVER_HTTPS_KEY=/app/certs/key.pem\" \\\n  ${DOCKER_IMAGE}\n```\n\n## Using docker-compose\n\n- [docker-compose.yml](https://github.com/kibae/onnxruntime-server/blob/main/deploy/build-docker/docker-compose.yaml)\n  example is available in the repository.\n\n### Simple one for HTTP backend\n\n```yaml\nservices:\n  # Available environment variables can be found at\n  # https://github.com/kibae/onnxruntime-server#run-the-server\n\n  onnxruntime_server_simple:\n    # After the docker container is up, you can use the REST API (http://localhost:8080).\n    # API documentation will be available at http://localhost:8080/api-docs.\n    image: kibaes/onnxruntime-server:1.26.0-linux-cuda13 # or 1.26.0-linux-cuda12\n    ports:\n      - \"8080:80\" # for http backend\n    volumes:\n      # for model files\n      # https://github.com/kibae/onnxruntime-server#run-the-server\n      - /your_model_dir:/app/models\n\n      # for log files\n      - /your_log_dir:/app/logs\n    environment:\n      # for swagger(optional)\n      - ONNX_SERVER_SWAGGER_URL_PATH=/api-docs\n    deploy:\n      resources:\n        reservations:\n          devices:\n            - driver: nvidia\n              count: 1\n              capabilities: [ gpu ]\n```\n\n### Advanced usage for HTTPS backend\n\n```yaml\nservices:\n  # Available environment variables can be found at\n  # https://github.com/kibae/onnxruntime-server#run-the-server\n\n  onnxruntime_server_advanced:\n    # After the docker container is up, you can use the REST API (http://localhost, https://localhost).\n    # API documentation wl be available at http://localhost/api-docs.\n    image: kibaes/onnxruntime-server:1.26.0-linux-cuda13 # or 1.26.0-linux-cuda12\n    ports:\n      - \"80:80\" # for http backend\n      - \"443:443\" # for https backend\n      - \"8001:8001\" # for tcp backend. binary protocol\n    volumes:\n      # for model files\n      # https://github.com/kibae/onnxruntime-server#run-the-server\n      - /your_model_dir:/app/models\n\n      # for log files\n      - /your_log_dir:/app/logs\n\n      # for cert files\n      - /your_cert_dir:/app/certs\n    environment:\n      # for https backend\n      - ONNX_SERVER_HTTPS_PORT=443\n\n      # https backend needs cert, key files\n      - ONNX_SERVER_HTTPS_CERT=/app/certs/cert.pem\n      - ONNX_SERVER_HTTPS_KEY=/app/certs/key.pem\n\n      # for onnx session preparation\n      - ONNX_SERVER_PREPARE_MODEL=\"model1:v1(cuda=true) model1:v2(cuda=0) model2:v2\"\n\n      # for swagger(optional)\n      - ONNX_SERVER_SWAGGER_URL_PATH=/api-docs\n    deploy:\n      resources:\n        reservations:\n          devices:\n            - driver: nvidia\n              count: 1\n              capabilities: [ gpu ]\n```"
  },
  {
    "path": "docs/swagger/index.css",
    "content": "html {\n    box-sizing: border-box;\n    overflow: -moz-scrollbars-vertical;\n    overflow-y: scroll;\n}\n\n*,\n*:before,\n*:after {\n    box-sizing: inherit;\n}\n\nbody {\n    margin: 0;\n    background: #fafafa;\n}\n"
  },
  {
    "path": "docs/swagger/index.html",
    "content": "<!-- HTML for static distribution bundle build -->\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <title>Swagger UI</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"https://kibae.github.io/onnxruntime-server/swagger/swagger-ui.css\"/>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"https://kibae.github.io/onnxruntime-server/swagger/index.css\"/>\n</head>\n\n<body>\n<div id=\"swagger-ui\"></div>\n<script src=\"https://kibae.github.io/onnxruntime-server/swagger/swagger-ui-bundle.js\" charset=\"UTF-8\"></script>\n<script src=\"https://kibae.github.io/onnxruntime-server/swagger/swagger-ui-standalone-preset.js\" charset=\"UTF-8\"></script>\n<script>\n    window.onload = function () {\n        window.ui = SwaggerUIBundle({\n            url: \"openapi.yaml\",\n            dom_id: '#swagger-ui',\n            deepLinking: true,\n            presets: [\n                SwaggerUIBundle.presets.apis,\n                SwaggerUIStandalonePreset\n            ],\n            plugins: [\n                SwaggerUIBundle.plugins.DownloadUrl\n            ],\n            layout: \"StandaloneLayout\"\n        });\n    };\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/swagger/openapi.yaml",
    "content": "openapi: 3.0.3\ninfo:\n  title: ONNX Runtime Server\n  description: |-\n  version: 1.26.0\nexternalDocs:\n  description: ONNX Runtime Server\n  url: https://github.com/kibae/onnxruntime-server\ntags:\n  - name: ONNX Runtime Session\npaths:\n  /api/sessions:\n    get:\n      tags:\n        - ONNX Runtime Session\n      summary: List sessions\n      description: List all sessions\n      operationId: listSessions\n      responses:\n        '200':\n          description: OK\n          content:\n            application/json:\n              schema:\n                type: array\n                items:\n                  $ref: '#/components/schemas/ONNXSession'\n    post:\n      tags:\n        - ONNX Runtime Session\n      summary: Create sessions\n      description: Create a new session\n      operationId: createSession\n      requestBody:\n        required: true\n        description: option, option.input_shape, option.output_shape are optional\n        content:\n          application/json(simple, wo/option):\n            schema:\n              $ref: '#/components/schemas/ONNXSessionCreateRequestSimple'\n          application/json(w/option):\n            schema:\n              $ref: '#/components/schemas/ONNXSessionCreateRequest'\n      responses:\n        '200':\n          description: OK\n          content:\n            application/json:\n              schema:\n                type: array\n                items:\n                  $ref: '#/components/schemas/ONNXSession'\n        '400':\n          description: Bad Request\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/ONNXBadRequestError'\n        '404':\n          description: Not Found\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/ONNXNotFoundError'\n        '409':\n          description: Conflict\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/ONNXConflictError'\n        '500':\n          description: Internal Server Error\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/ONNXRuntimeError'\n\n  /api/sessions/{model}/{version}:\n    get:\n      tags:\n        - ONNX Runtime Session\n      summary: Get session\n      description: Get a session\n      operationId: getSession\n      parameters:\n        - name: model\n          in: path\n          description: Model name\n          required: true\n          schema:\n            type: string\n        - name: version\n          in: path\n          description: Model version\n          required: true\n          schema:\n            type: string\n      responses:\n        '200':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/ONNXSession'\n        '404':\n          description: Not Found\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/ONNXNotFoundError'\n    post:\n      tags:\n        - ONNX Runtime Session\n      summary: Execute session\n      description: Execute a session\n      operationId: executeSession\n      parameters:\n        - name: model\n          in: path\n          description: Model name\n          required: true\n          schema:\n            type: string\n        - name: version\n          in: path\n          description: Model version\n          required: true\n          schema:\n            type: string\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: '#/components/schemas/ONNXSessionExecuteRequest'\n      responses:\n        '200':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/ONNXSessionExecuteResponse'\n        '400':\n          description: Bad Request\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/ONNXBadRequestError'\n        '404':\n          description: Not Found\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/ONNXNotFoundError'\n        '500':\n          description: Internal Server Error\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/ONNXRuntimeError'\n\n    delete:\n      tags:\n        - ONNX Runtime Session\n      summary: Destroy session\n      description: Destroy a session\n      operationId: destroySession\n      parameters:\n        - name: model\n          in: path\n          description: Model name\n          required: true\n          schema:\n            type: string\n        - name: version\n          in: path\n          description: Model version\n          required: true\n          schema:\n            type: string\n      responses:\n        '200':\n          description: OK\n          content:\n            application/json:\n              schema:\n                type: boolean\n        '404':\n          description: Not Found\n          content:\n            application/json:\n              schema:\n                $ref: '#/components/schemas/ONNXNotFoundError'\n\n  /api/version:\n    get:\n      tags:\n        - ONNX Runtime\n      summary: ONNX Runtime version\n      description: Get ONNX Runtime version\n      operationId: getONNXRuntimeVersion\n      responses:\n        '200':\n          description: OK\n          content:\n            plain/text:\n              schema:\n                type: string\n                example: 1.0.0\n\n  /health:\n    get:\n      tags:\n        - Default\n      summary: Health check\n      description: Health check\n      operationId: healthCheck\n      responses:\n        '200':\n          description: OK\n          content:\n            plain/text:\n              schema:\n                type: string\n                example: OK\n\ncomponents:\n  schemas:\n    ONNXSession:\n      type: object\n      properties:\n        model:\n          type: string\n          description: Model name\n          nullable: false\n        version:\n          type: string\n          description: Model version\n          nullable: false\n        created_at:\n          type: number\n          description: Timestamp when the session was created\n          nullable: false\n        last_executed_at:\n          type: number\n          description: Timestamp when the session was last executed\n          nullable: false\n        execution_count:\n          type: integer\n          description: Number of executions\n          nullable: false\n        inputs:\n          type: object\n          description: Input types\n          nullable: false\n          example: {\n            \"x\": \"float32[-1,1]\",\n            \"y\": \"float32[-1,1]\",\n            \"z\": \"float32[-1,1]\"\n          }\n        outputs:\n          type: object\n          description: Output types\n          nullable: false\n          example: {\n            \"output\": \"float32[-1,1]\"\n          }\n        option:\n          $ref: '#/components/schemas/ONNXSessionOption'\n    ONNXSessionOption:\n      type: object\n      description: |\n        Normalized echo of the options applied to the session. The server only includes\n        keys whose corresponding ORT calls succeeded; values reflect what ORT actually\n        stored (read back via GetCUDAProviderOptionsAsString and GetSessionConfigEntry\n        where applicable).\n      nullable: true\n      properties:\n        cuda:\n          nullable: true\n          required: false\n          oneOf:\n            - type: boolean\n              description: CUDA disabled (false) — present for backward compatibility.\n            - $ref: '#/components/schemas/ONNXSessionOptionCUDA'\n        extensions:\n          type: array\n          description: Registered onnxruntime-extensions library paths in registration order, deduplicated.\n          required: false\n          items:\n            type: string\n          example:\n            - /absolute/path/to/libonnxruntime_extensions.so\n        session_options:\n          $ref: '#/components/schemas/ONNXSessionOptionsGroup'\n    ONNXSessionOptionRequest:\n      type: object\n      nullable: true\n      properties:\n        cuda:\n          nullable: false\n          required: false\n          oneOf:\n            - type: boolean\n              description: Enable CUDA with all defaults (device_id=0).\n            - type: integer\n              description: Enable CUDA on the given device_id.\n            - $ref: '#/components/schemas/ONNXSessionOptionCUDA'\n        input_shape:\n          type: object\n          description: Input shape overrides keyed by input name.\n          nullable: false\n          required: false\n          example: {\n            \"x\": [ 1, 1 ],\n            \"y\": [ 1, 1 ],\n            \"z\": [ 1, 1 ]\n          }\n        output_shape:\n          type: object\n          description: Output shape overrides keyed by output name.\n          nullable: false\n          required: false\n          example: {\n            \"output\": [ 1, 1 ]\n          }\n        extensions:\n          type: array\n          description: |\n            One or more absolute paths to onnxruntime-extensions custom-ops libraries.\n            Each path is registered with ORT in array order; duplicate paths are deduplicated.\n          nullable: false\n          required: false\n          items:\n            type: string\n          example:\n            - /absolute/path/to/libonnxruntime_extensions.so\n        ortextensions_path:\n          type: string\n          description: |\n            Deprecated alias for `extensions`. A single library path. The server normalizes\n            it into the `extensions` array on input and the response always echoes the\n            normalized form.\n          deprecated: true\n          nullable: false\n          required: false\n          example: /absolute/path/to/libonnxruntime_extensions.so\n        session_options:\n          $ref: '#/components/schemas/ONNXSessionOptionsGroup'\n    ONNXSessionOptionCUDA:\n      type: object\n      description: |\n        CUDA Execution Provider V2 options. The server forwards every supplied key to\n        UpdateCUDAProviderOptions in a single batched call; if ORT rejects any key the\n        whole session creation fails with the ORT error message. The response is built\n        from GetCUDAProviderOptionsAsString readback, so it shows exactly what ORT\n        stored (which may differ from the requested value if ORT normalized it).\n      properties:\n        device_id:\n          type: integer\n          description: CUDA device ID\n          nullable: false\n        gpu_mem_limit:\n          type: integer\n          description: Per-session GPU memory limit, in bytes.\n          nullable: false\n        arena_extend_strategy:\n          type: string\n          description: Arena extension strategy, e.g. \"kNextPowerOfTwo\" or \"kSameAsRequested\".\n          nullable: false\n        cudnn_conv_algo_search:\n          type: string\n          description: cuDNN convolution algorithm search policy. Accepted values are ORT-defined enum names.\n          nullable: false\n        cudnn_conv_use_max_workspace:\n          type: boolean\n          nullable: false\n        do_copy_in_default_stream:\n          type: boolean\n          nullable: false\n        enable_cuda_graph:\n          type: boolean\n          description: Capture and replay a CUDA graph (requires static input shapes).\n          nullable: false\n        tunable_op_enable:\n          type: boolean\n          nullable: false\n        tunable_op_tuning_enable:\n          type: boolean\n          nullable: false\n        cudnn_conv1d_pad_to_nc1d:\n          type: boolean\n          nullable: false\n      additionalProperties:\n        description: |\n          Any additional CUDA Execution Provider V2 key understood by your ORT build is\n          forwarded as-is. Refer to the ORT CUDA EP documentation for the full list of\n          accepted keys.\n    ONNXSessionOptionsGroup:\n      type: object\n      description: |\n        Session-level options forwarded to onnxruntime SessionOptions. The server only\n        validates JSON shape (types and our enum-string mapping); ORT decides whether the\n        value itself is acceptable. Keys whose ORT setter throws are silently dropped from\n        the echoed response. The `config_entries` object is round-tripped through\n        GetSessionConfigEntry so the echo shows what ORT actually stored (always strings).\n      nullable: false\n      required: false\n      properties:\n        intra_op_num_threads:\n          type: integer\n          description: Number of threads used for parallelizing operators. 0 means ORT default.\n          nullable: false\n        inter_op_num_threads:\n          type: integer\n          description: Number of threads used for parallelizing the graph. 0 means ORT default.\n          nullable: false\n        execution_mode:\n          type: string\n          enum: [sequential, parallel]\n          nullable: false\n        graph_optimization_level:\n          type: string\n          enum: [disable, basic, extended, all]\n          nullable: false\n        enable_cpu_mem_arena:\n          type: boolean\n          nullable: false\n        enable_mem_pattern:\n          type: boolean\n          nullable: false\n        log_severity_level:\n          type: integer\n          description: ORT log severity level (0=verbose ... 4=fatal).\n          nullable: false\n        logid:\n          type: string\n          nullable: false\n        enable_profiling:\n          type: boolean\n          description: Enable profiling. When true, profile_file_prefix must also be supplied.\n          nullable: false\n        profile_file_prefix:\n          type: string\n          nullable: false\n        optimized_model_filepath:\n          type: string\n          description: Filepath where ORT writes the optimized model after graph transformations.\n          nullable: false\n        free_dimension_overrides:\n          type: object\n          description: Map of free dimension name to a fixed integer size.\n          additionalProperties:\n            type: integer\n          nullable: false\n          example:\n            batch: 1\n        config_entries:\n          type: object\n          description: |\n            Generic passthrough to AddSessionConfigEntry (e.g. \"session.disable_prepacking\").\n            Booleans and integers are stringified before being passed to ORT; values in the\n            response are always strings (round-tripped through GetSessionConfigEntry).\n          additionalProperties:\n            oneOf:\n              - type: string\n              - type: boolean\n              - type: integer\n          nullable: false\n          example:\n            session.disable_prepacking: \"1\"\n    ONNXSessionCreateRequest:\n      type: object\n      properties:\n        model:\n          type: string\n          description: Model name\n          required: true\n          nullable: false\n        version:\n          type: string\n          description: Model version\n          required: true\n          nullable: false\n        option:\n          required: false\n          nullable: true\n          $ref: '#/components/schemas/ONNXSessionOptionRequest'\n    ONNXSessionCreateRequestSimple:\n      type: object\n      example: {\n        \"model\": \"string\",\n        \"version\": \"string\"\n      }\n      properties:\n        model:\n          type: string\n          description: Model name\n          required: true\n          nullable: false\n        version:\n          type: string\n          description: Model version\n          required: true\n          nullable: false\n        option:\n          required: false\n          nullable: true\n          $ref: '#/components/schemas/ONNXSessionOptionRequest'\n    ONNXSessionExecuteRequest:\n      type: object\n      example: {\n        \"x\": [ [ 1 ], [ 2 ], [ 3 ] ],\n        \"y\": [ [ 2 ], [ 3 ], [ 4 ] ],\n        \"z\": [ [ 3 ], [ 4 ], [ 5 ] ]\n      }\n      properties:\n        input_name1:\n          type: array\n          description: Input data\n          items:\n            oneOf:\n              - type: number\n              - type: string\n        input_name2:\n          type: array\n          description: Input data\n          items:\n            oneOf:\n              - type: number\n              - type: string\n    ONNXSessionExecuteResponse:\n      type: object\n      example: {\n        \"output\": [ [ 0.6492120623588562 ], [ 0.7610487341880798 ], [ 0.8728854656219482 ] ]\n      }\n\n      properties:\n        output_name1:\n          type: array\n          description: Output data\n          items:\n            oneOf:\n              - type: number\n              - type: string\n        output_name2:\n          type: array\n          description: Output data\n          items:\n            oneOf:\n              - type: number\n              - type: string\n    ONNXError:\n      type: object\n      properties:\n        error_type:\n          type: string\n          description: Error type\n          nullable: false\n          enum:\n            - runtime_error\n            - bad_request_error\n            - not_found_error\n            - conflict_error\n        error:\n          type: string\n          description: Error message\n          nullable: false\n    ONNXBadRequestError:\n      allOf:\n        - $ref: '#/components/schemas/ONNXError'\n      properties:\n        error_type:\n          type: string\n          example: bad_request_error\n    ONNXNotFoundError:\n      allOf:\n        - $ref: '#/components/schemas/ONNXError'\n      properties:\n        error_type:\n          type: string\n          example: not_found_error\n    ONNXConflictError:\n      allOf:\n        - $ref: '#/components/schemas/ONNXError'\n      properties:\n        error_type:\n          type: string\n          example: conflict_error\n    ONNXRuntimeError:\n      allOf:\n        - $ref: '#/components/schemas/ONNXError'\n      properties:\n        error_type:\n          type: string\n          example: runtime_error\n\n"
  },
  {
    "path": "docs/swagger/swagger-ui-bundle.js",
    "content": "/*! For license information please see swagger-ui-bundle.js.LICENSE.txt */\n!function webpackUniversalModuleDefinition(i,s){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=s():\"function\"==typeof define&&define.amd?define([],s):\"object\"==typeof exports?exports.SwaggerUIBundle=s():i.SwaggerUIBundle=s()}(this,(()=>(()=>{var i={17967:(i,s)=>{\"use strict\";s.Nm=s.Rq=void 0;var u=/^([^\\w]*)(javascript|data|vbscript)/im,m=/&#(\\w+)(^\\w|;)?/g,v=/&(newline|tab);/gi,_=/[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim,j=/^.+(:|&colon;)/gim,M=[\".\",\"/\"];s.Rq=\"about:blank\",s.Nm=function sanitizeUrl(i){if(!i)return s.Rq;var $=function decodeHtmlCharacters(i){return i.replace(_,\"\").replace(m,(function(i,s){return String.fromCharCode(s)}))}(i).replace(v,\"\").replace(_,\"\").trim();if(!$)return s.Rq;if(function isRelativeUrlWithoutProtocol(i){return M.indexOf(i[0])>-1}($))return $;var W=$.match(j);if(!W)return $;var X=W[0];return u.test(X)?s.Rq:$}},79742:(i,s)=>{\"use strict\";s.byteLength=function byteLength(i){var s=getLens(i),u=s[0],m=s[1];return 3*(u+m)/4-m},s.toByteArray=function toByteArray(i){var s,u,_=getLens(i),j=_[0],M=_[1],$=new v(function _byteLength(i,s,u){return 3*(s+u)/4-u}(0,j,M)),W=0,X=M>0?j-4:j;for(u=0;u<X;u+=4)s=m[i.charCodeAt(u)]<<18|m[i.charCodeAt(u+1)]<<12|m[i.charCodeAt(u+2)]<<6|m[i.charCodeAt(u+3)],$[W++]=s>>16&255,$[W++]=s>>8&255,$[W++]=255&s;2===M&&(s=m[i.charCodeAt(u)]<<2|m[i.charCodeAt(u+1)]>>4,$[W++]=255&s);1===M&&(s=m[i.charCodeAt(u)]<<10|m[i.charCodeAt(u+1)]<<4|m[i.charCodeAt(u+2)]>>2,$[W++]=s>>8&255,$[W++]=255&s);return $},s.fromByteArray=function fromByteArray(i){for(var s,m=i.length,v=m%3,_=[],j=16383,M=0,$=m-v;M<$;M+=j)_.push(encodeChunk(i,M,M+j>$?$:M+j));1===v?(s=i[m-1],_.push(u[s>>2]+u[s<<4&63]+\"==\")):2===v&&(s=(i[m-2]<<8)+i[m-1],_.push(u[s>>10]+u[s>>4&63]+u[s<<2&63]+\"=\"));return _.join(\"\")};for(var u=[],m=[],v=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,_=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",j=0;j<64;++j)u[j]=_[j],m[_.charCodeAt(j)]=j;function getLens(i){var s=i.length;if(s%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var u=i.indexOf(\"=\");return-1===u&&(u=s),[u,u===s?0:4-u%4]}function encodeChunk(i,s,m){for(var v,_,j=[],M=s;M<m;M+=3)v=(i[M]<<16&16711680)+(i[M+1]<<8&65280)+(255&i[M+2]),j.push(u[(_=v)>>18&63]+u[_>>12&63]+u[_>>6&63]+u[63&_]);return j.join(\"\")}m[\"-\".charCodeAt(0)]=62,m[\"_\".charCodeAt(0)]=63},48764:(i,s,u)=>{\"use strict\";const m=u(79742),v=u(80645),_=\"function\"==typeof Symbol&&\"function\"==typeof Symbol.for?Symbol.for(\"nodejs.util.inspect.custom\"):null;s.Buffer=Buffer,s.SlowBuffer=function SlowBuffer(i){+i!=i&&(i=0);return Buffer.alloc(+i)},s.INSPECT_MAX_BYTES=50;const j=2147483647;function createBuffer(i){if(i>j)throw new RangeError('The value \"'+i+'\" is invalid for option \"size\"');const s=new Uint8Array(i);return Object.setPrototypeOf(s,Buffer.prototype),s}function Buffer(i,s,u){if(\"number\"==typeof i){if(\"string\"==typeof s)throw new TypeError('The \"string\" argument must be of type string. Received type number');return allocUnsafe(i)}return from(i,s,u)}function from(i,s,u){if(\"string\"==typeof i)return function fromString(i,s){\"string\"==typeof s&&\"\"!==s||(s=\"utf8\");if(!Buffer.isEncoding(s))throw new TypeError(\"Unknown encoding: \"+s);const u=0|byteLength(i,s);let m=createBuffer(u);const v=m.write(i,s);v!==u&&(m=m.slice(0,v));return m}(i,s);if(ArrayBuffer.isView(i))return function fromArrayView(i){if(isInstance(i,Uint8Array)){const s=new Uint8Array(i);return fromArrayBuffer(s.buffer,s.byteOffset,s.byteLength)}return fromArrayLike(i)}(i);if(null==i)throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof i);if(isInstance(i,ArrayBuffer)||i&&isInstance(i.buffer,ArrayBuffer))return fromArrayBuffer(i,s,u);if(\"undefined\"!=typeof SharedArrayBuffer&&(isInstance(i,SharedArrayBuffer)||i&&isInstance(i.buffer,SharedArrayBuffer)))return fromArrayBuffer(i,s,u);if(\"number\"==typeof i)throw new TypeError('The \"value\" argument must not be of type number. Received type number');const m=i.valueOf&&i.valueOf();if(null!=m&&m!==i)return Buffer.from(m,s,u);const v=function fromObject(i){if(Buffer.isBuffer(i)){const s=0|checked(i.length),u=createBuffer(s);return 0===u.length||i.copy(u,0,0,s),u}if(void 0!==i.length)return\"number\"!=typeof i.length||numberIsNaN(i.length)?createBuffer(0):fromArrayLike(i);if(\"Buffer\"===i.type&&Array.isArray(i.data))return fromArrayLike(i.data)}(i);if(v)return v;if(\"undefined\"!=typeof Symbol&&null!=Symbol.toPrimitive&&\"function\"==typeof i[Symbol.toPrimitive])return Buffer.from(i[Symbol.toPrimitive](\"string\"),s,u);throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof i)}function assertSize(i){if(\"number\"!=typeof i)throw new TypeError('\"size\" argument must be of type number');if(i<0)throw new RangeError('The value \"'+i+'\" is invalid for option \"size\"')}function allocUnsafe(i){return assertSize(i),createBuffer(i<0?0:0|checked(i))}function fromArrayLike(i){const s=i.length<0?0:0|checked(i.length),u=createBuffer(s);for(let m=0;m<s;m+=1)u[m]=255&i[m];return u}function fromArrayBuffer(i,s,u){if(s<0||i.byteLength<s)throw new RangeError('\"offset\" is outside of buffer bounds');if(i.byteLength<s+(u||0))throw new RangeError('\"length\" is outside of buffer bounds');let m;return m=void 0===s&&void 0===u?new Uint8Array(i):void 0===u?new Uint8Array(i,s):new Uint8Array(i,s,u),Object.setPrototypeOf(m,Buffer.prototype),m}function checked(i){if(i>=j)throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+j.toString(16)+\" bytes\");return 0|i}function byteLength(i,s){if(Buffer.isBuffer(i))return i.length;if(ArrayBuffer.isView(i)||isInstance(i,ArrayBuffer))return i.byteLength;if(\"string\"!=typeof i)throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof i);const u=i.length,m=arguments.length>2&&!0===arguments[2];if(!m&&0===u)return 0;let v=!1;for(;;)switch(s){case\"ascii\":case\"latin1\":case\"binary\":return u;case\"utf8\":case\"utf-8\":return utf8ToBytes(i).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*u;case\"hex\":return u>>>1;case\"base64\":return base64ToBytes(i).length;default:if(v)return m?-1:utf8ToBytes(i).length;s=(\"\"+s).toLowerCase(),v=!0}}function slowToString(i,s,u){let m=!1;if((void 0===s||s<0)&&(s=0),s>this.length)return\"\";if((void 0===u||u>this.length)&&(u=this.length),u<=0)return\"\";if((u>>>=0)<=(s>>>=0))return\"\";for(i||(i=\"utf8\");;)switch(i){case\"hex\":return hexSlice(this,s,u);case\"utf8\":case\"utf-8\":return utf8Slice(this,s,u);case\"ascii\":return asciiSlice(this,s,u);case\"latin1\":case\"binary\":return latin1Slice(this,s,u);case\"base64\":return base64Slice(this,s,u);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return utf16leSlice(this,s,u);default:if(m)throw new TypeError(\"Unknown encoding: \"+i);i=(i+\"\").toLowerCase(),m=!0}}function swap(i,s,u){const m=i[s];i[s]=i[u],i[u]=m}function bidirectionalIndexOf(i,s,u,m,v){if(0===i.length)return-1;if(\"string\"==typeof u?(m=u,u=0):u>2147483647?u=2147483647:u<-2147483648&&(u=-2147483648),numberIsNaN(u=+u)&&(u=v?0:i.length-1),u<0&&(u=i.length+u),u>=i.length){if(v)return-1;u=i.length-1}else if(u<0){if(!v)return-1;u=0}if(\"string\"==typeof s&&(s=Buffer.from(s,m)),Buffer.isBuffer(s))return 0===s.length?-1:arrayIndexOf(i,s,u,m,v);if(\"number\"==typeof s)return s&=255,\"function\"==typeof Uint8Array.prototype.indexOf?v?Uint8Array.prototype.indexOf.call(i,s,u):Uint8Array.prototype.lastIndexOf.call(i,s,u):arrayIndexOf(i,[s],u,m,v);throw new TypeError(\"val must be string, number or Buffer\")}function arrayIndexOf(i,s,u,m,v){let _,j=1,M=i.length,$=s.length;if(void 0!==m&&(\"ucs2\"===(m=String(m).toLowerCase())||\"ucs-2\"===m||\"utf16le\"===m||\"utf-16le\"===m)){if(i.length<2||s.length<2)return-1;j=2,M/=2,$/=2,u/=2}function read(i,s){return 1===j?i[s]:i.readUInt16BE(s*j)}if(v){let m=-1;for(_=u;_<M;_++)if(read(i,_)===read(s,-1===m?0:_-m)){if(-1===m&&(m=_),_-m+1===$)return m*j}else-1!==m&&(_-=_-m),m=-1}else for(u+$>M&&(u=M-$),_=u;_>=0;_--){let u=!0;for(let m=0;m<$;m++)if(read(i,_+m)!==read(s,m)){u=!1;break}if(u)return _}return-1}function hexWrite(i,s,u,m){u=Number(u)||0;const v=i.length-u;m?(m=Number(m))>v&&(m=v):m=v;const _=s.length;let j;for(m>_/2&&(m=_/2),j=0;j<m;++j){const m=parseInt(s.substr(2*j,2),16);if(numberIsNaN(m))return j;i[u+j]=m}return j}function utf8Write(i,s,u,m){return blitBuffer(utf8ToBytes(s,i.length-u),i,u,m)}function asciiWrite(i,s,u,m){return blitBuffer(function asciiToBytes(i){const s=[];for(let u=0;u<i.length;++u)s.push(255&i.charCodeAt(u));return s}(s),i,u,m)}function base64Write(i,s,u,m){return blitBuffer(base64ToBytes(s),i,u,m)}function ucs2Write(i,s,u,m){return blitBuffer(function utf16leToBytes(i,s){let u,m,v;const _=[];for(let j=0;j<i.length&&!((s-=2)<0);++j)u=i.charCodeAt(j),m=u>>8,v=u%256,_.push(v),_.push(m);return _}(s,i.length-u),i,u,m)}function base64Slice(i,s,u){return 0===s&&u===i.length?m.fromByteArray(i):m.fromByteArray(i.slice(s,u))}function utf8Slice(i,s,u){u=Math.min(i.length,u);const m=[];let v=s;for(;v<u;){const s=i[v];let _=null,j=s>239?4:s>223?3:s>191?2:1;if(v+j<=u){let u,m,M,$;switch(j){case 1:s<128&&(_=s);break;case 2:u=i[v+1],128==(192&u)&&($=(31&s)<<6|63&u,$>127&&(_=$));break;case 3:u=i[v+1],m=i[v+2],128==(192&u)&&128==(192&m)&&($=(15&s)<<12|(63&u)<<6|63&m,$>2047&&($<55296||$>57343)&&(_=$));break;case 4:u=i[v+1],m=i[v+2],M=i[v+3],128==(192&u)&&128==(192&m)&&128==(192&M)&&($=(15&s)<<18|(63&u)<<12|(63&m)<<6|63&M,$>65535&&$<1114112&&(_=$))}}null===_?(_=65533,j=1):_>65535&&(_-=65536,m.push(_>>>10&1023|55296),_=56320|1023&_),m.push(_),v+=j}return function decodeCodePointsArray(i){const s=i.length;if(s<=M)return String.fromCharCode.apply(String,i);let u=\"\",m=0;for(;m<s;)u+=String.fromCharCode.apply(String,i.slice(m,m+=M));return u}(m)}s.kMaxLength=j,Buffer.TYPED_ARRAY_SUPPORT=function typedArraySupport(){try{const i=new Uint8Array(1),s={foo:function(){return 42}};return Object.setPrototypeOf(s,Uint8Array.prototype),Object.setPrototypeOf(i,s),42===i.foo()}catch(i){return!1}}(),Buffer.TYPED_ARRAY_SUPPORT||\"undefined\"==typeof console||\"function\"!=typeof console.error||console.error(\"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\"),Object.defineProperty(Buffer.prototype,\"parent\",{enumerable:!0,get:function(){if(Buffer.isBuffer(this))return this.buffer}}),Object.defineProperty(Buffer.prototype,\"offset\",{enumerable:!0,get:function(){if(Buffer.isBuffer(this))return this.byteOffset}}),Buffer.poolSize=8192,Buffer.from=function(i,s,u){return from(i,s,u)},Object.setPrototypeOf(Buffer.prototype,Uint8Array.prototype),Object.setPrototypeOf(Buffer,Uint8Array),Buffer.alloc=function(i,s,u){return function alloc(i,s,u){return assertSize(i),i<=0?createBuffer(i):void 0!==s?\"string\"==typeof u?createBuffer(i).fill(s,u):createBuffer(i).fill(s):createBuffer(i)}(i,s,u)},Buffer.allocUnsafe=function(i){return allocUnsafe(i)},Buffer.allocUnsafeSlow=function(i){return allocUnsafe(i)},Buffer.isBuffer=function isBuffer(i){return null!=i&&!0===i._isBuffer&&i!==Buffer.prototype},Buffer.compare=function compare(i,s){if(isInstance(i,Uint8Array)&&(i=Buffer.from(i,i.offset,i.byteLength)),isInstance(s,Uint8Array)&&(s=Buffer.from(s,s.offset,s.byteLength)),!Buffer.isBuffer(i)||!Buffer.isBuffer(s))throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');if(i===s)return 0;let u=i.length,m=s.length;for(let v=0,_=Math.min(u,m);v<_;++v)if(i[v]!==s[v]){u=i[v],m=s[v];break}return u<m?-1:m<u?1:0},Buffer.isEncoding=function isEncoding(i){switch(String(i).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return!0;default:return!1}},Buffer.concat=function concat(i,s){if(!Array.isArray(i))throw new TypeError('\"list\" argument must be an Array of Buffers');if(0===i.length)return Buffer.alloc(0);let u;if(void 0===s)for(s=0,u=0;u<i.length;++u)s+=i[u].length;const m=Buffer.allocUnsafe(s);let v=0;for(u=0;u<i.length;++u){let s=i[u];if(isInstance(s,Uint8Array))v+s.length>m.length?(Buffer.isBuffer(s)||(s=Buffer.from(s)),s.copy(m,v)):Uint8Array.prototype.set.call(m,s,v);else{if(!Buffer.isBuffer(s))throw new TypeError('\"list\" argument must be an Array of Buffers');s.copy(m,v)}v+=s.length}return m},Buffer.byteLength=byteLength,Buffer.prototype._isBuffer=!0,Buffer.prototype.swap16=function swap16(){const i=this.length;if(i%2!=0)throw new RangeError(\"Buffer size must be a multiple of 16-bits\");for(let s=0;s<i;s+=2)swap(this,s,s+1);return this},Buffer.prototype.swap32=function swap32(){const i=this.length;if(i%4!=0)throw new RangeError(\"Buffer size must be a multiple of 32-bits\");for(let s=0;s<i;s+=4)swap(this,s,s+3),swap(this,s+1,s+2);return this},Buffer.prototype.swap64=function swap64(){const i=this.length;if(i%8!=0)throw new RangeError(\"Buffer size must be a multiple of 64-bits\");for(let s=0;s<i;s+=8)swap(this,s,s+7),swap(this,s+1,s+6),swap(this,s+2,s+5),swap(this,s+3,s+4);return this},Buffer.prototype.toString=function toString(){const i=this.length;return 0===i?\"\":0===arguments.length?utf8Slice(this,0,i):slowToString.apply(this,arguments)},Buffer.prototype.toLocaleString=Buffer.prototype.toString,Buffer.prototype.equals=function equals(i){if(!Buffer.isBuffer(i))throw new TypeError(\"Argument must be a Buffer\");return this===i||0===Buffer.compare(this,i)},Buffer.prototype.inspect=function inspect(){let i=\"\";const u=s.INSPECT_MAX_BYTES;return i=this.toString(\"hex\",0,u).replace(/(.{2})/g,\"$1 \").trim(),this.length>u&&(i+=\" ... \"),\"<Buffer \"+i+\">\"},_&&(Buffer.prototype[_]=Buffer.prototype.inspect),Buffer.prototype.compare=function compare(i,s,u,m,v){if(isInstance(i,Uint8Array)&&(i=Buffer.from(i,i.offset,i.byteLength)),!Buffer.isBuffer(i))throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. Received type '+typeof i);if(void 0===s&&(s=0),void 0===u&&(u=i?i.length:0),void 0===m&&(m=0),void 0===v&&(v=this.length),s<0||u>i.length||m<0||v>this.length)throw new RangeError(\"out of range index\");if(m>=v&&s>=u)return 0;if(m>=v)return-1;if(s>=u)return 1;if(this===i)return 0;let _=(v>>>=0)-(m>>>=0),j=(u>>>=0)-(s>>>=0);const M=Math.min(_,j),$=this.slice(m,v),W=i.slice(s,u);for(let i=0;i<M;++i)if($[i]!==W[i]){_=$[i],j=W[i];break}return _<j?-1:j<_?1:0},Buffer.prototype.includes=function includes(i,s,u){return-1!==this.indexOf(i,s,u)},Buffer.prototype.indexOf=function indexOf(i,s,u){return bidirectionalIndexOf(this,i,s,u,!0)},Buffer.prototype.lastIndexOf=function lastIndexOf(i,s,u){return bidirectionalIndexOf(this,i,s,u,!1)},Buffer.prototype.write=function write(i,s,u,m){if(void 0===s)m=\"utf8\",u=this.length,s=0;else if(void 0===u&&\"string\"==typeof s)m=s,u=this.length,s=0;else{if(!isFinite(s))throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");s>>>=0,isFinite(u)?(u>>>=0,void 0===m&&(m=\"utf8\")):(m=u,u=void 0)}const v=this.length-s;if((void 0===u||u>v)&&(u=v),i.length>0&&(u<0||s<0)||s>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");m||(m=\"utf8\");let _=!1;for(;;)switch(m){case\"hex\":return hexWrite(this,i,s,u);case\"utf8\":case\"utf-8\":return utf8Write(this,i,s,u);case\"ascii\":case\"latin1\":case\"binary\":return asciiWrite(this,i,s,u);case\"base64\":return base64Write(this,i,s,u);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return ucs2Write(this,i,s,u);default:if(_)throw new TypeError(\"Unknown encoding: \"+m);m=(\"\"+m).toLowerCase(),_=!0}},Buffer.prototype.toJSON=function toJSON(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};const M=4096;function asciiSlice(i,s,u){let m=\"\";u=Math.min(i.length,u);for(let v=s;v<u;++v)m+=String.fromCharCode(127&i[v]);return m}function latin1Slice(i,s,u){let m=\"\";u=Math.min(i.length,u);for(let v=s;v<u;++v)m+=String.fromCharCode(i[v]);return m}function hexSlice(i,s,u){const m=i.length;(!s||s<0)&&(s=0),(!u||u<0||u>m)&&(u=m);let v=\"\";for(let m=s;m<u;++m)v+=X[i[m]];return v}function utf16leSlice(i,s,u){const m=i.slice(s,u);let v=\"\";for(let i=0;i<m.length-1;i+=2)v+=String.fromCharCode(m[i]+256*m[i+1]);return v}function checkOffset(i,s,u){if(i%1!=0||i<0)throw new RangeError(\"offset is not uint\");if(i+s>u)throw new RangeError(\"Trying to access beyond buffer length\")}function checkInt(i,s,u,m,v,_){if(!Buffer.isBuffer(i))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(s>v||s<_)throw new RangeError('\"value\" argument is out of bounds');if(u+m>i.length)throw new RangeError(\"Index out of range\")}function wrtBigUInt64LE(i,s,u,m,v){checkIntBI(s,m,v,i,u,7);let _=Number(s&BigInt(4294967295));i[u++]=_,_>>=8,i[u++]=_,_>>=8,i[u++]=_,_>>=8,i[u++]=_;let j=Number(s>>BigInt(32)&BigInt(4294967295));return i[u++]=j,j>>=8,i[u++]=j,j>>=8,i[u++]=j,j>>=8,i[u++]=j,u}function wrtBigUInt64BE(i,s,u,m,v){checkIntBI(s,m,v,i,u,7);let _=Number(s&BigInt(4294967295));i[u+7]=_,_>>=8,i[u+6]=_,_>>=8,i[u+5]=_,_>>=8,i[u+4]=_;let j=Number(s>>BigInt(32)&BigInt(4294967295));return i[u+3]=j,j>>=8,i[u+2]=j,j>>=8,i[u+1]=j,j>>=8,i[u]=j,u+8}function checkIEEE754(i,s,u,m,v,_){if(u+m>i.length)throw new RangeError(\"Index out of range\");if(u<0)throw new RangeError(\"Index out of range\")}function writeFloat(i,s,u,m,_){return s=+s,u>>>=0,_||checkIEEE754(i,0,u,4),v.write(i,s,u,m,23,4),u+4}function writeDouble(i,s,u,m,_){return s=+s,u>>>=0,_||checkIEEE754(i,0,u,8),v.write(i,s,u,m,52,8),u+8}Buffer.prototype.slice=function slice(i,s){const u=this.length;(i=~~i)<0?(i+=u)<0&&(i=0):i>u&&(i=u),(s=void 0===s?u:~~s)<0?(s+=u)<0&&(s=0):s>u&&(s=u),s<i&&(s=i);const m=this.subarray(i,s);return Object.setPrototypeOf(m,Buffer.prototype),m},Buffer.prototype.readUintLE=Buffer.prototype.readUIntLE=function readUIntLE(i,s,u){i>>>=0,s>>>=0,u||checkOffset(i,s,this.length);let m=this[i],v=1,_=0;for(;++_<s&&(v*=256);)m+=this[i+_]*v;return m},Buffer.prototype.readUintBE=Buffer.prototype.readUIntBE=function readUIntBE(i,s,u){i>>>=0,s>>>=0,u||checkOffset(i,s,this.length);let m=this[i+--s],v=1;for(;s>0&&(v*=256);)m+=this[i+--s]*v;return m},Buffer.prototype.readUint8=Buffer.prototype.readUInt8=function readUInt8(i,s){return i>>>=0,s||checkOffset(i,1,this.length),this[i]},Buffer.prototype.readUint16LE=Buffer.prototype.readUInt16LE=function readUInt16LE(i,s){return i>>>=0,s||checkOffset(i,2,this.length),this[i]|this[i+1]<<8},Buffer.prototype.readUint16BE=Buffer.prototype.readUInt16BE=function readUInt16BE(i,s){return i>>>=0,s||checkOffset(i,2,this.length),this[i]<<8|this[i+1]},Buffer.prototype.readUint32LE=Buffer.prototype.readUInt32LE=function readUInt32LE(i,s){return i>>>=0,s||checkOffset(i,4,this.length),(this[i]|this[i+1]<<8|this[i+2]<<16)+16777216*this[i+3]},Buffer.prototype.readUint32BE=Buffer.prototype.readUInt32BE=function readUInt32BE(i,s){return i>>>=0,s||checkOffset(i,4,this.length),16777216*this[i]+(this[i+1]<<16|this[i+2]<<8|this[i+3])},Buffer.prototype.readBigUInt64LE=defineBigIntMethod((function readBigUInt64LE(i){validateNumber(i>>>=0,\"offset\");const s=this[i],u=this[i+7];void 0!==s&&void 0!==u||boundsError(i,this.length-8);const m=s+256*this[++i]+65536*this[++i]+this[++i]*2**24,v=this[++i]+256*this[++i]+65536*this[++i]+u*2**24;return BigInt(m)+(BigInt(v)<<BigInt(32))})),Buffer.prototype.readBigUInt64BE=defineBigIntMethod((function readBigUInt64BE(i){validateNumber(i>>>=0,\"offset\");const s=this[i],u=this[i+7];void 0!==s&&void 0!==u||boundsError(i,this.length-8);const m=s*2**24+65536*this[++i]+256*this[++i]+this[++i],v=this[++i]*2**24+65536*this[++i]+256*this[++i]+u;return(BigInt(m)<<BigInt(32))+BigInt(v)})),Buffer.prototype.readIntLE=function readIntLE(i,s,u){i>>>=0,s>>>=0,u||checkOffset(i,s,this.length);let m=this[i],v=1,_=0;for(;++_<s&&(v*=256);)m+=this[i+_]*v;return v*=128,m>=v&&(m-=Math.pow(2,8*s)),m},Buffer.prototype.readIntBE=function readIntBE(i,s,u){i>>>=0,s>>>=0,u||checkOffset(i,s,this.length);let m=s,v=1,_=this[i+--m];for(;m>0&&(v*=256);)_+=this[i+--m]*v;return v*=128,_>=v&&(_-=Math.pow(2,8*s)),_},Buffer.prototype.readInt8=function readInt8(i,s){return i>>>=0,s||checkOffset(i,1,this.length),128&this[i]?-1*(255-this[i]+1):this[i]},Buffer.prototype.readInt16LE=function readInt16LE(i,s){i>>>=0,s||checkOffset(i,2,this.length);const u=this[i]|this[i+1]<<8;return 32768&u?4294901760|u:u},Buffer.prototype.readInt16BE=function readInt16BE(i,s){i>>>=0,s||checkOffset(i,2,this.length);const u=this[i+1]|this[i]<<8;return 32768&u?4294901760|u:u},Buffer.prototype.readInt32LE=function readInt32LE(i,s){return i>>>=0,s||checkOffset(i,4,this.length),this[i]|this[i+1]<<8|this[i+2]<<16|this[i+3]<<24},Buffer.prototype.readInt32BE=function readInt32BE(i,s){return i>>>=0,s||checkOffset(i,4,this.length),this[i]<<24|this[i+1]<<16|this[i+2]<<8|this[i+3]},Buffer.prototype.readBigInt64LE=defineBigIntMethod((function readBigInt64LE(i){validateNumber(i>>>=0,\"offset\");const s=this[i],u=this[i+7];void 0!==s&&void 0!==u||boundsError(i,this.length-8);const m=this[i+4]+256*this[i+5]+65536*this[i+6]+(u<<24);return(BigInt(m)<<BigInt(32))+BigInt(s+256*this[++i]+65536*this[++i]+this[++i]*2**24)})),Buffer.prototype.readBigInt64BE=defineBigIntMethod((function readBigInt64BE(i){validateNumber(i>>>=0,\"offset\");const s=this[i],u=this[i+7];void 0!==s&&void 0!==u||boundsError(i,this.length-8);const m=(s<<24)+65536*this[++i]+256*this[++i]+this[++i];return(BigInt(m)<<BigInt(32))+BigInt(this[++i]*2**24+65536*this[++i]+256*this[++i]+u)})),Buffer.prototype.readFloatLE=function readFloatLE(i,s){return i>>>=0,s||checkOffset(i,4,this.length),v.read(this,i,!0,23,4)},Buffer.prototype.readFloatBE=function readFloatBE(i,s){return i>>>=0,s||checkOffset(i,4,this.length),v.read(this,i,!1,23,4)},Buffer.prototype.readDoubleLE=function readDoubleLE(i,s){return i>>>=0,s||checkOffset(i,8,this.length),v.read(this,i,!0,52,8)},Buffer.prototype.readDoubleBE=function readDoubleBE(i,s){return i>>>=0,s||checkOffset(i,8,this.length),v.read(this,i,!1,52,8)},Buffer.prototype.writeUintLE=Buffer.prototype.writeUIntLE=function writeUIntLE(i,s,u,m){if(i=+i,s>>>=0,u>>>=0,!m){checkInt(this,i,s,u,Math.pow(2,8*u)-1,0)}let v=1,_=0;for(this[s]=255&i;++_<u&&(v*=256);)this[s+_]=i/v&255;return s+u},Buffer.prototype.writeUintBE=Buffer.prototype.writeUIntBE=function writeUIntBE(i,s,u,m){if(i=+i,s>>>=0,u>>>=0,!m){checkInt(this,i,s,u,Math.pow(2,8*u)-1,0)}let v=u-1,_=1;for(this[s+v]=255&i;--v>=0&&(_*=256);)this[s+v]=i/_&255;return s+u},Buffer.prototype.writeUint8=Buffer.prototype.writeUInt8=function writeUInt8(i,s,u){return i=+i,s>>>=0,u||checkInt(this,i,s,1,255,0),this[s]=255&i,s+1},Buffer.prototype.writeUint16LE=Buffer.prototype.writeUInt16LE=function writeUInt16LE(i,s,u){return i=+i,s>>>=0,u||checkInt(this,i,s,2,65535,0),this[s]=255&i,this[s+1]=i>>>8,s+2},Buffer.prototype.writeUint16BE=Buffer.prototype.writeUInt16BE=function writeUInt16BE(i,s,u){return i=+i,s>>>=0,u||checkInt(this,i,s,2,65535,0),this[s]=i>>>8,this[s+1]=255&i,s+2},Buffer.prototype.writeUint32LE=Buffer.prototype.writeUInt32LE=function writeUInt32LE(i,s,u){return i=+i,s>>>=0,u||checkInt(this,i,s,4,4294967295,0),this[s+3]=i>>>24,this[s+2]=i>>>16,this[s+1]=i>>>8,this[s]=255&i,s+4},Buffer.prototype.writeUint32BE=Buffer.prototype.writeUInt32BE=function writeUInt32BE(i,s,u){return i=+i,s>>>=0,u||checkInt(this,i,s,4,4294967295,0),this[s]=i>>>24,this[s+1]=i>>>16,this[s+2]=i>>>8,this[s+3]=255&i,s+4},Buffer.prototype.writeBigUInt64LE=defineBigIntMethod((function writeBigUInt64LE(i,s=0){return wrtBigUInt64LE(this,i,s,BigInt(0),BigInt(\"0xffffffffffffffff\"))})),Buffer.prototype.writeBigUInt64BE=defineBigIntMethod((function writeBigUInt64BE(i,s=0){return wrtBigUInt64BE(this,i,s,BigInt(0),BigInt(\"0xffffffffffffffff\"))})),Buffer.prototype.writeIntLE=function writeIntLE(i,s,u,m){if(i=+i,s>>>=0,!m){const m=Math.pow(2,8*u-1);checkInt(this,i,s,u,m-1,-m)}let v=0,_=1,j=0;for(this[s]=255&i;++v<u&&(_*=256);)i<0&&0===j&&0!==this[s+v-1]&&(j=1),this[s+v]=(i/_>>0)-j&255;return s+u},Buffer.prototype.writeIntBE=function writeIntBE(i,s,u,m){if(i=+i,s>>>=0,!m){const m=Math.pow(2,8*u-1);checkInt(this,i,s,u,m-1,-m)}let v=u-1,_=1,j=0;for(this[s+v]=255&i;--v>=0&&(_*=256);)i<0&&0===j&&0!==this[s+v+1]&&(j=1),this[s+v]=(i/_>>0)-j&255;return s+u},Buffer.prototype.writeInt8=function writeInt8(i,s,u){return i=+i,s>>>=0,u||checkInt(this,i,s,1,127,-128),i<0&&(i=255+i+1),this[s]=255&i,s+1},Buffer.prototype.writeInt16LE=function writeInt16LE(i,s,u){return i=+i,s>>>=0,u||checkInt(this,i,s,2,32767,-32768),this[s]=255&i,this[s+1]=i>>>8,s+2},Buffer.prototype.writeInt16BE=function writeInt16BE(i,s,u){return i=+i,s>>>=0,u||checkInt(this,i,s,2,32767,-32768),this[s]=i>>>8,this[s+1]=255&i,s+2},Buffer.prototype.writeInt32LE=function writeInt32LE(i,s,u){return i=+i,s>>>=0,u||checkInt(this,i,s,4,2147483647,-2147483648),this[s]=255&i,this[s+1]=i>>>8,this[s+2]=i>>>16,this[s+3]=i>>>24,s+4},Buffer.prototype.writeInt32BE=function writeInt32BE(i,s,u){return i=+i,s>>>=0,u||checkInt(this,i,s,4,2147483647,-2147483648),i<0&&(i=4294967295+i+1),this[s]=i>>>24,this[s+1]=i>>>16,this[s+2]=i>>>8,this[s+3]=255&i,s+4},Buffer.prototype.writeBigInt64LE=defineBigIntMethod((function writeBigInt64LE(i,s=0){return wrtBigUInt64LE(this,i,s,-BigInt(\"0x8000000000000000\"),BigInt(\"0x7fffffffffffffff\"))})),Buffer.prototype.writeBigInt64BE=defineBigIntMethod((function writeBigInt64BE(i,s=0){return wrtBigUInt64BE(this,i,s,-BigInt(\"0x8000000000000000\"),BigInt(\"0x7fffffffffffffff\"))})),Buffer.prototype.writeFloatLE=function writeFloatLE(i,s,u){return writeFloat(this,i,s,!0,u)},Buffer.prototype.writeFloatBE=function writeFloatBE(i,s,u){return writeFloat(this,i,s,!1,u)},Buffer.prototype.writeDoubleLE=function writeDoubleLE(i,s,u){return writeDouble(this,i,s,!0,u)},Buffer.prototype.writeDoubleBE=function writeDoubleBE(i,s,u){return writeDouble(this,i,s,!1,u)},Buffer.prototype.copy=function copy(i,s,u,m){if(!Buffer.isBuffer(i))throw new TypeError(\"argument should be a Buffer\");if(u||(u=0),m||0===m||(m=this.length),s>=i.length&&(s=i.length),s||(s=0),m>0&&m<u&&(m=u),m===u)return 0;if(0===i.length||0===this.length)return 0;if(s<0)throw new RangeError(\"targetStart out of bounds\");if(u<0||u>=this.length)throw new RangeError(\"Index out of range\");if(m<0)throw new RangeError(\"sourceEnd out of bounds\");m>this.length&&(m=this.length),i.length-s<m-u&&(m=i.length-s+u);const v=m-u;return this===i&&\"function\"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(s,u,m):Uint8Array.prototype.set.call(i,this.subarray(u,m),s),v},Buffer.prototype.fill=function fill(i,s,u,m){if(\"string\"==typeof i){if(\"string\"==typeof s?(m=s,s=0,u=this.length):\"string\"==typeof u&&(m=u,u=this.length),void 0!==m&&\"string\"!=typeof m)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof m&&!Buffer.isEncoding(m))throw new TypeError(\"Unknown encoding: \"+m);if(1===i.length){const s=i.charCodeAt(0);(\"utf8\"===m&&s<128||\"latin1\"===m)&&(i=s)}}else\"number\"==typeof i?i&=255:\"boolean\"==typeof i&&(i=Number(i));if(s<0||this.length<s||this.length<u)throw new RangeError(\"Out of range index\");if(u<=s)return this;let v;if(s>>>=0,u=void 0===u?this.length:u>>>0,i||(i=0),\"number\"==typeof i)for(v=s;v<u;++v)this[v]=i;else{const _=Buffer.isBuffer(i)?i:Buffer.from(i,m),j=_.length;if(0===j)throw new TypeError('The value \"'+i+'\" is invalid for argument \"value\"');for(v=0;v<u-s;++v)this[v+s]=_[v%j]}return this};const $={};function E(i,s,u){$[i]=class NodeError extends u{constructor(){super(),Object.defineProperty(this,\"message\",{value:s.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${i}]`,this.stack,delete this.name}get code(){return i}set code(i){Object.defineProperty(this,\"code\",{configurable:!0,enumerable:!0,value:i,writable:!0})}toString(){return`${this.name} [${i}]: ${this.message}`}}}function addNumericalSeparator(i){let s=\"\",u=i.length;const m=\"-\"===i[0]?1:0;for(;u>=m+4;u-=3)s=`_${i.slice(u-3,u)}${s}`;return`${i.slice(0,u)}${s}`}function checkIntBI(i,s,u,m,v,_){if(i>u||i<s){const m=\"bigint\"==typeof s?\"n\":\"\";let v;throw v=_>3?0===s||s===BigInt(0)?`>= 0${m} and < 2${m} ** ${8*(_+1)}${m}`:`>= -(2${m} ** ${8*(_+1)-1}${m}) and < 2 ** ${8*(_+1)-1}${m}`:`>= ${s}${m} and <= ${u}${m}`,new $.ERR_OUT_OF_RANGE(\"value\",v,i)}!function checkBounds(i,s,u){validateNumber(s,\"offset\"),void 0!==i[s]&&void 0!==i[s+u]||boundsError(s,i.length-(u+1))}(m,v,_)}function validateNumber(i,s){if(\"number\"!=typeof i)throw new $.ERR_INVALID_ARG_TYPE(s,\"number\",i)}function boundsError(i,s,u){if(Math.floor(i)!==i)throw validateNumber(i,u),new $.ERR_OUT_OF_RANGE(u||\"offset\",\"an integer\",i);if(s<0)throw new $.ERR_BUFFER_OUT_OF_BOUNDS;throw new $.ERR_OUT_OF_RANGE(u||\"offset\",`>= ${u?1:0} and <= ${s}`,i)}E(\"ERR_BUFFER_OUT_OF_BOUNDS\",(function(i){return i?`${i} is outside of buffer bounds`:\"Attempt to access memory outside buffer bounds\"}),RangeError),E(\"ERR_INVALID_ARG_TYPE\",(function(i,s){return`The \"${i}\" argument must be of type number. Received type ${typeof s}`}),TypeError),E(\"ERR_OUT_OF_RANGE\",(function(i,s,u){let m=`The value of \"${i}\" is out of range.`,v=u;return Number.isInteger(u)&&Math.abs(u)>2**32?v=addNumericalSeparator(String(u)):\"bigint\"==typeof u&&(v=String(u),(u>BigInt(2)**BigInt(32)||u<-(BigInt(2)**BigInt(32)))&&(v=addNumericalSeparator(v)),v+=\"n\"),m+=` It must be ${s}. Received ${v}`,m}),RangeError);const W=/[^+/0-9A-Za-z-_]/g;function utf8ToBytes(i,s){let u;s=s||1/0;const m=i.length;let v=null;const _=[];for(let j=0;j<m;++j){if(u=i.charCodeAt(j),u>55295&&u<57344){if(!v){if(u>56319){(s-=3)>-1&&_.push(239,191,189);continue}if(j+1===m){(s-=3)>-1&&_.push(239,191,189);continue}v=u;continue}if(u<56320){(s-=3)>-1&&_.push(239,191,189),v=u;continue}u=65536+(v-55296<<10|u-56320)}else v&&(s-=3)>-1&&_.push(239,191,189);if(v=null,u<128){if((s-=1)<0)break;_.push(u)}else if(u<2048){if((s-=2)<0)break;_.push(u>>6|192,63&u|128)}else if(u<65536){if((s-=3)<0)break;_.push(u>>12|224,u>>6&63|128,63&u|128)}else{if(!(u<1114112))throw new Error(\"Invalid code point\");if((s-=4)<0)break;_.push(u>>18|240,u>>12&63|128,u>>6&63|128,63&u|128)}}return _}function base64ToBytes(i){return m.toByteArray(function base64clean(i){if((i=(i=i.split(\"=\")[0]).trim().replace(W,\"\")).length<2)return\"\";for(;i.length%4!=0;)i+=\"=\";return i}(i))}function blitBuffer(i,s,u,m){let v;for(v=0;v<m&&!(v+u>=s.length||v>=i.length);++v)s[v+u]=i[v];return v}function isInstance(i,s){return i instanceof s||null!=i&&null!=i.constructor&&null!=i.constructor.name&&i.constructor.name===s.name}function numberIsNaN(i){return i!=i}const X=function(){const i=\"0123456789abcdef\",s=new Array(256);for(let u=0;u<16;++u){const m=16*u;for(let v=0;v<16;++v)s[m+v]=i[u]+i[v]}return s}();function defineBigIntMethod(i){return\"undefined\"==typeof BigInt?BufferBigIntNotDefined:i}function BufferBigIntNotDefined(){throw new Error(\"BigInt not supported\")}},21924:(i,s,u)=>{\"use strict\";var m=u(40210),v=u(55559),_=v(m(\"String.prototype.indexOf\"));i.exports=function callBoundIntrinsic(i,s){var u=m(i,!!s);return\"function\"==typeof u&&_(i,\".prototype.\")>-1?v(u):u}},55559:(i,s,u)=>{\"use strict\";var m=u(58612),v=u(40210),_=v(\"%Function.prototype.apply%\"),j=v(\"%Function.prototype.call%\"),M=v(\"%Reflect.apply%\",!0)||m.call(j,_),$=v(\"%Object.getOwnPropertyDescriptor%\",!0),W=v(\"%Object.defineProperty%\",!0),X=v(\"%Math.max%\");if(W)try{W({},\"a\",{value:1})}catch(i){W=null}i.exports=function callBind(i){var s=M(m,j,arguments);$&&W&&($(s,\"length\").configurable&&W(s,\"length\",{value:1+X(0,i.length-(arguments.length-1))}));return s};var Y=function applyBind(){return M(m,_,arguments)};W?W(i.exports,\"apply\",{value:Y}):i.exports.apply=Y},94184:(i,s)=>{var u;!function(){\"use strict\";var m={}.hasOwnProperty;function classNames(){for(var i=[],s=0;s<arguments.length;s++){var u=arguments[s];if(u){var v=typeof u;if(\"string\"===v||\"number\"===v)i.push(u);else if(Array.isArray(u)){if(u.length){var _=classNames.apply(null,u);_&&i.push(_)}}else if(\"object\"===v){if(u.toString!==Object.prototype.toString&&!u.toString.toString().includes(\"[native code]\")){i.push(u.toString());continue}for(var j in u)m.call(u,j)&&u[j]&&i.push(j)}}}return i.join(\" \")}i.exports?(classNames.default=classNames,i.exports=classNames):void 0===(u=function(){return classNames}.apply(s,[]))||(i.exports=u)}()},76489:(i,s)=>{\"use strict\";s.parse=function parse(i,s){if(\"string\"!=typeof i)throw new TypeError(\"argument str must be a string\");var u={},m=(s||{}).decode||decode,v=0;for(;v<i.length;){var _=i.indexOf(\"=\",v);if(-1===_)break;var j=i.indexOf(\";\",v);if(-1===j)j=i.length;else if(j<_){v=i.lastIndexOf(\";\",_-1)+1;continue}var M=i.slice(v,_).trim();if(void 0===u[M]){var $=i.slice(_+1,j).trim();34===$.charCodeAt(0)&&($=$.slice(1,-1)),u[M]=tryDecode($,m)}v=j+1}return u},s.serialize=function serialize(i,s,v){var _=v||{},j=_.encode||encode;if(\"function\"!=typeof j)throw new TypeError(\"option encode is invalid\");if(!m.test(i))throw new TypeError(\"argument name is invalid\");var M=j(s);if(M&&!m.test(M))throw new TypeError(\"argument val is invalid\");var $=i+\"=\"+M;if(null!=_.maxAge){var W=_.maxAge-0;if(isNaN(W)||!isFinite(W))throw new TypeError(\"option maxAge is invalid\");$+=\"; Max-Age=\"+Math.floor(W)}if(_.domain){if(!m.test(_.domain))throw new TypeError(\"option domain is invalid\");$+=\"; Domain=\"+_.domain}if(_.path){if(!m.test(_.path))throw new TypeError(\"option path is invalid\");$+=\"; Path=\"+_.path}if(_.expires){var X=_.expires;if(!function isDate(i){return\"[object Date]\"===u.call(i)||i instanceof Date}(X)||isNaN(X.valueOf()))throw new TypeError(\"option expires is invalid\");$+=\"; Expires=\"+X.toUTCString()}_.httpOnly&&($+=\"; HttpOnly\");_.secure&&($+=\"; Secure\");if(_.priority){switch(\"string\"==typeof _.priority?_.priority.toLowerCase():_.priority){case\"low\":$+=\"; Priority=Low\";break;case\"medium\":$+=\"; Priority=Medium\";break;case\"high\":$+=\"; Priority=High\";break;default:throw new TypeError(\"option priority is invalid\")}}if(_.sameSite){switch(\"string\"==typeof _.sameSite?_.sameSite.toLowerCase():_.sameSite){case!0:$+=\"; SameSite=Strict\";break;case\"lax\":$+=\"; SameSite=Lax\";break;case\"strict\":$+=\"; SameSite=Strict\";break;case\"none\":$+=\"; SameSite=None\";break;default:throw new TypeError(\"option sameSite is invalid\")}}return $};var u=Object.prototype.toString,m=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;function decode(i){return-1!==i.indexOf(\"%\")?decodeURIComponent(i):i}function encode(i){return encodeURIComponent(i)}function tryDecode(i,s){try{return s(i)}catch(s){return i}}},20640:(i,s,u)=>{\"use strict\";var m=u(11742),v={\"text/plain\":\"Text\",\"text/html\":\"Url\",default:\"Text\"};i.exports=function copy(i,s){var u,_,j,M,$,W,X=!1;s||(s={}),u=s.debug||!1;try{if(j=m(),M=document.createRange(),$=document.getSelection(),(W=document.createElement(\"span\")).textContent=i,W.ariaHidden=\"true\",W.style.all=\"unset\",W.style.position=\"fixed\",W.style.top=0,W.style.clip=\"rect(0, 0, 0, 0)\",W.style.whiteSpace=\"pre\",W.style.webkitUserSelect=\"text\",W.style.MozUserSelect=\"text\",W.style.msUserSelect=\"text\",W.style.userSelect=\"text\",W.addEventListener(\"copy\",(function(m){if(m.stopPropagation(),s.format)if(m.preventDefault(),void 0===m.clipboardData){u&&console.warn(\"unable to use e.clipboardData\"),u&&console.warn(\"trying IE specific stuff\"),window.clipboardData.clearData();var _=v[s.format]||v.default;window.clipboardData.setData(_,i)}else m.clipboardData.clearData(),m.clipboardData.setData(s.format,i);s.onCopy&&(m.preventDefault(),s.onCopy(m.clipboardData))})),document.body.appendChild(W),M.selectNodeContents(W),$.addRange(M),!document.execCommand(\"copy\"))throw new Error(\"copy command was unsuccessful\");X=!0}catch(m){u&&console.error(\"unable to copy using execCommand: \",m),u&&console.warn(\"trying IE specific stuff\");try{window.clipboardData.setData(s.format||\"text\",i),s.onCopy&&s.onCopy(window.clipboardData),X=!0}catch(m){u&&console.error(\"unable to copy using clipboardData: \",m),u&&console.error(\"falling back to prompt\"),_=function format(i){var s=(/mac os x/i.test(navigator.userAgent)?\"⌘\":\"Ctrl\")+\"+C\";return i.replace(/#{\\s*key\\s*}/g,s)}(\"message\"in s?s.message:\"Copy to clipboard: #{key}, Enter\"),window.prompt(_,i)}}finally{$&&(\"function\"==typeof $.removeRange?$.removeRange(M):$.removeAllRanges()),W&&document.body.removeChild(W),j()}return X}},90093:(i,s,u)=>{var m=u(28196);i.exports=m},3688:(i,s,u)=>{var m=u(11955);i.exports=m},83838:(i,s,u)=>{var m=u(46279);i.exports=m},15684:(i,s,u)=>{var m=u(19373);i.exports=m},81331:(i,s,u)=>{var m=u(52759);i.exports=m},65362:(i,s,u)=>{var m=u(63383);i.exports=m},91254:(i,s,u)=>{var m=u(57396);i.exports=m},43536:(i,s,u)=>{var m=u(41910);i.exports=m},37331:(i,s,u)=>{var m=u(79427);i.exports=m},68522:(i,s,u)=>{var m=u(62857);i.exports=m},73151:(i,s,u)=>{var m=u(9534);i.exports=m},45012:(i,s,u)=>{var m=u(23059);i.exports=m},80281:(i,s,u)=>{var m=u(92547);u(97522),u(43975),u(45414),i.exports=m},40031:(i,s,u)=>{var m=u(46509);i.exports=m},17487:(i,s,u)=>{var m=u(35774);i.exports=m},62383:(i,s,u)=>{u(21501);var m=u(35703);i.exports=m(\"Array\").filter},99324:(i,s,u)=>{u(2437);var m=u(35703);i.exports=m(\"Array\").forEach},8700:(i,s,u)=>{u(99076);var m=u(35703);i.exports=m(\"Array\").indexOf},9896:(i,s,u)=>{u(48528);var m=u(35703);i.exports=m(\"Array\").push},27700:(i,s,u)=>{u(73381);var m=u(35703);i.exports=m(\"Function\").bind},16246:(i,s,u)=>{var m=u(7046),v=u(27700),_=Function.prototype;i.exports=function(i){var s=i.bind;return i===_||m(_,i)&&s===_.bind?v:s}},2480:(i,s,u)=>{var m=u(7046),v=u(62383),_=Array.prototype;i.exports=function(i){var s=i.filter;return i===_||m(_,i)&&s===_.filter?v:s}},34570:(i,s,u)=>{var m=u(7046),v=u(8700),_=Array.prototype;i.exports=function(i){var s=i.indexOf;return i===_||m(_,i)&&s===_.indexOf?v:s}},93993:(i,s,u)=>{var m=u(7046),v=u(9896),_=Array.prototype;i.exports=function(i){var s=i.push;return i===_||m(_,i)&&s===_.push?v:s}},45999:(i,s,u)=>{u(49221);var m=u(54058);i.exports=m.Object.assign},7702:(i,s,u)=>{u(74979);var m=u(54058).Object,v=i.exports=function defineProperties(i,s){return m.defineProperties(i,s)};m.defineProperties.sham&&(v.sham=!0)},48171:(i,s,u)=>{u(86450);var m=u(54058).Object,v=i.exports=function defineProperty(i,s,u){return m.defineProperty(i,s,u)};m.defineProperty.sham&&(v.sham=!0)},286:(i,s,u)=>{u(46924);var m=u(54058).Object,v=i.exports=function getOwnPropertyDescriptor(i,s){return m.getOwnPropertyDescriptor(i,s)};m.getOwnPropertyDescriptor.sham&&(v.sham=!0)},92766:(i,s,u)=>{u(88482);var m=u(54058);i.exports=m.Object.getOwnPropertyDescriptors},30498:(i,s,u)=>{u(35824);var m=u(54058);i.exports=m.Object.getOwnPropertySymbols},48494:(i,s,u)=>{u(21724);var m=u(54058);i.exports=m.Object.keys},57473:(i,s,u)=>{u(85906),u(55967),u(35824),u(8555),u(52615),u(21732),u(35903),u(1825),u(28394),u(45915),u(61766),u(62737),u(89911),u(74315),u(63131),u(64714),u(70659),u(69120),u(79413),u(1502);var m=u(54058);i.exports=m.Symbol},24227:(i,s,u)=>{u(66274),u(55967),u(77971),u(1825);var m=u(11477);i.exports=m.f(\"iterator\")},62978:(i,s,u)=>{u(18084),u(63131);var m=u(11477);i.exports=m.f(\"toPrimitive\")},14122:(i,s,u)=>{i.exports=u(89097)},44442:(i,s,u)=>{i.exports=u(51675)},57152:(i,s,u)=>{i.exports=u(82507)},69447:(i,s,u)=>{i.exports=u(628)},1449:(i,s,u)=>{i.exports=u(34501)},60269:(i,s,u)=>{i.exports=u(76936)},70573:(i,s,u)=>{i.exports=u(18180)},73685:(i,s,u)=>{i.exports=u(80621)},27533:(i,s,u)=>{i.exports=u(22948)},39057:(i,s,u)=>{i.exports=u(82108)},84710:(i,s,u)=>{i.exports=u(14058)},93799:(i,s,u)=>{i.exports=u(92093)},86600:(i,s,u)=>{i.exports=u(52201)},9759:(i,s,u)=>{i.exports=u(27398)},71384:(i,s,u)=>{i.exports=u(26189)},89097:(i,s,u)=>{var m=u(90093);i.exports=m},51675:(i,s,u)=>{var m=u(3688);i.exports=m},82507:(i,s,u)=>{var m=u(83838);i.exports=m},628:(i,s,u)=>{var m=u(15684);i.exports=m},34501:(i,s,u)=>{var m=u(81331);i.exports=m},76936:(i,s,u)=>{var m=u(65362);i.exports=m},18180:(i,s,u)=>{var m=u(91254);i.exports=m},80621:(i,s,u)=>{var m=u(43536);i.exports=m},22948:(i,s,u)=>{var m=u(37331);i.exports=m},82108:(i,s,u)=>{var m=u(68522);i.exports=m},14058:(i,s,u)=>{var m=u(73151);i.exports=m},92093:(i,s,u)=>{var m=u(45012);i.exports=m},52201:(i,s,u)=>{var m=u(80281);u(28783),u(97618),u(6989),u(65799),u(46774),u(22731),u(85605),u(31943),u(80620),u(36172),i.exports=m},27398:(i,s,u)=>{var m=u(40031);i.exports=m},26189:(i,s,u)=>{var m=u(17487);i.exports=m},24883:(i,s,u)=>{var m=u(57475),v=u(69826),_=TypeError;i.exports=function(i){if(m(i))return i;throw _(v(i)+\" is not a function\")}},11851:(i,s,u)=>{var m=u(57475),v=String,_=TypeError;i.exports=function(i){if(\"object\"==typeof i||m(i))return i;throw _(\"Can't set \"+v(i)+\" as a prototype\")}},18479:i=>{i.exports=function(){}},96059:(i,s,u)=>{var m=u(10941),v=String,_=TypeError;i.exports=function(i){if(m(i))return i;throw _(v(i)+\" is not an object\")}},56837:(i,s,u)=>{\"use strict\";var m=u(3610).forEach,v=u(34194)(\"forEach\");i.exports=v?[].forEach:function forEach(i){return m(this,i,arguments.length>1?arguments[1]:void 0)}},31692:(i,s,u)=>{var m=u(74529),v=u(59413),_=u(10623),createMethod=function(i){return function(s,u,j){var M,$=m(s),W=_($),X=v(j,W);if(i&&u!=u){for(;W>X;)if((M=$[X++])!=M)return!0}else for(;W>X;X++)if((i||X in $)&&$[X]===u)return i||X||0;return!i&&-1}};i.exports={includes:createMethod(!0),indexOf:createMethod(!1)}},3610:(i,s,u)=>{var m=u(86843),v=u(95329),_=u(37026),j=u(89678),M=u(10623),$=u(64692),W=v([].push),createMethod=function(i){var s=1==i,u=2==i,v=3==i,X=4==i,Y=6==i,Z=7==i,ee=5==i||Y;return function(ie,ae,ce,le){for(var pe,de,fe=j(ie),ye=_(fe),be=m(ae,ce),_e=M(ye),we=0,Se=le||$,xe=s?Se(ie,_e):u||Z?Se(ie,0):void 0;_e>we;we++)if((ee||we in ye)&&(de=be(pe=ye[we],we,fe),i))if(s)xe[we]=de;else if(de)switch(i){case 3:return!0;case 5:return pe;case 6:return we;case 2:W(xe,pe)}else switch(i){case 4:return!1;case 7:W(xe,pe)}return Y?-1:v||X?X:xe}};i.exports={forEach:createMethod(0),map:createMethod(1),filter:createMethod(2),some:createMethod(3),every:createMethod(4),find:createMethod(5),findIndex:createMethod(6),filterReject:createMethod(7)}},50568:(i,s,u)=>{var m=u(95981),v=u(99813),_=u(53385),j=v(\"species\");i.exports=function(i){return _>=51||!m((function(){var s=[];return(s.constructor={})[j]=function(){return{foo:1}},1!==s[i](Boolean).foo}))}},34194:(i,s,u)=>{\"use strict\";var m=u(95981);i.exports=function(i,s){var u=[][i];return!!u&&m((function(){u.call(null,s||function(){return 1},1)}))}},89779:(i,s,u)=>{\"use strict\";var m=u(55746),v=u(1052),_=TypeError,j=Object.getOwnPropertyDescriptor,M=m&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],\"length\",{writable:!1}).length=1}catch(i){return i instanceof TypeError}}();i.exports=M?function(i,s){if(v(i)&&!j(i,\"length\").writable)throw _(\"Cannot set read only .length\");return i.length=s}:function(i,s){return i.length=s}},15790:(i,s,u)=>{var m=u(59413),v=u(10623),_=u(55449),j=Array,M=Math.max;i.exports=function(i,s,u){for(var $=v(i),W=m(s,$),X=m(void 0===u?$:u,$),Y=j(M(X-W,0)),Z=0;W<X;W++,Z++)_(Y,Z,i[W]);return Y.length=Z,Y}},93765:(i,s,u)=>{var m=u(95329);i.exports=m([].slice)},5693:(i,s,u)=>{var m=u(1052),v=u(24284),_=u(10941),j=u(99813)(\"species\"),M=Array;i.exports=function(i){var s;return m(i)&&(s=i.constructor,(v(s)&&(s===M||m(s.prototype))||_(s)&&null===(s=s[j]))&&(s=void 0)),void 0===s?M:s}},64692:(i,s,u)=>{var m=u(5693);i.exports=function(i,s){return new(m(i))(0===s?0:s)}},82532:(i,s,u)=>{var m=u(95329),v=m({}.toString),_=m(\"\".slice);i.exports=function(i){return _(v(i),8,-1)}},9697:(i,s,u)=>{var m=u(22885),v=u(57475),_=u(82532),j=u(99813)(\"toStringTag\"),M=Object,$=\"Arguments\"==_(function(){return arguments}());i.exports=m?_:function(i){var s,u,m;return void 0===i?\"Undefined\":null===i?\"Null\":\"string\"==typeof(u=function(i,s){try{return i[s]}catch(i){}}(s=M(i),j))?u:$?_(s):\"Object\"==(m=_(s))&&v(s.callee)?\"Arguments\":m}},91310:(i,s,u)=>{var m=u(95981);i.exports=!m((function(){function F(){}return F.prototype.constructor=null,Object.getPrototypeOf(new F)!==F.prototype}))},23538:i=>{i.exports=function(i,s){return{value:i,done:s}}},32029:(i,s,u)=>{var m=u(55746),v=u(65988),_=u(31887);i.exports=m?function(i,s,u){return v.f(i,s,_(1,u))}:function(i,s,u){return i[s]=u,i}},31887:i=>{i.exports=function(i,s){return{enumerable:!(1&i),configurable:!(2&i),writable:!(4&i),value:s}}},55449:(i,s,u)=>{\"use strict\";var m=u(83894),v=u(65988),_=u(31887);i.exports=function(i,s,u){var j=m(s);j in i?v.f(i,j,_(0,u)):i[j]=u}},29202:(i,s,u)=>{var m=u(65988);i.exports=function(i,s,u){return m.f(i,s,u)}},95929:(i,s,u)=>{var m=u(32029);i.exports=function(i,s,u,v){return v&&v.enumerable?i[s]=u:m(i,s,u),i}},75609:(i,s,u)=>{var m=u(21899),v=Object.defineProperty;i.exports=function(i,s){try{v(m,i,{value:s,configurable:!0,writable:!0})}catch(u){m[i]=s}return s}},55746:(i,s,u)=>{var m=u(95981);i.exports=!m((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},76616:i=>{var s=\"object\"==typeof document&&document.all,u=void 0===s&&void 0!==s;i.exports={all:s,IS_HTMLDDA:u}},61333:(i,s,u)=>{var m=u(21899),v=u(10941),_=m.document,j=v(_)&&v(_.createElement);i.exports=function(i){return j?_.createElement(i):{}}},66796:i=>{var s=TypeError;i.exports=function(i){if(i>9007199254740991)throw s(\"Maximum allowed index exceeded\");return i}},63281:i=>{i.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},2861:i=>{i.exports=\"undefined\"!=typeof navigator&&String(navigator.userAgent)||\"\"},53385:(i,s,u)=>{var m,v,_=u(21899),j=u(2861),M=_.process,$=_.Deno,W=M&&M.versions||$&&$.version,X=W&&W.v8;X&&(v=(m=X.split(\".\"))[0]>0&&m[0]<4?1:+(m[0]+m[1])),!v&&j&&(!(m=j.match(/Edge\\/(\\d+)/))||m[1]>=74)&&(m=j.match(/Chrome\\/(\\d+)/))&&(v=+m[1]),i.exports=v},35703:(i,s,u)=>{var m=u(54058);i.exports=function(i){return m[i+\"Prototype\"]}},56759:i=>{i.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},76887:(i,s,u)=>{\"use strict\";var m=u(21899),v=u(79730),_=u(97484),j=u(57475),M=u(49677).f,$=u(37252),W=u(54058),X=u(86843),Y=u(32029),Z=u(90953),wrapConstructor=function(i){var Wrapper=function(s,u,m){if(this instanceof Wrapper){switch(arguments.length){case 0:return new i;case 1:return new i(s);case 2:return new i(s,u)}return new i(s,u,m)}return v(i,this,arguments)};return Wrapper.prototype=i.prototype,Wrapper};i.exports=function(i,s){var u,v,ee,ie,ae,ce,le,pe,de,fe=i.target,ye=i.global,be=i.stat,_e=i.proto,we=ye?m:be?m[fe]:(m[fe]||{}).prototype,Se=ye?W:W[fe]||Y(W,fe,{})[fe],xe=Se.prototype;for(ie in s)v=!(u=$(ye?ie:fe+(be?\".\":\"#\")+ie,i.forced))&&we&&Z(we,ie),ce=Se[ie],v&&(le=i.dontCallGetSet?(de=M(we,ie))&&de.value:we[ie]),ae=v&&le?le:s[ie],v&&typeof ce==typeof ae||(pe=i.bind&&v?X(ae,m):i.wrap&&v?wrapConstructor(ae):_e&&j(ae)?_(ae):ae,(i.sham||ae&&ae.sham||ce&&ce.sham)&&Y(pe,\"sham\",!0),Y(Se,ie,pe),_e&&(Z(W,ee=fe+\"Prototype\")||Y(W,ee,{}),Y(W[ee],ie,ae),i.real&&xe&&(u||!xe[ie])&&Y(xe,ie,ae)))}},95981:i=>{i.exports=function(i){try{return!!i()}catch(i){return!0}}},79730:(i,s,u)=>{var m=u(18285),v=Function.prototype,_=v.apply,j=v.call;i.exports=\"object\"==typeof Reflect&&Reflect.apply||(m?j.bind(_):function(){return j.apply(_,arguments)})},86843:(i,s,u)=>{var m=u(97484),v=u(24883),_=u(18285),j=m(m.bind);i.exports=function(i,s){return v(i),void 0===s?i:_?j(i,s):function(){return i.apply(s,arguments)}}},18285:(i,s,u)=>{var m=u(95981);i.exports=!m((function(){var i=function(){}.bind();return\"function\"!=typeof i||i.hasOwnProperty(\"prototype\")}))},98308:(i,s,u)=>{\"use strict\";var m=u(95329),v=u(24883),_=u(10941),j=u(90953),M=u(93765),$=u(18285),W=Function,X=m([].concat),Y=m([].join),Z={};i.exports=$?W.bind:function bind(i){var s=v(this),u=s.prototype,m=M(arguments,1),$=function bound(){var u=X(m,M(arguments));return this instanceof $?function(i,s,u){if(!j(Z,s)){for(var m=[],v=0;v<s;v++)m[v]=\"a[\"+v+\"]\";Z[s]=W(\"C,a\",\"return new C(\"+Y(m,\",\")+\")\")}return Z[s](i,u)}(s,u.length,u):s.apply(i,u)};return _(u)&&($.prototype=u),$}},78834:(i,s,u)=>{var m=u(18285),v=Function.prototype.call;i.exports=m?v.bind(v):function(){return v.apply(v,arguments)}},79417:(i,s,u)=>{var m=u(55746),v=u(90953),_=Function.prototype,j=m&&Object.getOwnPropertyDescriptor,M=v(_,\"name\"),$=M&&\"something\"===function something(){}.name,W=M&&(!m||m&&j(_,\"name\").configurable);i.exports={EXISTS:M,PROPER:$,CONFIGURABLE:W}},45526:(i,s,u)=>{var m=u(95329),v=u(24883);i.exports=function(i,s,u){try{return m(v(Object.getOwnPropertyDescriptor(i,s)[u]))}catch(i){}}},97484:(i,s,u)=>{var m=u(82532),v=u(95329);i.exports=function(i){if(\"Function\"===m(i))return v(i)}},95329:(i,s,u)=>{var m=u(18285),v=Function.prototype,_=v.call,j=m&&v.bind.bind(_,_);i.exports=m?j:function(i){return function(){return _.apply(i,arguments)}}},626:(i,s,u)=>{var m=u(54058),v=u(21899),_=u(57475),aFunction=function(i){return _(i)?i:void 0};i.exports=function(i,s){return arguments.length<2?aFunction(m[i])||aFunction(v[i]):m[i]&&m[i][s]||v[i]&&v[i][s]}},33323:(i,s,u)=>{var m=u(95329),v=u(1052),_=u(57475),j=u(82532),M=u(85803),$=m([].push);i.exports=function(i){if(_(i))return i;if(v(i)){for(var s=i.length,u=[],m=0;m<s;m++){var W=i[m];\"string\"==typeof W?$(u,W):\"number\"!=typeof W&&\"Number\"!=j(W)&&\"String\"!=j(W)||$(u,M(W))}var X=u.length,Y=!0;return function(i,s){if(Y)return Y=!1,s;if(v(this))return s;for(var m=0;m<X;m++)if(u[m]===i)return s}}}},14229:(i,s,u)=>{var m=u(24883),v=u(82119);i.exports=function(i,s){var u=i[s];return v(u)?void 0:m(u)}},21899:function(i,s,u){var check=function(i){return i&&i.Math==Math&&i};i.exports=check(\"object\"==typeof globalThis&&globalThis)||check(\"object\"==typeof window&&window)||check(\"object\"==typeof self&&self)||check(\"object\"==typeof u.g&&u.g)||function(){return this}()||this||Function(\"return this\")()},90953:(i,s,u)=>{var m=u(95329),v=u(89678),_=m({}.hasOwnProperty);i.exports=Object.hasOwn||function hasOwn(i,s){return _(v(i),s)}},27748:i=>{i.exports={}},15463:(i,s,u)=>{var m=u(626);i.exports=m(\"document\",\"documentElement\")},2840:(i,s,u)=>{var m=u(55746),v=u(95981),_=u(61333);i.exports=!m&&!v((function(){return 7!=Object.defineProperty(_(\"div\"),\"a\",{get:function(){return 7}}).a}))},37026:(i,s,u)=>{var m=u(95329),v=u(95981),_=u(82532),j=Object,M=m(\"\".split);i.exports=v((function(){return!j(\"z\").propertyIsEnumerable(0)}))?function(i){return\"String\"==_(i)?M(i,\"\"):j(i)}:j},81302:(i,s,u)=>{var m=u(95329),v=u(57475),_=u(63030),j=m(Function.toString);v(_.inspectSource)||(_.inspectSource=function(i){return j(i)}),i.exports=_.inspectSource},45402:(i,s,u)=>{var m,v,_,j=u(47093),M=u(21899),$=u(10941),W=u(32029),X=u(90953),Y=u(63030),Z=u(44262),ee=u(27748),ie=\"Object already initialized\",ae=M.TypeError,ce=M.WeakMap;if(j||Y.state){var le=Y.state||(Y.state=new ce);le.get=le.get,le.has=le.has,le.set=le.set,m=function(i,s){if(le.has(i))throw ae(ie);return s.facade=i,le.set(i,s),s},v=function(i){return le.get(i)||{}},_=function(i){return le.has(i)}}else{var pe=Z(\"state\");ee[pe]=!0,m=function(i,s){if(X(i,pe))throw ae(ie);return s.facade=i,W(i,pe,s),s},v=function(i){return X(i,pe)?i[pe]:{}},_=function(i){return X(i,pe)}}i.exports={set:m,get:v,has:_,enforce:function(i){return _(i)?v(i):m(i,{})},getterFor:function(i){return function(s){var u;if(!$(s)||(u=v(s)).type!==i)throw ae(\"Incompatible receiver, \"+i+\" required\");return u}}}},1052:(i,s,u)=>{var m=u(82532);i.exports=Array.isArray||function isArray(i){return\"Array\"==m(i)}},57475:(i,s,u)=>{var m=u(76616),v=m.all;i.exports=m.IS_HTMLDDA?function(i){return\"function\"==typeof i||i===v}:function(i){return\"function\"==typeof i}},24284:(i,s,u)=>{var m=u(95329),v=u(95981),_=u(57475),j=u(9697),M=u(626),$=u(81302),noop=function(){},W=[],X=M(\"Reflect\",\"construct\"),Y=/^\\s*(?:class|function)\\b/,Z=m(Y.exec),ee=!Y.exec(noop),ie=function isConstructor(i){if(!_(i))return!1;try{return X(noop,W,i),!0}catch(i){return!1}},ae=function isConstructor(i){if(!_(i))return!1;switch(j(i)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return ee||!!Z(Y,$(i))}catch(i){return!0}};ae.sham=!0,i.exports=!X||v((function(){var i;return ie(ie.call)||!ie(Object)||!ie((function(){i=!0}))||i}))?ae:ie},37252:(i,s,u)=>{var m=u(95981),v=u(57475),_=/#|\\.prototype\\./,isForced=function(i,s){var u=M[j(i)];return u==W||u!=$&&(v(s)?m(s):!!s)},j=isForced.normalize=function(i){return String(i).replace(_,\".\").toLowerCase()},M=isForced.data={},$=isForced.NATIVE=\"N\",W=isForced.POLYFILL=\"P\";i.exports=isForced},82119:i=>{i.exports=function(i){return null==i}},10941:(i,s,u)=>{var m=u(57475),v=u(76616),_=v.all;i.exports=v.IS_HTMLDDA?function(i){return\"object\"==typeof i?null!==i:m(i)||i===_}:function(i){return\"object\"==typeof i?null!==i:m(i)}},82529:i=>{i.exports=!0},56664:(i,s,u)=>{var m=u(626),v=u(57475),_=u(7046),j=u(32302),M=Object;i.exports=j?function(i){return\"symbol\"==typeof i}:function(i){var s=m(\"Symbol\");return v(s)&&_(s.prototype,M(i))}},53847:(i,s,u)=>{\"use strict\";var m=u(35143).IteratorPrototype,v=u(29290),_=u(31887),j=u(90904),M=u(12077),returnThis=function(){return this};i.exports=function(i,s,u,$){var W=s+\" Iterator\";return i.prototype=v(m,{next:_(+!$,u)}),j(i,W,!1,!0),M[W]=returnThis,i}},75105:(i,s,u)=>{\"use strict\";var m=u(76887),v=u(78834),_=u(82529),j=u(79417),M=u(57475),$=u(53847),W=u(249),X=u(88929),Y=u(90904),Z=u(32029),ee=u(95929),ie=u(99813),ae=u(12077),ce=u(35143),le=j.PROPER,pe=j.CONFIGURABLE,de=ce.IteratorPrototype,fe=ce.BUGGY_SAFARI_ITERATORS,ye=ie(\"iterator\"),be=\"keys\",_e=\"values\",we=\"entries\",returnThis=function(){return this};i.exports=function(i,s,u,j,ie,ce,Se){$(u,s,j);var xe,Pe,Ie,getIterationMethod=function(i){if(i===ie&&Ve)return Ve;if(!fe&&i in qe)return qe[i];switch(i){case be:return function keys(){return new u(this,i)};case _e:return function values(){return new u(this,i)};case we:return function entries(){return new u(this,i)}}return function(){return new u(this)}},Te=s+\" Iterator\",Re=!1,qe=i.prototype,ze=qe[ye]||qe[\"@@iterator\"]||ie&&qe[ie],Ve=!fe&&ze||getIterationMethod(ie),We=\"Array\"==s&&qe.entries||ze;if(We&&(xe=W(We.call(new i)))!==Object.prototype&&xe.next&&(_||W(xe)===de||(X?X(xe,de):M(xe[ye])||ee(xe,ye,returnThis)),Y(xe,Te,!0,!0),_&&(ae[Te]=returnThis)),le&&ie==_e&&ze&&ze.name!==_e&&(!_&&pe?Z(qe,\"name\",_e):(Re=!0,Ve=function values(){return v(ze,this)})),ie)if(Pe={values:getIterationMethod(_e),keys:ce?Ve:getIterationMethod(be),entries:getIterationMethod(we)},Se)for(Ie in Pe)(fe||Re||!(Ie in qe))&&ee(qe,Ie,Pe[Ie]);else m({target:s,proto:!0,forced:fe||Re},Pe);return _&&!Se||qe[ye]===Ve||ee(qe,ye,Ve,{name:ie}),ae[s]=Ve,Pe}},35143:(i,s,u)=>{\"use strict\";var m,v,_,j=u(95981),M=u(57475),$=u(10941),W=u(29290),X=u(249),Y=u(95929),Z=u(99813),ee=u(82529),ie=Z(\"iterator\"),ae=!1;[].keys&&(\"next\"in(_=[].keys())?(v=X(X(_)))!==Object.prototype&&(m=v):ae=!0),!$(m)||j((function(){var i={};return m[ie].call(i)!==i}))?m={}:ee&&(m=W(m)),M(m[ie])||Y(m,ie,(function(){return this})),i.exports={IteratorPrototype:m,BUGGY_SAFARI_ITERATORS:ae}},12077:i=>{i.exports={}},10623:(i,s,u)=>{var m=u(43057);i.exports=function(i){return m(i.length)}},35331:i=>{var s=Math.ceil,u=Math.floor;i.exports=Math.trunc||function trunc(i){var m=+i;return(m>0?u:s)(m)}},24420:(i,s,u)=>{\"use strict\";var m=u(55746),v=u(95329),_=u(78834),j=u(95981),M=u(14771),$=u(87857),W=u(36760),X=u(89678),Y=u(37026),Z=Object.assign,ee=Object.defineProperty,ie=v([].concat);i.exports=!Z||j((function(){if(m&&1!==Z({b:1},Z(ee({},\"a\",{enumerable:!0,get:function(){ee(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var i={},s={},u=Symbol(),v=\"abcdefghijklmnopqrst\";return i[u]=7,v.split(\"\").forEach((function(i){s[i]=i})),7!=Z({},i)[u]||M(Z({},s)).join(\"\")!=v}))?function assign(i,s){for(var u=X(i),v=arguments.length,j=1,Z=$.f,ee=W.f;v>j;)for(var ae,ce=Y(arguments[j++]),le=Z?ie(M(ce),Z(ce)):M(ce),pe=le.length,de=0;pe>de;)ae=le[de++],m&&!_(ee,ce,ae)||(u[ae]=ce[ae]);return u}:Z},29290:(i,s,u)=>{var m,v=u(96059),_=u(59938),j=u(56759),M=u(27748),$=u(15463),W=u(61333),X=u(44262),Y=\"prototype\",Z=\"script\",ee=X(\"IE_PROTO\"),EmptyConstructor=function(){},scriptTag=function(i){return\"<\"+Z+\">\"+i+\"</\"+Z+\">\"},NullProtoObjectViaActiveX=function(i){i.write(scriptTag(\"\")),i.close();var s=i.parentWindow.Object;return i=null,s},NullProtoObject=function(){try{m=new ActiveXObject(\"htmlfile\")}catch(i){}var i,s,u;NullProtoObject=\"undefined\"!=typeof document?document.domain&&m?NullProtoObjectViaActiveX(m):(s=W(\"iframe\"),u=\"java\"+Z+\":\",s.style.display=\"none\",$.appendChild(s),s.src=String(u),(i=s.contentWindow.document).open(),i.write(scriptTag(\"document.F=Object\")),i.close(),i.F):NullProtoObjectViaActiveX(m);for(var v=j.length;v--;)delete NullProtoObject[Y][j[v]];return NullProtoObject()};M[ee]=!0,i.exports=Object.create||function create(i,s){var u;return null!==i?(EmptyConstructor[Y]=v(i),u=new EmptyConstructor,EmptyConstructor[Y]=null,u[ee]=i):u=NullProtoObject(),void 0===s?u:_.f(u,s)}},59938:(i,s,u)=>{var m=u(55746),v=u(83937),_=u(65988),j=u(96059),M=u(74529),$=u(14771);s.f=m&&!v?Object.defineProperties:function defineProperties(i,s){j(i);for(var u,m=M(s),v=$(s),W=v.length,X=0;W>X;)_.f(i,u=v[X++],m[u]);return i}},65988:(i,s,u)=>{var m=u(55746),v=u(2840),_=u(83937),j=u(96059),M=u(83894),$=TypeError,W=Object.defineProperty,X=Object.getOwnPropertyDescriptor,Y=\"enumerable\",Z=\"configurable\",ee=\"writable\";s.f=m?_?function defineProperty(i,s,u){if(j(i),s=M(s),j(u),\"function\"==typeof i&&\"prototype\"===s&&\"value\"in u&&ee in u&&!u[ee]){var m=X(i,s);m&&m[ee]&&(i[s]=u.value,u={configurable:Z in u?u[Z]:m[Z],enumerable:Y in u?u[Y]:m[Y],writable:!1})}return W(i,s,u)}:W:function defineProperty(i,s,u){if(j(i),s=M(s),j(u),v)try{return W(i,s,u)}catch(i){}if(\"get\"in u||\"set\"in u)throw $(\"Accessors not supported\");return\"value\"in u&&(i[s]=u.value),i}},49677:(i,s,u)=>{var m=u(55746),v=u(78834),_=u(36760),j=u(31887),M=u(74529),$=u(83894),W=u(90953),X=u(2840),Y=Object.getOwnPropertyDescriptor;s.f=m?Y:function getOwnPropertyDescriptor(i,s){if(i=M(i),s=$(s),X)try{return Y(i,s)}catch(i){}if(W(i,s))return j(!v(_.f,i,s),i[s])}},684:(i,s,u)=>{var m=u(82532),v=u(74529),_=u(10946).f,j=u(15790),M=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];i.exports.f=function getOwnPropertyNames(i){return M&&\"Window\"==m(i)?function(i){try{return _(i)}catch(i){return j(M)}}(i):_(v(i))}},10946:(i,s,u)=>{var m=u(55629),v=u(56759).concat(\"length\",\"prototype\");s.f=Object.getOwnPropertyNames||function getOwnPropertyNames(i){return m(i,v)}},87857:(i,s)=>{s.f=Object.getOwnPropertySymbols},249:(i,s,u)=>{var m=u(90953),v=u(57475),_=u(89678),j=u(44262),M=u(91310),$=j(\"IE_PROTO\"),W=Object,X=W.prototype;i.exports=M?W.getPrototypeOf:function(i){var s=_(i);if(m(s,$))return s[$];var u=s.constructor;return v(u)&&s instanceof u?u.prototype:s instanceof W?X:null}},7046:(i,s,u)=>{var m=u(95329);i.exports=m({}.isPrototypeOf)},55629:(i,s,u)=>{var m=u(95329),v=u(90953),_=u(74529),j=u(31692).indexOf,M=u(27748),$=m([].push);i.exports=function(i,s){var u,m=_(i),W=0,X=[];for(u in m)!v(M,u)&&v(m,u)&&$(X,u);for(;s.length>W;)v(m,u=s[W++])&&(~j(X,u)||$(X,u));return X}},14771:(i,s,u)=>{var m=u(55629),v=u(56759);i.exports=Object.keys||function keys(i){return m(i,v)}},36760:(i,s)=>{\"use strict\";var u={}.propertyIsEnumerable,m=Object.getOwnPropertyDescriptor,v=m&&!u.call({1:2},1);s.f=v?function propertyIsEnumerable(i){var s=m(this,i);return!!s&&s.enumerable}:u},88929:(i,s,u)=>{var m=u(45526),v=u(96059),_=u(11851);i.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var i,s=!1,u={};try{(i=m(Object.prototype,\"__proto__\",\"set\"))(u,[]),s=u instanceof Array}catch(i){}return function setPrototypeOf(u,m){return v(u),_(m),s?i(u,m):u.__proto__=m,u}}():void 0)},95623:(i,s,u)=>{\"use strict\";var m=u(22885),v=u(9697);i.exports=m?{}.toString:function toString(){return\"[object \"+v(this)+\"]\"}},39811:(i,s,u)=>{var m=u(78834),v=u(57475),_=u(10941),j=TypeError;i.exports=function(i,s){var u,M;if(\"string\"===s&&v(u=i.toString)&&!_(M=m(u,i)))return M;if(v(u=i.valueOf)&&!_(M=m(u,i)))return M;if(\"string\"!==s&&v(u=i.toString)&&!_(M=m(u,i)))return M;throw j(\"Can't convert object to primitive value\")}},31136:(i,s,u)=>{var m=u(626),v=u(95329),_=u(10946),j=u(87857),M=u(96059),$=v([].concat);i.exports=m(\"Reflect\",\"ownKeys\")||function ownKeys(i){var s=_.f(M(i)),u=j.f;return u?$(s,u(i)):s}},54058:i=>{i.exports={}},48219:(i,s,u)=>{var m=u(82119),v=TypeError;i.exports=function(i){if(m(i))throw v(\"Can't call method on \"+i);return i}},90904:(i,s,u)=>{var m=u(22885),v=u(65988).f,_=u(32029),j=u(90953),M=u(95623),$=u(99813)(\"toStringTag\");i.exports=function(i,s,u,W){if(i){var X=u?i:i.prototype;j(X,$)||v(X,$,{configurable:!0,value:s}),W&&!m&&_(X,\"toString\",M)}}},44262:(i,s,u)=>{var m=u(68726),v=u(99418),_=m(\"keys\");i.exports=function(i){return _[i]||(_[i]=v(i))}},63030:(i,s,u)=>{var m=u(21899),v=u(75609),_=\"__core-js_shared__\",j=m[_]||v(_,{});i.exports=j},68726:(i,s,u)=>{var m=u(82529),v=u(63030);(i.exports=function(i,s){return v[i]||(v[i]=void 0!==s?s:{})})(\"versions\",[]).push({version:\"3.31.1\",mode:m?\"pure\":\"global\",copyright:\"© 2014-2023 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.31.1/LICENSE\",source:\"https://github.com/zloirock/core-js\"})},64620:(i,s,u)=>{var m=u(95329),v=u(62435),_=u(85803),j=u(48219),M=m(\"\".charAt),$=m(\"\".charCodeAt),W=m(\"\".slice),createMethod=function(i){return function(s,u){var m,X,Y=_(j(s)),Z=v(u),ee=Y.length;return Z<0||Z>=ee?i?\"\":void 0:(m=$(Y,Z))<55296||m>56319||Z+1===ee||(X=$(Y,Z+1))<56320||X>57343?i?M(Y,Z):m:i?W(Y,Z,Z+2):X-56320+(m-55296<<10)+65536}};i.exports={codeAt:createMethod(!1),charAt:createMethod(!0)}},63405:(i,s,u)=>{var m=u(53385),v=u(95981),_=u(21899).String;i.exports=!!Object.getOwnPropertySymbols&&!v((function(){var i=Symbol();return!_(i)||!(Object(i)instanceof Symbol)||!Symbol.sham&&m&&m<41}))},29630:(i,s,u)=>{var m=u(78834),v=u(626),_=u(99813),j=u(95929);i.exports=function(){var i=v(\"Symbol\"),s=i&&i.prototype,u=s&&s.valueOf,M=_(\"toPrimitive\");s&&!s[M]&&j(s,M,(function(i){return m(u,this)}),{arity:1})}},32087:(i,s,u)=>{var m=u(626),v=u(95329),_=m(\"Symbol\"),j=_.keyFor,M=v(_.prototype.valueOf);i.exports=_.isRegisteredSymbol||function isRegisteredSymbol(i){try{return void 0!==j(M(i))}catch(i){return!1}}},96559:(i,s,u)=>{for(var m=u(68726),v=u(626),_=u(95329),j=u(56664),M=u(99813),$=v(\"Symbol\"),W=$.isWellKnownSymbol,X=v(\"Object\",\"getOwnPropertyNames\"),Y=_($.prototype.valueOf),Z=m(\"wks\"),ee=0,ie=X($),ae=ie.length;ee<ae;ee++)try{var ce=ie[ee];j($[ce])&&M(ce)}catch(i){}i.exports=function isWellKnownSymbol(i){if(W&&W(i))return!0;try{for(var s=Y(i),u=0,m=X(Z),v=m.length;u<v;u++)if(Z[m[u]]==s)return!0}catch(i){}return!1}},34680:(i,s,u)=>{var m=u(63405);i.exports=m&&!!Symbol.for&&!!Symbol.keyFor},59413:(i,s,u)=>{var m=u(62435),v=Math.max,_=Math.min;i.exports=function(i,s){var u=m(i);return u<0?v(u+s,0):_(u,s)}},74529:(i,s,u)=>{var m=u(37026),v=u(48219);i.exports=function(i){return m(v(i))}},62435:(i,s,u)=>{var m=u(35331);i.exports=function(i){var s=+i;return s!=s||0===s?0:m(s)}},43057:(i,s,u)=>{var m=u(62435),v=Math.min;i.exports=function(i){return i>0?v(m(i),9007199254740991):0}},89678:(i,s,u)=>{var m=u(48219),v=Object;i.exports=function(i){return v(m(i))}},46935:(i,s,u)=>{var m=u(78834),v=u(10941),_=u(56664),j=u(14229),M=u(39811),$=u(99813),W=TypeError,X=$(\"toPrimitive\");i.exports=function(i,s){if(!v(i)||_(i))return i;var u,$=j(i,X);if($){if(void 0===s&&(s=\"default\"),u=m($,i,s),!v(u)||_(u))return u;throw W(\"Can't convert object to primitive value\")}return void 0===s&&(s=\"number\"),M(i,s)}},83894:(i,s,u)=>{var m=u(46935),v=u(56664);i.exports=function(i){var s=m(i,\"string\");return v(s)?s:s+\"\"}},22885:(i,s,u)=>{var m={};m[u(99813)(\"toStringTag\")]=\"z\",i.exports=\"[object z]\"===String(m)},85803:(i,s,u)=>{var m=u(9697),v=String;i.exports=function(i){if(\"Symbol\"===m(i))throw TypeError(\"Cannot convert a Symbol value to a string\");return v(i)}},69826:i=>{var s=String;i.exports=function(i){try{return s(i)}catch(i){return\"Object\"}}},99418:(i,s,u)=>{var m=u(95329),v=0,_=Math.random(),j=m(1..toString);i.exports=function(i){return\"Symbol(\"+(void 0===i?\"\":i)+\")_\"+j(++v+_,36)}},32302:(i,s,u)=>{var m=u(63405);i.exports=m&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator},83937:(i,s,u)=>{var m=u(55746),v=u(95981);i.exports=m&&v((function(){return 42!=Object.defineProperty((function(){}),\"prototype\",{value:42,writable:!1}).prototype}))},47093:(i,s,u)=>{var m=u(21899),v=u(57475),_=m.WeakMap;i.exports=v(_)&&/native code/.test(String(_))},73464:(i,s,u)=>{var m=u(54058),v=u(90953),_=u(11477),j=u(65988).f;i.exports=function(i){var s=m.Symbol||(m.Symbol={});v(s,i)||j(s,i,{value:_.f(i)})}},11477:(i,s,u)=>{var m=u(99813);s.f=m},99813:(i,s,u)=>{var m=u(21899),v=u(68726),_=u(90953),j=u(99418),M=u(63405),$=u(32302),W=m.Symbol,X=v(\"wks\"),Y=$?W.for||W:W&&W.withoutSetter||j;i.exports=function(i){return _(X,i)||(X[i]=M&&_(W,i)?W[i]:Y(\"Symbol.\"+i)),X[i]}},85906:(i,s,u)=>{\"use strict\";var m=u(76887),v=u(95981),_=u(1052),j=u(10941),M=u(89678),$=u(10623),W=u(66796),X=u(55449),Y=u(64692),Z=u(50568),ee=u(99813),ie=u(53385),ae=ee(\"isConcatSpreadable\"),ce=ie>=51||!v((function(){var i=[];return i[ae]=!1,i.concat()[0]!==i})),isConcatSpreadable=function(i){if(!j(i))return!1;var s=i[ae];return void 0!==s?!!s:_(i)};m({target:\"Array\",proto:!0,arity:1,forced:!ce||!Z(\"concat\")},{concat:function concat(i){var s,u,m,v,_,j=M(this),Z=Y(j,0),ee=0;for(s=-1,m=arguments.length;s<m;s++)if(isConcatSpreadable(_=-1===s?j:arguments[s]))for(v=$(_),W(ee+v),u=0;u<v;u++,ee++)u in _&&X(Z,ee,_[u]);else W(ee+1),X(Z,ee++,_);return Z.length=ee,Z}})},21501:(i,s,u)=>{\"use strict\";var m=u(76887),v=u(3610).filter;m({target:\"Array\",proto:!0,forced:!u(50568)(\"filter\")},{filter:function filter(i){return v(this,i,arguments.length>1?arguments[1]:void 0)}})},2437:(i,s,u)=>{\"use strict\";var m=u(76887),v=u(56837);m({target:\"Array\",proto:!0,forced:[].forEach!=v},{forEach:v})},99076:(i,s,u)=>{\"use strict\";var m=u(76887),v=u(97484),_=u(31692).indexOf,j=u(34194),M=v([].indexOf),$=!!M&&1/M([1],1,-0)<0;m({target:\"Array\",proto:!0,forced:$||!j(\"indexOf\")},{indexOf:function indexOf(i){var s=arguments.length>1?arguments[1]:void 0;return $?M(this,i,s)||0:_(this,i,s)}})},66274:(i,s,u)=>{\"use strict\";var m=u(74529),v=u(18479),_=u(12077),j=u(45402),M=u(65988).f,$=u(75105),W=u(23538),X=u(82529),Y=u(55746),Z=\"Array Iterator\",ee=j.set,ie=j.getterFor(Z);i.exports=$(Array,\"Array\",(function(i,s){ee(this,{type:Z,target:m(i),index:0,kind:s})}),(function(){var i=ie(this),s=i.target,u=i.kind,m=i.index++;return!s||m>=s.length?(i.target=void 0,W(void 0,!0)):W(\"keys\"==u?m:\"values\"==u?s[m]:[m,s[m]],!1)}),\"values\");var ae=_.Arguments=_.Array;if(v(\"keys\"),v(\"values\"),v(\"entries\"),!X&&Y&&\"values\"!==ae.name)try{M(ae,\"name\",{value:\"values\"})}catch(i){}},48528:(i,s,u)=>{\"use strict\";var m=u(76887),v=u(89678),_=u(10623),j=u(89779),M=u(66796);m({target:\"Array\",proto:!0,arity:1,forced:u(95981)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],\"length\",{writable:!1}).push()}catch(i){return i instanceof TypeError}}()},{push:function push(i){var s=v(this),u=_(s),m=arguments.length;M(u+m);for(var $=0;$<m;$++)s[u]=arguments[$],u++;return j(s,u),u}})},18084:()=>{},73381:(i,s,u)=>{var m=u(76887),v=u(98308);m({target:\"Function\",proto:!0,forced:Function.bind!==v},{bind:v})},32619:(i,s,u)=>{var m=u(76887),v=u(626),_=u(79730),j=u(78834),M=u(95329),$=u(95981),W=u(57475),X=u(56664),Y=u(93765),Z=u(33323),ee=u(63405),ie=String,ae=v(\"JSON\",\"stringify\"),ce=M(/./.exec),le=M(\"\".charAt),pe=M(\"\".charCodeAt),de=M(\"\".replace),fe=M(1..toString),ye=/[\\uD800-\\uDFFF]/g,be=/^[\\uD800-\\uDBFF]$/,_e=/^[\\uDC00-\\uDFFF]$/,we=!ee||$((function(){var i=v(\"Symbol\")();return\"[null]\"!=ae([i])||\"{}\"!=ae({a:i})||\"{}\"!=ae(Object(i))})),Se=$((function(){return'\"\\\\udf06\\\\ud834\"'!==ae(\"\\udf06\\ud834\")||'\"\\\\udead\"'!==ae(\"\\udead\")})),stringifyWithSymbolsFix=function(i,s){var u=Y(arguments),m=Z(s);if(W(m)||void 0!==i&&!X(i))return u[1]=function(i,s){if(W(m)&&(s=j(m,this,ie(i),s)),!X(s))return s},_(ae,null,u)},fixIllFormed=function(i,s,u){var m=le(u,s-1),v=le(u,s+1);return ce(be,i)&&!ce(_e,v)||ce(_e,i)&&!ce(be,m)?\"\\\\u\"+fe(pe(i,0),16):i};ae&&m({target:\"JSON\",stat:!0,arity:3,forced:we||Se},{stringify:function stringify(i,s,u){var m=Y(arguments),v=_(we?stringifyWithSymbolsFix:ae,null,m);return Se&&\"string\"==typeof v?de(v,ye,fixIllFormed):v}})},69120:(i,s,u)=>{var m=u(21899);u(90904)(m.JSON,\"JSON\",!0)},79413:()=>{},49221:(i,s,u)=>{var m=u(76887),v=u(24420);m({target:\"Object\",stat:!0,arity:2,forced:Object.assign!==v},{assign:v})},74979:(i,s,u)=>{var m=u(76887),v=u(55746),_=u(59938).f;m({target:\"Object\",stat:!0,forced:Object.defineProperties!==_,sham:!v},{defineProperties:_})},86450:(i,s,u)=>{var m=u(76887),v=u(55746),_=u(65988).f;m({target:\"Object\",stat:!0,forced:Object.defineProperty!==_,sham:!v},{defineProperty:_})},46924:(i,s,u)=>{var m=u(76887),v=u(95981),_=u(74529),j=u(49677).f,M=u(55746);m({target:\"Object\",stat:!0,forced:!M||v((function(){j(1)})),sham:!M},{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(i,s){return j(_(i),s)}})},88482:(i,s,u)=>{var m=u(76887),v=u(55746),_=u(31136),j=u(74529),M=u(49677),$=u(55449);m({target:\"Object\",stat:!0,sham:!v},{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(i){for(var s,u,m=j(i),v=M.f,W=_(m),X={},Y=0;W.length>Y;)void 0!==(u=v(m,s=W[Y++]))&&$(X,s,u);return X}})},37144:(i,s,u)=>{var m=u(76887),v=u(63405),_=u(95981),j=u(87857),M=u(89678);m({target:\"Object\",stat:!0,forced:!v||_((function(){j.f(1)}))},{getOwnPropertySymbols:function getOwnPropertySymbols(i){var s=j.f;return s?s(M(i)):[]}})},21724:(i,s,u)=>{var m=u(76887),v=u(89678),_=u(14771);m({target:\"Object\",stat:!0,forced:u(95981)((function(){_(1)}))},{keys:function keys(i){return _(v(i))}})},55967:()=>{},1502:()=>{},77971:(i,s,u)=>{\"use strict\";var m=u(64620).charAt,v=u(85803),_=u(45402),j=u(75105),M=u(23538),$=\"String Iterator\",W=_.set,X=_.getterFor($);j(String,\"String\",(function(i){W(this,{type:$,string:v(i),index:0})}),(function next(){var i,s=X(this),u=s.string,v=s.index;return v>=u.length?M(void 0,!0):(i=m(u,v),s.index+=i.length,M(i,!1))}))},8555:(i,s,u)=>{u(73464)(\"asyncIterator\")},48616:(i,s,u)=>{\"use strict\";var m=u(76887),v=u(21899),_=u(78834),j=u(95329),M=u(82529),$=u(55746),W=u(63405),X=u(95981),Y=u(90953),Z=u(7046),ee=u(96059),ie=u(74529),ae=u(83894),ce=u(85803),le=u(31887),pe=u(29290),de=u(14771),fe=u(10946),ye=u(684),be=u(87857),_e=u(49677),we=u(65988),Se=u(59938),xe=u(36760),Pe=u(95929),Ie=u(29202),Te=u(68726),Re=u(44262),qe=u(27748),ze=u(99418),Ve=u(99813),We=u(11477),He=u(73464),Xe=u(29630),Ye=u(90904),Qe=u(45402),et=u(3610).forEach,tt=Re(\"hidden\"),rt=\"Symbol\",nt=\"prototype\",ot=Qe.set,it=Qe.getterFor(rt),at=Object[nt],st=v.Symbol,ct=st&&st[nt],lt=v.TypeError,ut=v.QObject,pt=_e.f,ht=we.f,dt=ye.f,mt=xe.f,yt=j([].push),gt=Te(\"symbols\"),vt=Te(\"op-symbols\"),bt=Te(\"wks\"),_t=!ut||!ut[nt]||!ut[nt].findChild,wt=$&&X((function(){return 7!=pe(ht({},\"a\",{get:function(){return ht(this,\"a\",{value:7}).a}})).a}))?function(i,s,u){var m=pt(at,s);m&&delete at[s],ht(i,s,u),m&&i!==at&&ht(at,s,m)}:ht,wrap=function(i,s){var u=gt[i]=pe(ct);return ot(u,{type:rt,tag:i,description:s}),$||(u.description=s),u},Et=function defineProperty(i,s,u){i===at&&Et(vt,s,u),ee(i);var m=ae(s);return ee(u),Y(gt,m)?(u.enumerable?(Y(i,tt)&&i[tt][m]&&(i[tt][m]=!1),u=pe(u,{enumerable:le(0,!1)})):(Y(i,tt)||ht(i,tt,le(1,{})),i[tt][m]=!0),wt(i,m,u)):ht(i,m,u)},St=function defineProperties(i,s){ee(i);var u=ie(s),m=de(u).concat($getOwnPropertySymbols(u));return et(m,(function(s){$&&!_(xt,u,s)||Et(i,s,u[s])})),i},xt=function propertyIsEnumerable(i){var s=ae(i),u=_(mt,this,s);return!(this===at&&Y(gt,s)&&!Y(vt,s))&&(!(u||!Y(this,s)||!Y(gt,s)||Y(this,tt)&&this[tt][s])||u)},Ot=function getOwnPropertyDescriptor(i,s){var u=ie(i),m=ae(s);if(u!==at||!Y(gt,m)||Y(vt,m)){var v=pt(u,m);return!v||!Y(gt,m)||Y(u,tt)&&u[tt][m]||(v.enumerable=!0),v}},kt=function getOwnPropertyNames(i){var s=dt(ie(i)),u=[];return et(s,(function(i){Y(gt,i)||Y(qe,i)||yt(u,i)})),u},$getOwnPropertySymbols=function(i){var s=i===at,u=dt(s?vt:ie(i)),m=[];return et(u,(function(i){!Y(gt,i)||s&&!Y(at,i)||yt(m,gt[i])})),m};W||(Pe(ct=(st=function Symbol(){if(Z(ct,this))throw lt(\"Symbol is not a constructor\");var i=arguments.length&&void 0!==arguments[0]?ce(arguments[0]):void 0,s=ze(i),setter=function(i){this===at&&_(setter,vt,i),Y(this,tt)&&Y(this[tt],s)&&(this[tt][s]=!1),wt(this,s,le(1,i))};return $&&_t&&wt(at,s,{configurable:!0,set:setter}),wrap(s,i)})[nt],\"toString\",(function toString(){return it(this).tag})),Pe(st,\"withoutSetter\",(function(i){return wrap(ze(i),i)})),xe.f=xt,we.f=Et,Se.f=St,_e.f=Ot,fe.f=ye.f=kt,be.f=$getOwnPropertySymbols,We.f=function(i){return wrap(Ve(i),i)},$&&(Ie(ct,\"description\",{configurable:!0,get:function description(){return it(this).description}}),M||Pe(at,\"propertyIsEnumerable\",xt,{unsafe:!0}))),m({global:!0,constructor:!0,wrap:!0,forced:!W,sham:!W},{Symbol:st}),et(de(bt),(function(i){He(i)})),m({target:rt,stat:!0,forced:!W},{useSetter:function(){_t=!0},useSimple:function(){_t=!1}}),m({target:\"Object\",stat:!0,forced:!W,sham:!$},{create:function create(i,s){return void 0===s?pe(i):St(pe(i),s)},defineProperty:Et,defineProperties:St,getOwnPropertyDescriptor:Ot}),m({target:\"Object\",stat:!0,forced:!W},{getOwnPropertyNames:kt}),Xe(),Ye(st,rt),qe[tt]=!0},52615:()=>{},64523:(i,s,u)=>{var m=u(76887),v=u(626),_=u(90953),j=u(85803),M=u(68726),$=u(34680),W=M(\"string-to-symbol-registry\"),X=M(\"symbol-to-string-registry\");m({target:\"Symbol\",stat:!0,forced:!$},{for:function(i){var s=j(i);if(_(W,s))return W[s];var u=v(\"Symbol\")(s);return W[s]=u,X[u]=s,u}})},21732:(i,s,u)=>{u(73464)(\"hasInstance\")},35903:(i,s,u)=>{u(73464)(\"isConcatSpreadable\")},1825:(i,s,u)=>{u(73464)(\"iterator\")},35824:(i,s,u)=>{u(48616),u(64523),u(38608),u(32619),u(37144)},38608:(i,s,u)=>{var m=u(76887),v=u(90953),_=u(56664),j=u(69826),M=u(68726),$=u(34680),W=M(\"symbol-to-string-registry\");m({target:\"Symbol\",stat:!0,forced:!$},{keyFor:function keyFor(i){if(!_(i))throw TypeError(j(i)+\" is not a symbol\");if(v(W,i))return W[i]}})},45915:(i,s,u)=>{u(73464)(\"matchAll\")},28394:(i,s,u)=>{u(73464)(\"match\")},61766:(i,s,u)=>{u(73464)(\"replace\")},62737:(i,s,u)=>{u(73464)(\"search\")},89911:(i,s,u)=>{u(73464)(\"species\")},74315:(i,s,u)=>{u(73464)(\"split\")},63131:(i,s,u)=>{var m=u(73464),v=u(29630);m(\"toPrimitive\"),v()},64714:(i,s,u)=>{var m=u(626),v=u(73464),_=u(90904);v(\"toStringTag\"),_(m(\"Symbol\"),\"Symbol\")},70659:(i,s,u)=>{u(73464)(\"unscopables\")},97522:(i,s,u)=>{var m=u(99813),v=u(65988).f,_=m(\"metadata\"),j=Function.prototype;void 0===j[_]&&v(j,_,{value:null})},28783:(i,s,u)=>{u(73464)(\"asyncDispose\")},43975:(i,s,u)=>{u(73464)(\"dispose\")},97618:(i,s,u)=>{u(76887)({target:\"Symbol\",stat:!0},{isRegisteredSymbol:u(32087)})},22731:(i,s,u)=>{u(76887)({target:\"Symbol\",stat:!0,name:\"isRegisteredSymbol\"},{isRegistered:u(32087)})},6989:(i,s,u)=>{u(76887)({target:\"Symbol\",stat:!0,forced:!0},{isWellKnownSymbol:u(96559)})},85605:(i,s,u)=>{u(76887)({target:\"Symbol\",stat:!0,name:\"isWellKnownSymbol\",forced:!0},{isWellKnown:u(96559)})},65799:(i,s,u)=>{u(73464)(\"matcher\")},31943:(i,s,u)=>{u(73464)(\"metadataKey\")},45414:(i,s,u)=>{u(73464)(\"metadata\")},46774:(i,s,u)=>{u(73464)(\"observable\")},80620:(i,s,u)=>{u(73464)(\"patternMatch\")},36172:(i,s,u)=>{u(73464)(\"replaceAll\")},7634:(i,s,u)=>{u(66274);var m=u(63281),v=u(21899),_=u(9697),j=u(32029),M=u(12077),$=u(99813)(\"toStringTag\");for(var W in m){var X=v[W],Y=X&&X.prototype;Y&&_(Y)!==$&&j(Y,$,W),M[W]=M.Array}},49216:(i,s,u)=>{var m=u(99324);i.exports=m},28196:(i,s,u)=>{var m=u(16246);i.exports=m},11955:(i,s,u)=>{var m=u(2480);i.exports=m},46279:(i,s,u)=>{u(7634);var m=u(9697),v=u(90953),_=u(7046),j=u(49216),M=Array.prototype,$={DOMTokenList:!0,NodeList:!0};i.exports=function(i){var s=i.forEach;return i===M||_(M,i)&&s===M.forEach||v($,m(i))?j:s}},19373:(i,s,u)=>{var m=u(34570);i.exports=m},52759:(i,s,u)=>{var m=u(93993);i.exports=m},63383:(i,s,u)=>{var m=u(45999);i.exports=m},57396:(i,s,u)=>{var m=u(7702);i.exports=m},41910:(i,s,u)=>{var m=u(48171);i.exports=m},79427:(i,s,u)=>{var m=u(286);i.exports=m},62857:(i,s,u)=>{var m=u(92766);i.exports=m},9534:(i,s,u)=>{var m=u(30498);i.exports=m},23059:(i,s,u)=>{var m=u(48494);i.exports=m},92547:(i,s,u)=>{var m=u(57473);u(7634),i.exports=m},46509:(i,s,u)=>{var m=u(24227);u(7634),i.exports=m},35774:(i,s,u)=>{var m=u(62978);i.exports=m},31905:function(){!function(i){!function(s){var u=\"URLSearchParams\"in i,m=\"Symbol\"in i&&\"iterator\"in Symbol,v=\"FileReader\"in i&&\"Blob\"in i&&function(){try{return new Blob,!0}catch(i){return!1}}(),_=\"FormData\"in i,j=\"ArrayBuffer\"in i;if(j)var M=[\"[object Int8Array]\",\"[object Uint8Array]\",\"[object Uint8ClampedArray]\",\"[object Int16Array]\",\"[object Uint16Array]\",\"[object Int32Array]\",\"[object Uint32Array]\",\"[object Float32Array]\",\"[object Float64Array]\"],$=ArrayBuffer.isView||function(i){return i&&M.indexOf(Object.prototype.toString.call(i))>-1};function normalizeName(i){if(\"string\"!=typeof i&&(i=String(i)),/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(i))throw new TypeError(\"Invalid character in header field name\");return i.toLowerCase()}function normalizeValue(i){return\"string\"!=typeof i&&(i=String(i)),i}function iteratorFor(i){var s={next:function(){var s=i.shift();return{done:void 0===s,value:s}}};return m&&(s[Symbol.iterator]=function(){return s}),s}function Headers(i){this.map={},i instanceof Headers?i.forEach((function(i,s){this.append(s,i)}),this):Array.isArray(i)?i.forEach((function(i){this.append(i[0],i[1])}),this):i&&Object.getOwnPropertyNames(i).forEach((function(s){this.append(s,i[s])}),this)}function consumed(i){if(i.bodyUsed)return Promise.reject(new TypeError(\"Already read\"));i.bodyUsed=!0}function fileReaderReady(i){return new Promise((function(s,u){i.onload=function(){s(i.result)},i.onerror=function(){u(i.error)}}))}function readBlobAsArrayBuffer(i){var s=new FileReader,u=fileReaderReady(s);return s.readAsArrayBuffer(i),u}function bufferClone(i){if(i.slice)return i.slice(0);var s=new Uint8Array(i.byteLength);return s.set(new Uint8Array(i)),s.buffer}function Body(){return this.bodyUsed=!1,this._initBody=function(i){this._bodyInit=i,i?\"string\"==typeof i?this._bodyText=i:v&&Blob.prototype.isPrototypeOf(i)?this._bodyBlob=i:_&&FormData.prototype.isPrototypeOf(i)?this._bodyFormData=i:u&&URLSearchParams.prototype.isPrototypeOf(i)?this._bodyText=i.toString():j&&v&&function isDataView(i){return i&&DataView.prototype.isPrototypeOf(i)}(i)?(this._bodyArrayBuffer=bufferClone(i.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):j&&(ArrayBuffer.prototype.isPrototypeOf(i)||$(i))?this._bodyArrayBuffer=bufferClone(i):this._bodyText=i=Object.prototype.toString.call(i):this._bodyText=\"\",this.headers.get(\"content-type\")||(\"string\"==typeof i?this.headers.set(\"content-type\",\"text/plain;charset=UTF-8\"):this._bodyBlob&&this._bodyBlob.type?this.headers.set(\"content-type\",this._bodyBlob.type):u&&URLSearchParams.prototype.isPrototypeOf(i)&&this.headers.set(\"content-type\",\"application/x-www-form-urlencoded;charset=UTF-8\"))},v&&(this.blob=function(){var i=consumed(this);if(i)return i;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error(\"could not read FormData body as blob\");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?consumed(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(readBlobAsArrayBuffer)}),this.text=function(){var i=consumed(this);if(i)return i;if(this._bodyBlob)return function readBlobAsText(i){var s=new FileReader,u=fileReaderReady(s);return s.readAsText(i),u}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function readArrayBufferAsText(i){for(var s=new Uint8Array(i),u=new Array(s.length),m=0;m<s.length;m++)u[m]=String.fromCharCode(s[m]);return u.join(\"\")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error(\"could not read FormData body as text\");return Promise.resolve(this._bodyText)},_&&(this.formData=function(){return this.text().then(decode)}),this.json=function(){return this.text().then(JSON.parse)},this}Headers.prototype.append=function(i,s){i=normalizeName(i),s=normalizeValue(s);var u=this.map[i];this.map[i]=u?u+\", \"+s:s},Headers.prototype.delete=function(i){delete this.map[normalizeName(i)]},Headers.prototype.get=function(i){return i=normalizeName(i),this.has(i)?this.map[i]:null},Headers.prototype.has=function(i){return this.map.hasOwnProperty(normalizeName(i))},Headers.prototype.set=function(i,s){this.map[normalizeName(i)]=normalizeValue(s)},Headers.prototype.forEach=function(i,s){for(var u in this.map)this.map.hasOwnProperty(u)&&i.call(s,this.map[u],u,this)},Headers.prototype.keys=function(){var i=[];return this.forEach((function(s,u){i.push(u)})),iteratorFor(i)},Headers.prototype.values=function(){var i=[];return this.forEach((function(s){i.push(s)})),iteratorFor(i)},Headers.prototype.entries=function(){var i=[];return this.forEach((function(s,u){i.push([u,s])})),iteratorFor(i)},m&&(Headers.prototype[Symbol.iterator]=Headers.prototype.entries);var W=[\"DELETE\",\"GET\",\"HEAD\",\"OPTIONS\",\"POST\",\"PUT\"];function Request(i,s){var u=(s=s||{}).body;if(i instanceof Request){if(i.bodyUsed)throw new TypeError(\"Already read\");this.url=i.url,this.credentials=i.credentials,s.headers||(this.headers=new Headers(i.headers)),this.method=i.method,this.mode=i.mode,this.signal=i.signal,u||null==i._bodyInit||(u=i._bodyInit,i.bodyUsed=!0)}else this.url=String(i);if(this.credentials=s.credentials||this.credentials||\"same-origin\",!s.headers&&this.headers||(this.headers=new Headers(s.headers)),this.method=function normalizeMethod(i){var s=i.toUpperCase();return W.indexOf(s)>-1?s:i}(s.method||this.method||\"GET\"),this.mode=s.mode||this.mode||null,this.signal=s.signal||this.signal,this.referrer=null,(\"GET\"===this.method||\"HEAD\"===this.method)&&u)throw new TypeError(\"Body not allowed for GET or HEAD requests\");this._initBody(u)}function decode(i){var s=new FormData;return i.trim().split(\"&\").forEach((function(i){if(i){var u=i.split(\"=\"),m=u.shift().replace(/\\+/g,\" \"),v=u.join(\"=\").replace(/\\+/g,\" \");s.append(decodeURIComponent(m),decodeURIComponent(v))}})),s}function Response(i,s){s||(s={}),this.type=\"default\",this.status=void 0===s.status?200:s.status,this.ok=this.status>=200&&this.status<300,this.statusText=\"statusText\"in s?s.statusText:\"OK\",this.headers=new Headers(s.headers),this.url=s.url||\"\",this._initBody(i)}Request.prototype.clone=function(){return new Request(this,{body:this._bodyInit})},Body.call(Request.prototype),Body.call(Response.prototype),Response.prototype.clone=function(){return new Response(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Headers(this.headers),url:this.url})},Response.error=function(){var i=new Response(null,{status:0,statusText:\"\"});return i.type=\"error\",i};var X=[301,302,303,307,308];Response.redirect=function(i,s){if(-1===X.indexOf(s))throw new RangeError(\"Invalid status code\");return new Response(null,{status:s,headers:{location:i}})},s.DOMException=i.DOMException;try{new s.DOMException}catch(i){s.DOMException=function(i,s){this.message=i,this.name=s;var u=Error(i);this.stack=u.stack},s.DOMException.prototype=Object.create(Error.prototype),s.DOMException.prototype.constructor=s.DOMException}function fetch(i,u){return new Promise((function(m,_){var j=new Request(i,u);if(j.signal&&j.signal.aborted)return _(new s.DOMException(\"Aborted\",\"AbortError\"));var M=new XMLHttpRequest;function abortXhr(){M.abort()}M.onload=function(){var i,s,u={status:M.status,statusText:M.statusText,headers:(i=M.getAllResponseHeaders()||\"\",s=new Headers,i.replace(/\\r?\\n[\\t ]+/g,\" \").split(/\\r?\\n/).forEach((function(i){var u=i.split(\":\"),m=u.shift().trim();if(m){var v=u.join(\":\").trim();s.append(m,v)}})),s)};u.url=\"responseURL\"in M?M.responseURL:u.headers.get(\"X-Request-URL\");var v=\"response\"in M?M.response:M.responseText;m(new Response(v,u))},M.onerror=function(){_(new TypeError(\"Network request failed\"))},M.ontimeout=function(){_(new TypeError(\"Network request failed\"))},M.onabort=function(){_(new s.DOMException(\"Aborted\",\"AbortError\"))},M.open(j.method,j.url,!0),\"include\"===j.credentials?M.withCredentials=!0:\"omit\"===j.credentials&&(M.withCredentials=!1),\"responseType\"in M&&v&&(M.responseType=\"blob\"),j.headers.forEach((function(i,s){M.setRequestHeader(s,i)})),j.signal&&(j.signal.addEventListener(\"abort\",abortXhr),M.onreadystatechange=function(){4===M.readyState&&j.signal.removeEventListener(\"abort\",abortXhr)}),M.send(void 0===j._bodyInit?null:j._bodyInit)}))}fetch.polyfill=!0,i.fetch||(i.fetch=fetch,i.Headers=Headers,i.Request=Request,i.Response=Response),s.Headers=Headers,s.Request=Request,s.Response=Response,s.fetch=fetch,Object.defineProperty(s,\"__esModule\",{value:!0})}({})}(\"undefined\"!=typeof self?self:this)},8269:function(i,s,u){var m;m=void 0!==u.g?u.g:this,i.exports=function(i){if(i.CSS&&i.CSS.escape)return i.CSS.escape;var cssEscape=function(i){if(0==arguments.length)throw new TypeError(\"`CSS.escape` requires an argument.\");for(var s,u=String(i),m=u.length,v=-1,_=\"\",j=u.charCodeAt(0);++v<m;)0!=(s=u.charCodeAt(v))?_+=s>=1&&s<=31||127==s||0==v&&s>=48&&s<=57||1==v&&s>=48&&s<=57&&45==j?\"\\\\\"+s.toString(16)+\" \":0==v&&1==m&&45==s||!(s>=128||45==s||95==s||s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122)?\"\\\\\"+u.charAt(v):u.charAt(v):_+=\"�\";return _};return i.CSS||(i.CSS={}),i.CSS.escape=cssEscape,cssEscape}(m)},27698:(i,s,u)=>{\"use strict\";var m=u(48764).Buffer;function isSpecificValue(i){return i instanceof m||i instanceof Date||i instanceof RegExp}function cloneSpecificValue(i){if(i instanceof m){var s=m.alloc?m.alloc(i.length):new m(i.length);return i.copy(s),s}if(i instanceof Date)return new Date(i.getTime());if(i instanceof RegExp)return new RegExp(i);throw new Error(\"Unexpected situation\")}function deepCloneArray(i){var s=[];return i.forEach((function(i,u){\"object\"==typeof i&&null!==i?Array.isArray(i)?s[u]=deepCloneArray(i):isSpecificValue(i)?s[u]=cloneSpecificValue(i):s[u]=v({},i):s[u]=i})),s}function safeGetProperty(i,s){return\"__proto__\"===s?void 0:i[s]}var v=i.exports=function(){if(arguments.length<1||\"object\"!=typeof arguments[0])return!1;if(arguments.length<2)return arguments[0];var i,s,u=arguments[0];return Array.prototype.slice.call(arguments,1).forEach((function(m){\"object\"!=typeof m||null===m||Array.isArray(m)||Object.keys(m).forEach((function(_){return s=safeGetProperty(u,_),(i=safeGetProperty(m,_))===u?void 0:\"object\"!=typeof i||null===i?void(u[_]=i):Array.isArray(i)?void(u[_]=deepCloneArray(i)):isSpecificValue(i)?void(u[_]=cloneSpecificValue(i)):\"object\"!=typeof s||null===s||Array.isArray(s)?void(u[_]=v({},i)):void(u[_]=v(s,i))}))})),u}},9996:i=>{\"use strict\";var s=function isMergeableObject(i){return function isNonNullObject(i){return!!i&&\"object\"==typeof i}(i)&&!function isSpecial(i){var s=Object.prototype.toString.call(i);return\"[object RegExp]\"===s||\"[object Date]\"===s||function isReactElement(i){return i.$$typeof===u}(i)}(i)};var u=\"function\"==typeof Symbol&&Symbol.for?Symbol.for(\"react.element\"):60103;function cloneUnlessOtherwiseSpecified(i,s){return!1!==s.clone&&s.isMergeableObject(i)?deepmerge(function emptyTarget(i){return Array.isArray(i)?[]:{}}(i),i,s):i}function defaultArrayMerge(i,s,u){return i.concat(s).map((function(i){return cloneUnlessOtherwiseSpecified(i,u)}))}function getKeys(i){return Object.keys(i).concat(function getEnumerableOwnPropertySymbols(i){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(i).filter((function(s){return Object.propertyIsEnumerable.call(i,s)})):[]}(i))}function propertyIsOnObject(i,s){try{return s in i}catch(i){return!1}}function mergeObject(i,s,u){var m={};return u.isMergeableObject(i)&&getKeys(i).forEach((function(s){m[s]=cloneUnlessOtherwiseSpecified(i[s],u)})),getKeys(s).forEach((function(v){(function propertyIsUnsafe(i,s){return propertyIsOnObject(i,s)&&!(Object.hasOwnProperty.call(i,s)&&Object.propertyIsEnumerable.call(i,s))})(i,v)||(propertyIsOnObject(i,v)&&u.isMergeableObject(s[v])?m[v]=function getMergeFunction(i,s){if(!s.customMerge)return deepmerge;var u=s.customMerge(i);return\"function\"==typeof u?u:deepmerge}(v,u)(i[v],s[v],u):m[v]=cloneUnlessOtherwiseSpecified(s[v],u))})),m}function deepmerge(i,u,m){(m=m||{}).arrayMerge=m.arrayMerge||defaultArrayMerge,m.isMergeableObject=m.isMergeableObject||s,m.cloneUnlessOtherwiseSpecified=cloneUnlessOtherwiseSpecified;var v=Array.isArray(u);return v===Array.isArray(i)?v?m.arrayMerge(i,u,m):mergeObject(i,u,m):cloneUnlessOtherwiseSpecified(u,m)}deepmerge.all=function deepmergeAll(i,s){if(!Array.isArray(i))throw new Error(\"first argument should be an array\");return i.reduce((function(i,u){return deepmerge(i,u,s)}),{})};var m=deepmerge;i.exports=m},27856:function(i){i.exports=function(){\"use strict\";const{entries:i,setPrototypeOf:s,isFrozen:u,getPrototypeOf:m,getOwnPropertyDescriptor:v}=Object;let{freeze:_,seal:j,create:M}=Object,{apply:$,construct:W}=\"undefined\"!=typeof Reflect&&Reflect;$||($=function apply(i,s,u){return i.apply(s,u)}),_||(_=function freeze(i){return i}),j||(j=function seal(i){return i}),W||(W=function construct(i,s){return new i(...s)});const X=unapply(Array.prototype.forEach),Y=unapply(Array.prototype.pop),Z=unapply(Array.prototype.push),ee=unapply(String.prototype.toLowerCase),ie=unapply(String.prototype.toString),ae=unapply(String.prototype.match),ce=unapply(String.prototype.replace),le=unapply(String.prototype.indexOf),pe=unapply(String.prototype.trim),de=unapply(RegExp.prototype.test),fe=unconstruct(TypeError);function unapply(i){return function(s){for(var u=arguments.length,m=new Array(u>1?u-1:0),v=1;v<u;v++)m[v-1]=arguments[v];return $(i,s,m)}}function unconstruct(i){return function(){for(var s=arguments.length,u=new Array(s),m=0;m<s;m++)u[m]=arguments[m];return W(i,u)}}function addToSet(i,m,v){var _;v=null!==(_=v)&&void 0!==_?_:ee,s&&s(i,null);let j=m.length;for(;j--;){let s=m[j];if(\"string\"==typeof s){const i=v(s);i!==s&&(u(m)||(m[j]=i),s=i)}i[s]=!0}return i}function clone(s){const u=M(null);for(const[m,v]of i(s))u[m]=v;return u}function lookupGetter(i,s){for(;null!==i;){const u=v(i,s);if(u){if(u.get)return unapply(u.get);if(\"function\"==typeof u.value)return unapply(u.value)}i=m(i)}function fallbackValue(i){return console.warn(\"fallback value for\",i),null}return fallbackValue}const ye=_([\"a\",\"abbr\",\"acronym\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"bdi\",\"bdo\",\"big\",\"blink\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"center\",\"cite\",\"code\",\"col\",\"colgroup\",\"content\",\"data\",\"datalist\",\"dd\",\"decorator\",\"del\",\"details\",\"dfn\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"element\",\"em\",\"fieldset\",\"figcaption\",\"figure\",\"font\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"img\",\"input\",\"ins\",\"kbd\",\"label\",\"legend\",\"li\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meter\",\"nav\",\"nobr\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"section\",\"select\",\"shadow\",\"small\",\"source\",\"spacer\",\"span\",\"strike\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\",\"tt\",\"u\",\"ul\",\"var\",\"video\",\"wbr\"]),be=_([\"svg\",\"a\",\"altglyph\",\"altglyphdef\",\"altglyphitem\",\"animatecolor\",\"animatemotion\",\"animatetransform\",\"circle\",\"clippath\",\"defs\",\"desc\",\"ellipse\",\"filter\",\"font\",\"g\",\"glyph\",\"glyphref\",\"hkern\",\"image\",\"line\",\"lineargradient\",\"marker\",\"mask\",\"metadata\",\"mpath\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialgradient\",\"rect\",\"stop\",\"style\",\"switch\",\"symbol\",\"text\",\"textpath\",\"title\",\"tref\",\"tspan\",\"view\",\"vkern\"]),_e=_([\"feBlend\",\"feColorMatrix\",\"feComponentTransfer\",\"feComposite\",\"feConvolveMatrix\",\"feDiffuseLighting\",\"feDisplacementMap\",\"feDistantLight\",\"feDropShadow\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feImage\",\"feMerge\",\"feMergeNode\",\"feMorphology\",\"feOffset\",\"fePointLight\",\"feSpecularLighting\",\"feSpotLight\",\"feTile\",\"feTurbulence\"]),we=_([\"animate\",\"color-profile\",\"cursor\",\"discard\",\"font-face\",\"font-face-format\",\"font-face-name\",\"font-face-src\",\"font-face-uri\",\"foreignobject\",\"hatch\",\"hatchpath\",\"mesh\",\"meshgradient\",\"meshpatch\",\"meshrow\",\"missing-glyph\",\"script\",\"set\",\"solidcolor\",\"unknown\",\"use\"]),Se=_([\"math\",\"menclose\",\"merror\",\"mfenced\",\"mfrac\",\"mglyph\",\"mi\",\"mlabeledtr\",\"mmultiscripts\",\"mn\",\"mo\",\"mover\",\"mpadded\",\"mphantom\",\"mroot\",\"mrow\",\"ms\",\"mspace\",\"msqrt\",\"mstyle\",\"msub\",\"msup\",\"msubsup\",\"mtable\",\"mtd\",\"mtext\",\"mtr\",\"munder\",\"munderover\",\"mprescripts\"]),xe=_([\"maction\",\"maligngroup\",\"malignmark\",\"mlongdiv\",\"mscarries\",\"mscarry\",\"msgroup\",\"mstack\",\"msline\",\"msrow\",\"semantics\",\"annotation\",\"annotation-xml\",\"mprescripts\",\"none\"]),Pe=_([\"#text\"]),Ie=_([\"accept\",\"action\",\"align\",\"alt\",\"autocapitalize\",\"autocomplete\",\"autopictureinpicture\",\"autoplay\",\"background\",\"bgcolor\",\"border\",\"capture\",\"cellpadding\",\"cellspacing\",\"checked\",\"cite\",\"class\",\"clear\",\"color\",\"cols\",\"colspan\",\"controls\",\"controlslist\",\"coords\",\"crossorigin\",\"datetime\",\"decoding\",\"default\",\"dir\",\"disabled\",\"disablepictureinpicture\",\"disableremoteplayback\",\"download\",\"draggable\",\"enctype\",\"enterkeyhint\",\"face\",\"for\",\"headers\",\"height\",\"hidden\",\"high\",\"href\",\"hreflang\",\"id\",\"inputmode\",\"integrity\",\"ismap\",\"kind\",\"label\",\"lang\",\"list\",\"loading\",\"loop\",\"low\",\"max\",\"maxlength\",\"media\",\"method\",\"min\",\"minlength\",\"multiple\",\"muted\",\"name\",\"nonce\",\"noshade\",\"novalidate\",\"nowrap\",\"open\",\"optimum\",\"pattern\",\"placeholder\",\"playsinline\",\"poster\",\"preload\",\"pubdate\",\"radiogroup\",\"readonly\",\"rel\",\"required\",\"rev\",\"reversed\",\"role\",\"rows\",\"rowspan\",\"spellcheck\",\"scope\",\"selected\",\"shape\",\"size\",\"sizes\",\"span\",\"srclang\",\"start\",\"src\",\"srcset\",\"step\",\"style\",\"summary\",\"tabindex\",\"title\",\"translate\",\"type\",\"usemap\",\"valign\",\"value\",\"width\",\"xmlns\",\"slot\"]),Te=_([\"accent-height\",\"accumulate\",\"additive\",\"alignment-baseline\",\"ascent\",\"attributename\",\"attributetype\",\"azimuth\",\"basefrequency\",\"baseline-shift\",\"begin\",\"bias\",\"by\",\"class\",\"clip\",\"clippathunits\",\"clip-path\",\"clip-rule\",\"color\",\"color-interpolation\",\"color-interpolation-filters\",\"color-profile\",\"color-rendering\",\"cx\",\"cy\",\"d\",\"dx\",\"dy\",\"diffuseconstant\",\"direction\",\"display\",\"divisor\",\"dur\",\"edgemode\",\"elevation\",\"end\",\"fill\",\"fill-opacity\",\"fill-rule\",\"filter\",\"filterunits\",\"flood-color\",\"flood-opacity\",\"font-family\",\"font-size\",\"font-size-adjust\",\"font-stretch\",\"font-style\",\"font-variant\",\"font-weight\",\"fx\",\"fy\",\"g1\",\"g2\",\"glyph-name\",\"glyphref\",\"gradientunits\",\"gradienttransform\",\"height\",\"href\",\"id\",\"image-rendering\",\"in\",\"in2\",\"k\",\"k1\",\"k2\",\"k3\",\"k4\",\"kerning\",\"keypoints\",\"keysplines\",\"keytimes\",\"lang\",\"lengthadjust\",\"letter-spacing\",\"kernelmatrix\",\"kernelunitlength\",\"lighting-color\",\"local\",\"marker-end\",\"marker-mid\",\"marker-start\",\"markerheight\",\"markerunits\",\"markerwidth\",\"maskcontentunits\",\"maskunits\",\"max\",\"mask\",\"media\",\"method\",\"mode\",\"min\",\"name\",\"numoctaves\",\"offset\",\"operator\",\"opacity\",\"order\",\"orient\",\"orientation\",\"origin\",\"overflow\",\"paint-order\",\"path\",\"pathlength\",\"patterncontentunits\",\"patterntransform\",\"patternunits\",\"points\",\"preservealpha\",\"preserveaspectratio\",\"primitiveunits\",\"r\",\"rx\",\"ry\",\"radius\",\"refx\",\"refy\",\"repeatcount\",\"repeatdur\",\"restart\",\"result\",\"rotate\",\"scale\",\"seed\",\"shape-rendering\",\"specularconstant\",\"specularexponent\",\"spreadmethod\",\"startoffset\",\"stddeviation\",\"stitchtiles\",\"stop-color\",\"stop-opacity\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke\",\"stroke-width\",\"style\",\"surfacescale\",\"systemlanguage\",\"tabindex\",\"targetx\",\"targety\",\"transform\",\"transform-origin\",\"text-anchor\",\"text-decoration\",\"text-rendering\",\"textlength\",\"type\",\"u1\",\"u2\",\"unicode\",\"values\",\"viewbox\",\"visibility\",\"version\",\"vert-adv-y\",\"vert-origin-x\",\"vert-origin-y\",\"width\",\"word-spacing\",\"wrap\",\"writing-mode\",\"xchannelselector\",\"ychannelselector\",\"x\",\"x1\",\"x2\",\"xmlns\",\"y\",\"y1\",\"y2\",\"z\",\"zoomandpan\"]),Re=_([\"accent\",\"accentunder\",\"align\",\"bevelled\",\"close\",\"columnsalign\",\"columnlines\",\"columnspan\",\"denomalign\",\"depth\",\"dir\",\"display\",\"displaystyle\",\"encoding\",\"fence\",\"frame\",\"height\",\"href\",\"id\",\"largeop\",\"length\",\"linethickness\",\"lspace\",\"lquote\",\"mathbackground\",\"mathcolor\",\"mathsize\",\"mathvariant\",\"maxsize\",\"minsize\",\"movablelimits\",\"notation\",\"numalign\",\"open\",\"rowalign\",\"rowlines\",\"rowspacing\",\"rowspan\",\"rspace\",\"rquote\",\"scriptlevel\",\"scriptminsize\",\"scriptsizemultiplier\",\"selection\",\"separator\",\"separators\",\"stretchy\",\"subscriptshift\",\"supscriptshift\",\"symmetric\",\"voffset\",\"width\",\"xmlns\"]),qe=_([\"xlink:href\",\"xml:id\",\"xlink:title\",\"xml:space\",\"xmlns:xlink\"]),ze=j(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm),Ve=j(/<%[\\w\\W]*|[\\w\\W]*%>/gm),We=j(/\\${[\\w\\W]*}/gm),He=j(/^data-[\\-\\w.\\u00B7-\\uFFFF]/),Xe=j(/^aria-[\\-\\w]+$/),Ye=j(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i),Qe=j(/^(?:\\w+script|data):/i),et=j(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g),tt=j(/^html$/i);var rt=Object.freeze({__proto__:null,MUSTACHE_EXPR:ze,ERB_EXPR:Ve,TMPLIT_EXPR:We,DATA_ATTR:He,ARIA_ATTR:Xe,IS_ALLOWED_URI:Ye,IS_SCRIPT_OR_DATA:Qe,ATTR_WHITESPACE:et,DOCTYPE_NAME:tt});const getGlobal=()=>\"undefined\"==typeof window?null:window,nt=function _createTrustedTypesPolicy(i,s){if(\"object\"!=typeof i||\"function\"!=typeof i.createPolicy)return null;let u=null;const m=\"data-tt-policy-suffix\";s&&s.hasAttribute(m)&&(u=s.getAttribute(m));const v=\"dompurify\"+(u?\"#\"+u:\"\");try{return i.createPolicy(v,{createHTML:i=>i,createScriptURL:i=>i})}catch(i){return console.warn(\"TrustedTypes policy \"+v+\" could not be created.\"),null}};function createDOMPurify(){let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:getGlobal();const DOMPurify=i=>createDOMPurify(i);if(DOMPurify.version=\"3.0.5\",DOMPurify.removed=[],!s||!s.document||9!==s.document.nodeType)return DOMPurify.isSupported=!1,DOMPurify;const u=s.document,m=u.currentScript;let{document:v}=s;const{DocumentFragment:j,HTMLTemplateElement:M,Node:$,Element:W,NodeFilter:ze,NamedNodeMap:Ve=s.NamedNodeMap||s.MozNamedAttrMap,HTMLFormElement:We,DOMParser:He,trustedTypes:Xe}=s,Qe=W.prototype,et=lookupGetter(Qe,\"cloneNode\"),ot=lookupGetter(Qe,\"nextSibling\"),it=lookupGetter(Qe,\"childNodes\"),at=lookupGetter(Qe,\"parentNode\");if(\"function\"==typeof M){const i=v.createElement(\"template\");i.content&&i.content.ownerDocument&&(v=i.content.ownerDocument)}let st,ct=\"\";const{implementation:lt,createNodeIterator:ut,createDocumentFragment:pt,getElementsByTagName:ht}=v,{importNode:dt}=u;let mt={};DOMPurify.isSupported=\"function\"==typeof i&&\"function\"==typeof at&&lt&&void 0!==lt.createHTMLDocument;const{MUSTACHE_EXPR:yt,ERB_EXPR:gt,TMPLIT_EXPR:vt,DATA_ATTR:bt,ARIA_ATTR:_t,IS_SCRIPT_OR_DATA:wt,ATTR_WHITESPACE:Et}=rt;let{IS_ALLOWED_URI:St}=rt,xt=null;const Ot=addToSet({},[...ye,...be,..._e,...Se,...Pe]);let kt=null;const At=addToSet({},[...Ie,...Te,...Re,...qe]);let Ct=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),jt=null,Pt=null,It=!0,Nt=!0,Tt=!1,Mt=!0,Rt=!1,Dt=!1,Bt=!1,Lt=!1,Ft=!1,qt=!1,$t=!1,Ut=!0,zt=!1;const Vt=\"user-content-\";let Wt=!0,Kt=!1,Ht={},Jt=null;const Gt=addToSet({},[\"annotation-xml\",\"audio\",\"colgroup\",\"desc\",\"foreignobject\",\"head\",\"iframe\",\"math\",\"mi\",\"mn\",\"mo\",\"ms\",\"mtext\",\"noembed\",\"noframes\",\"noscript\",\"plaintext\",\"script\",\"style\",\"svg\",\"template\",\"thead\",\"title\",\"video\",\"xmp\"]);let Xt=null;const Yt=addToSet({},[\"audio\",\"video\",\"img\",\"source\",\"image\",\"track\"]);let Qt=null;const Zt=addToSet({},[\"alt\",\"class\",\"for\",\"id\",\"label\",\"name\",\"pattern\",\"placeholder\",\"role\",\"summary\",\"title\",\"value\",\"style\",\"xmlns\"]),er=\"http://www.w3.org/1998/Math/MathML\",tr=\"http://www.w3.org/2000/svg\",rr=\"http://www.w3.org/1999/xhtml\";let nr=rr,ir=!1,ar=null;const sr=addToSet({},[er,tr,rr],ie);let cr;const lr=[\"application/xhtml+xml\",\"text/html\"],ur=\"text/html\";let pr,dr=null;const fr=v.createElement(\"form\"),mr=function isRegexOrFunction(i){return i instanceof RegExp||i instanceof Function},yr=function _parseConfig(i){if(!dr||dr!==i){if(i&&\"object\"==typeof i||(i={}),i=clone(i),cr=cr=-1===lr.indexOf(i.PARSER_MEDIA_TYPE)?ur:i.PARSER_MEDIA_TYPE,pr=\"application/xhtml+xml\"===cr?ie:ee,xt=\"ALLOWED_TAGS\"in i?addToSet({},i.ALLOWED_TAGS,pr):Ot,kt=\"ALLOWED_ATTR\"in i?addToSet({},i.ALLOWED_ATTR,pr):At,ar=\"ALLOWED_NAMESPACES\"in i?addToSet({},i.ALLOWED_NAMESPACES,ie):sr,Qt=\"ADD_URI_SAFE_ATTR\"in i?addToSet(clone(Zt),i.ADD_URI_SAFE_ATTR,pr):Zt,Xt=\"ADD_DATA_URI_TAGS\"in i?addToSet(clone(Yt),i.ADD_DATA_URI_TAGS,pr):Yt,Jt=\"FORBID_CONTENTS\"in i?addToSet({},i.FORBID_CONTENTS,pr):Gt,jt=\"FORBID_TAGS\"in i?addToSet({},i.FORBID_TAGS,pr):{},Pt=\"FORBID_ATTR\"in i?addToSet({},i.FORBID_ATTR,pr):{},Ht=\"USE_PROFILES\"in i&&i.USE_PROFILES,It=!1!==i.ALLOW_ARIA_ATTR,Nt=!1!==i.ALLOW_DATA_ATTR,Tt=i.ALLOW_UNKNOWN_PROTOCOLS||!1,Mt=!1!==i.ALLOW_SELF_CLOSE_IN_ATTR,Rt=i.SAFE_FOR_TEMPLATES||!1,Dt=i.WHOLE_DOCUMENT||!1,Ft=i.RETURN_DOM||!1,qt=i.RETURN_DOM_FRAGMENT||!1,$t=i.RETURN_TRUSTED_TYPE||!1,Lt=i.FORCE_BODY||!1,Ut=!1!==i.SANITIZE_DOM,zt=i.SANITIZE_NAMED_PROPS||!1,Wt=!1!==i.KEEP_CONTENT,Kt=i.IN_PLACE||!1,St=i.ALLOWED_URI_REGEXP||Ye,nr=i.NAMESPACE||rr,Ct=i.CUSTOM_ELEMENT_HANDLING||{},i.CUSTOM_ELEMENT_HANDLING&&mr(i.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Ct.tagNameCheck=i.CUSTOM_ELEMENT_HANDLING.tagNameCheck),i.CUSTOM_ELEMENT_HANDLING&&mr(i.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Ct.attributeNameCheck=i.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),i.CUSTOM_ELEMENT_HANDLING&&\"boolean\"==typeof i.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Ct.allowCustomizedBuiltInElements=i.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Rt&&(Nt=!1),qt&&(Ft=!0),Ht&&(xt=addToSet({},[...Pe]),kt=[],!0===Ht.html&&(addToSet(xt,ye),addToSet(kt,Ie)),!0===Ht.svg&&(addToSet(xt,be),addToSet(kt,Te),addToSet(kt,qe)),!0===Ht.svgFilters&&(addToSet(xt,_e),addToSet(kt,Te),addToSet(kt,qe)),!0===Ht.mathMl&&(addToSet(xt,Se),addToSet(kt,Re),addToSet(kt,qe))),i.ADD_TAGS&&(xt===Ot&&(xt=clone(xt)),addToSet(xt,i.ADD_TAGS,pr)),i.ADD_ATTR&&(kt===At&&(kt=clone(kt)),addToSet(kt,i.ADD_ATTR,pr)),i.ADD_URI_SAFE_ATTR&&addToSet(Qt,i.ADD_URI_SAFE_ATTR,pr),i.FORBID_CONTENTS&&(Jt===Gt&&(Jt=clone(Jt)),addToSet(Jt,i.FORBID_CONTENTS,pr)),Wt&&(xt[\"#text\"]=!0),Dt&&addToSet(xt,[\"html\",\"head\",\"body\"]),xt.table&&(addToSet(xt,[\"tbody\"]),delete jt.tbody),i.TRUSTED_TYPES_POLICY){if(\"function\"!=typeof i.TRUSTED_TYPES_POLICY.createHTML)throw fe('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');if(\"function\"!=typeof i.TRUSTED_TYPES_POLICY.createScriptURL)throw fe('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');st=i.TRUSTED_TYPES_POLICY,ct=st.createHTML(\"\")}else void 0===st&&(st=nt(Xe,m)),null!==st&&\"string\"==typeof ct&&(ct=st.createHTML(\"\"));_&&_(i),dr=i}},gr=addToSet({},[\"mi\",\"mo\",\"mn\",\"ms\",\"mtext\"]),vr=addToSet({},[\"foreignobject\",\"desc\",\"title\",\"annotation-xml\"]),br=addToSet({},[\"title\",\"style\",\"font\",\"a\",\"script\"]),_r=addToSet({},be);addToSet(_r,_e),addToSet(_r,we);const wr=addToSet({},Se);addToSet(wr,xe);const Er=function _checkValidNamespace(i){let s=at(i);s&&s.tagName||(s={namespaceURI:nr,tagName:\"template\"});const u=ee(i.tagName),m=ee(s.tagName);return!!ar[i.namespaceURI]&&(i.namespaceURI===tr?s.namespaceURI===rr?\"svg\"===u:s.namespaceURI===er?\"svg\"===u&&(\"annotation-xml\"===m||gr[m]):Boolean(_r[u]):i.namespaceURI===er?s.namespaceURI===rr?\"math\"===u:s.namespaceURI===tr?\"math\"===u&&vr[m]:Boolean(wr[u]):i.namespaceURI===rr?!(s.namespaceURI===tr&&!vr[m])&&!(s.namespaceURI===er&&!gr[m])&&!wr[u]&&(br[u]||!_r[u]):!(\"application/xhtml+xml\"!==cr||!ar[i.namespaceURI]))},Sr=function _forceRemove(i){Z(DOMPurify.removed,{element:i});try{i.parentNode.removeChild(i)}catch(s){i.remove()}},xr=function _removeAttribute(i,s){try{Z(DOMPurify.removed,{attribute:s.getAttributeNode(i),from:s})}catch(i){Z(DOMPurify.removed,{attribute:null,from:s})}if(s.removeAttribute(i),\"is\"===i&&!kt[i])if(Ft||qt)try{Sr(s)}catch(i){}else try{s.setAttribute(i,\"\")}catch(i){}},Or=function _initDocument(i){let s,u;if(Lt)i=\"<remove></remove>\"+i;else{const s=ae(i,/^[\\r\\n\\t ]+/);u=s&&s[0]}\"application/xhtml+xml\"===cr&&nr===rr&&(i='<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>'+i+\"</body></html>\");const m=st?st.createHTML(i):i;if(nr===rr)try{s=(new He).parseFromString(m,cr)}catch(i){}if(!s||!s.documentElement){s=lt.createDocument(nr,\"template\",null);try{s.documentElement.innerHTML=ir?ct:m}catch(i){}}const _=s.body||s.documentElement;return i&&u&&_.insertBefore(v.createTextNode(u),_.childNodes[0]||null),nr===rr?ht.call(s,Dt?\"html\":\"body\")[0]:Dt?s.documentElement:_},kr=function _createIterator(i){return ut.call(i.ownerDocument||i,i,ze.SHOW_ELEMENT|ze.SHOW_COMMENT|ze.SHOW_TEXT,null,!1)},Ar=function _isClobbered(i){return i instanceof We&&(\"string\"!=typeof i.nodeName||\"string\"!=typeof i.textContent||\"function\"!=typeof i.removeChild||!(i.attributes instanceof Ve)||\"function\"!=typeof i.removeAttribute||\"function\"!=typeof i.setAttribute||\"string\"!=typeof i.namespaceURI||\"function\"!=typeof i.insertBefore||\"function\"!=typeof i.hasChildNodes)},Cr=function _isNode(i){return\"object\"==typeof $?i instanceof $:i&&\"object\"==typeof i&&\"number\"==typeof i.nodeType&&\"string\"==typeof i.nodeName},jr=function _executeHook(i,s,u){mt[i]&&X(mt[i],(i=>{i.call(DOMPurify,s,u,dr)}))},Pr=function _sanitizeElements(i){let s;if(jr(\"beforeSanitizeElements\",i,null),Ar(i))return Sr(i),!0;const u=pr(i.nodeName);if(jr(\"uponSanitizeElement\",i,{tagName:u,allowedTags:xt}),i.hasChildNodes()&&!Cr(i.firstElementChild)&&(!Cr(i.content)||!Cr(i.content.firstElementChild))&&de(/<[/\\w]/g,i.innerHTML)&&de(/<[/\\w]/g,i.textContent))return Sr(i),!0;if(!xt[u]||jt[u]){if(!jt[u]&&Nr(u)){if(Ct.tagNameCheck instanceof RegExp&&de(Ct.tagNameCheck,u))return!1;if(Ct.tagNameCheck instanceof Function&&Ct.tagNameCheck(u))return!1}if(Wt&&!Jt[u]){const s=at(i)||i.parentNode,u=it(i)||i.childNodes;if(u&&s)for(let m=u.length-1;m>=0;--m)s.insertBefore(et(u[m],!0),ot(i))}return Sr(i),!0}return i instanceof W&&!Er(i)?(Sr(i),!0):\"noscript\"!==u&&\"noembed\"!==u&&\"noframes\"!==u||!de(/<\\/no(script|embed|frames)/i,i.innerHTML)?(Rt&&3===i.nodeType&&(s=i.textContent,s=ce(s,yt,\" \"),s=ce(s,gt,\" \"),s=ce(s,vt,\" \"),i.textContent!==s&&(Z(DOMPurify.removed,{element:i.cloneNode()}),i.textContent=s)),jr(\"afterSanitizeElements\",i,null),!1):(Sr(i),!0)},Ir=function _isValidAttribute(i,s,u){if(Ut&&(\"id\"===s||\"name\"===s)&&(u in v||u in fr))return!1;if(Nt&&!Pt[s]&&de(bt,s));else if(It&&de(_t,s));else if(!kt[s]||Pt[s]){if(!(Nr(i)&&(Ct.tagNameCheck instanceof RegExp&&de(Ct.tagNameCheck,i)||Ct.tagNameCheck instanceof Function&&Ct.tagNameCheck(i))&&(Ct.attributeNameCheck instanceof RegExp&&de(Ct.attributeNameCheck,s)||Ct.attributeNameCheck instanceof Function&&Ct.attributeNameCheck(s))||\"is\"===s&&Ct.allowCustomizedBuiltInElements&&(Ct.tagNameCheck instanceof RegExp&&de(Ct.tagNameCheck,u)||Ct.tagNameCheck instanceof Function&&Ct.tagNameCheck(u))))return!1}else if(Qt[s]);else if(de(St,ce(u,Et,\"\")));else if(\"src\"!==s&&\"xlink:href\"!==s&&\"href\"!==s||\"script\"===i||0!==le(u,\"data:\")||!Xt[i])if(Tt&&!de(wt,ce(u,Et,\"\")));else if(u)return!1;return!0},Nr=function _basicCustomElementTest(i){return i.indexOf(\"-\")>0},Tr=function _sanitizeAttributes(i){let s,u,m,v;jr(\"beforeSanitizeAttributes\",i,null);const{attributes:_}=i;if(!_)return;const j={attrName:\"\",attrValue:\"\",keepAttr:!0,allowedAttributes:kt};for(v=_.length;v--;){s=_[v];const{name:M,namespaceURI:$}=s;if(u=\"value\"===M?s.value:pe(s.value),m=pr(M),j.attrName=m,j.attrValue=u,j.keepAttr=!0,j.forceKeepAttr=void 0,jr(\"uponSanitizeAttribute\",i,j),u=j.attrValue,j.forceKeepAttr)continue;if(xr(M,i),!j.keepAttr)continue;if(!Mt&&de(/\\/>/i,u)){xr(M,i);continue}Rt&&(u=ce(u,yt,\" \"),u=ce(u,gt,\" \"),u=ce(u,vt,\" \"));const W=pr(i.nodeName);if(Ir(W,m,u)){if(!zt||\"id\"!==m&&\"name\"!==m||(xr(M,i),u=Vt+u),st&&\"object\"==typeof Xe&&\"function\"==typeof Xe.getAttributeType)if($);else switch(Xe.getAttributeType(W,m)){case\"TrustedHTML\":u=st.createHTML(u);break;case\"TrustedScriptURL\":u=st.createScriptURL(u)}try{$?i.setAttributeNS($,M,u):i.setAttribute(M,u),Y(DOMPurify.removed)}catch(i){}}}jr(\"afterSanitizeAttributes\",i,null)},Mr=function _sanitizeShadowDOM(i){let s;const u=kr(i);for(jr(\"beforeSanitizeShadowDOM\",i,null);s=u.nextNode();)jr(\"uponSanitizeShadowNode\",s,null),Pr(s)||(s.content instanceof j&&_sanitizeShadowDOM(s.content),Tr(s));jr(\"afterSanitizeShadowDOM\",i,null)};return DOMPurify.sanitize=function(i){let s,m,v,_,M=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(ir=!i,ir&&(i=\"\\x3c!--\\x3e\"),\"string\"!=typeof i&&!Cr(i)){if(\"function\"!=typeof i.toString)throw fe(\"toString is not a function\");if(\"string\"!=typeof(i=i.toString()))throw fe(\"dirty is not a string, aborting\")}if(!DOMPurify.isSupported)return i;if(Bt||yr(M),DOMPurify.removed=[],\"string\"==typeof i&&(Kt=!1),Kt){if(i.nodeName){const s=pr(i.nodeName);if(!xt[s]||jt[s])throw fe(\"root node is forbidden and cannot be sanitized in-place\")}}else if(i instanceof $)s=Or(\"\\x3c!----\\x3e\"),m=s.ownerDocument.importNode(i,!0),1===m.nodeType&&\"BODY\"===m.nodeName||\"HTML\"===m.nodeName?s=m:s.appendChild(m);else{if(!Ft&&!Rt&&!Dt&&-1===i.indexOf(\"<\"))return st&&$t?st.createHTML(i):i;if(s=Or(i),!s)return Ft?null:$t?ct:\"\"}s&&Lt&&Sr(s.firstChild);const W=kr(Kt?i:s);for(;v=W.nextNode();)Pr(v)||(v.content instanceof j&&Mr(v.content),Tr(v));if(Kt)return i;if(Ft){if(qt)for(_=pt.call(s.ownerDocument);s.firstChild;)_.appendChild(s.firstChild);else _=s;return(kt.shadowroot||kt.shadowrootmode)&&(_=dt.call(u,_,!0)),_}let X=Dt?s.outerHTML:s.innerHTML;return Dt&&xt[\"!doctype\"]&&s.ownerDocument&&s.ownerDocument.doctype&&s.ownerDocument.doctype.name&&de(tt,s.ownerDocument.doctype.name)&&(X=\"<!DOCTYPE \"+s.ownerDocument.doctype.name+\">\\n\"+X),Rt&&(X=ce(X,yt,\" \"),X=ce(X,gt,\" \"),X=ce(X,vt,\" \")),st&&$t?st.createHTML(X):X},DOMPurify.setConfig=function(i){yr(i),Bt=!0},DOMPurify.clearConfig=function(){dr=null,Bt=!1},DOMPurify.isValidAttribute=function(i,s,u){dr||yr({});const m=pr(i),v=pr(s);return Ir(m,v,u)},DOMPurify.addHook=function(i,s){\"function\"==typeof s&&(mt[i]=mt[i]||[],Z(mt[i],s))},DOMPurify.removeHook=function(i){if(mt[i])return Y(mt[i])},DOMPurify.removeHooks=function(i){mt[i]&&(mt[i]=[])},DOMPurify.removeAllHooks=function(){mt={}},DOMPurify}return createDOMPurify()}()},69450:i=>{\"use strict\";class SubRange{constructor(i,s){this.low=i,this.high=s,this.length=1+s-i}overlaps(i){return!(this.high<i.low||this.low>i.high)}touches(i){return!(this.high+1<i.low||this.low-1>i.high)}add(i){return new SubRange(Math.min(this.low,i.low),Math.max(this.high,i.high))}subtract(i){return i.low<=this.low&&i.high>=this.high?[]:i.low>this.low&&i.high<this.high?[new SubRange(this.low,i.low-1),new SubRange(i.high+1,this.high)]:i.low<=this.low?[new SubRange(i.high+1,this.high)]:[new SubRange(this.low,i.low-1)]}toString(){return this.low==this.high?this.low.toString():this.low+\"-\"+this.high}}class DRange{constructor(i,s){this.ranges=[],this.length=0,null!=i&&this.add(i,s)}_update_length(){this.length=this.ranges.reduce(((i,s)=>i+s.length),0)}add(i,s){var _add=i=>{for(var s=0;s<this.ranges.length&&!i.touches(this.ranges[s]);)s++;for(var u=this.ranges.slice(0,s);s<this.ranges.length&&i.touches(this.ranges[s]);)i=i.add(this.ranges[s]),s++;u.push(i),this.ranges=u.concat(this.ranges.slice(s)),this._update_length()};return i instanceof DRange?i.ranges.forEach(_add):(null==s&&(s=i),_add(new SubRange(i,s))),this}subtract(i,s){var _subtract=i=>{for(var s=0;s<this.ranges.length&&!i.overlaps(this.ranges[s]);)s++;for(var u=this.ranges.slice(0,s);s<this.ranges.length&&i.overlaps(this.ranges[s]);)u=u.concat(this.ranges[s].subtract(i)),s++;this.ranges=u.concat(this.ranges.slice(s)),this._update_length()};return i instanceof DRange?i.ranges.forEach(_subtract):(null==s&&(s=i),_subtract(new SubRange(i,s))),this}intersect(i,s){var u=[],_intersect=i=>{for(var s=0;s<this.ranges.length&&!i.overlaps(this.ranges[s]);)s++;for(;s<this.ranges.length&&i.overlaps(this.ranges[s]);){var m=Math.max(this.ranges[s].low,i.low),v=Math.min(this.ranges[s].high,i.high);u.push(new SubRange(m,v)),s++}};return i instanceof DRange?i.ranges.forEach(_intersect):(null==s&&(s=i),_intersect(new SubRange(i,s))),this.ranges=u,this._update_length(),this}index(i){for(var s=0;s<this.ranges.length&&this.ranges[s].length<=i;)i-=this.ranges[s].length,s++;return this.ranges[s].low+i}toString(){return\"[ \"+this.ranges.join(\", \")+\" ]\"}clone(){return new DRange(this)}numbers(){return this.ranges.reduce(((i,s)=>{for(var u=s.low;u<=s.high;)i.push(u),u++;return i}),[])}subranges(){return this.ranges.map((i=>({low:i.low,high:i.high,length:1+i.high-i.low})))}}i.exports=DRange},17187:i=>{\"use strict\";var s,u=\"object\"==typeof Reflect?Reflect:null,m=u&&\"function\"==typeof u.apply?u.apply:function ReflectApply(i,s,u){return Function.prototype.apply.call(i,s,u)};s=u&&\"function\"==typeof u.ownKeys?u.ownKeys:Object.getOwnPropertySymbols?function ReflectOwnKeys(i){return Object.getOwnPropertyNames(i).concat(Object.getOwnPropertySymbols(i))}:function ReflectOwnKeys(i){return Object.getOwnPropertyNames(i)};var v=Number.isNaN||function NumberIsNaN(i){return i!=i};function EventEmitter(){EventEmitter.init.call(this)}i.exports=EventEmitter,i.exports.once=function once(i,s){return new Promise((function(u,m){function errorListener(u){i.removeListener(s,resolver),m(u)}function resolver(){\"function\"==typeof i.removeListener&&i.removeListener(\"error\",errorListener),u([].slice.call(arguments))}eventTargetAgnosticAddListener(i,s,resolver,{once:!0}),\"error\"!==s&&function addErrorHandlerIfEventEmitter(i,s,u){\"function\"==typeof i.on&&eventTargetAgnosticAddListener(i,\"error\",s,u)}(i,errorListener,{once:!0})}))},EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._eventsCount=0,EventEmitter.prototype._maxListeners=void 0;var _=10;function checkListener(i){if(\"function\"!=typeof i)throw new TypeError('The \"listener\" argument must be of type Function. Received type '+typeof i)}function _getMaxListeners(i){return void 0===i._maxListeners?EventEmitter.defaultMaxListeners:i._maxListeners}function _addListener(i,s,u,m){var v,_,j;if(checkListener(u),void 0===(_=i._events)?(_=i._events=Object.create(null),i._eventsCount=0):(void 0!==_.newListener&&(i.emit(\"newListener\",s,u.listener?u.listener:u),_=i._events),j=_[s]),void 0===j)j=_[s]=u,++i._eventsCount;else if(\"function\"==typeof j?j=_[s]=m?[u,j]:[j,u]:m?j.unshift(u):j.push(u),(v=_getMaxListeners(i))>0&&j.length>v&&!j.warned){j.warned=!0;var M=new Error(\"Possible EventEmitter memory leak detected. \"+j.length+\" \"+String(s)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");M.name=\"MaxListenersExceededWarning\",M.emitter=i,M.type=s,M.count=j.length,function ProcessEmitWarning(i){console&&console.warn&&console.warn(i)}(M)}return i}function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(i,s,u){var m={fired:!1,wrapFn:void 0,target:i,type:s,listener:u},v=onceWrapper.bind(m);return v.listener=u,m.wrapFn=v,v}function _listeners(i,s,u){var m=i._events;if(void 0===m)return[];var v=m[s];return void 0===v?[]:\"function\"==typeof v?u?[v.listener||v]:[v]:u?function unwrapListeners(i){for(var s=new Array(i.length),u=0;u<s.length;++u)s[u]=i[u].listener||i[u];return s}(v):arrayClone(v,v.length)}function listenerCount(i){var s=this._events;if(void 0!==s){var u=s[i];if(\"function\"==typeof u)return 1;if(void 0!==u)return u.length}return 0}function arrayClone(i,s){for(var u=new Array(s),m=0;m<s;++m)u[m]=i[m];return u}function eventTargetAgnosticAddListener(i,s,u,m){if(\"function\"==typeof i.on)m.once?i.once(s,u):i.on(s,u);else{if(\"function\"!=typeof i.addEventListener)throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type '+typeof i);i.addEventListener(s,(function wrapListener(v){m.once&&i.removeEventListener(s,wrapListener),u(v)}))}}Object.defineProperty(EventEmitter,\"defaultMaxListeners\",{enumerable:!0,get:function(){return _},set:function(i){if(\"number\"!=typeof i||i<0||v(i))throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received '+i+\".\");_=i}}),EventEmitter.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},EventEmitter.prototype.setMaxListeners=function setMaxListeners(i){if(\"number\"!=typeof i||i<0||v(i))throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received '+i+\".\");return this._maxListeners=i,this},EventEmitter.prototype.getMaxListeners=function getMaxListeners(){return _getMaxListeners(this)},EventEmitter.prototype.emit=function emit(i){for(var s=[],u=1;u<arguments.length;u++)s.push(arguments[u]);var v=\"error\"===i,_=this._events;if(void 0!==_)v=v&&void 0===_.error;else if(!v)return!1;if(v){var j;if(s.length>0&&(j=s[0]),j instanceof Error)throw j;var M=new Error(\"Unhandled error.\"+(j?\" (\"+j.message+\")\":\"\"));throw M.context=j,M}var $=_[i];if(void 0===$)return!1;if(\"function\"==typeof $)m($,this,s);else{var W=$.length,X=arrayClone($,W);for(u=0;u<W;++u)m(X[u],this,s)}return!0},EventEmitter.prototype.addListener=function addListener(i,s){return _addListener(this,i,s,!1)},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.prependListener=function prependListener(i,s){return _addListener(this,i,s,!0)},EventEmitter.prototype.once=function once(i,s){return checkListener(s),this.on(i,_onceWrap(this,i,s)),this},EventEmitter.prototype.prependOnceListener=function prependOnceListener(i,s){return checkListener(s),this.prependListener(i,_onceWrap(this,i,s)),this},EventEmitter.prototype.removeListener=function removeListener(i,s){var u,m,v,_,j;if(checkListener(s),void 0===(m=this._events))return this;if(void 0===(u=m[i]))return this;if(u===s||u.listener===s)0==--this._eventsCount?this._events=Object.create(null):(delete m[i],m.removeListener&&this.emit(\"removeListener\",i,u.listener||s));else if(\"function\"!=typeof u){for(v=-1,_=u.length-1;_>=0;_--)if(u[_]===s||u[_].listener===s){j=u[_].listener,v=_;break}if(v<0)return this;0===v?u.shift():function spliceOne(i,s){for(;s+1<i.length;s++)i[s]=i[s+1];i.pop()}(u,v),1===u.length&&(m[i]=u[0]),void 0!==m.removeListener&&this.emit(\"removeListener\",i,j||s)}return this},EventEmitter.prototype.off=EventEmitter.prototype.removeListener,EventEmitter.prototype.removeAllListeners=function removeAllListeners(i){var s,u,m;if(void 0===(u=this._events))return this;if(void 0===u.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==u[i]&&(0==--this._eventsCount?this._events=Object.create(null):delete u[i]),this;if(0===arguments.length){var v,_=Object.keys(u);for(m=0;m<_.length;++m)\"removeListener\"!==(v=_[m])&&this.removeAllListeners(v);return this.removeAllListeners(\"removeListener\"),this._events=Object.create(null),this._eventsCount=0,this}if(\"function\"==typeof(s=u[i]))this.removeListener(i,s);else if(void 0!==s)for(m=s.length-1;m>=0;m--)this.removeListener(i,s[m]);return this},EventEmitter.prototype.listeners=function listeners(i){return _listeners(this,i,!0)},EventEmitter.prototype.rawListeners=function rawListeners(i){return _listeners(this,i,!1)},EventEmitter.listenerCount=function(i,s){return\"function\"==typeof i.listenerCount?i.listenerCount(s):listenerCount.call(i,s)},EventEmitter.prototype.listenerCount=listenerCount,EventEmitter.prototype.eventNames=function eventNames(){return this._eventsCount>0?s(this._events):[]}},21102:(i,s,u)=>{\"use strict\";var m=u(46291),v=create(Error);function create(i){return FormattedError.displayName=i.displayName||i.name,FormattedError;function FormattedError(s){return s&&(s=m.apply(null,arguments)),new i(s)}}i.exports=v,v.eval=create(EvalError),v.range=create(RangeError),v.reference=create(ReferenceError),v.syntax=create(SyntaxError),v.type=create(TypeError),v.uri=create(URIError),v.create=create},46291:i=>{!function(){var s;function format(i){for(var s,u,m,v,_=1,j=[].slice.call(arguments),M=0,$=i.length,W=\"\",X=!1,Y=!1,nextArg=function(){return j[_++]},slurpNumber=function(){for(var u=\"\";/\\d/.test(i[M]);)u+=i[M++],s=i[M];return u.length>0?parseInt(u):null};M<$;++M)if(s=i[M],X)switch(X=!1,\".\"==s?(Y=!1,s=i[++M]):\"0\"==s&&\".\"==i[M+1]?(Y=!0,s=i[M+=2]):Y=!0,v=slurpNumber(),s){case\"b\":W+=parseInt(nextArg(),10).toString(2);break;case\"c\":W+=\"string\"==typeof(u=nextArg())||u instanceof String?u:String.fromCharCode(parseInt(u,10));break;case\"d\":W+=parseInt(nextArg(),10);break;case\"f\":m=String(parseFloat(nextArg()).toFixed(v||6)),W+=Y?m:m.replace(/^0/,\"\");break;case\"j\":W+=JSON.stringify(nextArg());break;case\"o\":W+=\"0\"+parseInt(nextArg(),10).toString(8);break;case\"s\":W+=nextArg();break;case\"x\":W+=\"0x\"+parseInt(nextArg(),10).toString(16);break;case\"X\":W+=\"0x\"+parseInt(nextArg(),10).toString(16).toUpperCase();break;default:W+=s}else\"%\"===s?X=!0:W+=s;return W}(s=i.exports=format).format=format,s.vsprintf=function vsprintf(i,s){return format.apply(null,[i].concat(s))},\"undefined\"!=typeof console&&\"function\"==typeof console.log&&(s.printf=function printf(){console.log(format.apply(null,arguments))})}()},17648:i=>{\"use strict\";var s=Array.prototype.slice,u=Object.prototype.toString;i.exports=function bind(i){var m=this;if(\"function\"!=typeof m||\"[object Function]\"!==u.call(m))throw new TypeError(\"Function.prototype.bind called on incompatible \"+m);for(var v,_=s.call(arguments,1),j=Math.max(0,m.length-_.length),M=[],$=0;$<j;$++)M.push(\"$\"+$);if(v=Function(\"binder\",\"return function (\"+M.join(\",\")+\"){ return binder.apply(this,arguments); }\")((function(){if(this instanceof v){var u=m.apply(this,_.concat(s.call(arguments)));return Object(u)===u?u:this}return m.apply(i,_.concat(s.call(arguments)))})),m.prototype){var W=function Empty(){};W.prototype=m.prototype,v.prototype=new W,W.prototype=null}return v}},58612:(i,s,u)=>{\"use strict\";var m=u(17648);i.exports=Function.prototype.bind||m},40210:(i,s,u)=>{\"use strict\";var m,v=SyntaxError,_=Function,j=TypeError,getEvalledConstructor=function(i){try{return _('\"use strict\"; return ('+i+\").constructor;\")()}catch(i){}},M=Object.getOwnPropertyDescriptor;if(M)try{M({},\"\")}catch(i){M=null}var throwTypeError=function(){throw new j},$=M?function(){try{return throwTypeError}catch(i){try{return M(arguments,\"callee\").get}catch(i){return throwTypeError}}}():throwTypeError,W=u(41405)(),X=u(28185)(),Y=Object.getPrototypeOf||(X?function(i){return i.__proto__}:null),Z={},ee=\"undefined\"!=typeof Uint8Array&&Y?Y(Uint8Array):m,ie={\"%AggregateError%\":\"undefined\"==typeof AggregateError?m:AggregateError,\"%Array%\":Array,\"%ArrayBuffer%\":\"undefined\"==typeof ArrayBuffer?m:ArrayBuffer,\"%ArrayIteratorPrototype%\":W&&Y?Y([][Symbol.iterator]()):m,\"%AsyncFromSyncIteratorPrototype%\":m,\"%AsyncFunction%\":Z,\"%AsyncGenerator%\":Z,\"%AsyncGeneratorFunction%\":Z,\"%AsyncIteratorPrototype%\":Z,\"%Atomics%\":\"undefined\"==typeof Atomics?m:Atomics,\"%BigInt%\":\"undefined\"==typeof BigInt?m:BigInt,\"%BigInt64Array%\":\"undefined\"==typeof BigInt64Array?m:BigInt64Array,\"%BigUint64Array%\":\"undefined\"==typeof BigUint64Array?m:BigUint64Array,\"%Boolean%\":Boolean,\"%DataView%\":\"undefined\"==typeof DataView?m:DataView,\"%Date%\":Date,\"%decodeURI%\":decodeURI,\"%decodeURIComponent%\":decodeURIComponent,\"%encodeURI%\":encodeURI,\"%encodeURIComponent%\":encodeURIComponent,\"%Error%\":Error,\"%eval%\":eval,\"%EvalError%\":EvalError,\"%Float32Array%\":\"undefined\"==typeof Float32Array?m:Float32Array,\"%Float64Array%\":\"undefined\"==typeof Float64Array?m:Float64Array,\"%FinalizationRegistry%\":\"undefined\"==typeof FinalizationRegistry?m:FinalizationRegistry,\"%Function%\":_,\"%GeneratorFunction%\":Z,\"%Int8Array%\":\"undefined\"==typeof Int8Array?m:Int8Array,\"%Int16Array%\":\"undefined\"==typeof Int16Array?m:Int16Array,\"%Int32Array%\":\"undefined\"==typeof Int32Array?m:Int32Array,\"%isFinite%\":isFinite,\"%isNaN%\":isNaN,\"%IteratorPrototype%\":W&&Y?Y(Y([][Symbol.iterator]())):m,\"%JSON%\":\"object\"==typeof JSON?JSON:m,\"%Map%\":\"undefined\"==typeof Map?m:Map,\"%MapIteratorPrototype%\":\"undefined\"!=typeof Map&&W&&Y?Y((new Map)[Symbol.iterator]()):m,\"%Math%\":Math,\"%Number%\":Number,\"%Object%\":Object,\"%parseFloat%\":parseFloat,\"%parseInt%\":parseInt,\"%Promise%\":\"undefined\"==typeof Promise?m:Promise,\"%Proxy%\":\"undefined\"==typeof Proxy?m:Proxy,\"%RangeError%\":RangeError,\"%ReferenceError%\":ReferenceError,\"%Reflect%\":\"undefined\"==typeof Reflect?m:Reflect,\"%RegExp%\":RegExp,\"%Set%\":\"undefined\"==typeof Set?m:Set,\"%SetIteratorPrototype%\":\"undefined\"!=typeof Set&&W&&Y?Y((new Set)[Symbol.iterator]()):m,\"%SharedArrayBuffer%\":\"undefined\"==typeof SharedArrayBuffer?m:SharedArrayBuffer,\"%String%\":String,\"%StringIteratorPrototype%\":W&&Y?Y(\"\"[Symbol.iterator]()):m,\"%Symbol%\":W?Symbol:m,\"%SyntaxError%\":v,\"%ThrowTypeError%\":$,\"%TypedArray%\":ee,\"%TypeError%\":j,\"%Uint8Array%\":\"undefined\"==typeof Uint8Array?m:Uint8Array,\"%Uint8ClampedArray%\":\"undefined\"==typeof Uint8ClampedArray?m:Uint8ClampedArray,\"%Uint16Array%\":\"undefined\"==typeof Uint16Array?m:Uint16Array,\"%Uint32Array%\":\"undefined\"==typeof Uint32Array?m:Uint32Array,\"%URIError%\":URIError,\"%WeakMap%\":\"undefined\"==typeof WeakMap?m:WeakMap,\"%WeakRef%\":\"undefined\"==typeof WeakRef?m:WeakRef,\"%WeakSet%\":\"undefined\"==typeof WeakSet?m:WeakSet};if(Y)try{null.error}catch(i){var ae=Y(Y(i));ie[\"%Error.prototype%\"]=ae}var ce=function doEval(i){var s;if(\"%AsyncFunction%\"===i)s=getEvalledConstructor(\"async function () {}\");else if(\"%GeneratorFunction%\"===i)s=getEvalledConstructor(\"function* () {}\");else if(\"%AsyncGeneratorFunction%\"===i)s=getEvalledConstructor(\"async function* () {}\");else if(\"%AsyncGenerator%\"===i){var u=doEval(\"%AsyncGeneratorFunction%\");u&&(s=u.prototype)}else if(\"%AsyncIteratorPrototype%\"===i){var m=doEval(\"%AsyncGenerator%\");m&&Y&&(s=Y(m.prototype))}return ie[i]=s,s},le={\"%ArrayBufferPrototype%\":[\"ArrayBuffer\",\"prototype\"],\"%ArrayPrototype%\":[\"Array\",\"prototype\"],\"%ArrayProto_entries%\":[\"Array\",\"prototype\",\"entries\"],\"%ArrayProto_forEach%\":[\"Array\",\"prototype\",\"forEach\"],\"%ArrayProto_keys%\":[\"Array\",\"prototype\",\"keys\"],\"%ArrayProto_values%\":[\"Array\",\"prototype\",\"values\"],\"%AsyncFunctionPrototype%\":[\"AsyncFunction\",\"prototype\"],\"%AsyncGenerator%\":[\"AsyncGeneratorFunction\",\"prototype\"],\"%AsyncGeneratorPrototype%\":[\"AsyncGeneratorFunction\",\"prototype\",\"prototype\"],\"%BooleanPrototype%\":[\"Boolean\",\"prototype\"],\"%DataViewPrototype%\":[\"DataView\",\"prototype\"],\"%DatePrototype%\":[\"Date\",\"prototype\"],\"%ErrorPrototype%\":[\"Error\",\"prototype\"],\"%EvalErrorPrototype%\":[\"EvalError\",\"prototype\"],\"%Float32ArrayPrototype%\":[\"Float32Array\",\"prototype\"],\"%Float64ArrayPrototype%\":[\"Float64Array\",\"prototype\"],\"%FunctionPrototype%\":[\"Function\",\"prototype\"],\"%Generator%\":[\"GeneratorFunction\",\"prototype\"],\"%GeneratorPrototype%\":[\"GeneratorFunction\",\"prototype\",\"prototype\"],\"%Int8ArrayPrototype%\":[\"Int8Array\",\"prototype\"],\"%Int16ArrayPrototype%\":[\"Int16Array\",\"prototype\"],\"%Int32ArrayPrototype%\":[\"Int32Array\",\"prototype\"],\"%JSONParse%\":[\"JSON\",\"parse\"],\"%JSONStringify%\":[\"JSON\",\"stringify\"],\"%MapPrototype%\":[\"Map\",\"prototype\"],\"%NumberPrototype%\":[\"Number\",\"prototype\"],\"%ObjectPrototype%\":[\"Object\",\"prototype\"],\"%ObjProto_toString%\":[\"Object\",\"prototype\",\"toString\"],\"%ObjProto_valueOf%\":[\"Object\",\"prototype\",\"valueOf\"],\"%PromisePrototype%\":[\"Promise\",\"prototype\"],\"%PromiseProto_then%\":[\"Promise\",\"prototype\",\"then\"],\"%Promise_all%\":[\"Promise\",\"all\"],\"%Promise_reject%\":[\"Promise\",\"reject\"],\"%Promise_resolve%\":[\"Promise\",\"resolve\"],\"%RangeErrorPrototype%\":[\"RangeError\",\"prototype\"],\"%ReferenceErrorPrototype%\":[\"ReferenceError\",\"prototype\"],\"%RegExpPrototype%\":[\"RegExp\",\"prototype\"],\"%SetPrototype%\":[\"Set\",\"prototype\"],\"%SharedArrayBufferPrototype%\":[\"SharedArrayBuffer\",\"prototype\"],\"%StringPrototype%\":[\"String\",\"prototype\"],\"%SymbolPrototype%\":[\"Symbol\",\"prototype\"],\"%SyntaxErrorPrototype%\":[\"SyntaxError\",\"prototype\"],\"%TypedArrayPrototype%\":[\"TypedArray\",\"prototype\"],\"%TypeErrorPrototype%\":[\"TypeError\",\"prototype\"],\"%Uint8ArrayPrototype%\":[\"Uint8Array\",\"prototype\"],\"%Uint8ClampedArrayPrototype%\":[\"Uint8ClampedArray\",\"prototype\"],\"%Uint16ArrayPrototype%\":[\"Uint16Array\",\"prototype\"],\"%Uint32ArrayPrototype%\":[\"Uint32Array\",\"prototype\"],\"%URIErrorPrototype%\":[\"URIError\",\"prototype\"],\"%WeakMapPrototype%\":[\"WeakMap\",\"prototype\"],\"%WeakSetPrototype%\":[\"WeakSet\",\"prototype\"]},pe=u(58612),de=u(17642),fe=pe.call(Function.call,Array.prototype.concat),ye=pe.call(Function.apply,Array.prototype.splice),be=pe.call(Function.call,String.prototype.replace),_e=pe.call(Function.call,String.prototype.slice),we=pe.call(Function.call,RegExp.prototype.exec),Se=/[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g,xe=/\\\\(\\\\)?/g,Pe=function getBaseIntrinsic(i,s){var u,m=i;if(de(le,m)&&(m=\"%\"+(u=le[m])[0]+\"%\"),de(ie,m)){var _=ie[m];if(_===Z&&(_=ce(m)),void 0===_&&!s)throw new j(\"intrinsic \"+i+\" exists, but is not available. Please file an issue!\");return{alias:u,name:m,value:_}}throw new v(\"intrinsic \"+i+\" does not exist!\")};i.exports=function GetIntrinsic(i,s){if(\"string\"!=typeof i||0===i.length)throw new j(\"intrinsic name must be a non-empty string\");if(arguments.length>1&&\"boolean\"!=typeof s)throw new j('\"allowMissing\" argument must be a boolean');if(null===we(/^%?[^%]*%?$/,i))throw new v(\"`%` may not be present anywhere but at the beginning and end of the intrinsic name\");var u=function stringToPath(i){var s=_e(i,0,1),u=_e(i,-1);if(\"%\"===s&&\"%\"!==u)throw new v(\"invalid intrinsic syntax, expected closing `%`\");if(\"%\"===u&&\"%\"!==s)throw new v(\"invalid intrinsic syntax, expected opening `%`\");var m=[];return be(i,Se,(function(i,s,u,v){m[m.length]=u?be(v,xe,\"$1\"):s||i})),m}(i),m=u.length>0?u[0]:\"\",_=Pe(\"%\"+m+\"%\",s),$=_.name,W=_.value,X=!1,Y=_.alias;Y&&(m=Y[0],ye(u,fe([0,1],Y)));for(var Z=1,ee=!0;Z<u.length;Z+=1){var ae=u[Z],ce=_e(ae,0,1),le=_e(ae,-1);if(('\"'===ce||\"'\"===ce||\"`\"===ce||'\"'===le||\"'\"===le||\"`\"===le)&&ce!==le)throw new v(\"property names with quotes must have matching quotes\");if(\"constructor\"!==ae&&ee||(X=!0),de(ie,$=\"%\"+(m+=\".\"+ae)+\"%\"))W=ie[$];else if(null!=W){if(!(ae in W)){if(!s)throw new j(\"base intrinsic for \"+i+\" exists, but the property is not available.\");return}if(M&&Z+1>=u.length){var pe=M(W,ae);W=(ee=!!pe)&&\"get\"in pe&&!(\"originalValue\"in pe.get)?pe.get:W[ae]}else ee=de(W,ae),W=W[ae];ee&&!X&&(ie[$]=W)}}return W}},28185:i=>{\"use strict\";var s={foo:{}},u=Object;i.exports=function hasProto(){return{__proto__:s}.foo===s.foo&&!({__proto__:null}instanceof u)}},41405:(i,s,u)=>{\"use strict\";var m=\"undefined\"!=typeof Symbol&&Symbol,v=u(55419);i.exports=function hasNativeSymbols(){return\"function\"==typeof m&&(\"function\"==typeof Symbol&&(\"symbol\"==typeof m(\"foo\")&&(\"symbol\"==typeof Symbol(\"bar\")&&v())))}},55419:i=>{\"use strict\";i.exports=function hasSymbols(){if(\"function\"!=typeof Symbol||\"function\"!=typeof Object.getOwnPropertySymbols)return!1;if(\"symbol\"==typeof Symbol.iterator)return!0;var i={},s=Symbol(\"test\"),u=Object(s);if(\"string\"==typeof s)return!1;if(\"[object Symbol]\"!==Object.prototype.toString.call(s))return!1;if(\"[object Symbol]\"!==Object.prototype.toString.call(u))return!1;for(s in i[s]=42,i)return!1;if(\"function\"==typeof Object.keys&&0!==Object.keys(i).length)return!1;if(\"function\"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(i).length)return!1;var m=Object.getOwnPropertySymbols(i);if(1!==m.length||m[0]!==s)return!1;if(!Object.prototype.propertyIsEnumerable.call(i,s))return!1;if(\"function\"==typeof Object.getOwnPropertyDescriptor){var v=Object.getOwnPropertyDescriptor(i,s);if(42!==v.value||!0!==v.enumerable)return!1}return!0}},17642:(i,s,u)=>{\"use strict\";var m=u(58612);i.exports=m.call(Function.call,Object.prototype.hasOwnProperty)},47802:i=>{function deepFreeze(i){return i instanceof Map?i.clear=i.delete=i.set=function(){throw new Error(\"map is read-only\")}:i instanceof Set&&(i.add=i.clear=i.delete=function(){throw new Error(\"set is read-only\")}),Object.freeze(i),Object.getOwnPropertyNames(i).forEach((function(s){var u=i[s];\"object\"!=typeof u||Object.isFrozen(u)||deepFreeze(u)})),i}var s=deepFreeze,u=deepFreeze;s.default=u;class Response{constructor(i){void 0===i.data&&(i.data={}),this.data=i.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function escapeHTML(i){return i.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\").replace(/'/g,\"&#x27;\")}function inherit(i,...s){const u=Object.create(null);for(const s in i)u[s]=i[s];return s.forEach((function(i){for(const s in i)u[s]=i[s]})),u}const emitsWrappingTags=i=>!!i.kind;class HTMLRenderer{constructor(i,s){this.buffer=\"\",this.classPrefix=s.classPrefix,i.walk(this)}addText(i){this.buffer+=escapeHTML(i)}openNode(i){if(!emitsWrappingTags(i))return;let s=i.kind;i.sublanguage||(s=`${this.classPrefix}${s}`),this.span(s)}closeNode(i){emitsWrappingTags(i)&&(this.buffer+=\"</span>\")}value(){return this.buffer}span(i){this.buffer+=`<span class=\"${i}\">`}}class TokenTree{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(i){this.top.children.push(i)}openNode(i){const s={kind:i,children:[]};this.add(s),this.stack.push(s)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(i){return this.constructor._walk(i,this.rootNode)}static _walk(i,s){return\"string\"==typeof s?i.addText(s):s.children&&(i.openNode(s),s.children.forEach((s=>this._walk(i,s))),i.closeNode(s)),i}static _collapse(i){\"string\"!=typeof i&&i.children&&(i.children.every((i=>\"string\"==typeof i))?i.children=[i.children.join(\"\")]:i.children.forEach((i=>{TokenTree._collapse(i)})))}}class TokenTreeEmitter extends TokenTree{constructor(i){super(),this.options=i}addKeyword(i,s){\"\"!==i&&(this.openNode(s),this.addText(i),this.closeNode())}addText(i){\"\"!==i&&this.add(i)}addSublanguage(i,s){const u=i.root;u.kind=s,u.sublanguage=!0,this.add(u)}toHTML(){return new HTMLRenderer(this,this.options).value()}finalize(){return!0}}function source(i){return i?\"string\"==typeof i?i:i.source:null}const m=/\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;const v=\"[a-zA-Z]\\\\w*\",_=\"[a-zA-Z_]\\\\w*\",j=\"\\\\b\\\\d+(\\\\.\\\\d+)?\",M=\"(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\",$=\"\\\\b(0b[01]+)\",W={begin:\"\\\\\\\\[\\\\s\\\\S]\",relevance:0},X={className:\"string\",begin:\"'\",end:\"'\",illegal:\"\\\\n\",contains:[W]},Y={className:\"string\",begin:'\"',end:'\"',illegal:\"\\\\n\",contains:[W]},Z={begin:/\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/},COMMENT=function(i,s,u={}){const m=inherit({className:\"comment\",begin:i,end:s,contains:[]},u);return m.contains.push(Z),m.contains.push({className:\"doctag\",begin:\"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):\",relevance:0}),m},ee=COMMENT(\"//\",\"$\"),ie=COMMENT(\"/\\\\*\",\"\\\\*/\"),ae=COMMENT(\"#\",\"$\"),ce={className:\"number\",begin:j,relevance:0},le={className:\"number\",begin:M,relevance:0},pe={className:\"number\",begin:$,relevance:0},de={className:\"number\",begin:j+\"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\",relevance:0},fe={begin:/(?=\\/[^/\\n]*\\/)/,contains:[{className:\"regexp\",begin:/\\//,end:/\\/[gimuy]*/,illegal:/\\n/,contains:[W,{begin:/\\[/,end:/\\]/,relevance:0,contains:[W]}]}]},ye={className:\"title\",begin:v,relevance:0},be={className:\"title\",begin:_,relevance:0},_e={begin:\"\\\\.\\\\s*\"+_,relevance:0};var we=Object.freeze({__proto__:null,MATCH_NOTHING_RE:/\\b\\B/,IDENT_RE:v,UNDERSCORE_IDENT_RE:_,NUMBER_RE:j,C_NUMBER_RE:M,BINARY_NUMBER_RE:$,RE_STARTERS_RE:\"!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~\",SHEBANG:(i={})=>{const s=/^#![ ]*\\//;return i.binary&&(i.begin=function concat(...i){return i.map((i=>source(i))).join(\"\")}(s,/.*\\b/,i.binary,/\\b.*/)),inherit({className:\"meta\",begin:s,end:/$/,relevance:0,\"on:begin\":(i,s)=>{0!==i.index&&s.ignoreMatch()}},i)},BACKSLASH_ESCAPE:W,APOS_STRING_MODE:X,QUOTE_STRING_MODE:Y,PHRASAL_WORDS_MODE:Z,COMMENT,C_LINE_COMMENT_MODE:ee,C_BLOCK_COMMENT_MODE:ie,HASH_COMMENT_MODE:ae,NUMBER_MODE:ce,C_NUMBER_MODE:le,BINARY_NUMBER_MODE:pe,CSS_NUMBER_MODE:de,REGEXP_MODE:fe,TITLE_MODE:ye,UNDERSCORE_TITLE_MODE:be,METHOD_GUARD:_e,END_SAME_AS_BEGIN:function(i){return Object.assign(i,{\"on:begin\":(i,s)=>{s.data._beginMatch=i[1]},\"on:end\":(i,s)=>{s.data._beginMatch!==i[1]&&s.ignoreMatch()}})}});function skipIfhasPrecedingDot(i,s){\".\"===i.input[i.index-1]&&s.ignoreMatch()}function beginKeywords(i,s){s&&i.beginKeywords&&(i.begin=\"\\\\b(\"+i.beginKeywords.split(\" \").join(\"|\")+\")(?!\\\\.)(?=\\\\b|\\\\s)\",i.__beforeBegin=skipIfhasPrecedingDot,i.keywords=i.keywords||i.beginKeywords,delete i.beginKeywords,void 0===i.relevance&&(i.relevance=0))}function compileIllegal(i,s){Array.isArray(i.illegal)&&(i.illegal=function either(...i){return\"(\"+i.map((i=>source(i))).join(\"|\")+\")\"}(...i.illegal))}function compileMatch(i,s){if(i.match){if(i.begin||i.end)throw new Error(\"begin & end are not supported with match\");i.begin=i.match,delete i.match}}function compileRelevance(i,s){void 0===i.relevance&&(i.relevance=1)}const Se=[\"of\",\"and\",\"for\",\"in\",\"not\",\"or\",\"if\",\"then\",\"parent\",\"list\",\"value\"],xe=\"keyword\";function compileKeywords(i,s,u=xe){const m={};return\"string\"==typeof i?compileList(u,i.split(\" \")):Array.isArray(i)?compileList(u,i):Object.keys(i).forEach((function(u){Object.assign(m,compileKeywords(i[u],s,u))})),m;function compileList(i,u){s&&(u=u.map((i=>i.toLowerCase()))),u.forEach((function(s){const u=s.split(\"|\");m[u[0]]=[i,scoreForKeyword(u[0],u[1])]}))}}function scoreForKeyword(i,s){return s?Number(s):function commonKeyword(i){return Se.includes(i.toLowerCase())}(i)?0:1}function compileLanguage(i,{plugins:s}){function langRe(s,u){return new RegExp(source(s),\"m\"+(i.case_insensitive?\"i\":\"\")+(u?\"g\":\"\"))}class MultiRegex{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(i,s){s.position=this.position++,this.matchIndexes[this.matchAt]=s,this.regexes.push([s,i]),this.matchAt+=function countMatchGroups(i){return new RegExp(i.toString()+\"|\").exec(\"\").length-1}(i)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const i=this.regexes.map((i=>i[1]));this.matcherRe=langRe(function join(i,s=\"|\"){let u=0;return i.map((i=>{u+=1;const s=u;let v=source(i),_=\"\";for(;v.length>0;){const i=m.exec(v);if(!i){_+=v;break}_+=v.substring(0,i.index),v=v.substring(i.index+i[0].length),\"\\\\\"===i[0][0]&&i[1]?_+=\"\\\\\"+String(Number(i[1])+s):(_+=i[0],\"(\"===i[0]&&u++)}return _})).map((i=>`(${i})`)).join(s)}(i),!0),this.lastIndex=0}exec(i){this.matcherRe.lastIndex=this.lastIndex;const s=this.matcherRe.exec(i);if(!s)return null;const u=s.findIndex(((i,s)=>s>0&&void 0!==i)),m=this.matchIndexes[u];return s.splice(0,u),Object.assign(s,m)}}class ResumableMultiRegex{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(i){if(this.multiRegexes[i])return this.multiRegexes[i];const s=new MultiRegex;return this.rules.slice(i).forEach((([i,u])=>s.addRule(i,u))),s.compile(),this.multiRegexes[i]=s,s}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(i,s){this.rules.push([i,s]),\"begin\"===s.type&&this.count++}exec(i){const s=this.getMatcher(this.regexIndex);s.lastIndex=this.lastIndex;let u=s.exec(i);if(this.resumingScanAtSamePosition())if(u&&u.index===this.lastIndex);else{const s=this.getMatcher(0);s.lastIndex=this.lastIndex+1,u=s.exec(i)}return u&&(this.regexIndex+=u.position+1,this.regexIndex===this.count&&this.considerAll()),u}}if(i.compilerExtensions||(i.compilerExtensions=[]),i.contains&&i.contains.includes(\"self\"))throw new Error(\"ERR: contains `self` is not supported at the top-level of a language.  See documentation.\");return i.classNameAliases=inherit(i.classNameAliases||{}),function compileMode(s,u){const m=s;if(s.isCompiled)return m;[compileMatch].forEach((i=>i(s,u))),i.compilerExtensions.forEach((i=>i(s,u))),s.__beforeBegin=null,[beginKeywords,compileIllegal,compileRelevance].forEach((i=>i(s,u))),s.isCompiled=!0;let v=null;if(\"object\"==typeof s.keywords&&(v=s.keywords.$pattern,delete s.keywords.$pattern),s.keywords&&(s.keywords=compileKeywords(s.keywords,i.case_insensitive)),s.lexemes&&v)throw new Error(\"ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) \");return v=v||s.lexemes||/\\w+/,m.keywordPatternRe=langRe(v,!0),u&&(s.begin||(s.begin=/\\B|\\b/),m.beginRe=langRe(s.begin),s.endSameAsBegin&&(s.end=s.begin),s.end||s.endsWithParent||(s.end=/\\B|\\b/),s.end&&(m.endRe=langRe(s.end)),m.terminatorEnd=source(s.end)||\"\",s.endsWithParent&&u.terminatorEnd&&(m.terminatorEnd+=(s.end?\"|\":\"\")+u.terminatorEnd)),s.illegal&&(m.illegalRe=langRe(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((function(i){return function expandOrCloneMode(i){i.variants&&!i.cachedVariants&&(i.cachedVariants=i.variants.map((function(s){return inherit(i,{variants:null},s)})));if(i.cachedVariants)return i.cachedVariants;if(dependencyOnParent(i))return inherit(i,{starts:i.starts?inherit(i.starts):null});if(Object.isFrozen(i))return inherit(i);return i}(\"self\"===i?s:i)}))),s.contains.forEach((function(i){compileMode(i,m)})),s.starts&&compileMode(s.starts,u),m.matcher=function buildModeRegex(i){const s=new ResumableMultiRegex;return i.contains.forEach((i=>s.addRule(i.begin,{rule:i,type:\"begin\"}))),i.terminatorEnd&&s.addRule(i.terminatorEnd,{type:\"end\"}),i.illegal&&s.addRule(i.illegal,{type:\"illegal\"}),s}(m),m}(i)}function dependencyOnParent(i){return!!i&&(i.endsWithParent||dependencyOnParent(i.starts))}function BuildVuePlugin(i){const s={props:[\"language\",\"code\",\"autodetect\"],data:function(){return{detectedLanguage:\"\",unknownLanguage:!1}},computed:{className(){return this.unknownLanguage?\"\":\"hljs \"+this.detectedLanguage},highlighted(){if(!this.autoDetect&&!i.getLanguage(this.language))return console.warn(`The language \"${this.language}\" you specified could not be found.`),this.unknownLanguage=!0,escapeHTML(this.code);let s={};return this.autoDetect?(s=i.highlightAuto(this.code),this.detectedLanguage=s.language):(s=i.highlight(this.language,this.code,this.ignoreIllegals),this.detectedLanguage=this.language),s.value},autoDetect(){return!this.language||function hasValueOrEmptyAttribute(i){return Boolean(i||\"\"===i)}(this.autodetect)},ignoreIllegals:()=>!0},render(i){return i(\"pre\",{},[i(\"code\",{class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{Component:s,VuePlugin:{install(i){i.component(\"highlightjs\",s)}}}}const Pe={\"after:highlightElement\":({el:i,result:s,text:u})=>{const m=nodeStream(i);if(!m.length)return;const v=document.createElement(\"div\");v.innerHTML=s.value,s.value=function mergeStreams(i,s,u){let m=0,v=\"\";const _=[];function selectStream(){return i.length&&s.length?i[0].offset!==s[0].offset?i[0].offset<s[0].offset?i:s:\"start\"===s[0].event?i:s:i.length?i:s}function open(i){function attributeString(i){return\" \"+i.nodeName+'=\"'+escapeHTML(i.value)+'\"'}v+=\"<\"+tag(i)+[].map.call(i.attributes,attributeString).join(\"\")+\">\"}function close(i){v+=\"</\"+tag(i)+\">\"}function render(i){(\"start\"===i.event?open:close)(i.node)}for(;i.length||s.length;){let s=selectStream();if(v+=escapeHTML(u.substring(m,s[0].offset)),m=s[0].offset,s===i){_.reverse().forEach(close);do{render(s.splice(0,1)[0]),s=selectStream()}while(s===i&&s.length&&s[0].offset===m);_.reverse().forEach(open)}else\"start\"===s[0].event?_.push(s[0].node):_.pop(),render(s.splice(0,1)[0])}return v+escapeHTML(u.substr(m))}(m,nodeStream(v),u)}};function tag(i){return i.nodeName.toLowerCase()}function nodeStream(i){const s=[];return function _nodeStream(i,u){for(let m=i.firstChild;m;m=m.nextSibling)3===m.nodeType?u+=m.nodeValue.length:1===m.nodeType&&(s.push({event:\"start\",offset:u,node:m}),u=_nodeStream(m,u),tag(m).match(/br|hr|img|input/)||s.push({event:\"stop\",offset:u,node:m}));return u}(i,0),s}const Ie={},error=i=>{console.error(i)},warn=(i,...s)=>{console.log(`WARN: ${i}`,...s)},deprecated=(i,s)=>{Ie[`${i}/${s}`]||(console.log(`Deprecated as of ${i}. ${s}`),Ie[`${i}/${s}`]=!0)},Te=escapeHTML,Re=inherit,qe=Symbol(\"nomatch\");var ze=function(i){const u=Object.create(null),m=Object.create(null),v=[];let _=!0;const j=/(^(<[^>]+>|\\t|)+|\\n)/gm,M=\"Could not find the language '{}', did you forget to load/include a language module?\",$={disableAutodetect:!0,name:\"Plain text\",contains:[]};let W={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\\blang(?:uage)?-([\\w-]+)\\b/i,classPrefix:\"hljs-\",tabReplace:null,useBR:!1,languages:null,__emitter:TokenTreeEmitter};function shouldNotHighlight(i){return W.noHighlightRe.test(i)}function highlight(i,s,u,m){let v=\"\",_=\"\";\"object\"==typeof s?(v=i,u=s.ignoreIllegals,_=s.language,m=void 0):(deprecated(\"10.7.0\",\"highlight(lang, code, ...args) has been deprecated.\"),deprecated(\"10.7.0\",\"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\"),_=i,v=s);const j={code:v,language:_};fire(\"before:highlight\",j);const M=j.result?j.result:_highlight(j.language,j.code,u,m);return M.code=j.code,fire(\"after:highlight\",M),M}function _highlight(i,s,m,j){function keywordData(i,s){const u=X.case_insensitive?s[0].toLowerCase():s[0];return Object.prototype.hasOwnProperty.call(i.keywords,u)&&i.keywords[u]}function processBuffer(){null!=ee.subLanguage?function processSubLanguage(){if(\"\"===ce)return;let i=null;if(\"string\"==typeof ee.subLanguage){if(!u[ee.subLanguage])return void ae.addText(ce);i=_highlight(ee.subLanguage,ce,!0,ie[ee.subLanguage]),ie[ee.subLanguage]=i.top}else i=highlightAuto(ce,ee.subLanguage.length?ee.subLanguage:null);ee.relevance>0&&(le+=i.relevance),ae.addSublanguage(i.emitter,i.language)}():function processKeywords(){if(!ee.keywords)return void ae.addText(ce);let i=0;ee.keywordPatternRe.lastIndex=0;let s=ee.keywordPatternRe.exec(ce),u=\"\";for(;s;){u+=ce.substring(i,s.index);const m=keywordData(ee,s);if(m){const[i,v]=m;if(ae.addText(u),u=\"\",le+=v,i.startsWith(\"_\"))u+=s[0];else{const u=X.classNameAliases[i]||i;ae.addKeyword(s[0],u)}}else u+=s[0];i=ee.keywordPatternRe.lastIndex,s=ee.keywordPatternRe.exec(ce)}u+=ce.substr(i),ae.addText(u)}(),ce=\"\"}function startNewMode(i){return i.className&&ae.openNode(X.classNameAliases[i.className]||i.className),ee=Object.create(i,{parent:{value:ee}}),ee}function endOfMode(i,s,u){let m=function startsWith(i,s){const u=i&&i.exec(s);return u&&0===u.index}(i.endRe,u);if(m){if(i[\"on:end\"]){const u=new Response(i);i[\"on:end\"](s,u),u.isMatchIgnored&&(m=!1)}if(m){for(;i.endsParent&&i.parent;)i=i.parent;return i}}if(i.endsWithParent)return endOfMode(i.parent,s,u)}function doIgnore(i){return 0===ee.matcher.regexIndex?(ce+=i[0],1):(fe=!0,0)}function doBeginMatch(i){const s=i[0],u=i.rule,m=new Response(u),v=[u.__beforeBegin,u[\"on:begin\"]];for(const u of v)if(u&&(u(i,m),m.isMatchIgnored))return doIgnore(s);return u&&u.endSameAsBegin&&(u.endRe=function escape(i){return new RegExp(i.replace(/[-/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"),\"m\")}(s)),u.skip?ce+=s:(u.excludeBegin&&(ce+=s),processBuffer(),u.returnBegin||u.excludeBegin||(ce=s)),startNewMode(u),u.returnBegin?0:s.length}function doEndMatch(i){const u=i[0],m=s.substr(i.index),v=endOfMode(ee,i,m);if(!v)return qe;const _=ee;_.skip?ce+=u:(_.returnEnd||_.excludeEnd||(ce+=u),processBuffer(),_.excludeEnd&&(ce=u));do{ee.className&&ae.closeNode(),ee.skip||ee.subLanguage||(le+=ee.relevance),ee=ee.parent}while(ee!==v.parent);return v.starts&&(v.endSameAsBegin&&(v.starts.endRe=v.endRe),startNewMode(v.starts)),_.returnEnd?0:u.length}let $={};function processLexeme(u,v){const j=v&&v[0];if(ce+=u,null==j)return processBuffer(),0;if(\"begin\"===$.type&&\"end\"===v.type&&$.index===v.index&&\"\"===j){if(ce+=s.slice(v.index,v.index+1),!_){const s=new Error(\"0 width match regex\");throw s.languageName=i,s.badRule=$.rule,s}return 1}if($=v,\"begin\"===v.type)return doBeginMatch(v);if(\"illegal\"===v.type&&!m){const i=new Error('Illegal lexeme \"'+j+'\" for mode \"'+(ee.className||\"<unnamed>\")+'\"');throw i.mode=ee,i}if(\"end\"===v.type){const i=doEndMatch(v);if(i!==qe)return i}if(\"illegal\"===v.type&&\"\"===j)return 1;if(de>1e5&&de>3*v.index){throw new Error(\"potential infinite loop, way more iterations than matches\")}return ce+=j,j.length}const X=getLanguage(i);if(!X)throw error(M.replace(\"{}\",i)),new Error('Unknown language: \"'+i+'\"');const Y=compileLanguage(X,{plugins:v});let Z=\"\",ee=j||Y;const ie={},ae=new W.__emitter(W);!function processContinuations(){const i=[];for(let s=ee;s!==X;s=s.parent)s.className&&i.unshift(s.className);i.forEach((i=>ae.openNode(i)))}();let ce=\"\",le=0,pe=0,de=0,fe=!1;try{for(ee.matcher.considerAll();;){de++,fe?fe=!1:ee.matcher.considerAll(),ee.matcher.lastIndex=pe;const i=ee.matcher.exec(s);if(!i)break;const u=processLexeme(s.substring(pe,i.index),i);pe=i.index+u}return processLexeme(s.substr(pe)),ae.closeAllNodes(),ae.finalize(),Z=ae.toHTML(),{relevance:Math.floor(le),value:Z,language:i,illegal:!1,emitter:ae,top:ee}}catch(u){if(u.message&&u.message.includes(\"Illegal\"))return{illegal:!0,illegalBy:{msg:u.message,context:s.slice(pe-100,pe+100),mode:u.mode},sofar:Z,relevance:0,value:Te(s),emitter:ae};if(_)return{illegal:!1,relevance:0,value:Te(s),emitter:ae,language:i,top:ee,errorRaised:u};throw u}}function highlightAuto(i,s){s=s||W.languages||Object.keys(u);const m=function justTextHighlightResult(i){const s={relevance:0,emitter:new W.__emitter(W),value:Te(i),illegal:!1,top:$};return s.emitter.addText(i),s}(i),v=s.filter(getLanguage).filter(autoDetection).map((s=>_highlight(s,i,!1)));v.unshift(m);const _=v.sort(((i,s)=>{if(i.relevance!==s.relevance)return s.relevance-i.relevance;if(i.language&&s.language){if(getLanguage(i.language).supersetOf===s.language)return 1;if(getLanguage(s.language).supersetOf===i.language)return-1}return 0})),[j,M]=_,X=j;return X.second_best=M,X}const X={\"before:highlightElement\":({el:i})=>{W.useBR&&(i.innerHTML=i.innerHTML.replace(/\\n/g,\"\").replace(/<br[ /]*>/g,\"\\n\"))},\"after:highlightElement\":({result:i})=>{W.useBR&&(i.value=i.value.replace(/\\n/g,\"<br>\"))}},Y=/^(<[^>]+>|\\t)+/gm,Z={\"after:highlightElement\":({result:i})=>{W.tabReplace&&(i.value=i.value.replace(Y,(i=>i.replace(/\\t/g,W.tabReplace))))}};function highlightElement(i){let s=null;const u=function blockLanguage(i){let s=i.className+\" \";s+=i.parentNode?i.parentNode.className:\"\";const u=W.languageDetectRe.exec(s);if(u){const s=getLanguage(u[1]);return s||(warn(M.replace(\"{}\",u[1])),warn(\"Falling back to no-highlight mode for this block.\",i)),s?u[1]:\"no-highlight\"}return s.split(/\\s+/).find((i=>shouldNotHighlight(i)||getLanguage(i)))}(i);if(shouldNotHighlight(u))return;fire(\"before:highlightElement\",{el:i,language:u}),s=i;const v=s.textContent,_=u?highlight(v,{language:u,ignoreIllegals:!0}):highlightAuto(v);fire(\"after:highlightElement\",{el:i,result:_,text:v}),i.innerHTML=_.value,function updateClassName(i,s,u){const v=s?m[s]:u;i.classList.add(\"hljs\"),v&&i.classList.add(v)}(i,u,_.language),i.result={language:_.language,re:_.relevance,relavance:_.relevance},_.second_best&&(i.second_best={language:_.second_best.language,re:_.second_best.relevance,relavance:_.second_best.relevance})}const initHighlighting=()=>{if(initHighlighting.called)return;initHighlighting.called=!0,deprecated(\"10.6.0\",\"initHighlighting() is deprecated.  Use highlightAll() instead.\");document.querySelectorAll(\"pre code\").forEach(highlightElement)};let ee=!1;function highlightAll(){if(\"loading\"===document.readyState)return void(ee=!0);document.querySelectorAll(\"pre code\").forEach(highlightElement)}function getLanguage(i){return i=(i||\"\").toLowerCase(),u[i]||u[m[i]]}function registerAliases(i,{languageName:s}){\"string\"==typeof i&&(i=[i]),i.forEach((i=>{m[i.toLowerCase()]=s}))}function autoDetection(i){const s=getLanguage(i);return s&&!s.disableAutodetect}function fire(i,s){const u=i;v.forEach((function(i){i[u]&&i[u](s)}))}\"undefined\"!=typeof window&&window.addEventListener&&window.addEventListener(\"DOMContentLoaded\",(function boot(){ee&&highlightAll()}),!1),Object.assign(i,{highlight,highlightAuto,highlightAll,fixMarkup:function deprecateFixMarkup(i){return deprecated(\"10.2.0\",\"fixMarkup will be removed entirely in v11.0\"),deprecated(\"10.2.0\",\"Please see https://github.com/highlightjs/highlight.js/issues/2534\"),function fixMarkup(i){return W.tabReplace||W.useBR?i.replace(j,(i=>\"\\n\"===i?W.useBR?\"<br>\":i:W.tabReplace?i.replace(/\\t/g,W.tabReplace):i)):i}(i)},highlightElement,highlightBlock:function deprecateHighlightBlock(i){return deprecated(\"10.7.0\",\"highlightBlock will be removed entirely in v12.0\"),deprecated(\"10.7.0\",\"Please use highlightElement now.\"),highlightElement(i)},configure:function configure(i){i.useBR&&(deprecated(\"10.3.0\",\"'useBR' will be removed entirely in v11.0\"),deprecated(\"10.3.0\",\"Please see https://github.com/highlightjs/highlight.js/issues/2559\")),W=Re(W,i)},initHighlighting,initHighlightingOnLoad:function initHighlightingOnLoad(){deprecated(\"10.6.0\",\"initHighlightingOnLoad() is deprecated.  Use highlightAll() instead.\"),ee=!0},registerLanguage:function registerLanguage(s,m){let v=null;try{v=m(i)}catch(i){if(error(\"Language definition for '{}' could not be registered.\".replace(\"{}\",s)),!_)throw i;error(i),v=$}v.name||(v.name=s),u[s]=v,v.rawDefinition=m.bind(null,i),v.aliases&&registerAliases(v.aliases,{languageName:s})},unregisterLanguage:function unregisterLanguage(i){delete u[i];for(const s of Object.keys(m))m[s]===i&&delete m[s]},listLanguages:function listLanguages(){return Object.keys(u)},getLanguage,registerAliases,requireLanguage:function requireLanguage(i){deprecated(\"10.4.0\",\"requireLanguage will be removed entirely in v11.\"),deprecated(\"10.4.0\",\"Please see https://github.com/highlightjs/highlight.js/pull/2844\");const s=getLanguage(i);if(s)return s;throw new Error(\"The '{}' language is required, but not loaded.\".replace(\"{}\",i))},autoDetection,inherit:Re,addPlugin:function addPlugin(i){!function upgradePluginAPI(i){i[\"before:highlightBlock\"]&&!i[\"before:highlightElement\"]&&(i[\"before:highlightElement\"]=s=>{i[\"before:highlightBlock\"](Object.assign({block:s.el},s))}),i[\"after:highlightBlock\"]&&!i[\"after:highlightElement\"]&&(i[\"after:highlightElement\"]=s=>{i[\"after:highlightBlock\"](Object.assign({block:s.el},s))})}(i),v.push(i)},vuePlugin:BuildVuePlugin(i).VuePlugin}),i.debugMode=function(){_=!1},i.safeMode=function(){_=!0},i.versionString=\"10.7.3\";for(const i in we)\"object\"==typeof we[i]&&s(we[i]);return Object.assign(i,we),i.addPlugin(X),i.addPlugin(Pe),i.addPlugin(Z),i}({});i.exports=ze},61519:i=>{function concat(...i){return i.map((i=>function source(i){return i?\"string\"==typeof i?i:i.source:null}(i))).join(\"\")}i.exports=function bash(i){const s={},u={begin:/\\$\\{/,end:/\\}/,contains:[\"self\",{begin:/:-/,contains:[s]}]};Object.assign(s,{className:\"variable\",variants:[{begin:concat(/\\$[\\w\\d#@][\\w\\d_]*/,\"(?![\\\\w\\\\d])(?![$])\")},u]});const m={className:\"subst\",begin:/\\$\\(/,end:/\\)/,contains:[i.BACKSLASH_ESCAPE]},v={begin:/<<-?\\s*(?=\\w+)/,starts:{contains:[i.END_SAME_AS_BEGIN({begin:/(\\w+)/,end:/(\\w+)/,className:\"string\"})]}},_={className:\"string\",begin:/\"/,end:/\"/,contains:[i.BACKSLASH_ESCAPE,s,m]};m.contains.push(_);const j={begin:/\\$\\(\\(/,end:/\\)\\)/,contains:[{begin:/\\d+#[0-9a-f]+/,className:\"number\"},i.NUMBER_MODE,s]},M=i.SHEBANG({binary:`(${[\"fish\",\"bash\",\"zsh\",\"sh\",\"csh\",\"ksh\",\"tcsh\",\"dash\",\"scsh\"].join(\"|\")})`,relevance:10}),$={className:\"function\",begin:/\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,returnBegin:!0,contains:[i.inherit(i.TITLE_MODE,{begin:/\\w[\\w\\d_]*/})],relevance:0};return{name:\"Bash\",aliases:[\"sh\",\"zsh\"],keywords:{$pattern:/\\b[a-z._-]+\\b/,keyword:\"if then else elif fi for while in do done case esac function\",literal:\"true false\",built_in:\"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp\"},contains:[M,i.SHEBANG(),$,j,i.HASH_COMMENT_MODE,v,_,{className:\"\",begin:/\\\\\"/},{className:\"string\",begin:/'/,end:/'/},s]}}},30786:i=>{function concat(...i){return i.map((i=>function source(i){return i?\"string\"==typeof i?i:i.source:null}(i))).join(\"\")}i.exports=function http(i){const s=\"HTTP/(2|1\\\\.[01])\",u={className:\"attribute\",begin:concat(\"^\",/[A-Za-z][A-Za-z0-9-]*/,\"(?=\\\\:\\\\s)\"),starts:{contains:[{className:\"punctuation\",begin:/: /,relevance:0,starts:{end:\"$\",relevance:0}}]}},m=[u,{begin:\"\\\\n\\\\n\",starts:{subLanguage:[],endsWithParent:!0}}];return{name:\"HTTP\",aliases:[\"https\"],illegal:/\\S/,contains:[{begin:\"^(?=\"+s+\" \\\\d{3})\",end:/$/,contains:[{className:\"meta\",begin:s},{className:\"number\",begin:\"\\\\b\\\\d{3}\\\\b\"}],starts:{end:/\\b\\B/,illegal:/\\S/,contains:m}},{begin:\"(?=^[A-Z]+ (.*?) \"+s+\"$)\",end:/$/,contains:[{className:\"string\",begin:\" \",end:\" \",excludeBegin:!0,excludeEnd:!0},{className:\"meta\",begin:s},{className:\"keyword\",begin:\"[A-Z]+\"}],starts:{end:/\\b\\B/,illegal:/\\S/,contains:m}},i.inherit(u,{relevance:0})]}}},96344:i=>{const s=\"[A-Za-z$_][0-9A-Za-z$_]*\",u=[\"as\",\"in\",\"of\",\"if\",\"for\",\"while\",\"finally\",\"var\",\"new\",\"function\",\"do\",\"return\",\"void\",\"else\",\"break\",\"catch\",\"instanceof\",\"with\",\"throw\",\"case\",\"default\",\"try\",\"switch\",\"continue\",\"typeof\",\"delete\",\"let\",\"yield\",\"const\",\"class\",\"debugger\",\"async\",\"await\",\"static\",\"import\",\"from\",\"export\",\"extends\"],m=[\"true\",\"false\",\"null\",\"undefined\",\"NaN\",\"Infinity\"],v=[].concat([\"setInterval\",\"setTimeout\",\"clearInterval\",\"clearTimeout\",\"require\",\"exports\",\"eval\",\"isFinite\",\"isNaN\",\"parseFloat\",\"parseInt\",\"decodeURI\",\"decodeURIComponent\",\"encodeURI\",\"encodeURIComponent\",\"escape\",\"unescape\"],[\"arguments\",\"this\",\"super\",\"console\",\"window\",\"document\",\"localStorage\",\"module\",\"global\"],[\"Intl\",\"DataView\",\"Number\",\"Math\",\"Date\",\"String\",\"RegExp\",\"Object\",\"Function\",\"Boolean\",\"Error\",\"Symbol\",\"Set\",\"Map\",\"WeakSet\",\"WeakMap\",\"Proxy\",\"Reflect\",\"JSON\",\"Promise\",\"Float64Array\",\"Int16Array\",\"Int32Array\",\"Int8Array\",\"Uint16Array\",\"Uint32Array\",\"Float32Array\",\"Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"ArrayBuffer\",\"BigInt64Array\",\"BigUint64Array\",\"BigInt\"],[\"EvalError\",\"InternalError\",\"RangeError\",\"ReferenceError\",\"SyntaxError\",\"TypeError\",\"URIError\"]);function lookahead(i){return concat(\"(?=\",i,\")\")}function concat(...i){return i.map((i=>function source(i){return i?\"string\"==typeof i?i:i.source:null}(i))).join(\"\")}i.exports=function javascript(i){const _=s,j=\"<>\",M=\"</>\",$={begin:/<[A-Za-z0-9\\\\._:-]+/,end:/\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,isTrulyOpeningTag:(i,s)=>{const u=i[0].length+i.index,m=i.input[u];\"<\"!==m?\">\"===m&&(((i,{after:s})=>{const u=\"</\"+i[0].slice(1);return-1!==i.input.indexOf(u,s)})(i,{after:u})||s.ignoreMatch()):s.ignoreMatch()}},W={$pattern:s,keyword:u,literal:m,built_in:v},X=\"[0-9](_?[0-9])*\",Y=`\\\\.(${X})`,Z=\"0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*\",ee={className:\"number\",variants:[{begin:`(\\\\b(${Z})((${Y})|\\\\.)?|(${Y}))[eE][+-]?(${X})\\\\b`},{begin:`\\\\b(${Z})\\\\b((${Y})\\\\b|\\\\.)?|(${Y})\\\\b`},{begin:\"\\\\b(0|[1-9](_?[0-9])*)n\\\\b\"},{begin:\"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\"},{begin:\"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\"},{begin:\"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\"},{begin:\"\\\\b0[0-7]+n?\\\\b\"}],relevance:0},ie={className:\"subst\",begin:\"\\\\$\\\\{\",end:\"\\\\}\",keywords:W,contains:[]},ae={begin:\"html`\",end:\"\",starts:{end:\"`\",returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,ie],subLanguage:\"xml\"}},ce={begin:\"css`\",end:\"\",starts:{end:\"`\",returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,ie],subLanguage:\"css\"}},le={className:\"string\",begin:\"`\",end:\"`\",contains:[i.BACKSLASH_ESCAPE,ie]},pe={className:\"comment\",variants:[i.COMMENT(/\\/\\*\\*(?!\\/)/,\"\\\\*/\",{relevance:0,contains:[{className:\"doctag\",begin:\"@[A-Za-z]+\",contains:[{className:\"type\",begin:\"\\\\{\",end:\"\\\\}\",relevance:0},{className:\"variable\",begin:_+\"(?=\\\\s*(-)|$)\",endsParent:!0,relevance:0},{begin:/(?=[^\\n])\\s/,relevance:0}]}]}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]},de=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,ae,ce,le,ee,i.REGEXP_MODE];ie.contains=de.concat({begin:/\\{/,end:/\\}/,keywords:W,contains:[\"self\"].concat(de)});const fe=[].concat(pe,ie.contains),ye=fe.concat([{begin:/\\(/,end:/\\)/,keywords:W,contains:[\"self\"].concat(fe)}]),be={className:\"params\",begin:/\\(/,end:/\\)/,excludeBegin:!0,excludeEnd:!0,keywords:W,contains:ye};return{name:\"Javascript\",aliases:[\"js\",\"jsx\",\"mjs\",\"cjs\"],keywords:W,exports:{PARAMS_CONTAINS:ye},illegal:/#(?![$_A-z])/,contains:[i.SHEBANG({label:\"shebang\",binary:\"node\",relevance:5}),{label:\"use_strict\",className:\"meta\",relevance:10,begin:/^\\s*['\"]use (strict|asm)['\"]/},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,ae,ce,le,pe,ee,{begin:concat(/[{,\\n]\\s*/,lookahead(concat(/(((\\/\\/.*$)|(\\/\\*(\\*[^/]|[^*])*\\*\\/))\\s*)*/,_+\"\\\\s*:\"))),relevance:0,contains:[{className:\"attr\",begin:_+lookahead(\"\\\\s*:\"),relevance:0}]},{begin:\"(\"+i.RE_STARTERS_RE+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",keywords:\"return throw case\",contains:[pe,i.REGEXP_MODE,{className:\"function\",begin:\"(\\\\([^()]*(\\\\([^()]*(\\\\([^()]*\\\\)[^()]*)*\\\\)[^()]*)*\\\\)|\"+i.UNDERSCORE_IDENT_RE+\")\\\\s*=>\",returnBegin:!0,end:\"\\\\s*=>\",contains:[{className:\"params\",variants:[{begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\\(\\s*\\)/,skip:!0},{begin:/\\(/,end:/\\)/,excludeBegin:!0,excludeEnd:!0,keywords:W,contains:ye}]}]},{begin:/,/,relevance:0},{className:\"\",begin:/\\s/,end:/\\s*/,skip:!0},{variants:[{begin:j,end:M},{begin:$.begin,\"on:begin\":$.isTrulyOpeningTag,end:$.end}],subLanguage:\"xml\",contains:[{begin:$.begin,end:$.end,skip:!0,contains:[\"self\"]}]}],relevance:0},{className:\"function\",beginKeywords:\"function\",end:/[{;]/,excludeEnd:!0,keywords:W,contains:[\"self\",i.inherit(i.TITLE_MODE,{begin:_}),be],illegal:/%/},{beginKeywords:\"while if switch catch for\"},{className:\"function\",begin:i.UNDERSCORE_IDENT_RE+\"\\\\([^()]*(\\\\([^()]*(\\\\([^()]*\\\\)[^()]*)*\\\\)[^()]*)*\\\\)\\\\s*\\\\{\",returnBegin:!0,contains:[be,i.inherit(i.TITLE_MODE,{begin:_})]},{variants:[{begin:\"\\\\.\"+_},{begin:\"\\\\$\"+_}],relevance:0},{className:\"class\",beginKeywords:\"class\",end:/[{;=]/,excludeEnd:!0,illegal:/[:\"[\\]]/,contains:[{beginKeywords:\"extends\"},i.UNDERSCORE_TITLE_MODE]},{begin:/\\b(?=constructor)/,end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:_}),\"self\",be]},{begin:\"(get|set)\\\\s+(?=\"+_+\"\\\\()\",end:/\\{/,keywords:\"get set\",contains:[i.inherit(i.TITLE_MODE,{begin:_}),{begin:/\\(\\)/},be]},{begin:/\\$[(.]/}]}}},82026:i=>{i.exports=function json(i){const s={literal:\"true false null\"},u=[i.C_LINE_COMMENT_MODE,i.C_BLOCK_COMMENT_MODE],m=[i.QUOTE_STRING_MODE,i.C_NUMBER_MODE],v={end:\",\",endsWithParent:!0,excludeEnd:!0,contains:m,keywords:s},_={begin:/\\{/,end:/\\}/,contains:[{className:\"attr\",begin:/\"/,end:/\"/,contains:[i.BACKSLASH_ESCAPE],illegal:\"\\\\n\"},i.inherit(v,{begin:/:/})].concat(u),illegal:\"\\\\S\"},j={begin:\"\\\\[\",end:\"\\\\]\",contains:[i.inherit(v)],illegal:\"\\\\S\"};return m.push(_,j),u.forEach((function(i){m.push(i)})),{name:\"JSON\",contains:m,keywords:s,illegal:\"\\\\S\"}}},66336:i=>{i.exports=function powershell(i){const s={$pattern:/-?[A-z\\.\\-]+\\b/,keyword:\"if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter\",built_in:\"ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write\"},u={begin:\"`[\\\\s\\\\S]\",relevance:0},m={className:\"variable\",variants:[{begin:/\\$\\B/},{className:\"keyword\",begin:/\\$this/},{begin:/\\$[\\w\\d][\\w\\d_:]*/}]},v={className:\"string\",variants:[{begin:/\"/,end:/\"/},{begin:/@\"/,end:/^\"@/}],contains:[u,m,{className:\"variable\",begin:/\\$[A-z]/,end:/[^A-z]/}]},_={className:\"string\",variants:[{begin:/'/,end:/'/},{begin:/@'/,end:/^'@/}]},j=i.inherit(i.COMMENT(null,null),{variants:[{begin:/#/,end:/$/},{begin:/<#/,end:/#>/}],contains:[{className:\"doctag\",variants:[{begin:/\\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{begin:/\\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\\s+\\S+/}]}]}),M={className:\"built_in\",variants:[{begin:\"(\".concat(\"Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where\",\")+(-)[\\\\w\\\\d]+\")}]},$={className:\"class\",beginKeywords:\"class enum\",end:/\\s*[{]/,excludeEnd:!0,relevance:0,contains:[i.TITLE_MODE]},W={className:\"function\",begin:/function\\s+/,end:/\\s*\\{|$/,excludeEnd:!0,returnBegin:!0,relevance:0,contains:[{begin:\"function\",relevance:0,className:\"keyword\"},{className:\"title\",begin:/\\w[\\w\\d]*((-)[\\w\\d]+)*/,relevance:0},{begin:/\\(/,end:/\\)/,className:\"params\",relevance:0,contains:[m]}]},X={begin:/using\\s/,end:/$/,returnBegin:!0,contains:[v,_,{className:\"keyword\",begin:/(using|assembly|command|module|namespace|type)/}]},Y={variants:[{className:\"operator\",begin:\"(\".concat(\"-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor\",\")\\\\b\")},{className:\"literal\",begin:/(-)[\\w\\d]+/,relevance:0}]},Z={className:\"function\",begin:/\\[.*\\]\\s*[\\w]+[ ]??\\(/,end:/$/,returnBegin:!0,relevance:0,contains:[{className:\"keyword\",begin:\"(\".concat(s.keyword.toString().replace(/\\s/g,\"|\"),\")\\\\b\"),endsParent:!0,relevance:0},i.inherit(i.TITLE_MODE,{endsParent:!0})]},ee=[Z,j,u,i.NUMBER_MODE,v,_,M,m,{className:\"literal\",begin:/\\$(null|true|false)\\b/},{className:\"selector-tag\",begin:/@\\B/,relevance:0}],ie={begin:/\\[/,end:/\\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[].concat(\"self\",ee,{begin:\"(\"+[\"string\",\"char\",\"byte\",\"int\",\"long\",\"bool\",\"decimal\",\"single\",\"double\",\"DateTime\",\"xml\",\"array\",\"hashtable\",\"void\"].join(\"|\")+\")\",className:\"built_in\",relevance:0},{className:\"type\",begin:/[\\.\\w\\d]+/,relevance:0})};return Z.contains.unshift(ie),{name:\"PowerShell\",aliases:[\"ps\",\"ps1\"],case_insensitive:!0,keywords:s,contains:ee.concat($,W,X,Y,ie)}}},42157:i=>{function source(i){return i?\"string\"==typeof i?i:i.source:null}function lookahead(i){return concat(\"(?=\",i,\")\")}function concat(...i){return i.map((i=>source(i))).join(\"\")}function either(...i){return\"(\"+i.map((i=>source(i))).join(\"|\")+\")\"}i.exports=function xml(i){const s=concat(/[A-Z_]/,function optional(i){return concat(\"(\",i,\")?\")}(/[A-Z0-9_.-]*:/),/[A-Z0-9_.-]*/),u={className:\"symbol\",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},m={begin:/\\s/,contains:[{className:\"meta-keyword\",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\\n/}]},v=i.inherit(m,{begin:/\\(/,end:/\\)/}),_=i.inherit(i.APOS_STRING_MODE,{className:\"meta-string\"}),j=i.inherit(i.QUOTE_STRING_MODE,{className:\"meta-string\"}),M={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:\"attr\",begin:/[A-Za-z0-9._:-]+/,relevance:0},{begin:/=\\s*/,relevance:0,contains:[{className:\"string\",endsParent:!0,variants:[{begin:/\"/,end:/\"/,contains:[u]},{begin:/'/,end:/'/,contains:[u]},{begin:/[^\\s\"'=<>`]+/}]}]}]};return{name:\"HTML, XML\",aliases:[\"html\",\"xhtml\",\"rss\",\"atom\",\"xjb\",\"xsd\",\"xsl\",\"plist\",\"wsf\",\"svg\"],case_insensitive:!0,contains:[{className:\"meta\",begin:/<![a-z]/,end:/>/,relevance:10,contains:[m,j,_,v,{begin:/\\[/,end:/\\]/,contains:[{className:\"meta\",begin:/<![a-z]/,end:/>/,contains:[m,v,j,_]}]}]},i.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\\[CDATA\\[/,end:/\\]\\]>/,relevance:10},u,{className:\"meta\",begin:/<\\?xml/,end:/\\?>/,relevance:10},{className:\"tag\",begin:/<style(?=\\s|>)/,end:/>/,keywords:{name:\"style\"},contains:[M],starts:{end:/<\\/style>/,returnEnd:!0,subLanguage:[\"css\",\"xml\"]}},{className:\"tag\",begin:/<script(?=\\s|>)/,end:/>/,keywords:{name:\"script\"},contains:[M],starts:{end:/<\\/script>/,returnEnd:!0,subLanguage:[\"javascript\",\"handlebars\",\"xml\"]}},{className:\"tag\",begin:/<>|<\\/>/},{className:\"tag\",begin:concat(/</,lookahead(concat(s,either(/\\/>/,/>/,/\\s/)))),end:/\\/?>/,contains:[{className:\"name\",begin:s,relevance:0,starts:M}]},{className:\"tag\",begin:concat(/<\\//,lookahead(concat(s,/>/))),contains:[{className:\"name\",begin:s,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}},54587:i=>{i.exports=function yaml(i){var s=\"true false yes no null\",u=\"[\\\\w#;/?:@&=+$,.~*'()[\\\\]]+\",m={className:\"string\",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/\"/,end:/\"/},{begin:/\\S+/}],contains:[i.BACKSLASH_ESCAPE,{className:\"template-variable\",variants:[{begin:/\\{\\{/,end:/\\}\\}/},{begin:/%\\{/,end:/\\}/}]}]},v=i.inherit(m,{variants:[{begin:/'/,end:/'/},{begin:/\"/,end:/\"/},{begin:/[^\\s,{}[\\]]+/}]}),_={className:\"number\",begin:\"\\\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\\\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\\\.[0-9]*)?([ \\\\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\\\b\"},j={end:\",\",endsWithParent:!0,excludeEnd:!0,keywords:s,relevance:0},M={begin:/\\{/,end:/\\}/,contains:[j],illegal:\"\\\\n\",relevance:0},$={begin:\"\\\\[\",end:\"\\\\]\",contains:[j],illegal:\"\\\\n\",relevance:0},W=[{className:\"attr\",variants:[{begin:\"\\\\w[\\\\w :\\\\/.-]*:(?=[ \\t]|$)\"},{begin:'\"\\\\w[\\\\w :\\\\/.-]*\":(?=[ \\t]|$)'},{begin:\"'\\\\w[\\\\w :\\\\/.-]*':(?=[ \\t]|$)\"}]},{className:\"meta\",begin:\"^---\\\\s*$\",relevance:10},{className:\"string\",begin:\"[\\\\|>]([1-9]?[+-])?[ ]*\\\\n( +)[^ ][^\\\\n]*\\\\n(\\\\2[^\\\\n]+\\\\n?)*\"},{begin:\"<%[%=-]?\",end:\"[%-]?%>\",subLanguage:\"ruby\",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:\"type\",begin:\"!\\\\w+!\"+u},{className:\"type\",begin:\"!<\"+u+\">\"},{className:\"type\",begin:\"!\"+u},{className:\"type\",begin:\"!!\"+u},{className:\"meta\",begin:\"&\"+i.UNDERSCORE_IDENT_RE+\"$\"},{className:\"meta\",begin:\"\\\\*\"+i.UNDERSCORE_IDENT_RE+\"$\"},{className:\"bullet\",begin:\"-(?=[ ]|$)\",relevance:0},i.HASH_COMMENT_MODE,{beginKeywords:s,keywords:{literal:s}},_,{className:\"number\",begin:i.C_NUMBER_RE+\"\\\\b\",relevance:0},M,$,m],X=[...W];return X.pop(),X.push(v),j.contains=X,{name:\"YAML\",case_insensitive:!0,aliases:[\"yml\"],contains:W}}},8679:(i,s,u)=>{\"use strict\";var m=u(59864),v={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},_={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},j={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},M={};function getStatics(i){return m.isMemo(i)?j:M[i.$$typeof]||v}M[m.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},M[m.Memo]=j;var $=Object.defineProperty,W=Object.getOwnPropertyNames,X=Object.getOwnPropertySymbols,Y=Object.getOwnPropertyDescriptor,Z=Object.getPrototypeOf,ee=Object.prototype;i.exports=function hoistNonReactStatics(i,s,u){if(\"string\"!=typeof s){if(ee){var m=Z(s);m&&m!==ee&&hoistNonReactStatics(i,m,u)}var v=W(s);X&&(v=v.concat(X(s)));for(var j=getStatics(i),M=getStatics(s),ie=0;ie<v.length;++ie){var ae=v[ie];if(!(_[ae]||u&&u[ae]||M&&M[ae]||j&&j[ae])){var ce=Y(s,ae);try{$(i,ae,ce)}catch(i){}}}}return i}},80645:(i,s)=>{s.read=function(i,s,u,m,v){var _,j,M=8*v-m-1,$=(1<<M)-1,W=$>>1,X=-7,Y=u?v-1:0,Z=u?-1:1,ee=i[s+Y];for(Y+=Z,_=ee&(1<<-X)-1,ee>>=-X,X+=M;X>0;_=256*_+i[s+Y],Y+=Z,X-=8);for(j=_&(1<<-X)-1,_>>=-X,X+=m;X>0;j=256*j+i[s+Y],Y+=Z,X-=8);if(0===_)_=1-W;else{if(_===$)return j?NaN:1/0*(ee?-1:1);j+=Math.pow(2,m),_-=W}return(ee?-1:1)*j*Math.pow(2,_-m)},s.write=function(i,s,u,m,v,_){var j,M,$,W=8*_-v-1,X=(1<<W)-1,Y=X>>1,Z=23===v?Math.pow(2,-24)-Math.pow(2,-77):0,ee=m?0:_-1,ie=m?1:-1,ae=s<0||0===s&&1/s<0?1:0;for(s=Math.abs(s),isNaN(s)||s===1/0?(M=isNaN(s)?1:0,j=X):(j=Math.floor(Math.log(s)/Math.LN2),s*($=Math.pow(2,-j))<1&&(j--,$*=2),(s+=j+Y>=1?Z/$:Z*Math.pow(2,1-Y))*$>=2&&(j++,$/=2),j+Y>=X?(M=0,j=X):j+Y>=1?(M=(s*$-1)*Math.pow(2,v),j+=Y):(M=s*Math.pow(2,Y-1)*Math.pow(2,v),j=0));v>=8;i[u+ee]=255&M,ee+=ie,M/=256,v-=8);for(j=j<<v|M,W+=v;W>0;i[u+ee]=255&j,ee+=ie,j/=256,W-=8);i[u+ee-ie]|=128*ae}},43393:function(i){i.exports=function(){\"use strict\";var i=Array.prototype.slice;function createClass(i,s){s&&(i.prototype=Object.create(s.prototype)),i.prototype.constructor=i}function Iterable(i){return isIterable(i)?i:Seq(i)}function KeyedIterable(i){return isKeyed(i)?i:KeyedSeq(i)}function IndexedIterable(i){return isIndexed(i)?i:IndexedSeq(i)}function SetIterable(i){return isIterable(i)&&!isAssociative(i)?i:SetSeq(i)}function isIterable(i){return!(!i||!i[s])}function isKeyed(i){return!(!i||!i[u])}function isIndexed(i){return!(!i||!i[m])}function isAssociative(i){return isKeyed(i)||isIndexed(i)}function isOrdered(i){return!(!i||!i[v])}createClass(KeyedIterable,Iterable),createClass(IndexedIterable,Iterable),createClass(SetIterable,Iterable),Iterable.isIterable=isIterable,Iterable.isKeyed=isKeyed,Iterable.isIndexed=isIndexed,Iterable.isAssociative=isAssociative,Iterable.isOrdered=isOrdered,Iterable.Keyed=KeyedIterable,Iterable.Indexed=IndexedIterable,Iterable.Set=SetIterable;var s=\"@@__IMMUTABLE_ITERABLE__@@\",u=\"@@__IMMUTABLE_KEYED__@@\",m=\"@@__IMMUTABLE_INDEXED__@@\",v=\"@@__IMMUTABLE_ORDERED__@@\",_=\"delete\",j=5,M=1<<j,$=M-1,W={},X={value:!1},Y={value:!1};function MakeRef(i){return i.value=!1,i}function SetRef(i){i&&(i.value=!0)}function OwnerID(){}function arrCopy(i,s){s=s||0;for(var u=Math.max(0,i.length-s),m=new Array(u),v=0;v<u;v++)m[v]=i[v+s];return m}function ensureSize(i){return void 0===i.size&&(i.size=i.__iterate(returnTrue)),i.size}function wrapIndex(i,s){if(\"number\"!=typeof s){var u=s>>>0;if(\"\"+u!==s||4294967295===u)return NaN;s=u}return s<0?ensureSize(i)+s:s}function returnTrue(){return!0}function wholeSlice(i,s,u){return(0===i||void 0!==u&&i<=-u)&&(void 0===s||void 0!==u&&s>=u)}function resolveBegin(i,s){return resolveIndex(i,s,0)}function resolveEnd(i,s){return resolveIndex(i,s,s)}function resolveIndex(i,s,u){return void 0===i?u:i<0?Math.max(0,s+i):void 0===s?i:Math.min(s,i)}var Z=0,ee=1,ie=2,ae=\"function\"==typeof Symbol&&Symbol.iterator,ce=\"@@iterator\",le=ae||ce;function Iterator(i){this.next=i}function iteratorValue(i,s,u,m){var v=0===i?s:1===i?u:[s,u];return m?m.value=v:m={value:v,done:!1},m}function iteratorDone(){return{value:void 0,done:!0}}function hasIterator(i){return!!getIteratorFn(i)}function isIterator(i){return i&&\"function\"==typeof i.next}function getIterator(i){var s=getIteratorFn(i);return s&&s.call(i)}function getIteratorFn(i){var s=i&&(ae&&i[ae]||i[ce]);if(\"function\"==typeof s)return s}function isArrayLike(i){return i&&\"number\"==typeof i.length}function Seq(i){return null==i?emptySequence():isIterable(i)?i.toSeq():seqFromValue(i)}function KeyedSeq(i){return null==i?emptySequence().toKeyedSeq():isIterable(i)?isKeyed(i)?i.toSeq():i.fromEntrySeq():keyedSeqFromValue(i)}function IndexedSeq(i){return null==i?emptySequence():isIterable(i)?isKeyed(i)?i.entrySeq():i.toIndexedSeq():indexedSeqFromValue(i)}function SetSeq(i){return(null==i?emptySequence():isIterable(i)?isKeyed(i)?i.entrySeq():i:indexedSeqFromValue(i)).toSetSeq()}Iterator.prototype.toString=function(){return\"[Iterator]\"},Iterator.KEYS=Z,Iterator.VALUES=ee,Iterator.ENTRIES=ie,Iterator.prototype.inspect=Iterator.prototype.toSource=function(){return this.toString()},Iterator.prototype[le]=function(){return this},createClass(Seq,Iterable),Seq.of=function(){return Seq(arguments)},Seq.prototype.toSeq=function(){return this},Seq.prototype.toString=function(){return this.__toString(\"Seq {\",\"}\")},Seq.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},Seq.prototype.__iterate=function(i,s){return seqIterate(this,i,s,!0)},Seq.prototype.__iterator=function(i,s){return seqIterator(this,i,s,!0)},createClass(KeyedSeq,Seq),KeyedSeq.prototype.toKeyedSeq=function(){return this},createClass(IndexedSeq,Seq),IndexedSeq.of=function(){return IndexedSeq(arguments)},IndexedSeq.prototype.toIndexedSeq=function(){return this},IndexedSeq.prototype.toString=function(){return this.__toString(\"Seq [\",\"]\")},IndexedSeq.prototype.__iterate=function(i,s){return seqIterate(this,i,s,!1)},IndexedSeq.prototype.__iterator=function(i,s){return seqIterator(this,i,s,!1)},createClass(SetSeq,Seq),SetSeq.of=function(){return SetSeq(arguments)},SetSeq.prototype.toSetSeq=function(){return this},Seq.isSeq=isSeq,Seq.Keyed=KeyedSeq,Seq.Set=SetSeq,Seq.Indexed=IndexedSeq;var pe,de,fe,ye=\"@@__IMMUTABLE_SEQ__@@\";function ArraySeq(i){this._array=i,this.size=i.length}function ObjectSeq(i){var s=Object.keys(i);this._object=i,this._keys=s,this.size=s.length}function IterableSeq(i){this._iterable=i,this.size=i.length||i.size}function IteratorSeq(i){this._iterator=i,this._iteratorCache=[]}function isSeq(i){return!(!i||!i[ye])}function emptySequence(){return pe||(pe=new ArraySeq([]))}function keyedSeqFromValue(i){var s=Array.isArray(i)?new ArraySeq(i).fromEntrySeq():isIterator(i)?new IteratorSeq(i).fromEntrySeq():hasIterator(i)?new IterableSeq(i).fromEntrySeq():\"object\"==typeof i?new ObjectSeq(i):void 0;if(!s)throw new TypeError(\"Expected Array or iterable object of [k, v] entries, or keyed object: \"+i);return s}function indexedSeqFromValue(i){var s=maybeIndexedSeqFromValue(i);if(!s)throw new TypeError(\"Expected Array or iterable object of values: \"+i);return s}function seqFromValue(i){var s=maybeIndexedSeqFromValue(i)||\"object\"==typeof i&&new ObjectSeq(i);if(!s)throw new TypeError(\"Expected Array or iterable object of values, or keyed object: \"+i);return s}function maybeIndexedSeqFromValue(i){return isArrayLike(i)?new ArraySeq(i):isIterator(i)?new IteratorSeq(i):hasIterator(i)?new IterableSeq(i):void 0}function seqIterate(i,s,u,m){var v=i._cache;if(v){for(var _=v.length-1,j=0;j<=_;j++){var M=v[u?_-j:j];if(!1===s(M[1],m?M[0]:j,i))return j+1}return j}return i.__iterateUncached(s,u)}function seqIterator(i,s,u,m){var v=i._cache;if(v){var _=v.length-1,j=0;return new Iterator((function(){var i=v[u?_-j:j];return j++>_?iteratorDone():iteratorValue(s,m?i[0]:j-1,i[1])}))}return i.__iteratorUncached(s,u)}function fromJS(i,s){return s?fromJSWith(s,i,\"\",{\"\":i}):fromJSDefault(i)}function fromJSWith(i,s,u,m){return Array.isArray(s)?i.call(m,u,IndexedSeq(s).map((function(u,m){return fromJSWith(i,u,m,s)}))):isPlainObj(s)?i.call(m,u,KeyedSeq(s).map((function(u,m){return fromJSWith(i,u,m,s)}))):s}function fromJSDefault(i){return Array.isArray(i)?IndexedSeq(i).map(fromJSDefault).toList():isPlainObj(i)?KeyedSeq(i).map(fromJSDefault).toMap():i}function isPlainObj(i){return i&&(i.constructor===Object||void 0===i.constructor)}function is(i,s){if(i===s||i!=i&&s!=s)return!0;if(!i||!s)return!1;if(\"function\"==typeof i.valueOf&&\"function\"==typeof s.valueOf){if((i=i.valueOf())===(s=s.valueOf())||i!=i&&s!=s)return!0;if(!i||!s)return!1}return!(\"function\"!=typeof i.equals||\"function\"!=typeof s.equals||!i.equals(s))}function deepEqual(i,s){if(i===s)return!0;if(!isIterable(s)||void 0!==i.size&&void 0!==s.size&&i.size!==s.size||void 0!==i.__hash&&void 0!==s.__hash&&i.__hash!==s.__hash||isKeyed(i)!==isKeyed(s)||isIndexed(i)!==isIndexed(s)||isOrdered(i)!==isOrdered(s))return!1;if(0===i.size&&0===s.size)return!0;var u=!isAssociative(i);if(isOrdered(i)){var m=i.entries();return s.every((function(i,s){var v=m.next().value;return v&&is(v[1],i)&&(u||is(v[0],s))}))&&m.next().done}var v=!1;if(void 0===i.size)if(void 0===s.size)\"function\"==typeof i.cacheResult&&i.cacheResult();else{v=!0;var _=i;i=s,s=_}var j=!0,M=s.__iterate((function(s,m){if(u?!i.has(s):v?!is(s,i.get(m,W)):!is(i.get(m,W),s))return j=!1,!1}));return j&&i.size===M}function Repeat(i,s){if(!(this instanceof Repeat))return new Repeat(i,s);if(this._value=i,this.size=void 0===s?1/0:Math.max(0,s),0===this.size){if(de)return de;de=this}}function invariant(i,s){if(!i)throw new Error(s)}function Range(i,s,u){if(!(this instanceof Range))return new Range(i,s,u);if(invariant(0!==u,\"Cannot step a Range by 0\"),i=i||0,void 0===s&&(s=1/0),u=void 0===u?1:Math.abs(u),s<i&&(u=-u),this._start=i,this._end=s,this._step=u,this.size=Math.max(0,Math.ceil((s-i)/u-1)+1),0===this.size){if(fe)return fe;fe=this}}function Collection(){throw TypeError(\"Abstract\")}function KeyedCollection(){}function IndexedCollection(){}function SetCollection(){}Seq.prototype[ye]=!0,createClass(ArraySeq,IndexedSeq),ArraySeq.prototype.get=function(i,s){return this.has(i)?this._array[wrapIndex(this,i)]:s},ArraySeq.prototype.__iterate=function(i,s){for(var u=this._array,m=u.length-1,v=0;v<=m;v++)if(!1===i(u[s?m-v:v],v,this))return v+1;return v},ArraySeq.prototype.__iterator=function(i,s){var u=this._array,m=u.length-1,v=0;return new Iterator((function(){return v>m?iteratorDone():iteratorValue(i,v,u[s?m-v++:v++])}))},createClass(ObjectSeq,KeyedSeq),ObjectSeq.prototype.get=function(i,s){return void 0===s||this.has(i)?this._object[i]:s},ObjectSeq.prototype.has=function(i){return this._object.hasOwnProperty(i)},ObjectSeq.prototype.__iterate=function(i,s){for(var u=this._object,m=this._keys,v=m.length-1,_=0;_<=v;_++){var j=m[s?v-_:_];if(!1===i(u[j],j,this))return _+1}return _},ObjectSeq.prototype.__iterator=function(i,s){var u=this._object,m=this._keys,v=m.length-1,_=0;return new Iterator((function(){var j=m[s?v-_:_];return _++>v?iteratorDone():iteratorValue(i,j,u[j])}))},ObjectSeq.prototype[v]=!0,createClass(IterableSeq,IndexedSeq),IterableSeq.prototype.__iterateUncached=function(i,s){if(s)return this.cacheResult().__iterate(i,s);var u=getIterator(this._iterable),m=0;if(isIterator(u))for(var v;!(v=u.next()).done&&!1!==i(v.value,m++,this););return m},IterableSeq.prototype.__iteratorUncached=function(i,s){if(s)return this.cacheResult().__iterator(i,s);var u=getIterator(this._iterable);if(!isIterator(u))return new Iterator(iteratorDone);var m=0;return new Iterator((function(){var s=u.next();return s.done?s:iteratorValue(i,m++,s.value)}))},createClass(IteratorSeq,IndexedSeq),IteratorSeq.prototype.__iterateUncached=function(i,s){if(s)return this.cacheResult().__iterate(i,s);for(var u,m=this._iterator,v=this._iteratorCache,_=0;_<v.length;)if(!1===i(v[_],_++,this))return _;for(;!(u=m.next()).done;){var j=u.value;if(v[_]=j,!1===i(j,_++,this))break}return _},IteratorSeq.prototype.__iteratorUncached=function(i,s){if(s)return this.cacheResult().__iterator(i,s);var u=this._iterator,m=this._iteratorCache,v=0;return new Iterator((function(){if(v>=m.length){var s=u.next();if(s.done)return s;m[v]=s.value}return iteratorValue(i,v,m[v++])}))},createClass(Repeat,IndexedSeq),Repeat.prototype.toString=function(){return 0===this.size?\"Repeat []\":\"Repeat [ \"+this._value+\" \"+this.size+\" times ]\"},Repeat.prototype.get=function(i,s){return this.has(i)?this._value:s},Repeat.prototype.includes=function(i){return is(this._value,i)},Repeat.prototype.slice=function(i,s){var u=this.size;return wholeSlice(i,s,u)?this:new Repeat(this._value,resolveEnd(s,u)-resolveBegin(i,u))},Repeat.prototype.reverse=function(){return this},Repeat.prototype.indexOf=function(i){return is(this._value,i)?0:-1},Repeat.prototype.lastIndexOf=function(i){return is(this._value,i)?this.size:-1},Repeat.prototype.__iterate=function(i,s){for(var u=0;u<this.size;u++)if(!1===i(this._value,u,this))return u+1;return u},Repeat.prototype.__iterator=function(i,s){var u=this,m=0;return new Iterator((function(){return m<u.size?iteratorValue(i,m++,u._value):iteratorDone()}))},Repeat.prototype.equals=function(i){return i instanceof Repeat?is(this._value,i._value):deepEqual(i)},createClass(Range,IndexedSeq),Range.prototype.toString=function(){return 0===this.size?\"Range []\":\"Range [ \"+this._start+\"...\"+this._end+(1!==this._step?\" by \"+this._step:\"\")+\" ]\"},Range.prototype.get=function(i,s){return this.has(i)?this._start+wrapIndex(this,i)*this._step:s},Range.prototype.includes=function(i){var s=(i-this._start)/this._step;return s>=0&&s<this.size&&s===Math.floor(s)},Range.prototype.slice=function(i,s){return wholeSlice(i,s,this.size)?this:(i=resolveBegin(i,this.size),(s=resolveEnd(s,this.size))<=i?new Range(0,0):new Range(this.get(i,this._end),this.get(s,this._end),this._step))},Range.prototype.indexOf=function(i){var s=i-this._start;if(s%this._step==0){var u=s/this._step;if(u>=0&&u<this.size)return u}return-1},Range.prototype.lastIndexOf=function(i){return this.indexOf(i)},Range.prototype.__iterate=function(i,s){for(var u=this.size-1,m=this._step,v=s?this._start+u*m:this._start,_=0;_<=u;_++){if(!1===i(v,_,this))return _+1;v+=s?-m:m}return _},Range.prototype.__iterator=function(i,s){var u=this.size-1,m=this._step,v=s?this._start+u*m:this._start,_=0;return new Iterator((function(){var j=v;return v+=s?-m:m,_>u?iteratorDone():iteratorValue(i,_++,j)}))},Range.prototype.equals=function(i){return i instanceof Range?this._start===i._start&&this._end===i._end&&this._step===i._step:deepEqual(this,i)},createClass(Collection,Iterable),createClass(KeyedCollection,Collection),createClass(IndexedCollection,Collection),createClass(SetCollection,Collection),Collection.Keyed=KeyedCollection,Collection.Indexed=IndexedCollection,Collection.Set=SetCollection;var be=\"function\"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function imul(i,s){var u=65535&(i|=0),m=65535&(s|=0);return u*m+((i>>>16)*m+u*(s>>>16)<<16>>>0)|0};function smi(i){return i>>>1&1073741824|3221225471&i}function hash(i){if(!1===i||null==i)return 0;if(\"function\"==typeof i.valueOf&&(!1===(i=i.valueOf())||null==i))return 0;if(!0===i)return 1;var s=typeof i;if(\"number\"===s){if(i!=i||i===1/0)return 0;var u=0|i;for(u!==i&&(u^=4294967295*i);i>4294967295;)u^=i/=4294967295;return smi(u)}if(\"string\"===s)return i.length>Te?cachedHashString(i):hashString(i);if(\"function\"==typeof i.hashCode)return i.hashCode();if(\"object\"===s)return hashJSObj(i);if(\"function\"==typeof i.toString)return hashString(i.toString());throw new Error(\"Value type \"+s+\" cannot be hashed.\")}function cachedHashString(i){var s=ze[i];return void 0===s&&(s=hashString(i),qe===Re&&(qe=0,ze={}),qe++,ze[i]=s),s}function hashString(i){for(var s=0,u=0;u<i.length;u++)s=31*s+i.charCodeAt(u)|0;return smi(s)}function hashJSObj(i){var s;if(xe&&void 0!==(s=Se.get(i)))return s;if(void 0!==(s=i[Ie]))return s;if(!we){if(void 0!==(s=i.propertyIsEnumerable&&i.propertyIsEnumerable[Ie]))return s;if(void 0!==(s=getIENodeHash(i)))return s}if(s=++Pe,1073741824&Pe&&(Pe=0),xe)Se.set(i,s);else{if(void 0!==_e&&!1===_e(i))throw new Error(\"Non-extensible objects are not allowed as keys.\");if(we)Object.defineProperty(i,Ie,{enumerable:!1,configurable:!1,writable:!1,value:s});else if(void 0!==i.propertyIsEnumerable&&i.propertyIsEnumerable===i.constructor.prototype.propertyIsEnumerable)i.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},i.propertyIsEnumerable[Ie]=s;else{if(void 0===i.nodeType)throw new Error(\"Unable to set a non-enumerable property on object.\");i[Ie]=s}}return s}var _e=Object.isExtensible,we=function(){try{return Object.defineProperty({},\"@\",{}),!0}catch(i){return!1}}();function getIENodeHash(i){if(i&&i.nodeType>0)switch(i.nodeType){case 1:return i.uniqueID;case 9:return i.documentElement&&i.documentElement.uniqueID}}var Se,xe=\"function\"==typeof WeakMap;xe&&(Se=new WeakMap);var Pe=0,Ie=\"__immutablehash__\";\"function\"==typeof Symbol&&(Ie=Symbol(Ie));var Te=16,Re=255,qe=0,ze={};function assertNotInfinite(i){invariant(i!==1/0,\"Cannot perform this action with an infinite size.\")}function Map(i){return null==i?emptyMap():isMap(i)&&!isOrdered(i)?i:emptyMap().withMutations((function(s){var u=KeyedIterable(i);assertNotInfinite(u.size),u.forEach((function(i,u){return s.set(u,i)}))}))}function isMap(i){return!(!i||!i[We])}createClass(Map,KeyedCollection),Map.of=function(){var s=i.call(arguments,0);return emptyMap().withMutations((function(i){for(var u=0;u<s.length;u+=2){if(u+1>=s.length)throw new Error(\"Missing value for key: \"+s[u]);i.set(s[u],s[u+1])}}))},Map.prototype.toString=function(){return this.__toString(\"Map {\",\"}\")},Map.prototype.get=function(i,s){return this._root?this._root.get(0,void 0,i,s):s},Map.prototype.set=function(i,s){return updateMap(this,i,s)},Map.prototype.setIn=function(i,s){return this.updateIn(i,W,(function(){return s}))},Map.prototype.remove=function(i){return updateMap(this,i,W)},Map.prototype.deleteIn=function(i){return this.updateIn(i,(function(){return W}))},Map.prototype.update=function(i,s,u){return 1===arguments.length?i(this):this.updateIn([i],s,u)},Map.prototype.updateIn=function(i,s,u){u||(u=s,s=void 0);var m=updateInDeepMap(this,forceIterator(i),s,u);return m===W?void 0:m},Map.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):emptyMap()},Map.prototype.merge=function(){return mergeIntoMapWith(this,void 0,arguments)},Map.prototype.mergeWith=function(s){return mergeIntoMapWith(this,s,i.call(arguments,1))},Map.prototype.mergeIn=function(s){var u=i.call(arguments,1);return this.updateIn(s,emptyMap(),(function(i){return\"function\"==typeof i.merge?i.merge.apply(i,u):u[u.length-1]}))},Map.prototype.mergeDeep=function(){return mergeIntoMapWith(this,deepMerger,arguments)},Map.prototype.mergeDeepWith=function(s){var u=i.call(arguments,1);return mergeIntoMapWith(this,deepMergerWith(s),u)},Map.prototype.mergeDeepIn=function(s){var u=i.call(arguments,1);return this.updateIn(s,emptyMap(),(function(i){return\"function\"==typeof i.mergeDeep?i.mergeDeep.apply(i,u):u[u.length-1]}))},Map.prototype.sort=function(i){return OrderedMap(sortFactory(this,i))},Map.prototype.sortBy=function(i,s){return OrderedMap(sortFactory(this,s,i))},Map.prototype.withMutations=function(i){var s=this.asMutable();return i(s),s.wasAltered()?s.__ensureOwner(this.__ownerID):this},Map.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new OwnerID)},Map.prototype.asImmutable=function(){return this.__ensureOwner()},Map.prototype.wasAltered=function(){return this.__altered},Map.prototype.__iterator=function(i,s){return new MapIterator(this,i,s)},Map.prototype.__iterate=function(i,s){var u=this,m=0;return this._root&&this._root.iterate((function(s){return m++,i(s[1],s[0],u)}),s),m},Map.prototype.__ensureOwner=function(i){return i===this.__ownerID?this:i?makeMap(this.size,this._root,i,this.__hash):(this.__ownerID=i,this.__altered=!1,this)},Map.isMap=isMap;var Ve,We=\"@@__IMMUTABLE_MAP__@@\",He=Map.prototype;function ArrayMapNode(i,s){this.ownerID=i,this.entries=s}function BitmapIndexedNode(i,s,u){this.ownerID=i,this.bitmap=s,this.nodes=u}function HashArrayMapNode(i,s,u){this.ownerID=i,this.count=s,this.nodes=u}function HashCollisionNode(i,s,u){this.ownerID=i,this.keyHash=s,this.entries=u}function ValueNode(i,s,u){this.ownerID=i,this.keyHash=s,this.entry=u}function MapIterator(i,s,u){this._type=s,this._reverse=u,this._stack=i._root&&mapIteratorFrame(i._root)}function mapIteratorValue(i,s){return iteratorValue(i,s[0],s[1])}function mapIteratorFrame(i,s){return{node:i,index:0,__prev:s}}function makeMap(i,s,u,m){var v=Object.create(He);return v.size=i,v._root=s,v.__ownerID=u,v.__hash=m,v.__altered=!1,v}function emptyMap(){return Ve||(Ve=makeMap(0))}function updateMap(i,s,u){var m,v;if(i._root){var _=MakeRef(X),j=MakeRef(Y);if(m=updateNode(i._root,i.__ownerID,0,void 0,s,u,_,j),!j.value)return i;v=i.size+(_.value?u===W?-1:1:0)}else{if(u===W)return i;v=1,m=new ArrayMapNode(i.__ownerID,[[s,u]])}return i.__ownerID?(i.size=v,i._root=m,i.__hash=void 0,i.__altered=!0,i):m?makeMap(v,m):emptyMap()}function updateNode(i,s,u,m,v,_,j,M){return i?i.update(s,u,m,v,_,j,M):_===W?i:(SetRef(M),SetRef(j),new ValueNode(s,m,[v,_]))}function isLeafNode(i){return i.constructor===ValueNode||i.constructor===HashCollisionNode}function mergeIntoNode(i,s,u,m,v){if(i.keyHash===m)return new HashCollisionNode(s,m,[i.entry,v]);var _,M=(0===u?i.keyHash:i.keyHash>>>u)&$,W=(0===u?m:m>>>u)&$;return new BitmapIndexedNode(s,1<<M|1<<W,M===W?[mergeIntoNode(i,s,u+j,m,v)]:(_=new ValueNode(s,m,v),M<W?[i,_]:[_,i]))}function createNodes(i,s,u,m){i||(i=new OwnerID);for(var v=new ValueNode(i,hash(u),[u,m]),_=0;_<s.length;_++){var j=s[_];v=v.update(i,0,void 0,j[0],j[1])}return v}function packNodes(i,s,u,m){for(var v=0,_=0,j=new Array(u),M=0,$=1,W=s.length;M<W;M++,$<<=1){var X=s[M];void 0!==X&&M!==m&&(v|=$,j[_++]=X)}return new BitmapIndexedNode(i,v,j)}function expandNodes(i,s,u,m,v){for(var _=0,j=new Array(M),$=0;0!==u;$++,u>>>=1)j[$]=1&u?s[_++]:void 0;return j[m]=v,new HashArrayMapNode(i,_+1,j)}function mergeIntoMapWith(i,s,u){for(var m=[],v=0;v<u.length;v++){var _=u[v],j=KeyedIterable(_);isIterable(_)||(j=j.map((function(i){return fromJS(i)}))),m.push(j)}return mergeIntoCollectionWith(i,s,m)}function deepMerger(i,s,u){return i&&i.mergeDeep&&isIterable(s)?i.mergeDeep(s):is(i,s)?i:s}function deepMergerWith(i){return function(s,u,m){if(s&&s.mergeDeepWith&&isIterable(u))return s.mergeDeepWith(i,u);var v=i(s,u,m);return is(s,v)?s:v}}function mergeIntoCollectionWith(i,s,u){return 0===(u=u.filter((function(i){return 0!==i.size}))).length?i:0!==i.size||i.__ownerID||1!==u.length?i.withMutations((function(i){for(var m=s?function(u,m){i.update(m,W,(function(i){return i===W?u:s(i,u,m)}))}:function(s,u){i.set(u,s)},v=0;v<u.length;v++)u[v].forEach(m)})):i.constructor(u[0])}function updateInDeepMap(i,s,u,m){var v=i===W,_=s.next();if(_.done){var j=v?u:i,M=m(j);return M===j?i:M}invariant(v||i&&i.set,\"invalid keyPath\");var $=_.value,X=v?W:i.get($,W),Y=updateInDeepMap(X,s,u,m);return Y===X?i:Y===W?i.remove($):(v?emptyMap():i).set($,Y)}function popCount(i){return i=(i=(858993459&(i-=i>>1&1431655765))+(i>>2&858993459))+(i>>4)&252645135,i+=i>>8,127&(i+=i>>16)}function setIn(i,s,u,m){var v=m?i:arrCopy(i);return v[s]=u,v}function spliceIn(i,s,u,m){var v=i.length+1;if(m&&s+1===v)return i[s]=u,i;for(var _=new Array(v),j=0,M=0;M<v;M++)M===s?(_[M]=u,j=-1):_[M]=i[M+j];return _}function spliceOut(i,s,u){var m=i.length-1;if(u&&s===m)return i.pop(),i;for(var v=new Array(m),_=0,j=0;j<m;j++)j===s&&(_=1),v[j]=i[j+_];return v}He[We]=!0,He[_]=He.remove,He.removeIn=He.deleteIn,ArrayMapNode.prototype.get=function(i,s,u,m){for(var v=this.entries,_=0,j=v.length;_<j;_++)if(is(u,v[_][0]))return v[_][1];return m},ArrayMapNode.prototype.update=function(i,s,u,m,v,_,j){for(var M=v===W,$=this.entries,X=0,Y=$.length;X<Y&&!is(m,$[X][0]);X++);var Z=X<Y;if(Z?$[X][1]===v:M)return this;if(SetRef(j),(M||!Z)&&SetRef(_),!M||1!==$.length){if(!Z&&!M&&$.length>=Xe)return createNodes(i,$,m,v);var ee=i&&i===this.ownerID,ie=ee?$:arrCopy($);return Z?M?X===Y-1?ie.pop():ie[X]=ie.pop():ie[X]=[m,v]:ie.push([m,v]),ee?(this.entries=ie,this):new ArrayMapNode(i,ie)}},BitmapIndexedNode.prototype.get=function(i,s,u,m){void 0===s&&(s=hash(u));var v=1<<((0===i?s:s>>>i)&$),_=this.bitmap;return 0==(_&v)?m:this.nodes[popCount(_&v-1)].get(i+j,s,u,m)},BitmapIndexedNode.prototype.update=function(i,s,u,m,v,_,M){void 0===u&&(u=hash(m));var X=(0===s?u:u>>>s)&$,Y=1<<X,Z=this.bitmap,ee=0!=(Z&Y);if(!ee&&v===W)return this;var ie=popCount(Z&Y-1),ae=this.nodes,ce=ee?ae[ie]:void 0,le=updateNode(ce,i,s+j,u,m,v,_,M);if(le===ce)return this;if(!ee&&le&&ae.length>=Ye)return expandNodes(i,ae,Z,X,le);if(ee&&!le&&2===ae.length&&isLeafNode(ae[1^ie]))return ae[1^ie];if(ee&&le&&1===ae.length&&isLeafNode(le))return le;var pe=i&&i===this.ownerID,de=ee?le?Z:Z^Y:Z|Y,fe=ee?le?setIn(ae,ie,le,pe):spliceOut(ae,ie,pe):spliceIn(ae,ie,le,pe);return pe?(this.bitmap=de,this.nodes=fe,this):new BitmapIndexedNode(i,de,fe)},HashArrayMapNode.prototype.get=function(i,s,u,m){void 0===s&&(s=hash(u));var v=(0===i?s:s>>>i)&$,_=this.nodes[v];return _?_.get(i+j,s,u,m):m},HashArrayMapNode.prototype.update=function(i,s,u,m,v,_,M){void 0===u&&(u=hash(m));var X=(0===s?u:u>>>s)&$,Y=v===W,Z=this.nodes,ee=Z[X];if(Y&&!ee)return this;var ie=updateNode(ee,i,s+j,u,m,v,_,M);if(ie===ee)return this;var ae=this.count;if(ee){if(!ie&&--ae<Qe)return packNodes(i,Z,ae,X)}else ae++;var ce=i&&i===this.ownerID,le=setIn(Z,X,ie,ce);return ce?(this.count=ae,this.nodes=le,this):new HashArrayMapNode(i,ae,le)},HashCollisionNode.prototype.get=function(i,s,u,m){for(var v=this.entries,_=0,j=v.length;_<j;_++)if(is(u,v[_][0]))return v[_][1];return m},HashCollisionNode.prototype.update=function(i,s,u,m,v,_,j){void 0===u&&(u=hash(m));var M=v===W;if(u!==this.keyHash)return M?this:(SetRef(j),SetRef(_),mergeIntoNode(this,i,s,u,[m,v]));for(var $=this.entries,X=0,Y=$.length;X<Y&&!is(m,$[X][0]);X++);var Z=X<Y;if(Z?$[X][1]===v:M)return this;if(SetRef(j),(M||!Z)&&SetRef(_),M&&2===Y)return new ValueNode(i,this.keyHash,$[1^X]);var ee=i&&i===this.ownerID,ie=ee?$:arrCopy($);return Z?M?X===Y-1?ie.pop():ie[X]=ie.pop():ie[X]=[m,v]:ie.push([m,v]),ee?(this.entries=ie,this):new HashCollisionNode(i,this.keyHash,ie)},ValueNode.prototype.get=function(i,s,u,m){return is(u,this.entry[0])?this.entry[1]:m},ValueNode.prototype.update=function(i,s,u,m,v,_,j){var M=v===W,$=is(m,this.entry[0]);return($?v===this.entry[1]:M)?this:(SetRef(j),M?void SetRef(_):$?i&&i===this.ownerID?(this.entry[1]=v,this):new ValueNode(i,this.keyHash,[m,v]):(SetRef(_),mergeIntoNode(this,i,s,hash(m),[m,v])))},ArrayMapNode.prototype.iterate=HashCollisionNode.prototype.iterate=function(i,s){for(var u=this.entries,m=0,v=u.length-1;m<=v;m++)if(!1===i(u[s?v-m:m]))return!1},BitmapIndexedNode.prototype.iterate=HashArrayMapNode.prototype.iterate=function(i,s){for(var u=this.nodes,m=0,v=u.length-1;m<=v;m++){var _=u[s?v-m:m];if(_&&!1===_.iterate(i,s))return!1}},ValueNode.prototype.iterate=function(i,s){return i(this.entry)},createClass(MapIterator,Iterator),MapIterator.prototype.next=function(){for(var i=this._type,s=this._stack;s;){var u,m=s.node,v=s.index++;if(m.entry){if(0===v)return mapIteratorValue(i,m.entry)}else if(m.entries){if(v<=(u=m.entries.length-1))return mapIteratorValue(i,m.entries[this._reverse?u-v:v])}else if(v<=(u=m.nodes.length-1)){var _=m.nodes[this._reverse?u-v:v];if(_){if(_.entry)return mapIteratorValue(i,_.entry);s=this._stack=mapIteratorFrame(_,s)}continue}s=this._stack=this._stack.__prev}return iteratorDone()};var Xe=M/4,Ye=M/2,Qe=M/4;function List(i){var s=emptyList();if(null==i)return s;if(isList(i))return i;var u=IndexedIterable(i),m=u.size;return 0===m?s:(assertNotInfinite(m),m>0&&m<M?makeList(0,m,j,null,new VNode(u.toArray())):s.withMutations((function(i){i.setSize(m),u.forEach((function(s,u){return i.set(u,s)}))})))}function isList(i){return!(!i||!i[et])}createClass(List,IndexedCollection),List.of=function(){return this(arguments)},List.prototype.toString=function(){return this.__toString(\"List [\",\"]\")},List.prototype.get=function(i,s){if((i=wrapIndex(this,i))>=0&&i<this.size){var u=listNodeFor(this,i+=this._origin);return u&&u.array[i&$]}return s},List.prototype.set=function(i,s){return updateList(this,i,s)},List.prototype.remove=function(i){return this.has(i)?0===i?this.shift():i===this.size-1?this.pop():this.splice(i,1):this},List.prototype.insert=function(i,s){return this.splice(i,0,s)},List.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=j,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):emptyList()},List.prototype.push=function(){var i=arguments,s=this.size;return this.withMutations((function(u){setListBounds(u,0,s+i.length);for(var m=0;m<i.length;m++)u.set(s+m,i[m])}))},List.prototype.pop=function(){return setListBounds(this,0,-1)},List.prototype.unshift=function(){var i=arguments;return this.withMutations((function(s){setListBounds(s,-i.length);for(var u=0;u<i.length;u++)s.set(u,i[u])}))},List.prototype.shift=function(){return setListBounds(this,1)},List.prototype.merge=function(){return mergeIntoListWith(this,void 0,arguments)},List.prototype.mergeWith=function(s){return mergeIntoListWith(this,s,i.call(arguments,1))},List.prototype.mergeDeep=function(){return mergeIntoListWith(this,deepMerger,arguments)},List.prototype.mergeDeepWith=function(s){var u=i.call(arguments,1);return mergeIntoListWith(this,deepMergerWith(s),u)},List.prototype.setSize=function(i){return setListBounds(this,0,i)},List.prototype.slice=function(i,s){var u=this.size;return wholeSlice(i,s,u)?this:setListBounds(this,resolveBegin(i,u),resolveEnd(s,u))},List.prototype.__iterator=function(i,s){var u=0,m=iterateList(this,s);return new Iterator((function(){var s=m();return s===ot?iteratorDone():iteratorValue(i,u++,s)}))},List.prototype.__iterate=function(i,s){for(var u,m=0,v=iterateList(this,s);(u=v())!==ot&&!1!==i(u,m++,this););return m},List.prototype.__ensureOwner=function(i){return i===this.__ownerID?this:i?makeList(this._origin,this._capacity,this._level,this._root,this._tail,i,this.__hash):(this.__ownerID=i,this)},List.isList=isList;var et=\"@@__IMMUTABLE_LIST__@@\",tt=List.prototype;function VNode(i,s){this.array=i,this.ownerID=s}tt[et]=!0,tt[_]=tt.remove,tt.setIn=He.setIn,tt.deleteIn=tt.removeIn=He.removeIn,tt.update=He.update,tt.updateIn=He.updateIn,tt.mergeIn=He.mergeIn,tt.mergeDeepIn=He.mergeDeepIn,tt.withMutations=He.withMutations,tt.asMutable=He.asMutable,tt.asImmutable=He.asImmutable,tt.wasAltered=He.wasAltered,VNode.prototype.removeBefore=function(i,s,u){if(u===s?1<<s:0===this.array.length)return this;var m=u>>>s&$;if(m>=this.array.length)return new VNode([],i);var v,_=0===m;if(s>0){var M=this.array[m];if((v=M&&M.removeBefore(i,s-j,u))===M&&_)return this}if(_&&!v)return this;var W=editableVNode(this,i);if(!_)for(var X=0;X<m;X++)W.array[X]=void 0;return v&&(W.array[m]=v),W},VNode.prototype.removeAfter=function(i,s,u){if(u===(s?1<<s:0)||0===this.array.length)return this;var m,v=u-1>>>s&$;if(v>=this.array.length)return this;if(s>0){var _=this.array[v];if((m=_&&_.removeAfter(i,s-j,u))===_&&v===this.array.length-1)return this}var M=editableVNode(this,i);return M.array.splice(v+1),m&&(M.array[v]=m),M};var rt,nt,ot={};function iterateList(i,s){var u=i._origin,m=i._capacity,v=getTailOffset(m),_=i._tail;return iterateNodeOrLeaf(i._root,i._level,0);function iterateNodeOrLeaf(i,s,u){return 0===s?iterateLeaf(i,u):iterateNode(i,s,u)}function iterateLeaf(i,j){var $=j===v?_&&_.array:i&&i.array,W=j>u?0:u-j,X=m-j;return X>M&&(X=M),function(){if(W===X)return ot;var i=s?--X:W++;return $&&$[i]}}function iterateNode(i,v,_){var $,W=i&&i.array,X=_>u?0:u-_>>v,Y=1+(m-_>>v);return Y>M&&(Y=M),function(){for(;;){if($){var i=$();if(i!==ot)return i;$=null}if(X===Y)return ot;var u=s?--Y:X++;$=iterateNodeOrLeaf(W&&W[u],v-j,_+(u<<v))}}}}function makeList(i,s,u,m,v,_,j){var M=Object.create(tt);return M.size=s-i,M._origin=i,M._capacity=s,M._level=u,M._root=m,M._tail=v,M.__ownerID=_,M.__hash=j,M.__altered=!1,M}function emptyList(){return rt||(rt=makeList(0,0,j))}function updateList(i,s,u){if((s=wrapIndex(i,s))!=s)return i;if(s>=i.size||s<0)return i.withMutations((function(i){s<0?setListBounds(i,s).set(0,u):setListBounds(i,0,s+1).set(s,u)}));s+=i._origin;var m=i._tail,v=i._root,_=MakeRef(Y);return s>=getTailOffset(i._capacity)?m=updateVNode(m,i.__ownerID,0,s,u,_):v=updateVNode(v,i.__ownerID,i._level,s,u,_),_.value?i.__ownerID?(i._root=v,i._tail=m,i.__hash=void 0,i.__altered=!0,i):makeList(i._origin,i._capacity,i._level,v,m):i}function updateVNode(i,s,u,m,v,_){var M,W=m>>>u&$,X=i&&W<i.array.length;if(!X&&void 0===v)return i;if(u>0){var Y=i&&i.array[W],Z=updateVNode(Y,s,u-j,m,v,_);return Z===Y?i:((M=editableVNode(i,s)).array[W]=Z,M)}return X&&i.array[W]===v?i:(SetRef(_),M=editableVNode(i,s),void 0===v&&W===M.array.length-1?M.array.pop():M.array[W]=v,M)}function editableVNode(i,s){return s&&i&&s===i.ownerID?i:new VNode(i?i.array.slice():[],s)}function listNodeFor(i,s){if(s>=getTailOffset(i._capacity))return i._tail;if(s<1<<i._level+j){for(var u=i._root,m=i._level;u&&m>0;)u=u.array[s>>>m&$],m-=j;return u}}function setListBounds(i,s,u){void 0!==s&&(s|=0),void 0!==u&&(u|=0);var m=i.__ownerID||new OwnerID,v=i._origin,_=i._capacity,M=v+s,W=void 0===u?_:u<0?_+u:v+u;if(M===v&&W===_)return i;if(M>=W)return i.clear();for(var X=i._level,Y=i._root,Z=0;M+Z<0;)Y=new VNode(Y&&Y.array.length?[void 0,Y]:[],m),Z+=1<<(X+=j);Z&&(M+=Z,v+=Z,W+=Z,_+=Z);for(var ee=getTailOffset(_),ie=getTailOffset(W);ie>=1<<X+j;)Y=new VNode(Y&&Y.array.length?[Y]:[],m),X+=j;var ae=i._tail,ce=ie<ee?listNodeFor(i,W-1):ie>ee?new VNode([],m):ae;if(ae&&ie>ee&&M<_&&ae.array.length){for(var le=Y=editableVNode(Y,m),pe=X;pe>j;pe-=j){var de=ee>>>pe&$;le=le.array[de]=editableVNode(le.array[de],m)}le.array[ee>>>j&$]=ae}if(W<_&&(ce=ce&&ce.removeAfter(m,0,W)),M>=ie)M-=ie,W-=ie,X=j,Y=null,ce=ce&&ce.removeBefore(m,0,M);else if(M>v||ie<ee){for(Z=0;Y;){var fe=M>>>X&$;if(fe!==ie>>>X&$)break;fe&&(Z+=(1<<X)*fe),X-=j,Y=Y.array[fe]}Y&&M>v&&(Y=Y.removeBefore(m,X,M-Z)),Y&&ie<ee&&(Y=Y.removeAfter(m,X,ie-Z)),Z&&(M-=Z,W-=Z)}return i.__ownerID?(i.size=W-M,i._origin=M,i._capacity=W,i._level=X,i._root=Y,i._tail=ce,i.__hash=void 0,i.__altered=!0,i):makeList(M,W,X,Y,ce)}function mergeIntoListWith(i,s,u){for(var m=[],v=0,_=0;_<u.length;_++){var j=u[_],M=IndexedIterable(j);M.size>v&&(v=M.size),isIterable(j)||(M=M.map((function(i){return fromJS(i)}))),m.push(M)}return v>i.size&&(i=i.setSize(v)),mergeIntoCollectionWith(i,s,m)}function getTailOffset(i){return i<M?0:i-1>>>j<<j}function OrderedMap(i){return null==i?emptyOrderedMap():isOrderedMap(i)?i:emptyOrderedMap().withMutations((function(s){var u=KeyedIterable(i);assertNotInfinite(u.size),u.forEach((function(i,u){return s.set(u,i)}))}))}function isOrderedMap(i){return isMap(i)&&isOrdered(i)}function makeOrderedMap(i,s,u,m){var v=Object.create(OrderedMap.prototype);return v.size=i?i.size:0,v._map=i,v._list=s,v.__ownerID=u,v.__hash=m,v}function emptyOrderedMap(){return nt||(nt=makeOrderedMap(emptyMap(),emptyList()))}function updateOrderedMap(i,s,u){var m,v,_=i._map,j=i._list,$=_.get(s),X=void 0!==$;if(u===W){if(!X)return i;j.size>=M&&j.size>=2*_.size?(m=(v=j.filter((function(i,s){return void 0!==i&&$!==s}))).toKeyedSeq().map((function(i){return i[0]})).flip().toMap(),i.__ownerID&&(m.__ownerID=v.__ownerID=i.__ownerID)):(m=_.remove(s),v=$===j.size-1?j.pop():j.set($,void 0))}else if(X){if(u===j.get($)[1])return i;m=_,v=j.set($,[s,u])}else m=_.set(s,j.size),v=j.set(j.size,[s,u]);return i.__ownerID?(i.size=m.size,i._map=m,i._list=v,i.__hash=void 0,i):makeOrderedMap(m,v)}function ToKeyedSequence(i,s){this._iter=i,this._useKeys=s,this.size=i.size}function ToIndexedSequence(i){this._iter=i,this.size=i.size}function ToSetSequence(i){this._iter=i,this.size=i.size}function FromEntriesSequence(i){this._iter=i,this.size=i.size}function flipFactory(i){var s=makeSequence(i);return s._iter=i,s.size=i.size,s.flip=function(){return i},s.reverse=function(){var s=i.reverse.apply(this);return s.flip=function(){return i.reverse()},s},s.has=function(s){return i.includes(s)},s.includes=function(s){return i.has(s)},s.cacheResult=cacheResultThrough,s.__iterateUncached=function(s,u){var m=this;return i.__iterate((function(i,u){return!1!==s(u,i,m)}),u)},s.__iteratorUncached=function(s,u){if(s===ie){var m=i.__iterator(s,u);return new Iterator((function(){var i=m.next();if(!i.done){var s=i.value[0];i.value[0]=i.value[1],i.value[1]=s}return i}))}return i.__iterator(s===ee?Z:ee,u)},s}function mapFactory(i,s,u){var m=makeSequence(i);return m.size=i.size,m.has=function(s){return i.has(s)},m.get=function(m,v){var _=i.get(m,W);return _===W?v:s.call(u,_,m,i)},m.__iterateUncached=function(m,v){var _=this;return i.__iterate((function(i,v,j){return!1!==m(s.call(u,i,v,j),v,_)}),v)},m.__iteratorUncached=function(m,v){var _=i.__iterator(ie,v);return new Iterator((function(){var v=_.next();if(v.done)return v;var j=v.value,M=j[0];return iteratorValue(m,M,s.call(u,j[1],M,i),v)}))},m}function reverseFactory(i,s){var u=makeSequence(i);return u._iter=i,u.size=i.size,u.reverse=function(){return i},i.flip&&(u.flip=function(){var s=flipFactory(i);return s.reverse=function(){return i.flip()},s}),u.get=function(u,m){return i.get(s?u:-1-u,m)},u.has=function(u){return i.has(s?u:-1-u)},u.includes=function(s){return i.includes(s)},u.cacheResult=cacheResultThrough,u.__iterate=function(s,u){var m=this;return i.__iterate((function(i,u){return s(i,u,m)}),!u)},u.__iterator=function(s,u){return i.__iterator(s,!u)},u}function filterFactory(i,s,u,m){var v=makeSequence(i);return m&&(v.has=function(m){var v=i.get(m,W);return v!==W&&!!s.call(u,v,m,i)},v.get=function(m,v){var _=i.get(m,W);return _!==W&&s.call(u,_,m,i)?_:v}),v.__iterateUncached=function(v,_){var j=this,M=0;return i.__iterate((function(i,_,$){if(s.call(u,i,_,$))return M++,v(i,m?_:M-1,j)}),_),M},v.__iteratorUncached=function(v,_){var j=i.__iterator(ie,_),M=0;return new Iterator((function(){for(;;){var _=j.next();if(_.done)return _;var $=_.value,W=$[0],X=$[1];if(s.call(u,X,W,i))return iteratorValue(v,m?W:M++,X,_)}}))},v}function countByFactory(i,s,u){var m=Map().asMutable();return i.__iterate((function(v,_){m.update(s.call(u,v,_,i),0,(function(i){return i+1}))})),m.asImmutable()}function groupByFactory(i,s,u){var m=isKeyed(i),v=(isOrdered(i)?OrderedMap():Map()).asMutable();i.__iterate((function(_,j){v.update(s.call(u,_,j,i),(function(i){return(i=i||[]).push(m?[j,_]:_),i}))}));var _=iterableClass(i);return v.map((function(s){return reify(i,_(s))}))}function sliceFactory(i,s,u,m){var v=i.size;if(void 0!==s&&(s|=0),void 0!==u&&(u===1/0?u=v:u|=0),wholeSlice(s,u,v))return i;var _=resolveBegin(s,v),j=resolveEnd(u,v);if(_!=_||j!=j)return sliceFactory(i.toSeq().cacheResult(),s,u,m);var M,$=j-_;$==$&&(M=$<0?0:$);var W=makeSequence(i);return W.size=0===M?M:i.size&&M||void 0,!m&&isSeq(i)&&M>=0&&(W.get=function(s,u){return(s=wrapIndex(this,s))>=0&&s<M?i.get(s+_,u):u}),W.__iterateUncached=function(s,u){var v=this;if(0===M)return 0;if(u)return this.cacheResult().__iterate(s,u);var j=0,$=!0,W=0;return i.__iterate((function(i,u){if(!$||!($=j++<_))return W++,!1!==s(i,m?u:W-1,v)&&W!==M})),W},W.__iteratorUncached=function(s,u){if(0!==M&&u)return this.cacheResult().__iterator(s,u);var v=0!==M&&i.__iterator(s,u),j=0,$=0;return new Iterator((function(){for(;j++<_;)v.next();if(++$>M)return iteratorDone();var i=v.next();return m||s===ee?i:iteratorValue(s,$-1,s===Z?void 0:i.value[1],i)}))},W}function takeWhileFactory(i,s,u){var m=makeSequence(i);return m.__iterateUncached=function(m,v){var _=this;if(v)return this.cacheResult().__iterate(m,v);var j=0;return i.__iterate((function(i,v,M){return s.call(u,i,v,M)&&++j&&m(i,v,_)})),j},m.__iteratorUncached=function(m,v){var _=this;if(v)return this.cacheResult().__iterator(m,v);var j=i.__iterator(ie,v),M=!0;return new Iterator((function(){if(!M)return iteratorDone();var i=j.next();if(i.done)return i;var v=i.value,$=v[0],W=v[1];return s.call(u,W,$,_)?m===ie?i:iteratorValue(m,$,W,i):(M=!1,iteratorDone())}))},m}function skipWhileFactory(i,s,u,m){var v=makeSequence(i);return v.__iterateUncached=function(v,_){var j=this;if(_)return this.cacheResult().__iterate(v,_);var M=!0,$=0;return i.__iterate((function(i,_,W){if(!M||!(M=s.call(u,i,_,W)))return $++,v(i,m?_:$-1,j)})),$},v.__iteratorUncached=function(v,_){var j=this;if(_)return this.cacheResult().__iterator(v,_);var M=i.__iterator(ie,_),$=!0,W=0;return new Iterator((function(){var i,_,X;do{if((i=M.next()).done)return m||v===ee?i:iteratorValue(v,W++,v===Z?void 0:i.value[1],i);var Y=i.value;_=Y[0],X=Y[1],$&&($=s.call(u,X,_,j))}while($);return v===ie?i:iteratorValue(v,_,X,i)}))},v}function concatFactory(i,s){var u=isKeyed(i),m=[i].concat(s).map((function(i){return isIterable(i)?u&&(i=KeyedIterable(i)):i=u?keyedSeqFromValue(i):indexedSeqFromValue(Array.isArray(i)?i:[i]),i})).filter((function(i){return 0!==i.size}));if(0===m.length)return i;if(1===m.length){var v=m[0];if(v===i||u&&isKeyed(v)||isIndexed(i)&&isIndexed(v))return v}var _=new ArraySeq(m);return u?_=_.toKeyedSeq():isIndexed(i)||(_=_.toSetSeq()),(_=_.flatten(!0)).size=m.reduce((function(i,s){if(void 0!==i){var u=s.size;if(void 0!==u)return i+u}}),0),_}function flattenFactory(i,s,u){var m=makeSequence(i);return m.__iterateUncached=function(m,v){var _=0,j=!1;function flatDeep(i,M){var $=this;i.__iterate((function(i,v){return(!s||M<s)&&isIterable(i)?flatDeep(i,M+1):!1===m(i,u?v:_++,$)&&(j=!0),!j}),v)}return flatDeep(i,0),_},m.__iteratorUncached=function(m,v){var _=i.__iterator(m,v),j=[],M=0;return new Iterator((function(){for(;_;){var i=_.next();if(!1===i.done){var $=i.value;if(m===ie&&($=$[1]),s&&!(j.length<s)||!isIterable($))return u?i:iteratorValue(m,M++,$,i);j.push(_),_=$.__iterator(m,v)}else _=j.pop()}return iteratorDone()}))},m}function flatMapFactory(i,s,u){var m=iterableClass(i);return i.toSeq().map((function(v,_){return m(s.call(u,v,_,i))})).flatten(!0)}function interposeFactory(i,s){var u=makeSequence(i);return u.size=i.size&&2*i.size-1,u.__iterateUncached=function(u,m){var v=this,_=0;return i.__iterate((function(i,m){return(!_||!1!==u(s,_++,v))&&!1!==u(i,_++,v)}),m),_},u.__iteratorUncached=function(u,m){var v,_=i.__iterator(ee,m),j=0;return new Iterator((function(){return(!v||j%2)&&(v=_.next()).done?v:j%2?iteratorValue(u,j++,s):iteratorValue(u,j++,v.value,v)}))},u}function sortFactory(i,s,u){s||(s=defaultComparator);var m=isKeyed(i),v=0,_=i.toSeq().map((function(s,m){return[m,s,v++,u?u(s,m,i):s]})).toArray();return _.sort((function(i,u){return s(i[3],u[3])||i[2]-u[2]})).forEach(m?function(i,s){_[s].length=2}:function(i,s){_[s]=i[1]}),m?KeyedSeq(_):isIndexed(i)?IndexedSeq(_):SetSeq(_)}function maxFactory(i,s,u){if(s||(s=defaultComparator),u){var m=i.toSeq().map((function(s,m){return[s,u(s,m,i)]})).reduce((function(i,u){return maxCompare(s,i[1],u[1])?u:i}));return m&&m[0]}return i.reduce((function(i,u){return maxCompare(s,i,u)?u:i}))}function maxCompare(i,s,u){var m=i(u,s);return 0===m&&u!==s&&(null==u||u!=u)||m>0}function zipWithFactory(i,s,u){var m=makeSequence(i);return m.size=new ArraySeq(u).map((function(i){return i.size})).min(),m.__iterate=function(i,s){for(var u,m=this.__iterator(ee,s),v=0;!(u=m.next()).done&&!1!==i(u.value,v++,this););return v},m.__iteratorUncached=function(i,m){var v=u.map((function(i){return i=Iterable(i),getIterator(m?i.reverse():i)})),_=0,j=!1;return new Iterator((function(){var u;return j||(u=v.map((function(i){return i.next()})),j=u.some((function(i){return i.done}))),j?iteratorDone():iteratorValue(i,_++,s.apply(null,u.map((function(i){return i.value}))))}))},m}function reify(i,s){return isSeq(i)?s:i.constructor(s)}function validateEntry(i){if(i!==Object(i))throw new TypeError(\"Expected [K, V] tuple: \"+i)}function resolveSize(i){return assertNotInfinite(i.size),ensureSize(i)}function iterableClass(i){return isKeyed(i)?KeyedIterable:isIndexed(i)?IndexedIterable:SetIterable}function makeSequence(i){return Object.create((isKeyed(i)?KeyedSeq:isIndexed(i)?IndexedSeq:SetSeq).prototype)}function cacheResultThrough(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):Seq.prototype.cacheResult.call(this)}function defaultComparator(i,s){return i>s?1:i<s?-1:0}function forceIterator(i){var s=getIterator(i);if(!s){if(!isArrayLike(i))throw new TypeError(\"Expected iterable or array-like: \"+i);s=getIterator(Iterable(i))}return s}function Record(i,s){var u,m=function Record(_){if(_ instanceof m)return _;if(!(this instanceof m))return new m(_);if(!u){u=!0;var j=Object.keys(i);setProps(v,j),v.size=j.length,v._name=s,v._keys=j,v._defaultValues=i}this._map=Map(_)},v=m.prototype=Object.create(it);return v.constructor=m,m}createClass(OrderedMap,Map),OrderedMap.of=function(){return this(arguments)},OrderedMap.prototype.toString=function(){return this.__toString(\"OrderedMap {\",\"}\")},OrderedMap.prototype.get=function(i,s){var u=this._map.get(i);return void 0!==u?this._list.get(u)[1]:s},OrderedMap.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):emptyOrderedMap()},OrderedMap.prototype.set=function(i,s){return updateOrderedMap(this,i,s)},OrderedMap.prototype.remove=function(i){return updateOrderedMap(this,i,W)},OrderedMap.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},OrderedMap.prototype.__iterate=function(i,s){var u=this;return this._list.__iterate((function(s){return s&&i(s[1],s[0],u)}),s)},OrderedMap.prototype.__iterator=function(i,s){return this._list.fromEntrySeq().__iterator(i,s)},OrderedMap.prototype.__ensureOwner=function(i){if(i===this.__ownerID)return this;var s=this._map.__ensureOwner(i),u=this._list.__ensureOwner(i);return i?makeOrderedMap(s,u,i,this.__hash):(this.__ownerID=i,this._map=s,this._list=u,this)},OrderedMap.isOrderedMap=isOrderedMap,OrderedMap.prototype[v]=!0,OrderedMap.prototype[_]=OrderedMap.prototype.remove,createClass(ToKeyedSequence,KeyedSeq),ToKeyedSequence.prototype.get=function(i,s){return this._iter.get(i,s)},ToKeyedSequence.prototype.has=function(i){return this._iter.has(i)},ToKeyedSequence.prototype.valueSeq=function(){return this._iter.valueSeq()},ToKeyedSequence.prototype.reverse=function(){var i=this,s=reverseFactory(this,!0);return this._useKeys||(s.valueSeq=function(){return i._iter.toSeq().reverse()}),s},ToKeyedSequence.prototype.map=function(i,s){var u=this,m=mapFactory(this,i,s);return this._useKeys||(m.valueSeq=function(){return u._iter.toSeq().map(i,s)}),m},ToKeyedSequence.prototype.__iterate=function(i,s){var u,m=this;return this._iter.__iterate(this._useKeys?function(s,u){return i(s,u,m)}:(u=s?resolveSize(this):0,function(v){return i(v,s?--u:u++,m)}),s)},ToKeyedSequence.prototype.__iterator=function(i,s){if(this._useKeys)return this._iter.__iterator(i,s);var u=this._iter.__iterator(ee,s),m=s?resolveSize(this):0;return new Iterator((function(){var v=u.next();return v.done?v:iteratorValue(i,s?--m:m++,v.value,v)}))},ToKeyedSequence.prototype[v]=!0,createClass(ToIndexedSequence,IndexedSeq),ToIndexedSequence.prototype.includes=function(i){return this._iter.includes(i)},ToIndexedSequence.prototype.__iterate=function(i,s){var u=this,m=0;return this._iter.__iterate((function(s){return i(s,m++,u)}),s)},ToIndexedSequence.prototype.__iterator=function(i,s){var u=this._iter.__iterator(ee,s),m=0;return new Iterator((function(){var s=u.next();return s.done?s:iteratorValue(i,m++,s.value,s)}))},createClass(ToSetSequence,SetSeq),ToSetSequence.prototype.has=function(i){return this._iter.includes(i)},ToSetSequence.prototype.__iterate=function(i,s){var u=this;return this._iter.__iterate((function(s){return i(s,s,u)}),s)},ToSetSequence.prototype.__iterator=function(i,s){var u=this._iter.__iterator(ee,s);return new Iterator((function(){var s=u.next();return s.done?s:iteratorValue(i,s.value,s.value,s)}))},createClass(FromEntriesSequence,KeyedSeq),FromEntriesSequence.prototype.entrySeq=function(){return this._iter.toSeq()},FromEntriesSequence.prototype.__iterate=function(i,s){var u=this;return this._iter.__iterate((function(s){if(s){validateEntry(s);var m=isIterable(s);return i(m?s.get(1):s[1],m?s.get(0):s[0],u)}}),s)},FromEntriesSequence.prototype.__iterator=function(i,s){var u=this._iter.__iterator(ee,s);return new Iterator((function(){for(;;){var s=u.next();if(s.done)return s;var m=s.value;if(m){validateEntry(m);var v=isIterable(m);return iteratorValue(i,v?m.get(0):m[0],v?m.get(1):m[1],s)}}}))},ToIndexedSequence.prototype.cacheResult=ToKeyedSequence.prototype.cacheResult=ToSetSequence.prototype.cacheResult=FromEntriesSequence.prototype.cacheResult=cacheResultThrough,createClass(Record,KeyedCollection),Record.prototype.toString=function(){return this.__toString(recordName(this)+\" {\",\"}\")},Record.prototype.has=function(i){return this._defaultValues.hasOwnProperty(i)},Record.prototype.get=function(i,s){if(!this.has(i))return s;var u=this._defaultValues[i];return this._map?this._map.get(i,u):u},Record.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var i=this.constructor;return i._empty||(i._empty=makeRecord(this,emptyMap()))},Record.prototype.set=function(i,s){if(!this.has(i))throw new Error('Cannot set unknown key \"'+i+'\" on '+recordName(this));if(this._map&&!this._map.has(i)&&s===this._defaultValues[i])return this;var u=this._map&&this._map.set(i,s);return this.__ownerID||u===this._map?this:makeRecord(this,u)},Record.prototype.remove=function(i){if(!this.has(i))return this;var s=this._map&&this._map.remove(i);return this.__ownerID||s===this._map?this:makeRecord(this,s)},Record.prototype.wasAltered=function(){return this._map.wasAltered()},Record.prototype.__iterator=function(i,s){var u=this;return KeyedIterable(this._defaultValues).map((function(i,s){return u.get(s)})).__iterator(i,s)},Record.prototype.__iterate=function(i,s){var u=this;return KeyedIterable(this._defaultValues).map((function(i,s){return u.get(s)})).__iterate(i,s)},Record.prototype.__ensureOwner=function(i){if(i===this.__ownerID)return this;var s=this._map&&this._map.__ensureOwner(i);return i?makeRecord(this,s,i):(this.__ownerID=i,this._map=s,this)};var it=Record.prototype;function makeRecord(i,s,u){var m=Object.create(Object.getPrototypeOf(i));return m._map=s,m.__ownerID=u,m}function recordName(i){return i._name||i.constructor.name||\"Record\"}function setProps(i,s){try{s.forEach(setProp.bind(void 0,i))}catch(i){}}function setProp(i,s){Object.defineProperty(i,s,{get:function(){return this.get(s)},set:function(i){invariant(this.__ownerID,\"Cannot set on an immutable record.\"),this.set(s,i)}})}function Set(i){return null==i?emptySet():isSet(i)&&!isOrdered(i)?i:emptySet().withMutations((function(s){var u=SetIterable(i);assertNotInfinite(u.size),u.forEach((function(i){return s.add(i)}))}))}function isSet(i){return!(!i||!i[st])}it[_]=it.remove,it.deleteIn=it.removeIn=He.removeIn,it.merge=He.merge,it.mergeWith=He.mergeWith,it.mergeIn=He.mergeIn,it.mergeDeep=He.mergeDeep,it.mergeDeepWith=He.mergeDeepWith,it.mergeDeepIn=He.mergeDeepIn,it.setIn=He.setIn,it.update=He.update,it.updateIn=He.updateIn,it.withMutations=He.withMutations,it.asMutable=He.asMutable,it.asImmutable=He.asImmutable,createClass(Set,SetCollection),Set.of=function(){return this(arguments)},Set.fromKeys=function(i){return this(KeyedIterable(i).keySeq())},Set.prototype.toString=function(){return this.__toString(\"Set {\",\"}\")},Set.prototype.has=function(i){return this._map.has(i)},Set.prototype.add=function(i){return updateSet(this,this._map.set(i,!0))},Set.prototype.remove=function(i){return updateSet(this,this._map.remove(i))},Set.prototype.clear=function(){return updateSet(this,this._map.clear())},Set.prototype.union=function(){var s=i.call(arguments,0);return 0===(s=s.filter((function(i){return 0!==i.size}))).length?this:0!==this.size||this.__ownerID||1!==s.length?this.withMutations((function(i){for(var u=0;u<s.length;u++)SetIterable(s[u]).forEach((function(s){return i.add(s)}))})):this.constructor(s[0])},Set.prototype.intersect=function(){var s=i.call(arguments,0);if(0===s.length)return this;s=s.map((function(i){return SetIterable(i)}));var u=this;return this.withMutations((function(i){u.forEach((function(u){s.every((function(i){return i.includes(u)}))||i.remove(u)}))}))},Set.prototype.subtract=function(){var s=i.call(arguments,0);if(0===s.length)return this;s=s.map((function(i){return SetIterable(i)}));var u=this;return this.withMutations((function(i){u.forEach((function(u){s.some((function(i){return i.includes(u)}))&&i.remove(u)}))}))},Set.prototype.merge=function(){return this.union.apply(this,arguments)},Set.prototype.mergeWith=function(s){var u=i.call(arguments,1);return this.union.apply(this,u)},Set.prototype.sort=function(i){return OrderedSet(sortFactory(this,i))},Set.prototype.sortBy=function(i,s){return OrderedSet(sortFactory(this,s,i))},Set.prototype.wasAltered=function(){return this._map.wasAltered()},Set.prototype.__iterate=function(i,s){var u=this;return this._map.__iterate((function(s,m){return i(m,m,u)}),s)},Set.prototype.__iterator=function(i,s){return this._map.map((function(i,s){return s})).__iterator(i,s)},Set.prototype.__ensureOwner=function(i){if(i===this.__ownerID)return this;var s=this._map.__ensureOwner(i);return i?this.__make(s,i):(this.__ownerID=i,this._map=s,this)},Set.isSet=isSet;var at,st=\"@@__IMMUTABLE_SET__@@\",ct=Set.prototype;function updateSet(i,s){return i.__ownerID?(i.size=s.size,i._map=s,i):s===i._map?i:0===s.size?i.__empty():i.__make(s)}function makeSet(i,s){var u=Object.create(ct);return u.size=i?i.size:0,u._map=i,u.__ownerID=s,u}function emptySet(){return at||(at=makeSet(emptyMap()))}function OrderedSet(i){return null==i?emptyOrderedSet():isOrderedSet(i)?i:emptyOrderedSet().withMutations((function(s){var u=SetIterable(i);assertNotInfinite(u.size),u.forEach((function(i){return s.add(i)}))}))}function isOrderedSet(i){return isSet(i)&&isOrdered(i)}ct[st]=!0,ct[_]=ct.remove,ct.mergeDeep=ct.merge,ct.mergeDeepWith=ct.mergeWith,ct.withMutations=He.withMutations,ct.asMutable=He.asMutable,ct.asImmutable=He.asImmutable,ct.__empty=emptySet,ct.__make=makeSet,createClass(OrderedSet,Set),OrderedSet.of=function(){return this(arguments)},OrderedSet.fromKeys=function(i){return this(KeyedIterable(i).keySeq())},OrderedSet.prototype.toString=function(){return this.__toString(\"OrderedSet {\",\"}\")},OrderedSet.isOrderedSet=isOrderedSet;var lt,ut=OrderedSet.prototype;function makeOrderedSet(i,s){var u=Object.create(ut);return u.size=i?i.size:0,u._map=i,u.__ownerID=s,u}function emptyOrderedSet(){return lt||(lt=makeOrderedSet(emptyOrderedMap()))}function Stack(i){return null==i?emptyStack():isStack(i)?i:emptyStack().unshiftAll(i)}function isStack(i){return!(!i||!i[ht])}ut[v]=!0,ut.__empty=emptyOrderedSet,ut.__make=makeOrderedSet,createClass(Stack,IndexedCollection),Stack.of=function(){return this(arguments)},Stack.prototype.toString=function(){return this.__toString(\"Stack [\",\"]\")},Stack.prototype.get=function(i,s){var u=this._head;for(i=wrapIndex(this,i);u&&i--;)u=u.next;return u?u.value:s},Stack.prototype.peek=function(){return this._head&&this._head.value},Stack.prototype.push=function(){if(0===arguments.length)return this;for(var i=this.size+arguments.length,s=this._head,u=arguments.length-1;u>=0;u--)s={value:arguments[u],next:s};return this.__ownerID?(this.size=i,this._head=s,this.__hash=void 0,this.__altered=!0,this):makeStack(i,s)},Stack.prototype.pushAll=function(i){if(0===(i=IndexedIterable(i)).size)return this;assertNotInfinite(i.size);var s=this.size,u=this._head;return i.reverse().forEach((function(i){s++,u={value:i,next:u}})),this.__ownerID?(this.size=s,this._head=u,this.__hash=void 0,this.__altered=!0,this):makeStack(s,u)},Stack.prototype.pop=function(){return this.slice(1)},Stack.prototype.unshift=function(){return this.push.apply(this,arguments)},Stack.prototype.unshiftAll=function(i){return this.pushAll(i)},Stack.prototype.shift=function(){return this.pop.apply(this,arguments)},Stack.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):emptyStack()},Stack.prototype.slice=function(i,s){if(wholeSlice(i,s,this.size))return this;var u=resolveBegin(i,this.size);if(resolveEnd(s,this.size)!==this.size)return IndexedCollection.prototype.slice.call(this,i,s);for(var m=this.size-u,v=this._head;u--;)v=v.next;return this.__ownerID?(this.size=m,this._head=v,this.__hash=void 0,this.__altered=!0,this):makeStack(m,v)},Stack.prototype.__ensureOwner=function(i){return i===this.__ownerID?this:i?makeStack(this.size,this._head,i,this.__hash):(this.__ownerID=i,this.__altered=!1,this)},Stack.prototype.__iterate=function(i,s){if(s)return this.reverse().__iterate(i);for(var u=0,m=this._head;m&&!1!==i(m.value,u++,this);)m=m.next;return u},Stack.prototype.__iterator=function(i,s){if(s)return this.reverse().__iterator(i);var u=0,m=this._head;return new Iterator((function(){if(m){var s=m.value;return m=m.next,iteratorValue(i,u++,s)}return iteratorDone()}))},Stack.isStack=isStack;var pt,ht=\"@@__IMMUTABLE_STACK__@@\",dt=Stack.prototype;function makeStack(i,s,u,m){var v=Object.create(dt);return v.size=i,v._head=s,v.__ownerID=u,v.__hash=m,v.__altered=!1,v}function emptyStack(){return pt||(pt=makeStack(0))}function mixin(i,s){var keyCopier=function(u){i.prototype[u]=s[u]};return Object.keys(s).forEach(keyCopier),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(s).forEach(keyCopier),i}dt[ht]=!0,dt.withMutations=He.withMutations,dt.asMutable=He.asMutable,dt.asImmutable=He.asImmutable,dt.wasAltered=He.wasAltered,Iterable.Iterator=Iterator,mixin(Iterable,{toArray:function(){assertNotInfinite(this.size);var i=new Array(this.size||0);return this.valueSeq().__iterate((function(s,u){i[u]=s})),i},toIndexedSeq:function(){return new ToIndexedSequence(this)},toJS:function(){return this.toSeq().map((function(i){return i&&\"function\"==typeof i.toJS?i.toJS():i})).__toJS()},toJSON:function(){return this.toSeq().map((function(i){return i&&\"function\"==typeof i.toJSON?i.toJSON():i})).__toJS()},toKeyedSeq:function(){return new ToKeyedSequence(this,!0)},toMap:function(){return Map(this.toKeyedSeq())},toObject:function(){assertNotInfinite(this.size);var i={};return this.__iterate((function(s,u){i[u]=s})),i},toOrderedMap:function(){return OrderedMap(this.toKeyedSeq())},toOrderedSet:function(){return OrderedSet(isKeyed(this)?this.valueSeq():this)},toSet:function(){return Set(isKeyed(this)?this.valueSeq():this)},toSetSeq:function(){return new ToSetSequence(this)},toSeq:function(){return isIndexed(this)?this.toIndexedSeq():isKeyed(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return Stack(isKeyed(this)?this.valueSeq():this)},toList:function(){return List(isKeyed(this)?this.valueSeq():this)},toString:function(){return\"[Iterable]\"},__toString:function(i,s){return 0===this.size?i+s:i+\" \"+this.toSeq().map(this.__toStringMapper).join(\", \")+\" \"+s},concat:function(){return reify(this,concatFactory(this,i.call(arguments,0)))},includes:function(i){return this.some((function(s){return is(s,i)}))},entries:function(){return this.__iterator(ie)},every:function(i,s){assertNotInfinite(this.size);var u=!0;return this.__iterate((function(m,v,_){if(!i.call(s,m,v,_))return u=!1,!1})),u},filter:function(i,s){return reify(this,filterFactory(this,i,s,!0))},find:function(i,s,u){var m=this.findEntry(i,s);return m?m[1]:u},forEach:function(i,s){return assertNotInfinite(this.size),this.__iterate(s?i.bind(s):i)},join:function(i){assertNotInfinite(this.size),i=void 0!==i?\"\"+i:\",\";var s=\"\",u=!0;return this.__iterate((function(m){u?u=!1:s+=i,s+=null!=m?m.toString():\"\"})),s},keys:function(){return this.__iterator(Z)},map:function(i,s){return reify(this,mapFactory(this,i,s))},reduce:function(i,s,u){var m,v;return assertNotInfinite(this.size),arguments.length<2?v=!0:m=s,this.__iterate((function(s,_,j){v?(v=!1,m=s):m=i.call(u,m,s,_,j)})),m},reduceRight:function(i,s,u){var m=this.toKeyedSeq().reverse();return m.reduce.apply(m,arguments)},reverse:function(){return reify(this,reverseFactory(this,!0))},slice:function(i,s){return reify(this,sliceFactory(this,i,s,!0))},some:function(i,s){return!this.every(not(i),s)},sort:function(i){return reify(this,sortFactory(this,i))},values:function(){return this.__iterator(ee)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some((function(){return!0}))},count:function(i,s){return ensureSize(i?this.toSeq().filter(i,s):this)},countBy:function(i,s){return countByFactory(this,i,s)},equals:function(i){return deepEqual(this,i)},entrySeq:function(){var i=this;if(i._cache)return new ArraySeq(i._cache);var s=i.toSeq().map(entryMapper).toIndexedSeq();return s.fromEntrySeq=function(){return i.toSeq()},s},filterNot:function(i,s){return this.filter(not(i),s)},findEntry:function(i,s,u){var m=u;return this.__iterate((function(u,v,_){if(i.call(s,u,v,_))return m=[v,u],!1})),m},findKey:function(i,s){var u=this.findEntry(i,s);return u&&u[0]},findLast:function(i,s,u){return this.toKeyedSeq().reverse().find(i,s,u)},findLastEntry:function(i,s,u){return this.toKeyedSeq().reverse().findEntry(i,s,u)},findLastKey:function(i,s){return this.toKeyedSeq().reverse().findKey(i,s)},first:function(){return this.find(returnTrue)},flatMap:function(i,s){return reify(this,flatMapFactory(this,i,s))},flatten:function(i){return reify(this,flattenFactory(this,i,!0))},fromEntrySeq:function(){return new FromEntriesSequence(this)},get:function(i,s){return this.find((function(s,u){return is(u,i)}),void 0,s)},getIn:function(i,s){for(var u,m=this,v=forceIterator(i);!(u=v.next()).done;){var _=u.value;if((m=m&&m.get?m.get(_,W):W)===W)return s}return m},groupBy:function(i,s){return groupByFactory(this,i,s)},has:function(i){return this.get(i,W)!==W},hasIn:function(i){return this.getIn(i,W)!==W},isSubset:function(i){return i=\"function\"==typeof i.includes?i:Iterable(i),this.every((function(s){return i.includes(s)}))},isSuperset:function(i){return(i=\"function\"==typeof i.isSubset?i:Iterable(i)).isSubset(this)},keyOf:function(i){return this.findKey((function(s){return is(s,i)}))},keySeq:function(){return this.toSeq().map(keyMapper).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(i){return this.toKeyedSeq().reverse().keyOf(i)},max:function(i){return maxFactory(this,i)},maxBy:function(i,s){return maxFactory(this,s,i)},min:function(i){return maxFactory(this,i?neg(i):defaultNegComparator)},minBy:function(i,s){return maxFactory(this,s?neg(s):defaultNegComparator,i)},rest:function(){return this.slice(1)},skip:function(i){return this.slice(Math.max(0,i))},skipLast:function(i){return reify(this,this.toSeq().reverse().skip(i).reverse())},skipWhile:function(i,s){return reify(this,skipWhileFactory(this,i,s,!0))},skipUntil:function(i,s){return this.skipWhile(not(i),s)},sortBy:function(i,s){return reify(this,sortFactory(this,s,i))},take:function(i){return this.slice(0,Math.max(0,i))},takeLast:function(i){return reify(this,this.toSeq().reverse().take(i).reverse())},takeWhile:function(i,s){return reify(this,takeWhileFactory(this,i,s))},takeUntil:function(i,s){return this.takeWhile(not(i),s)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=hashIterable(this))}});var mt=Iterable.prototype;mt[s]=!0,mt[le]=mt.values,mt.__toJS=mt.toArray,mt.__toStringMapper=quoteString,mt.inspect=mt.toSource=function(){return this.toString()},mt.chain=mt.flatMap,mt.contains=mt.includes,mixin(KeyedIterable,{flip:function(){return reify(this,flipFactory(this))},mapEntries:function(i,s){var u=this,m=0;return reify(this,this.toSeq().map((function(v,_){return i.call(s,[_,v],m++,u)})).fromEntrySeq())},mapKeys:function(i,s){var u=this;return reify(this,this.toSeq().flip().map((function(m,v){return i.call(s,m,v,u)})).flip())}});var yt=KeyedIterable.prototype;function keyMapper(i,s){return s}function entryMapper(i,s){return[s,i]}function not(i){return function(){return!i.apply(this,arguments)}}function neg(i){return function(){return-i.apply(this,arguments)}}function quoteString(i){return\"string\"==typeof i?JSON.stringify(i):String(i)}function defaultZipper(){return arrCopy(arguments)}function defaultNegComparator(i,s){return i<s?1:i>s?-1:0}function hashIterable(i){if(i.size===1/0)return 0;var s=isOrdered(i),u=isKeyed(i),m=s?1:0;return murmurHashOfSize(i.__iterate(u?s?function(i,s){m=31*m+hashMerge(hash(i),hash(s))|0}:function(i,s){m=m+hashMerge(hash(i),hash(s))|0}:s?function(i){m=31*m+hash(i)|0}:function(i){m=m+hash(i)|0}),m)}function murmurHashOfSize(i,s){return s=be(s,3432918353),s=be(s<<15|s>>>-15,461845907),s=be(s<<13|s>>>-13,5),s=be((s=(s+3864292196|0)^i)^s>>>16,2246822507),s=smi((s=be(s^s>>>13,3266489909))^s>>>16)}function hashMerge(i,s){return i^s+2654435769+(i<<6)+(i>>2)|0}return yt[u]=!0,yt[le]=mt.entries,yt.__toJS=mt.toObject,yt.__toStringMapper=function(i,s){return JSON.stringify(s)+\": \"+quoteString(i)},mixin(IndexedIterable,{toKeyedSeq:function(){return new ToKeyedSequence(this,!1)},filter:function(i,s){return reify(this,filterFactory(this,i,s,!1))},findIndex:function(i,s){var u=this.findEntry(i,s);return u?u[0]:-1},indexOf:function(i){var s=this.keyOf(i);return void 0===s?-1:s},lastIndexOf:function(i){var s=this.lastKeyOf(i);return void 0===s?-1:s},reverse:function(){return reify(this,reverseFactory(this,!1))},slice:function(i,s){return reify(this,sliceFactory(this,i,s,!1))},splice:function(i,s){var u=arguments.length;if(s=Math.max(0|s,0),0===u||2===u&&!s)return this;i=resolveBegin(i,i<0?this.count():this.size);var m=this.slice(0,i);return reify(this,1===u?m:m.concat(arrCopy(arguments,2),this.slice(i+s)))},findLastIndex:function(i,s){var u=this.findLastEntry(i,s);return u?u[0]:-1},first:function(){return this.get(0)},flatten:function(i){return reify(this,flattenFactory(this,i,!1))},get:function(i,s){return(i=wrapIndex(this,i))<0||this.size===1/0||void 0!==this.size&&i>this.size?s:this.find((function(s,u){return u===i}),void 0,s)},has:function(i){return(i=wrapIndex(this,i))>=0&&(void 0!==this.size?this.size===1/0||i<this.size:-1!==this.indexOf(i))},interpose:function(i){return reify(this,interposeFactory(this,i))},interleave:function(){var i=[this].concat(arrCopy(arguments)),s=zipWithFactory(this.toSeq(),IndexedSeq.of,i),u=s.flatten(!0);return s.size&&(u.size=s.size*i.length),reify(this,u)},keySeq:function(){return Range(0,this.size)},last:function(){return this.get(-1)},skipWhile:function(i,s){return reify(this,skipWhileFactory(this,i,s,!1))},zip:function(){return reify(this,zipWithFactory(this,defaultZipper,[this].concat(arrCopy(arguments))))},zipWith:function(i){var s=arrCopy(arguments);return s[0]=this,reify(this,zipWithFactory(this,i,s))}}),IndexedIterable.prototype[m]=!0,IndexedIterable.prototype[v]=!0,mixin(SetIterable,{get:function(i,s){return this.has(i)?i:s},includes:function(i){return this.has(i)},keySeq:function(){return this.valueSeq()}}),SetIterable.prototype.has=mt.includes,SetIterable.prototype.contains=SetIterable.prototype.includes,mixin(KeyedSeq,KeyedIterable.prototype),mixin(IndexedSeq,IndexedIterable.prototype),mixin(SetSeq,SetIterable.prototype),mixin(KeyedCollection,KeyedIterable.prototype),mixin(IndexedCollection,IndexedIterable.prototype),mixin(SetCollection,SetIterable.prototype),{Iterable,Seq,Collection,Map,OrderedMap,List,Stack,Set,OrderedSet,Record,Range,Repeat,is,fromJS}}()},35717:i=>{\"function\"==typeof Object.create?i.exports=function inherits(i,s){s&&(i.super_=s,i.prototype=Object.create(s.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}))}:i.exports=function inherits(i,s){if(s){i.super_=s;var TempCtor=function(){};TempCtor.prototype=s.prototype,i.prototype=new TempCtor,i.prototype.constructor=i}}},35823:i=>{i.exports=function(i,s,u,m){var v=new Blob(void 0!==m?[m,i]:[i],{type:u||\"application/octet-stream\"});if(void 0!==window.navigator.msSaveBlob)window.navigator.msSaveBlob(v,s);else{var _=window.URL&&window.URL.createObjectURL?window.URL.createObjectURL(v):window.webkitURL.createObjectURL(v),j=document.createElement(\"a\");j.style.display=\"none\",j.href=_,j.setAttribute(\"download\",s),void 0===j.download&&j.setAttribute(\"target\",\"_blank\"),document.body.appendChild(j),j.click(),setTimeout((function(){document.body.removeChild(j),window.URL.revokeObjectURL(_)}),200)}}},91296:(i,s,u)=>{var m=NaN,v=\"[object Symbol]\",_=/^\\s+|\\s+$/g,j=/^[-+]0x[0-9a-f]+$/i,M=/^0b[01]+$/i,$=/^0o[0-7]+$/i,W=parseInt,X=\"object\"==typeof u.g&&u.g&&u.g.Object===Object&&u.g,Y=\"object\"==typeof self&&self&&self.Object===Object&&self,Z=X||Y||Function(\"return this\")(),ee=Object.prototype.toString,ie=Math.max,ae=Math.min,now=function(){return Z.Date.now()};function isObject(i){var s=typeof i;return!!i&&(\"object\"==s||\"function\"==s)}function toNumber(i){if(\"number\"==typeof i)return i;if(function isSymbol(i){return\"symbol\"==typeof i||function isObjectLike(i){return!!i&&\"object\"==typeof i}(i)&&ee.call(i)==v}(i))return m;if(isObject(i)){var s=\"function\"==typeof i.valueOf?i.valueOf():i;i=isObject(s)?s+\"\":s}if(\"string\"!=typeof i)return 0===i?i:+i;i=i.replace(_,\"\");var u=M.test(i);return u||$.test(i)?W(i.slice(2),u?2:8):j.test(i)?m:+i}i.exports=function debounce(i,s,u){var m,v,_,j,M,$,W=0,X=!1,Y=!1,Z=!0;if(\"function\"!=typeof i)throw new TypeError(\"Expected a function\");function invokeFunc(s){var u=m,_=v;return m=v=void 0,W=s,j=i.apply(_,u)}function shouldInvoke(i){var u=i-$;return void 0===$||u>=s||u<0||Y&&i-W>=_}function timerExpired(){var i=now();if(shouldInvoke(i))return trailingEdge(i);M=setTimeout(timerExpired,function remainingWait(i){var u=s-(i-$);return Y?ae(u,_-(i-W)):u}(i))}function trailingEdge(i){return M=void 0,Z&&m?invokeFunc(i):(m=v=void 0,j)}function debounced(){var i=now(),u=shouldInvoke(i);if(m=arguments,v=this,$=i,u){if(void 0===M)return function leadingEdge(i){return W=i,M=setTimeout(timerExpired,s),X?invokeFunc(i):j}($);if(Y)return M=setTimeout(timerExpired,s),invokeFunc($)}return void 0===M&&(M=setTimeout(timerExpired,s)),j}return s=toNumber(s)||0,isObject(u)&&(X=!!u.leading,_=(Y=\"maxWait\"in u)?ie(toNumber(u.maxWait)||0,s):_,Z=\"trailing\"in u?!!u.trailing:Z),debounced.cancel=function cancel(){void 0!==M&&clearTimeout(M),W=0,m=$=v=M=void 0},debounced.flush=function flush(){return void 0===M?j:trailingEdge(now())},debounced}},18552:(i,s,u)=>{var m=u(10852)(u(55639),\"DataView\");i.exports=m},1989:(i,s,u)=>{var m=u(51789),v=u(80401),_=u(57667),j=u(21327),M=u(81866);function Hash(i){var s=-1,u=null==i?0:i.length;for(this.clear();++s<u;){var m=i[s];this.set(m[0],m[1])}}Hash.prototype.clear=m,Hash.prototype.delete=v,Hash.prototype.get=_,Hash.prototype.has=j,Hash.prototype.set=M,i.exports=Hash},96425:(i,s,u)=>{var m=u(3118),v=u(9435);function LazyWrapper(i){this.__wrapped__=i,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}LazyWrapper.prototype=m(v.prototype),LazyWrapper.prototype.constructor=LazyWrapper,i.exports=LazyWrapper},38407:(i,s,u)=>{var m=u(27040),v=u(14125),_=u(82117),j=u(67518),M=u(54705);function ListCache(i){var s=-1,u=null==i?0:i.length;for(this.clear();++s<u;){var m=i[s];this.set(m[0],m[1])}}ListCache.prototype.clear=m,ListCache.prototype.delete=v,ListCache.prototype.get=_,ListCache.prototype.has=j,ListCache.prototype.set=M,i.exports=ListCache},7548:(i,s,u)=>{var m=u(3118),v=u(9435);function LodashWrapper(i,s){this.__wrapped__=i,this.__actions__=[],this.__chain__=!!s,this.__index__=0,this.__values__=void 0}LodashWrapper.prototype=m(v.prototype),LodashWrapper.prototype.constructor=LodashWrapper,i.exports=LodashWrapper},57071:(i,s,u)=>{var m=u(10852)(u(55639),\"Map\");i.exports=m},83369:(i,s,u)=>{var m=u(24785),v=u(11285),_=u(96e3),j=u(49916),M=u(95265);function MapCache(i){var s=-1,u=null==i?0:i.length;for(this.clear();++s<u;){var m=i[s];this.set(m[0],m[1])}}MapCache.prototype.clear=m,MapCache.prototype.delete=v,MapCache.prototype.get=_,MapCache.prototype.has=j,MapCache.prototype.set=M,i.exports=MapCache},53818:(i,s,u)=>{var m=u(10852)(u(55639),\"Promise\");i.exports=m},58525:(i,s,u)=>{var m=u(10852)(u(55639),\"Set\");i.exports=m},88668:(i,s,u)=>{var m=u(83369),v=u(90619),_=u(72385);function SetCache(i){var s=-1,u=null==i?0:i.length;for(this.__data__=new m;++s<u;)this.add(i[s])}SetCache.prototype.add=SetCache.prototype.push=v,SetCache.prototype.has=_,i.exports=SetCache},46384:(i,s,u)=>{var m=u(38407),v=u(37465),_=u(63779),j=u(67599),M=u(44758),$=u(34309);function Stack(i){var s=this.__data__=new m(i);this.size=s.size}Stack.prototype.clear=v,Stack.prototype.delete=_,Stack.prototype.get=j,Stack.prototype.has=M,Stack.prototype.set=$,i.exports=Stack},62705:(i,s,u)=>{var m=u(55639).Symbol;i.exports=m},11149:(i,s,u)=>{var m=u(55639).Uint8Array;i.exports=m},70577:(i,s,u)=>{var m=u(10852)(u(55639),\"WeakMap\");i.exports=m},96874:i=>{i.exports=function apply(i,s,u){switch(u.length){case 0:return i.call(s);case 1:return i.call(s,u[0]);case 2:return i.call(s,u[0],u[1]);case 3:return i.call(s,u[0],u[1],u[2])}return i.apply(s,u)}},77412:i=>{i.exports=function arrayEach(i,s){for(var u=-1,m=null==i?0:i.length;++u<m&&!1!==s(i[u],u,i););return i}},34963:i=>{i.exports=function arrayFilter(i,s){for(var u=-1,m=null==i?0:i.length,v=0,_=[];++u<m;){var j=i[u];s(j,u,i)&&(_[v++]=j)}return _}},47443:(i,s,u)=>{var m=u(42118);i.exports=function arrayIncludes(i,s){return!!(null==i?0:i.length)&&m(i,s,0)>-1}},14636:(i,s,u)=>{var m=u(22545),v=u(35694),_=u(1469),j=u(44144),M=u(65776),$=u(36719),W=Object.prototype.hasOwnProperty;i.exports=function arrayLikeKeys(i,s){var u=_(i),X=!u&&v(i),Y=!u&&!X&&j(i),Z=!u&&!X&&!Y&&$(i),ee=u||X||Y||Z,ie=ee?m(i.length,String):[],ae=ie.length;for(var ce in i)!s&&!W.call(i,ce)||ee&&(\"length\"==ce||Y&&(\"offset\"==ce||\"parent\"==ce)||Z&&(\"buffer\"==ce||\"byteLength\"==ce||\"byteOffset\"==ce)||M(ce,ae))||ie.push(ce);return ie}},29932:i=>{i.exports=function arrayMap(i,s){for(var u=-1,m=null==i?0:i.length,v=Array(m);++u<m;)v[u]=s(i[u],u,i);return v}},62488:i=>{i.exports=function arrayPush(i,s){for(var u=-1,m=s.length,v=i.length;++u<m;)i[v+u]=s[u];return i}},62663:i=>{i.exports=function arrayReduce(i,s,u,m){var v=-1,_=null==i?0:i.length;for(m&&_&&(u=i[++v]);++v<_;)u=s(u,i[v],v,i);return u}},82908:i=>{i.exports=function arraySome(i,s){for(var u=-1,m=null==i?0:i.length;++u<m;)if(s(i[u],u,i))return!0;return!1}},44286:i=>{i.exports=function asciiToArray(i){return i.split(\"\")}},49029:i=>{var s=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;i.exports=function asciiWords(i){return i.match(s)||[]}},86556:(i,s,u)=>{var m=u(89465),v=u(77813);i.exports=function assignMergeValue(i,s,u){(void 0!==u&&!v(i[s],u)||void 0===u&&!(s in i))&&m(i,s,u)}},34865:(i,s,u)=>{var m=u(89465),v=u(77813),_=Object.prototype.hasOwnProperty;i.exports=function assignValue(i,s,u){var j=i[s];_.call(i,s)&&v(j,u)&&(void 0!==u||s in i)||m(i,s,u)}},18470:(i,s,u)=>{var m=u(77813);i.exports=function assocIndexOf(i,s){for(var u=i.length;u--;)if(m(i[u][0],s))return u;return-1}},44037:(i,s,u)=>{var m=u(98363),v=u(3674);i.exports=function baseAssign(i,s){return i&&m(s,v(s),i)}},63886:(i,s,u)=>{var m=u(98363),v=u(81704);i.exports=function baseAssignIn(i,s){return i&&m(s,v(s),i)}},89465:(i,s,u)=>{var m=u(38777);i.exports=function baseAssignValue(i,s,u){\"__proto__\"==s&&m?m(i,s,{configurable:!0,enumerable:!0,value:u,writable:!0}):i[s]=u}},85990:(i,s,u)=>{var m=u(46384),v=u(77412),_=u(34865),j=u(44037),M=u(63886),$=u(64626),W=u(278),X=u(18805),Y=u(1911),Z=u(58234),ee=u(46904),ie=u(64160),ae=u(43824),ce=u(29148),le=u(38517),pe=u(1469),de=u(44144),fe=u(56688),ye=u(13218),be=u(72928),_e=u(3674),we=u(81704),Se=\"[object Arguments]\",xe=\"[object Function]\",Pe=\"[object Object]\",Ie={};Ie[Se]=Ie[\"[object Array]\"]=Ie[\"[object ArrayBuffer]\"]=Ie[\"[object DataView]\"]=Ie[\"[object Boolean]\"]=Ie[\"[object Date]\"]=Ie[\"[object Float32Array]\"]=Ie[\"[object Float64Array]\"]=Ie[\"[object Int8Array]\"]=Ie[\"[object Int16Array]\"]=Ie[\"[object Int32Array]\"]=Ie[\"[object Map]\"]=Ie[\"[object Number]\"]=Ie[Pe]=Ie[\"[object RegExp]\"]=Ie[\"[object Set]\"]=Ie[\"[object String]\"]=Ie[\"[object Symbol]\"]=Ie[\"[object Uint8Array]\"]=Ie[\"[object Uint8ClampedArray]\"]=Ie[\"[object Uint16Array]\"]=Ie[\"[object Uint32Array]\"]=!0,Ie[\"[object Error]\"]=Ie[xe]=Ie[\"[object WeakMap]\"]=!1,i.exports=function baseClone(i,s,u,Te,Re,qe){var ze,Ve=1&s,We=2&s,He=4&s;if(u&&(ze=Re?u(i,Te,Re,qe):u(i)),void 0!==ze)return ze;if(!ye(i))return i;var Xe=pe(i);if(Xe){if(ze=ae(i),!Ve)return W(i,ze)}else{var Ye=ie(i),Qe=Ye==xe||\"[object GeneratorFunction]\"==Ye;if(de(i))return $(i,Ve);if(Ye==Pe||Ye==Se||Qe&&!Re){if(ze=We||Qe?{}:le(i),!Ve)return We?Y(i,M(ze,i)):X(i,j(ze,i))}else{if(!Ie[Ye])return Re?i:{};ze=ce(i,Ye,Ve)}}qe||(qe=new m);var et=qe.get(i);if(et)return et;qe.set(i,ze),be(i)?i.forEach((function(m){ze.add(baseClone(m,s,u,m,i,qe))})):fe(i)&&i.forEach((function(m,v){ze.set(v,baseClone(m,s,u,v,i,qe))}));var tt=Xe?void 0:(He?We?ee:Z:We?we:_e)(i);return v(tt||i,(function(m,v){tt&&(m=i[v=m]),_(ze,v,baseClone(m,s,u,v,i,qe))})),ze}},3118:(i,s,u)=>{var m=u(13218),v=Object.create,_=function(){function object(){}return function(i){if(!m(i))return{};if(v)return v(i);object.prototype=i;var s=new object;return object.prototype=void 0,s}}();i.exports=_},89881:(i,s,u)=>{var m=u(47816),v=u(99291)(m);i.exports=v},41848:i=>{i.exports=function baseFindIndex(i,s,u,m){for(var v=i.length,_=u+(m?1:-1);m?_--:++_<v;)if(s(i[_],_,i))return _;return-1}},21078:(i,s,u)=>{var m=u(62488),v=u(37285);i.exports=function baseFlatten(i,s,u,_,j){var M=-1,$=i.length;for(u||(u=v),j||(j=[]);++M<$;){var W=i[M];s>0&&u(W)?s>1?baseFlatten(W,s-1,u,_,j):m(j,W):_||(j[j.length]=W)}return j}},28483:(i,s,u)=>{var m=u(25063)();i.exports=m},47816:(i,s,u)=>{var m=u(28483),v=u(3674);i.exports=function baseForOwn(i,s){return i&&m(i,s,v)}},97786:(i,s,u)=>{var m=u(71811),v=u(40327);i.exports=function baseGet(i,s){for(var u=0,_=(s=m(s,i)).length;null!=i&&u<_;)i=i[v(s[u++])];return u&&u==_?i:void 0}},68866:(i,s,u)=>{var m=u(62488),v=u(1469);i.exports=function baseGetAllKeys(i,s,u){var _=s(i);return v(i)?_:m(_,u(i))}},44239:(i,s,u)=>{var m=u(62705),v=u(89607),_=u(2333),j=m?m.toStringTag:void 0;i.exports=function baseGetTag(i){return null==i?void 0===i?\"[object Undefined]\":\"[object Null]\":j&&j in Object(i)?v(i):_(i)}},13:i=>{i.exports=function baseHasIn(i,s){return null!=i&&s in Object(i)}},42118:(i,s,u)=>{var m=u(41848),v=u(62722),_=u(42351);i.exports=function baseIndexOf(i,s,u){return s==s?_(i,s,u):m(i,v,u)}},9454:(i,s,u)=>{var m=u(44239),v=u(37005);i.exports=function baseIsArguments(i){return v(i)&&\"[object Arguments]\"==m(i)}},90939:(i,s,u)=>{var m=u(2492),v=u(37005);i.exports=function baseIsEqual(i,s,u,_,j){return i===s||(null==i||null==s||!v(i)&&!v(s)?i!=i&&s!=s:m(i,s,u,_,baseIsEqual,j))}},2492:(i,s,u)=>{var m=u(46384),v=u(67114),_=u(18351),j=u(16096),M=u(64160),$=u(1469),W=u(44144),X=u(36719),Y=\"[object Arguments]\",Z=\"[object Array]\",ee=\"[object Object]\",ie=Object.prototype.hasOwnProperty;i.exports=function baseIsEqualDeep(i,s,u,ae,ce,le){var pe=$(i),de=$(s),fe=pe?Z:M(i),ye=de?Z:M(s),be=(fe=fe==Y?ee:fe)==ee,_e=(ye=ye==Y?ee:ye)==ee,we=fe==ye;if(we&&W(i)){if(!W(s))return!1;pe=!0,be=!1}if(we&&!be)return le||(le=new m),pe||X(i)?v(i,s,u,ae,ce,le):_(i,s,fe,u,ae,ce,le);if(!(1&u)){var Se=be&&ie.call(i,\"__wrapped__\"),xe=_e&&ie.call(s,\"__wrapped__\");if(Se||xe){var Pe=Se?i.value():i,Ie=xe?s.value():s;return le||(le=new m),ce(Pe,Ie,u,ae,le)}}return!!we&&(le||(le=new m),j(i,s,u,ae,ce,le))}},25588:(i,s,u)=>{var m=u(64160),v=u(37005);i.exports=function baseIsMap(i){return v(i)&&\"[object Map]\"==m(i)}},2958:(i,s,u)=>{var m=u(46384),v=u(90939);i.exports=function baseIsMatch(i,s,u,_){var j=u.length,M=j,$=!_;if(null==i)return!M;for(i=Object(i);j--;){var W=u[j];if($&&W[2]?W[1]!==i[W[0]]:!(W[0]in i))return!1}for(;++j<M;){var X=(W=u[j])[0],Y=i[X],Z=W[1];if($&&W[2]){if(void 0===Y&&!(X in i))return!1}else{var ee=new m;if(_)var ie=_(Y,Z,X,i,s,ee);if(!(void 0===ie?v(Z,Y,3,_,ee):ie))return!1}}return!0}},62722:i=>{i.exports=function baseIsNaN(i){return i!=i}},28458:(i,s,u)=>{var m=u(23560),v=u(15346),_=u(13218),j=u(80346),M=/^\\[object .+?Constructor\\]$/,$=Function.prototype,W=Object.prototype,X=$.toString,Y=W.hasOwnProperty,Z=RegExp(\"^\"+X.call(Y).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");i.exports=function baseIsNative(i){return!(!_(i)||v(i))&&(m(i)?Z:M).test(j(i))}},29221:(i,s,u)=>{var m=u(64160),v=u(37005);i.exports=function baseIsSet(i){return v(i)&&\"[object Set]\"==m(i)}},38749:(i,s,u)=>{var m=u(44239),v=u(41780),_=u(37005),j={};j[\"[object Float32Array]\"]=j[\"[object Float64Array]\"]=j[\"[object Int8Array]\"]=j[\"[object Int16Array]\"]=j[\"[object Int32Array]\"]=j[\"[object Uint8Array]\"]=j[\"[object Uint8ClampedArray]\"]=j[\"[object Uint16Array]\"]=j[\"[object Uint32Array]\"]=!0,j[\"[object Arguments]\"]=j[\"[object Array]\"]=j[\"[object ArrayBuffer]\"]=j[\"[object Boolean]\"]=j[\"[object DataView]\"]=j[\"[object Date]\"]=j[\"[object Error]\"]=j[\"[object Function]\"]=j[\"[object Map]\"]=j[\"[object Number]\"]=j[\"[object Object]\"]=j[\"[object RegExp]\"]=j[\"[object Set]\"]=j[\"[object String]\"]=j[\"[object WeakMap]\"]=!1,i.exports=function baseIsTypedArray(i){return _(i)&&v(i.length)&&!!j[m(i)]}},67206:(i,s,u)=>{var m=u(91573),v=u(16432),_=u(6557),j=u(1469),M=u(39601);i.exports=function baseIteratee(i){return\"function\"==typeof i?i:null==i?_:\"object\"==typeof i?j(i)?v(i[0],i[1]):m(i):M(i)}},280:(i,s,u)=>{var m=u(25726),v=u(86916),_=Object.prototype.hasOwnProperty;i.exports=function baseKeys(i){if(!m(i))return v(i);var s=[];for(var u in Object(i))_.call(i,u)&&\"constructor\"!=u&&s.push(u);return s}},10313:(i,s,u)=>{var m=u(13218),v=u(25726),_=u(33498),j=Object.prototype.hasOwnProperty;i.exports=function baseKeysIn(i){if(!m(i))return _(i);var s=v(i),u=[];for(var M in i)(\"constructor\"!=M||!s&&j.call(i,M))&&u.push(M);return u}},9435:i=>{i.exports=function baseLodash(){}},91573:(i,s,u)=>{var m=u(2958),v=u(1499),_=u(42634);i.exports=function baseMatches(i){var s=v(i);return 1==s.length&&s[0][2]?_(s[0][0],s[0][1]):function(u){return u===i||m(u,i,s)}}},16432:(i,s,u)=>{var m=u(90939),v=u(27361),_=u(79095),j=u(15403),M=u(89162),$=u(42634),W=u(40327);i.exports=function baseMatchesProperty(i,s){return j(i)&&M(s)?$(W(i),s):function(u){var j=v(u,i);return void 0===j&&j===s?_(u,i):m(s,j,3)}}},42980:(i,s,u)=>{var m=u(46384),v=u(86556),_=u(28483),j=u(59783),M=u(13218),$=u(81704),W=u(36390);i.exports=function baseMerge(i,s,u,X,Y){i!==s&&_(s,(function(_,$){if(Y||(Y=new m),M(_))j(i,s,$,u,baseMerge,X,Y);else{var Z=X?X(W(i,$),_,$+\"\",i,s,Y):void 0;void 0===Z&&(Z=_),v(i,$,Z)}}),$)}},59783:(i,s,u)=>{var m=u(86556),v=u(64626),_=u(77133),j=u(278),M=u(38517),$=u(35694),W=u(1469),X=u(29246),Y=u(44144),Z=u(23560),ee=u(13218),ie=u(68630),ae=u(36719),ce=u(36390),le=u(59881);i.exports=function baseMergeDeep(i,s,u,pe,de,fe,ye){var be=ce(i,u),_e=ce(s,u),we=ye.get(_e);if(we)m(i,u,we);else{var Se=fe?fe(be,_e,u+\"\",i,s,ye):void 0,xe=void 0===Se;if(xe){var Pe=W(_e),Ie=!Pe&&Y(_e),Te=!Pe&&!Ie&&ae(_e);Se=_e,Pe||Ie||Te?W(be)?Se=be:X(be)?Se=j(be):Ie?(xe=!1,Se=v(_e,!0)):Te?(xe=!1,Se=_(_e,!0)):Se=[]:ie(_e)||$(_e)?(Se=be,$(be)?Se=le(be):ee(be)&&!Z(be)||(Se=M(_e))):xe=!1}xe&&(ye.set(_e,Se),de(Se,_e,pe,fe,ye),ye.delete(_e)),m(i,u,Se)}}},40371:i=>{i.exports=function baseProperty(i){return function(s){return null==s?void 0:s[i]}}},79152:(i,s,u)=>{var m=u(97786);i.exports=function basePropertyDeep(i){return function(s){return m(s,i)}}},18674:i=>{i.exports=function basePropertyOf(i){return function(s){return null==i?void 0:i[s]}}},10107:i=>{i.exports=function baseReduce(i,s,u,m,v){return v(i,(function(i,v,_){u=m?(m=!1,i):s(u,i,v,_)})),u}},5976:(i,s,u)=>{var m=u(6557),v=u(45357),_=u(30061);i.exports=function baseRest(i,s){return _(v(i,s,m),i+\"\")}},10611:(i,s,u)=>{var m=u(34865),v=u(71811),_=u(65776),j=u(13218),M=u(40327);i.exports=function baseSet(i,s,u,$){if(!j(i))return i;for(var W=-1,X=(s=v(s,i)).length,Y=X-1,Z=i;null!=Z&&++W<X;){var ee=M(s[W]),ie=u;if(\"__proto__\"===ee||\"constructor\"===ee||\"prototype\"===ee)return i;if(W!=Y){var ae=Z[ee];void 0===(ie=$?$(ae,ee,Z):void 0)&&(ie=j(ae)?ae:_(s[W+1])?[]:{})}m(Z,ee,ie),Z=Z[ee]}return i}},28045:(i,s,u)=>{var m=u(6557),v=u(89250),_=v?function(i,s){return v.set(i,s),i}:m;i.exports=_},56560:(i,s,u)=>{var m=u(75703),v=u(38777),_=u(6557),j=v?function(i,s){return v(i,\"toString\",{configurable:!0,enumerable:!1,value:m(s),writable:!0})}:_;i.exports=j},14259:i=>{i.exports=function baseSlice(i,s,u){var m=-1,v=i.length;s<0&&(s=-s>v?0:v+s),(u=u>v?v:u)<0&&(u+=v),v=s>u?0:u-s>>>0,s>>>=0;for(var _=Array(v);++m<v;)_[m]=i[m+s];return _}},5076:(i,s,u)=>{var m=u(89881);i.exports=function baseSome(i,s){var u;return m(i,(function(i,m,v){return!(u=s(i,m,v))})),!!u}},22545:i=>{i.exports=function baseTimes(i,s){for(var u=-1,m=Array(i);++u<i;)m[u]=s(u);return m}},80531:(i,s,u)=>{var m=u(62705),v=u(29932),_=u(1469),j=u(33448),M=m?m.prototype:void 0,$=M?M.toString:void 0;i.exports=function baseToString(i){if(\"string\"==typeof i)return i;if(_(i))return v(i,baseToString)+\"\";if(j(i))return $?$.call(i):\"\";var s=i+\"\";return\"0\"==s&&1/i==-Infinity?\"-0\":s}},27561:(i,s,u)=>{var m=u(67990),v=/^\\s+/;i.exports=function baseTrim(i){return i?i.slice(0,m(i)+1).replace(v,\"\"):i}},7518:i=>{i.exports=function baseUnary(i){return function(s){return i(s)}}},57406:(i,s,u)=>{var m=u(71811),v=u(10928),_=u(40292),j=u(40327);i.exports=function baseUnset(i,s){return s=m(s,i),null==(i=_(i,s))||delete i[j(v(s))]}},1757:i=>{i.exports=function baseZipObject(i,s,u){for(var m=-1,v=i.length,_=s.length,j={};++m<v;){var M=m<_?s[m]:void 0;u(j,i[m],M)}return j}},74757:i=>{i.exports=function cacheHas(i,s){return i.has(s)}},71811:(i,s,u)=>{var m=u(1469),v=u(15403),_=u(55514),j=u(79833);i.exports=function castPath(i,s){return m(i)?i:v(i,s)?[i]:_(j(i))}},40180:(i,s,u)=>{var m=u(14259);i.exports=function castSlice(i,s,u){var v=i.length;return u=void 0===u?v:u,!s&&u>=v?i:m(i,s,u)}},74318:(i,s,u)=>{var m=u(11149);i.exports=function cloneArrayBuffer(i){var s=new i.constructor(i.byteLength);return new m(s).set(new m(i)),s}},64626:(i,s,u)=>{i=u.nmd(i);var m=u(55639),v=s&&!s.nodeType&&s,_=v&&i&&!i.nodeType&&i,j=_&&_.exports===v?m.Buffer:void 0,M=j?j.allocUnsafe:void 0;i.exports=function cloneBuffer(i,s){if(s)return i.slice();var u=i.length,m=M?M(u):new i.constructor(u);return i.copy(m),m}},57157:(i,s,u)=>{var m=u(74318);i.exports=function cloneDataView(i,s){var u=s?m(i.buffer):i.buffer;return new i.constructor(u,i.byteOffset,i.byteLength)}},93147:i=>{var s=/\\w*$/;i.exports=function cloneRegExp(i){var u=new i.constructor(i.source,s.exec(i));return u.lastIndex=i.lastIndex,u}},40419:(i,s,u)=>{var m=u(62705),v=m?m.prototype:void 0,_=v?v.valueOf:void 0;i.exports=function cloneSymbol(i){return _?Object(_.call(i)):{}}},77133:(i,s,u)=>{var m=u(74318);i.exports=function cloneTypedArray(i,s){var u=s?m(i.buffer):i.buffer;return new i.constructor(u,i.byteOffset,i.length)}},52157:i=>{var s=Math.max;i.exports=function composeArgs(i,u,m,v){for(var _=-1,j=i.length,M=m.length,$=-1,W=u.length,X=s(j-M,0),Y=Array(W+X),Z=!v;++$<W;)Y[$]=u[$];for(;++_<M;)(Z||_<j)&&(Y[m[_]]=i[_]);for(;X--;)Y[$++]=i[_++];return Y}},14054:i=>{var s=Math.max;i.exports=function composeArgsRight(i,u,m,v){for(var _=-1,j=i.length,M=-1,$=m.length,W=-1,X=u.length,Y=s(j-$,0),Z=Array(Y+X),ee=!v;++_<Y;)Z[_]=i[_];for(var ie=_;++W<X;)Z[ie+W]=u[W];for(;++M<$;)(ee||_<j)&&(Z[ie+m[M]]=i[_++]);return Z}},278:i=>{i.exports=function copyArray(i,s){var u=-1,m=i.length;for(s||(s=Array(m));++u<m;)s[u]=i[u];return s}},98363:(i,s,u)=>{var m=u(34865),v=u(89465);i.exports=function copyObject(i,s,u,_){var j=!u;u||(u={});for(var M=-1,$=s.length;++M<$;){var W=s[M],X=_?_(u[W],i[W],W,u,i):void 0;void 0===X&&(X=i[W]),j?v(u,W,X):m(u,W,X)}return u}},18805:(i,s,u)=>{var m=u(98363),v=u(99551);i.exports=function copySymbols(i,s){return m(i,v(i),s)}},1911:(i,s,u)=>{var m=u(98363),v=u(51442);i.exports=function copySymbolsIn(i,s){return m(i,v(i),s)}},14429:(i,s,u)=>{var m=u(55639)[\"__core-js_shared__\"];i.exports=m},97991:i=>{i.exports=function countHolders(i,s){for(var u=i.length,m=0;u--;)i[u]===s&&++m;return m}},21463:(i,s,u)=>{var m=u(5976),v=u(16612);i.exports=function createAssigner(i){return m((function(s,u){var m=-1,_=u.length,j=_>1?u[_-1]:void 0,M=_>2?u[2]:void 0;for(j=i.length>3&&\"function\"==typeof j?(_--,j):void 0,M&&v(u[0],u[1],M)&&(j=_<3?void 0:j,_=1),s=Object(s);++m<_;){var $=u[m];$&&i(s,$,m,j)}return s}))}},99291:(i,s,u)=>{var m=u(98612);i.exports=function createBaseEach(i,s){return function(u,v){if(null==u)return u;if(!m(u))return i(u,v);for(var _=u.length,j=s?_:-1,M=Object(u);(s?j--:++j<_)&&!1!==v(M[j],j,M););return u}}},25063:i=>{i.exports=function createBaseFor(i){return function(s,u,m){for(var v=-1,_=Object(s),j=m(s),M=j.length;M--;){var $=j[i?M:++v];if(!1===u(_[$],$,_))break}return s}}},22402:(i,s,u)=>{var m=u(71774),v=u(55639);i.exports=function createBind(i,s,u){var _=1&s,j=m(i);return function wrapper(){return(this&&this!==v&&this instanceof wrapper?j:i).apply(_?u:this,arguments)}}},98805:(i,s,u)=>{var m=u(40180),v=u(62689),_=u(83140),j=u(79833);i.exports=function createCaseFirst(i){return function(s){s=j(s);var u=v(s)?_(s):void 0,M=u?u[0]:s.charAt(0),$=u?m(u,1).join(\"\"):s.slice(1);return M[i]()+$}}},35393:(i,s,u)=>{var m=u(62663),v=u(53816),_=u(58748),j=RegExp(\"['’]\",\"g\");i.exports=function createCompounder(i){return function(s){return m(_(v(s).replace(j,\"\")),i,\"\")}}},71774:(i,s,u)=>{var m=u(3118),v=u(13218);i.exports=function createCtor(i){return function(){var s=arguments;switch(s.length){case 0:return new i;case 1:return new i(s[0]);case 2:return new i(s[0],s[1]);case 3:return new i(s[0],s[1],s[2]);case 4:return new i(s[0],s[1],s[2],s[3]);case 5:return new i(s[0],s[1],s[2],s[3],s[4]);case 6:return new i(s[0],s[1],s[2],s[3],s[4],s[5]);case 7:return new i(s[0],s[1],s[2],s[3],s[4],s[5],s[6])}var u=m(i.prototype),_=i.apply(u,s);return v(_)?_:u}}},46347:(i,s,u)=>{var m=u(96874),v=u(71774),_=u(86935),j=u(94487),M=u(20893),$=u(46460),W=u(55639);i.exports=function createCurry(i,s,u){var X=v(i);return function wrapper(){for(var v=arguments.length,Y=Array(v),Z=v,ee=M(wrapper);Z--;)Y[Z]=arguments[Z];var ie=v<3&&Y[0]!==ee&&Y[v-1]!==ee?[]:$(Y,ee);return(v-=ie.length)<u?j(i,s,_,wrapper.placeholder,void 0,Y,ie,void 0,void 0,u-v):m(this&&this!==W&&this instanceof wrapper?X:i,this,Y)}}},67740:(i,s,u)=>{var m=u(67206),v=u(98612),_=u(3674);i.exports=function createFind(i){return function(s,u,j){var M=Object(s);if(!v(s)){var $=m(u,3);s=_(s),u=function(i){return $(M[i],i,M)}}var W=i(s,u,j);return W>-1?M[$?s[W]:W]:void 0}}},86935:(i,s,u)=>{var m=u(52157),v=u(14054),_=u(97991),j=u(71774),M=u(94487),$=u(20893),W=u(90451),X=u(46460),Y=u(55639);i.exports=function createHybrid(i,s,u,Z,ee,ie,ae,ce,le,pe){var de=128&s,fe=1&s,ye=2&s,be=24&s,_e=512&s,we=ye?void 0:j(i);return function wrapper(){for(var Se=arguments.length,xe=Array(Se),Pe=Se;Pe--;)xe[Pe]=arguments[Pe];if(be)var Ie=$(wrapper),Te=_(xe,Ie);if(Z&&(xe=m(xe,Z,ee,be)),ie&&(xe=v(xe,ie,ae,be)),Se-=Te,be&&Se<pe){var Re=X(xe,Ie);return M(i,s,createHybrid,wrapper.placeholder,u,xe,Re,ce,le,pe-Se)}var qe=fe?u:this,ze=ye?qe[i]:i;return Se=xe.length,ce?xe=W(xe,ce):_e&&Se>1&&xe.reverse(),de&&le<Se&&(xe.length=le),this&&this!==Y&&this instanceof wrapper&&(ze=we||j(ze)),ze.apply(qe,xe)}}},84375:(i,s,u)=>{var m=u(96874),v=u(71774),_=u(55639);i.exports=function createPartial(i,s,u,j){var M=1&s,$=v(i);return function wrapper(){for(var s=-1,v=arguments.length,W=-1,X=j.length,Y=Array(X+v),Z=this&&this!==_&&this instanceof wrapper?$:i;++W<X;)Y[W]=j[W];for(;v--;)Y[W++]=arguments[++s];return m(Z,M?u:this,Y)}}},94487:(i,s,u)=>{var m=u(86528),v=u(258),_=u(69255);i.exports=function createRecurry(i,s,u,j,M,$,W,X,Y,Z){var ee=8&s;s|=ee?32:64,4&(s&=~(ee?64:32))||(s&=-4);var ie=[i,s,M,ee?$:void 0,ee?W:void 0,ee?void 0:$,ee?void 0:W,X,Y,Z],ae=u.apply(void 0,ie);return m(i)&&v(ae,ie),ae.placeholder=j,_(ae,i,s)}},97727:(i,s,u)=>{var m=u(28045),v=u(22402),_=u(46347),j=u(86935),M=u(84375),$=u(66833),W=u(63833),X=u(258),Y=u(69255),Z=u(40554),ee=Math.max;i.exports=function createWrap(i,s,u,ie,ae,ce,le,pe){var de=2&s;if(!de&&\"function\"!=typeof i)throw new TypeError(\"Expected a function\");var fe=ie?ie.length:0;if(fe||(s&=-97,ie=ae=void 0),le=void 0===le?le:ee(Z(le),0),pe=void 0===pe?pe:Z(pe),fe-=ae?ae.length:0,64&s){var ye=ie,be=ae;ie=ae=void 0}var _e=de?void 0:$(i),we=[i,s,u,ie,ae,ye,be,ce,le,pe];if(_e&&W(we,_e),i=we[0],s=we[1],u=we[2],ie=we[3],ae=we[4],!(pe=we[9]=void 0===we[9]?de?0:i.length:ee(we[9]-fe,0))&&24&s&&(s&=-25),s&&1!=s)Se=8==s||16==s?_(i,s,pe):32!=s&&33!=s||ae.length?j.apply(void 0,we):M(i,s,u,ie);else var Se=v(i,s,u);return Y((_e?m:X)(Se,we),i,s)}},60696:(i,s,u)=>{var m=u(68630);i.exports=function customOmitClone(i){return m(i)?void 0:i}},69389:(i,s,u)=>{var m=u(18674)({À:\"A\",Á:\"A\",Â:\"A\",Ã:\"A\",Ä:\"A\",Å:\"A\",à:\"a\",á:\"a\",â:\"a\",ã:\"a\",ä:\"a\",å:\"a\",Ç:\"C\",ç:\"c\",Ð:\"D\",ð:\"d\",È:\"E\",É:\"E\",Ê:\"E\",Ë:\"E\",è:\"e\",é:\"e\",ê:\"e\",ë:\"e\",Ì:\"I\",Í:\"I\",Î:\"I\",Ï:\"I\",ì:\"i\",í:\"i\",î:\"i\",ï:\"i\",Ñ:\"N\",ñ:\"n\",Ò:\"O\",Ó:\"O\",Ô:\"O\",Õ:\"O\",Ö:\"O\",Ø:\"O\",ò:\"o\",ó:\"o\",ô:\"o\",õ:\"o\",ö:\"o\",ø:\"o\",Ù:\"U\",Ú:\"U\",Û:\"U\",Ü:\"U\",ù:\"u\",ú:\"u\",û:\"u\",ü:\"u\",Ý:\"Y\",ý:\"y\",ÿ:\"y\",Æ:\"Ae\",æ:\"ae\",Þ:\"Th\",þ:\"th\",ß:\"ss\",Ā:\"A\",Ă:\"A\",Ą:\"A\",ā:\"a\",ă:\"a\",ą:\"a\",Ć:\"C\",Ĉ:\"C\",Ċ:\"C\",Č:\"C\",ć:\"c\",ĉ:\"c\",ċ:\"c\",č:\"c\",Ď:\"D\",Đ:\"D\",ď:\"d\",đ:\"d\",Ē:\"E\",Ĕ:\"E\",Ė:\"E\",Ę:\"E\",Ě:\"E\",ē:\"e\",ĕ:\"e\",ė:\"e\",ę:\"e\",ě:\"e\",Ĝ:\"G\",Ğ:\"G\",Ġ:\"G\",Ģ:\"G\",ĝ:\"g\",ğ:\"g\",ġ:\"g\",ģ:\"g\",Ĥ:\"H\",Ħ:\"H\",ĥ:\"h\",ħ:\"h\",Ĩ:\"I\",Ī:\"I\",Ĭ:\"I\",Į:\"I\",İ:\"I\",ĩ:\"i\",ī:\"i\",ĭ:\"i\",į:\"i\",ı:\"i\",Ĵ:\"J\",ĵ:\"j\",Ķ:\"K\",ķ:\"k\",ĸ:\"k\",Ĺ:\"L\",Ļ:\"L\",Ľ:\"L\",Ŀ:\"L\",Ł:\"L\",ĺ:\"l\",ļ:\"l\",ľ:\"l\",ŀ:\"l\",ł:\"l\",Ń:\"N\",Ņ:\"N\",Ň:\"N\",Ŋ:\"N\",ń:\"n\",ņ:\"n\",ň:\"n\",ŋ:\"n\",Ō:\"O\",Ŏ:\"O\",Ő:\"O\",ō:\"o\",ŏ:\"o\",ő:\"o\",Ŕ:\"R\",Ŗ:\"R\",Ř:\"R\",ŕ:\"r\",ŗ:\"r\",ř:\"r\",Ś:\"S\",Ŝ:\"S\",Ş:\"S\",Š:\"S\",ś:\"s\",ŝ:\"s\",ş:\"s\",š:\"s\",Ţ:\"T\",Ť:\"T\",Ŧ:\"T\",ţ:\"t\",ť:\"t\",ŧ:\"t\",Ũ:\"U\",Ū:\"U\",Ŭ:\"U\",Ů:\"U\",Ű:\"U\",Ų:\"U\",ũ:\"u\",ū:\"u\",ŭ:\"u\",ů:\"u\",ű:\"u\",ų:\"u\",Ŵ:\"W\",ŵ:\"w\",Ŷ:\"Y\",ŷ:\"y\",Ÿ:\"Y\",Ź:\"Z\",Ż:\"Z\",Ž:\"Z\",ź:\"z\",ż:\"z\",ž:\"z\",Ĳ:\"IJ\",ĳ:\"ij\",Œ:\"Oe\",œ:\"oe\",ŉ:\"'n\",ſ:\"s\"});i.exports=m},38777:(i,s,u)=>{var m=u(10852),v=function(){try{var i=m(Object,\"defineProperty\");return i({},\"\",{}),i}catch(i){}}();i.exports=v},67114:(i,s,u)=>{var m=u(88668),v=u(82908),_=u(74757);i.exports=function equalArrays(i,s,u,j,M,$){var W=1&u,X=i.length,Y=s.length;if(X!=Y&&!(W&&Y>X))return!1;var Z=$.get(i),ee=$.get(s);if(Z&&ee)return Z==s&&ee==i;var ie=-1,ae=!0,ce=2&u?new m:void 0;for($.set(i,s),$.set(s,i);++ie<X;){var le=i[ie],pe=s[ie];if(j)var de=W?j(pe,le,ie,s,i,$):j(le,pe,ie,i,s,$);if(void 0!==de){if(de)continue;ae=!1;break}if(ce){if(!v(s,(function(i,s){if(!_(ce,s)&&(le===i||M(le,i,u,j,$)))return ce.push(s)}))){ae=!1;break}}else if(le!==pe&&!M(le,pe,u,j,$)){ae=!1;break}}return $.delete(i),$.delete(s),ae}},18351:(i,s,u)=>{var m=u(62705),v=u(11149),_=u(77813),j=u(67114),M=u(68776),$=u(21814),W=m?m.prototype:void 0,X=W?W.valueOf:void 0;i.exports=function equalByTag(i,s,u,m,W,Y,Z){switch(u){case\"[object DataView]\":if(i.byteLength!=s.byteLength||i.byteOffset!=s.byteOffset)return!1;i=i.buffer,s=s.buffer;case\"[object ArrayBuffer]\":return!(i.byteLength!=s.byteLength||!Y(new v(i),new v(s)));case\"[object Boolean]\":case\"[object Date]\":case\"[object Number]\":return _(+i,+s);case\"[object Error]\":return i.name==s.name&&i.message==s.message;case\"[object RegExp]\":case\"[object String]\":return i==s+\"\";case\"[object Map]\":var ee=M;case\"[object Set]\":var ie=1&m;if(ee||(ee=$),i.size!=s.size&&!ie)return!1;var ae=Z.get(i);if(ae)return ae==s;m|=2,Z.set(i,s);var ce=j(ee(i),ee(s),m,W,Y,Z);return Z.delete(i),ce;case\"[object Symbol]\":if(X)return X.call(i)==X.call(s)}return!1}},16096:(i,s,u)=>{var m=u(58234),v=Object.prototype.hasOwnProperty;i.exports=function equalObjects(i,s,u,_,j,M){var $=1&u,W=m(i),X=W.length;if(X!=m(s).length&&!$)return!1;for(var Y=X;Y--;){var Z=W[Y];if(!($?Z in s:v.call(s,Z)))return!1}var ee=M.get(i),ie=M.get(s);if(ee&&ie)return ee==s&&ie==i;var ae=!0;M.set(i,s),M.set(s,i);for(var ce=$;++Y<X;){var le=i[Z=W[Y]],pe=s[Z];if(_)var de=$?_(pe,le,Z,s,i,M):_(le,pe,Z,i,s,M);if(!(void 0===de?le===pe||j(le,pe,u,_,M):de)){ae=!1;break}ce||(ce=\"constructor\"==Z)}if(ae&&!ce){var fe=i.constructor,ye=s.constructor;fe==ye||!(\"constructor\"in i)||!(\"constructor\"in s)||\"function\"==typeof fe&&fe instanceof fe&&\"function\"==typeof ye&&ye instanceof ye||(ae=!1)}return M.delete(i),M.delete(s),ae}},99021:(i,s,u)=>{var m=u(85564),v=u(45357),_=u(30061);i.exports=function flatRest(i){return _(v(i,void 0,m),i+\"\")}},31957:(i,s,u)=>{var m=\"object\"==typeof u.g&&u.g&&u.g.Object===Object&&u.g;i.exports=m},58234:(i,s,u)=>{var m=u(68866),v=u(99551),_=u(3674);i.exports=function getAllKeys(i){return m(i,_,v)}},46904:(i,s,u)=>{var m=u(68866),v=u(51442),_=u(81704);i.exports=function getAllKeysIn(i){return m(i,_,v)}},66833:(i,s,u)=>{var m=u(89250),v=u(50308),_=m?function(i){return m.get(i)}:v;i.exports=_},97658:(i,s,u)=>{var m=u(52060),v=Object.prototype.hasOwnProperty;i.exports=function getFuncName(i){for(var s=i.name+\"\",u=m[s],_=v.call(m,s)?u.length:0;_--;){var j=u[_],M=j.func;if(null==M||M==i)return j.name}return s}},20893:i=>{i.exports=function getHolder(i){return i.placeholder}},45050:(i,s,u)=>{var m=u(37019);i.exports=function getMapData(i,s){var u=i.__data__;return m(s)?u[\"string\"==typeof s?\"string\":\"hash\"]:u.map}},1499:(i,s,u)=>{var m=u(89162),v=u(3674);i.exports=function getMatchData(i){for(var s=v(i),u=s.length;u--;){var _=s[u],j=i[_];s[u]=[_,j,m(j)]}return s}},10852:(i,s,u)=>{var m=u(28458),v=u(47801);i.exports=function getNative(i,s){var u=v(i,s);return m(u)?u:void 0}},85924:(i,s,u)=>{var m=u(5569)(Object.getPrototypeOf,Object);i.exports=m},89607:(i,s,u)=>{var m=u(62705),v=Object.prototype,_=v.hasOwnProperty,j=v.toString,M=m?m.toStringTag:void 0;i.exports=function getRawTag(i){var s=_.call(i,M),u=i[M];try{i[M]=void 0;var m=!0}catch(i){}var v=j.call(i);return m&&(s?i[M]=u:delete i[M]),v}},99551:(i,s,u)=>{var m=u(34963),v=u(70479),_=Object.prototype.propertyIsEnumerable,j=Object.getOwnPropertySymbols,M=j?function(i){return null==i?[]:(i=Object(i),m(j(i),(function(s){return _.call(i,s)})))}:v;i.exports=M},51442:(i,s,u)=>{var m=u(62488),v=u(85924),_=u(99551),j=u(70479),M=Object.getOwnPropertySymbols?function(i){for(var s=[];i;)m(s,_(i)),i=v(i);return s}:j;i.exports=M},64160:(i,s,u)=>{var m=u(18552),v=u(57071),_=u(53818),j=u(58525),M=u(70577),$=u(44239),W=u(80346),X=\"[object Map]\",Y=\"[object Promise]\",Z=\"[object Set]\",ee=\"[object WeakMap]\",ie=\"[object DataView]\",ae=W(m),ce=W(v),le=W(_),pe=W(j),de=W(M),fe=$;(m&&fe(new m(new ArrayBuffer(1)))!=ie||v&&fe(new v)!=X||_&&fe(_.resolve())!=Y||j&&fe(new j)!=Z||M&&fe(new M)!=ee)&&(fe=function(i){var s=$(i),u=\"[object Object]\"==s?i.constructor:void 0,m=u?W(u):\"\";if(m)switch(m){case ae:return ie;case ce:return X;case le:return Y;case pe:return Z;case de:return ee}return s}),i.exports=fe},47801:i=>{i.exports=function getValue(i,s){return null==i?void 0:i[s]}},58775:i=>{var s=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,u=/,? & /;i.exports=function getWrapDetails(i){var m=i.match(s);return m?m[1].split(u):[]}},222:(i,s,u)=>{var m=u(71811),v=u(35694),_=u(1469),j=u(65776),M=u(41780),$=u(40327);i.exports=function hasPath(i,s,u){for(var W=-1,X=(s=m(s,i)).length,Y=!1;++W<X;){var Z=$(s[W]);if(!(Y=null!=i&&u(i,Z)))break;i=i[Z]}return Y||++W!=X?Y:!!(X=null==i?0:i.length)&&M(X)&&j(Z,X)&&(_(i)||v(i))}},62689:i=>{var s=RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\\\\ufe0e\\\\ufe0f]\");i.exports=function hasUnicode(i){return s.test(i)}},93157:i=>{var s=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;i.exports=function hasUnicodeWord(i){return s.test(i)}},51789:(i,s,u)=>{var m=u(94536);i.exports=function hashClear(){this.__data__=m?m(null):{},this.size=0}},80401:i=>{i.exports=function hashDelete(i){var s=this.has(i)&&delete this.__data__[i];return this.size-=s?1:0,s}},57667:(i,s,u)=>{var m=u(94536),v=Object.prototype.hasOwnProperty;i.exports=function hashGet(i){var s=this.__data__;if(m){var u=s[i];return\"__lodash_hash_undefined__\"===u?void 0:u}return v.call(s,i)?s[i]:void 0}},21327:(i,s,u)=>{var m=u(94536),v=Object.prototype.hasOwnProperty;i.exports=function hashHas(i){var s=this.__data__;return m?void 0!==s[i]:v.call(s,i)}},81866:(i,s,u)=>{var m=u(94536);i.exports=function hashSet(i,s){var u=this.__data__;return this.size+=this.has(i)?0:1,u[i]=m&&void 0===s?\"__lodash_hash_undefined__\":s,this}},43824:i=>{var s=Object.prototype.hasOwnProperty;i.exports=function initCloneArray(i){var u=i.length,m=new i.constructor(u);return u&&\"string\"==typeof i[0]&&s.call(i,\"index\")&&(m.index=i.index,m.input=i.input),m}},29148:(i,s,u)=>{var m=u(74318),v=u(57157),_=u(93147),j=u(40419),M=u(77133);i.exports=function initCloneByTag(i,s,u){var $=i.constructor;switch(s){case\"[object ArrayBuffer]\":return m(i);case\"[object Boolean]\":case\"[object Date]\":return new $(+i);case\"[object DataView]\":return v(i,u);case\"[object Float32Array]\":case\"[object Float64Array]\":case\"[object Int8Array]\":case\"[object Int16Array]\":case\"[object Int32Array]\":case\"[object Uint8Array]\":case\"[object Uint8ClampedArray]\":case\"[object Uint16Array]\":case\"[object Uint32Array]\":return M(i,u);case\"[object Map]\":case\"[object Set]\":return new $;case\"[object Number]\":case\"[object String]\":return new $(i);case\"[object RegExp]\":return _(i);case\"[object Symbol]\":return j(i)}}},38517:(i,s,u)=>{var m=u(3118),v=u(85924),_=u(25726);i.exports=function initCloneObject(i){return\"function\"!=typeof i.constructor||_(i)?{}:m(v(i))}},83112:i=>{var s=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/;i.exports=function insertWrapDetails(i,u){var m=u.length;if(!m)return i;var v=m-1;return u[v]=(m>1?\"& \":\"\")+u[v],u=u.join(m>2?\", \":\" \"),i.replace(s,\"{\\n/* [wrapped with \"+u+\"] */\\n\")}},37285:(i,s,u)=>{var m=u(62705),v=u(35694),_=u(1469),j=m?m.isConcatSpreadable:void 0;i.exports=function isFlattenable(i){return _(i)||v(i)||!!(j&&i&&i[j])}},65776:i=>{var s=/^(?:0|[1-9]\\d*)$/;i.exports=function isIndex(i,u){var m=typeof i;return!!(u=null==u?9007199254740991:u)&&(\"number\"==m||\"symbol\"!=m&&s.test(i))&&i>-1&&i%1==0&&i<u}},16612:(i,s,u)=>{var m=u(77813),v=u(98612),_=u(65776),j=u(13218);i.exports=function isIterateeCall(i,s,u){if(!j(u))return!1;var M=typeof s;return!!(\"number\"==M?v(u)&&_(s,u.length):\"string\"==M&&s in u)&&m(u[s],i)}},15403:(i,s,u)=>{var m=u(1469),v=u(33448),_=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,j=/^\\w*$/;i.exports=function isKey(i,s){if(m(i))return!1;var u=typeof i;return!(\"number\"!=u&&\"symbol\"!=u&&\"boolean\"!=u&&null!=i&&!v(i))||(j.test(i)||!_.test(i)||null!=s&&i in Object(s))}},37019:i=>{i.exports=function isKeyable(i){var s=typeof i;return\"string\"==s||\"number\"==s||\"symbol\"==s||\"boolean\"==s?\"__proto__\"!==i:null===i}},86528:(i,s,u)=>{var m=u(96425),v=u(66833),_=u(97658),j=u(8111);i.exports=function isLaziable(i){var s=_(i),u=j[s];if(\"function\"!=typeof u||!(s in m.prototype))return!1;if(i===u)return!0;var M=v(u);return!!M&&i===M[0]}},15346:(i,s,u)=>{var m,v=u(14429),_=(m=/[^.]+$/.exec(v&&v.keys&&v.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+m:\"\";i.exports=function isMasked(i){return!!_&&_ in i}},25726:i=>{var s=Object.prototype;i.exports=function isPrototype(i){var u=i&&i.constructor;return i===(\"function\"==typeof u&&u.prototype||s)}},89162:(i,s,u)=>{var m=u(13218);i.exports=function isStrictComparable(i){return i==i&&!m(i)}},27040:i=>{i.exports=function listCacheClear(){this.__data__=[],this.size=0}},14125:(i,s,u)=>{var m=u(18470),v=Array.prototype.splice;i.exports=function listCacheDelete(i){var s=this.__data__,u=m(s,i);return!(u<0)&&(u==s.length-1?s.pop():v.call(s,u,1),--this.size,!0)}},82117:(i,s,u)=>{var m=u(18470);i.exports=function listCacheGet(i){var s=this.__data__,u=m(s,i);return u<0?void 0:s[u][1]}},67518:(i,s,u)=>{var m=u(18470);i.exports=function listCacheHas(i){return m(this.__data__,i)>-1}},54705:(i,s,u)=>{var m=u(18470);i.exports=function listCacheSet(i,s){var u=this.__data__,v=m(u,i);return v<0?(++this.size,u.push([i,s])):u[v][1]=s,this}},24785:(i,s,u)=>{var m=u(1989),v=u(38407),_=u(57071);i.exports=function mapCacheClear(){this.size=0,this.__data__={hash:new m,map:new(_||v),string:new m}}},11285:(i,s,u)=>{var m=u(45050);i.exports=function mapCacheDelete(i){var s=m(this,i).delete(i);return this.size-=s?1:0,s}},96e3:(i,s,u)=>{var m=u(45050);i.exports=function mapCacheGet(i){return m(this,i).get(i)}},49916:(i,s,u)=>{var m=u(45050);i.exports=function mapCacheHas(i){return m(this,i).has(i)}},95265:(i,s,u)=>{var m=u(45050);i.exports=function mapCacheSet(i,s){var u=m(this,i),v=u.size;return u.set(i,s),this.size+=u.size==v?0:1,this}},68776:i=>{i.exports=function mapToArray(i){var s=-1,u=Array(i.size);return i.forEach((function(i,m){u[++s]=[m,i]})),u}},42634:i=>{i.exports=function matchesStrictComparable(i,s){return function(u){return null!=u&&(u[i]===s&&(void 0!==s||i in Object(u)))}}},24523:(i,s,u)=>{var m=u(88306);i.exports=function memoizeCapped(i){var s=m(i,(function(i){return 500===u.size&&u.clear(),i})),u=s.cache;return s}},63833:(i,s,u)=>{var m=u(52157),v=u(14054),_=u(46460),j=\"__lodash_placeholder__\",M=128,$=Math.min;i.exports=function mergeData(i,s){var u=i[1],W=s[1],X=u|W,Y=X<131,Z=W==M&&8==u||W==M&&256==u&&i[7].length<=s[8]||384==W&&s[7].length<=s[8]&&8==u;if(!Y&&!Z)return i;1&W&&(i[2]=s[2],X|=1&u?0:4);var ee=s[3];if(ee){var ie=i[3];i[3]=ie?m(ie,ee,s[4]):ee,i[4]=ie?_(i[3],j):s[4]}return(ee=s[5])&&(ie=i[5],i[5]=ie?v(ie,ee,s[6]):ee,i[6]=ie?_(i[5],j):s[6]),(ee=s[7])&&(i[7]=ee),W&M&&(i[8]=null==i[8]?s[8]:$(i[8],s[8])),null==i[9]&&(i[9]=s[9]),i[0]=s[0],i[1]=X,i}},89250:(i,s,u)=>{var m=u(70577),v=m&&new m;i.exports=v},94536:(i,s,u)=>{var m=u(10852)(Object,\"create\");i.exports=m},86916:(i,s,u)=>{var m=u(5569)(Object.keys,Object);i.exports=m},33498:i=>{i.exports=function nativeKeysIn(i){var s=[];if(null!=i)for(var u in Object(i))s.push(u);return s}},31167:(i,s,u)=>{i=u.nmd(i);var m=u(31957),v=s&&!s.nodeType&&s,_=v&&i&&!i.nodeType&&i,j=_&&_.exports===v&&m.process,M=function(){try{var i=_&&_.require&&_.require(\"util\").types;return i||j&&j.binding&&j.binding(\"util\")}catch(i){}}();i.exports=M},2333:i=>{var s=Object.prototype.toString;i.exports=function objectToString(i){return s.call(i)}},5569:i=>{i.exports=function overArg(i,s){return function(u){return i(s(u))}}},45357:(i,s,u)=>{var m=u(96874),v=Math.max;i.exports=function overRest(i,s,u){return s=v(void 0===s?i.length-1:s,0),function(){for(var _=arguments,j=-1,M=v(_.length-s,0),$=Array(M);++j<M;)$[j]=_[s+j];j=-1;for(var W=Array(s+1);++j<s;)W[j]=_[j];return W[s]=u($),m(i,this,W)}}},40292:(i,s,u)=>{var m=u(97786),v=u(14259);i.exports=function parent(i,s){return s.length<2?i:m(i,v(s,0,-1))}},52060:i=>{i.exports={}},90451:(i,s,u)=>{var m=u(278),v=u(65776),_=Math.min;i.exports=function reorder(i,s){for(var u=i.length,j=_(s.length,u),M=m(i);j--;){var $=s[j];i[j]=v($,u)?M[$]:void 0}return i}},46460:i=>{var s=\"__lodash_placeholder__\";i.exports=function replaceHolders(i,u){for(var m=-1,v=i.length,_=0,j=[];++m<v;){var M=i[m];M!==u&&M!==s||(i[m]=s,j[_++]=m)}return j}},55639:(i,s,u)=>{var m=u(31957),v=\"object\"==typeof self&&self&&self.Object===Object&&self,_=m||v||Function(\"return this\")();i.exports=_},36390:i=>{i.exports=function safeGet(i,s){if((\"constructor\"!==s||\"function\"!=typeof i[s])&&\"__proto__\"!=s)return i[s]}},90619:i=>{i.exports=function setCacheAdd(i){return this.__data__.set(i,\"__lodash_hash_undefined__\"),this}},72385:i=>{i.exports=function setCacheHas(i){return this.__data__.has(i)}},258:(i,s,u)=>{var m=u(28045),v=u(21275)(m);i.exports=v},21814:i=>{i.exports=function setToArray(i){var s=-1,u=Array(i.size);return i.forEach((function(i){u[++s]=i})),u}},30061:(i,s,u)=>{var m=u(56560),v=u(21275)(m);i.exports=v},69255:(i,s,u)=>{var m=u(58775),v=u(83112),_=u(30061),j=u(87241);i.exports=function setWrapToString(i,s,u){var M=s+\"\";return _(i,v(M,j(m(M),u)))}},21275:i=>{var s=Date.now;i.exports=function shortOut(i){var u=0,m=0;return function(){var v=s(),_=16-(v-m);if(m=v,_>0){if(++u>=800)return arguments[0]}else u=0;return i.apply(void 0,arguments)}}},37465:(i,s,u)=>{var m=u(38407);i.exports=function stackClear(){this.__data__=new m,this.size=0}},63779:i=>{i.exports=function stackDelete(i){var s=this.__data__,u=s.delete(i);return this.size=s.size,u}},67599:i=>{i.exports=function stackGet(i){return this.__data__.get(i)}},44758:i=>{i.exports=function stackHas(i){return this.__data__.has(i)}},34309:(i,s,u)=>{var m=u(38407),v=u(57071),_=u(83369);i.exports=function stackSet(i,s){var u=this.__data__;if(u instanceof m){var j=u.__data__;if(!v||j.length<199)return j.push([i,s]),this.size=++u.size,this;u=this.__data__=new _(j)}return u.set(i,s),this.size=u.size,this}},42351:i=>{i.exports=function strictIndexOf(i,s,u){for(var m=u-1,v=i.length;++m<v;)if(i[m]===s)return m;return-1}},83140:(i,s,u)=>{var m=u(44286),v=u(62689),_=u(676);i.exports=function stringToArray(i){return v(i)?_(i):m(i)}},55514:(i,s,u)=>{var m=u(24523),v=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,_=/\\\\(\\\\)?/g,j=m((function(i){var s=[];return 46===i.charCodeAt(0)&&s.push(\"\"),i.replace(v,(function(i,u,m,v){s.push(m?v.replace(_,\"$1\"):u||i)})),s}));i.exports=j},40327:(i,s,u)=>{var m=u(33448);i.exports=function toKey(i){if(\"string\"==typeof i||m(i))return i;var s=i+\"\";return\"0\"==s&&1/i==-Infinity?\"-0\":s}},80346:i=>{var s=Function.prototype.toString;i.exports=function toSource(i){if(null!=i){try{return s.call(i)}catch(i){}try{return i+\"\"}catch(i){}}return\"\"}},67990:i=>{var s=/\\s/;i.exports=function trimmedEndIndex(i){for(var u=i.length;u--&&s.test(i.charAt(u)););return u}},676:i=>{var s=\"\\\\ud800-\\\\udfff\",u=\"[\"+s+\"]\",m=\"[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]\",v=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",_=\"[^\"+s+\"]\",j=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",M=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",$=\"(?:\"+m+\"|\"+v+\")\"+\"?\",W=\"[\\\\ufe0e\\\\ufe0f]?\",X=W+$+(\"(?:\\\\u200d(?:\"+[_,j,M].join(\"|\")+\")\"+W+$+\")*\"),Y=\"(?:\"+[_+m+\"?\",m,j,M,u].join(\"|\")+\")\",Z=RegExp(v+\"(?=\"+v+\")|\"+Y+X,\"g\");i.exports=function unicodeToArray(i){return i.match(Z)||[]}},2757:i=>{var s=\"\\\\ud800-\\\\udfff\",u=\"\\\\u2700-\\\\u27bf\",m=\"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\",v=\"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\",_=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",j=\"[\"+_+\"]\",M=\"\\\\d+\",$=\"[\"+u+\"]\",W=\"[\"+m+\"]\",X=\"[^\"+s+_+M+u+m+v+\"]\",Y=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",Z=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",ee=\"[\"+v+\"]\",ie=\"(?:\"+W+\"|\"+X+\")\",ae=\"(?:\"+ee+\"|\"+X+\")\",ce=\"(?:['’](?:d|ll|m|re|s|t|ve))?\",le=\"(?:['’](?:D|LL|M|RE|S|T|VE))?\",pe=\"(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?\",de=\"[\\\\ufe0e\\\\ufe0f]?\",fe=de+pe+(\"(?:\\\\u200d(?:\"+[\"[^\"+s+\"]\",Y,Z].join(\"|\")+\")\"+de+pe+\")*\"),ye=\"(?:\"+[$,Y,Z].join(\"|\")+\")\"+fe,be=RegExp([ee+\"?\"+W+\"+\"+ce+\"(?=\"+[j,ee,\"$\"].join(\"|\")+\")\",ae+\"+\"+le+\"(?=\"+[j,ee+ie,\"$\"].join(\"|\")+\")\",ee+\"?\"+ie+\"+\"+ce,ee+\"+\"+le,\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",M,ye].join(\"|\"),\"g\");i.exports=function unicodeWords(i){return i.match(be)||[]}},87241:(i,s,u)=>{var m=u(77412),v=u(47443),_=[[\"ary\",128],[\"bind\",1],[\"bindKey\",2],[\"curry\",8],[\"curryRight\",16],[\"flip\",512],[\"partial\",32],[\"partialRight\",64],[\"rearg\",256]];i.exports=function updateWrapDetails(i,s){return m(_,(function(u){var m=\"_.\"+u[0];s&u[1]&&!v(i,m)&&i.push(m)})),i.sort()}},21913:(i,s,u)=>{var m=u(96425),v=u(7548),_=u(278);i.exports=function wrapperClone(i){if(i instanceof m)return i.clone();var s=new v(i.__wrapped__,i.__chain__);return s.__actions__=_(i.__actions__),s.__index__=i.__index__,s.__values__=i.__values__,s}},39514:(i,s,u)=>{var m=u(97727);i.exports=function ary(i,s,u){return s=u?void 0:s,s=i&&null==s?i.length:s,m(i,128,void 0,void 0,void 0,void 0,s)}},68929:(i,s,u)=>{var m=u(48403),v=u(35393)((function(i,s,u){return s=s.toLowerCase(),i+(u?m(s):s)}));i.exports=v},48403:(i,s,u)=>{var m=u(79833),v=u(11700);i.exports=function capitalize(i){return v(m(i).toLowerCase())}},66678:(i,s,u)=>{var m=u(85990);i.exports=function clone(i){return m(i,4)}},75703:i=>{i.exports=function constant(i){return function(){return i}}},40087:(i,s,u)=>{var m=u(97727);function curry(i,s,u){var v=m(i,8,void 0,void 0,void 0,void 0,void 0,s=u?void 0:s);return v.placeholder=curry.placeholder,v}curry.placeholder={},i.exports=curry},23279:(i,s,u)=>{var m=u(13218),v=u(7771),_=u(14841),j=Math.max,M=Math.min;i.exports=function debounce(i,s,u){var $,W,X,Y,Z,ee,ie=0,ae=!1,ce=!1,le=!0;if(\"function\"!=typeof i)throw new TypeError(\"Expected a function\");function invokeFunc(s){var u=$,m=W;return $=W=void 0,ie=s,Y=i.apply(m,u)}function shouldInvoke(i){var u=i-ee;return void 0===ee||u>=s||u<0||ce&&i-ie>=X}function timerExpired(){var i=v();if(shouldInvoke(i))return trailingEdge(i);Z=setTimeout(timerExpired,function remainingWait(i){var u=s-(i-ee);return ce?M(u,X-(i-ie)):u}(i))}function trailingEdge(i){return Z=void 0,le&&$?invokeFunc(i):($=W=void 0,Y)}function debounced(){var i=v(),u=shouldInvoke(i);if($=arguments,W=this,ee=i,u){if(void 0===Z)return function leadingEdge(i){return ie=i,Z=setTimeout(timerExpired,s),ae?invokeFunc(i):Y}(ee);if(ce)return clearTimeout(Z),Z=setTimeout(timerExpired,s),invokeFunc(ee)}return void 0===Z&&(Z=setTimeout(timerExpired,s)),Y}return s=_(s)||0,m(u)&&(ae=!!u.leading,X=(ce=\"maxWait\"in u)?j(_(u.maxWait)||0,s):X,le=\"trailing\"in u?!!u.trailing:le),debounced.cancel=function cancel(){void 0!==Z&&clearTimeout(Z),ie=0,$=ee=W=Z=void 0},debounced.flush=function flush(){return void 0===Z?Y:trailingEdge(v())},debounced}},53816:(i,s,u)=>{var m=u(69389),v=u(79833),_=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,j=RegExp(\"[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]\",\"g\");i.exports=function deburr(i){return(i=v(i))&&i.replace(_,m).replace(j,\"\")}},77813:i=>{i.exports=function eq(i,s){return i===s||i!=i&&s!=s}},13311:(i,s,u)=>{var m=u(67740)(u(30998));i.exports=m},30998:(i,s,u)=>{var m=u(41848),v=u(67206),_=u(40554),j=Math.max;i.exports=function findIndex(i,s,u){var M=null==i?0:i.length;if(!M)return-1;var $=null==u?0:_(u);return $<0&&($=j(M+$,0)),m(i,v(s,3),$)}},85564:(i,s,u)=>{var m=u(21078);i.exports=function flatten(i){return(null==i?0:i.length)?m(i,1):[]}},84599:(i,s,u)=>{var m=u(68836),v=u(69306),_=Array.prototype.push;function baseAry(i,s){return 2==s?function(s,u){return i(s,u)}:function(s){return i(s)}}function cloneArray(i){for(var s=i?i.length:0,u=Array(s);s--;)u[s]=i[s];return u}function wrapImmutable(i,s){return function(){var u=arguments.length;if(u){for(var m=Array(u);u--;)m[u]=arguments[u];var v=m[0]=s.apply(void 0,m);return i.apply(void 0,m),v}}}i.exports=function baseConvert(i,s,u,j){var M=\"function\"==typeof s,$=s===Object(s);if($&&(j=u,u=s,s=void 0),null==u)throw new TypeError;j||(j={});var W={cap:!(\"cap\"in j)||j.cap,curry:!(\"curry\"in j)||j.curry,fixed:!(\"fixed\"in j)||j.fixed,immutable:!(\"immutable\"in j)||j.immutable,rearg:!(\"rearg\"in j)||j.rearg},X=M?u:v,Y=\"curry\"in j&&j.curry,Z=\"fixed\"in j&&j.fixed,ee=\"rearg\"in j&&j.rearg,ie=M?u.runInContext():void 0,ae=M?u:{ary:i.ary,assign:i.assign,clone:i.clone,curry:i.curry,forEach:i.forEach,isArray:i.isArray,isError:i.isError,isFunction:i.isFunction,isWeakMap:i.isWeakMap,iteratee:i.iteratee,keys:i.keys,rearg:i.rearg,toInteger:i.toInteger,toPath:i.toPath},ce=ae.ary,le=ae.assign,pe=ae.clone,de=ae.curry,fe=ae.forEach,ye=ae.isArray,be=ae.isError,_e=ae.isFunction,we=ae.isWeakMap,Se=ae.keys,xe=ae.rearg,Pe=ae.toInteger,Ie=ae.toPath,Te=Se(m.aryMethod),Re={castArray:function(i){return function(){var s=arguments[0];return ye(s)?i(cloneArray(s)):i.apply(void 0,arguments)}},iteratee:function(i){return function(){var s=arguments[1],u=i(arguments[0],s),m=u.length;return W.cap&&\"number\"==typeof s?(s=s>2?s-2:1,m&&m<=s?u:baseAry(u,s)):u}},mixin:function(i){return function(s){var u=this;if(!_e(u))return i(u,Object(s));var m=[];return fe(Se(s),(function(i){_e(s[i])&&m.push([i,u.prototype[i]])})),i(u,Object(s)),fe(m,(function(i){var s=i[1];_e(s)?u.prototype[i[0]]=s:delete u.prototype[i[0]]})),u}},nthArg:function(i){return function(s){var u=s<0?1:Pe(s)+1;return de(i(s),u)}},rearg:function(i){return function(s,u){var m=u?u.length:0;return de(i(s,u),m)}},runInContext:function(s){return function(u){return baseConvert(i,s(u),j)}}};function castCap(i,s){if(W.cap){var u=m.iterateeRearg[i];if(u)return function iterateeRearg(i,s){return overArg(i,(function(i){var u=s.length;return function baseArity(i,s){return 2==s?function(s,u){return i.apply(void 0,arguments)}:function(s){return i.apply(void 0,arguments)}}(xe(baseAry(i,u),s),u)}))}(s,u);var v=!M&&m.iterateeAry[i];if(v)return function iterateeAry(i,s){return overArg(i,(function(i){return\"function\"==typeof i?baseAry(i,s):i}))}(s,v)}return s}function castFixed(i,s,u){if(W.fixed&&(Z||!m.skipFixed[i])){var v=m.methodSpread[i],j=v&&v.start;return void 0===j?ce(s,u):function flatSpread(i,s){return function(){for(var u=arguments.length,m=u-1,v=Array(u);u--;)v[u]=arguments[u];var j=v[s],M=v.slice(0,s);return j&&_.apply(M,j),s!=m&&_.apply(M,v.slice(s+1)),i.apply(this,M)}}(s,j)}return s}function castRearg(i,s,u){return W.rearg&&u>1&&(ee||!m.skipRearg[i])?xe(s,m.methodRearg[i]||m.aryRearg[u]):s}function cloneByPath(i,s){for(var u=-1,m=(s=Ie(s)).length,v=m-1,_=pe(Object(i)),j=_;null!=j&&++u<m;){var M=s[u],$=j[M];null==$||_e($)||be($)||we($)||(j[M]=pe(u==v?$:Object($))),j=j[M]}return _}function createConverter(i,s){var u=m.aliasToReal[i]||i,v=m.remap[u]||u,_=j;return function(i){var m=M?ie:ae,j=M?ie[v]:s,$=le(le({},_),i);return baseConvert(m,u,j,$)}}function overArg(i,s){return function(){var u=arguments.length;if(!u)return i();for(var m=Array(u);u--;)m[u]=arguments[u];var v=W.rearg?0:u-1;return m[v]=s(m[v]),i.apply(void 0,m)}}function wrap(i,s,u){var v,_=m.aliasToReal[i]||i,j=s,M=Re[_];return M?j=M(s):W.immutable&&(m.mutate.array[_]?j=wrapImmutable(s,cloneArray):m.mutate.object[_]?j=wrapImmutable(s,function createCloner(i){return function(s){return i({},s)}}(s)):m.mutate.set[_]&&(j=wrapImmutable(s,cloneByPath))),fe(Te,(function(i){return fe(m.aryMethod[i],(function(s){if(_==s){var u=m.methodSpread[_],M=u&&u.afterRearg;return v=M?castFixed(_,castRearg(_,j,i),i):castRearg(_,castFixed(_,j,i),i),v=function castCurry(i,s,u){return Y||W.curry&&u>1?de(s,u):s}(0,v=castCap(_,v),i),!1}})),!v})),v||(v=j),v==s&&(v=Y?de(v,1):function(){return s.apply(this,arguments)}),v.convert=createConverter(_,s),v.placeholder=s.placeholder=u,v}if(!$)return wrap(s,u,X);var qe=u,ze=[];return fe(Te,(function(i){fe(m.aryMethod[i],(function(i){var s=qe[m.remap[i]||i];s&&ze.push([i,wrap(i,s,qe)])}))})),fe(Se(qe),(function(i){var s=qe[i];if(\"function\"==typeof s){for(var u=ze.length;u--;)if(ze[u][0]==i)return;s.convert=createConverter(i,s),ze.push([i,s])}})),fe(ze,(function(i){qe[i[0]]=i[1]})),qe.convert=function convertLib(i){return qe.runInContext.convert(i)(void 0)},qe.placeholder=qe,fe(Se(qe),(function(i){fe(m.realToAlias[i]||[],(function(s){qe[s]=qe[i]}))})),qe}},68836:(i,s)=>{s.aliasToReal={each:\"forEach\",eachRight:\"forEachRight\",entries:\"toPairs\",entriesIn:\"toPairsIn\",extend:\"assignIn\",extendAll:\"assignInAll\",extendAllWith:\"assignInAllWith\",extendWith:\"assignInWith\",first:\"head\",conforms:\"conformsTo\",matches:\"isMatch\",property:\"get\",__:\"placeholder\",F:\"stubFalse\",T:\"stubTrue\",all:\"every\",allPass:\"overEvery\",always:\"constant\",any:\"some\",anyPass:\"overSome\",apply:\"spread\",assoc:\"set\",assocPath:\"set\",complement:\"negate\",compose:\"flowRight\",contains:\"includes\",dissoc:\"unset\",dissocPath:\"unset\",dropLast:\"dropRight\",dropLastWhile:\"dropRightWhile\",equals:\"isEqual\",identical:\"eq\",indexBy:\"keyBy\",init:\"initial\",invertObj:\"invert\",juxt:\"over\",omitAll:\"omit\",nAry:\"ary\",path:\"get\",pathEq:\"matchesProperty\",pathOr:\"getOr\",paths:\"at\",pickAll:\"pick\",pipe:\"flow\",pluck:\"map\",prop:\"get\",propEq:\"matchesProperty\",propOr:\"getOr\",props:\"at\",symmetricDifference:\"xor\",symmetricDifferenceBy:\"xorBy\",symmetricDifferenceWith:\"xorWith\",takeLast:\"takeRight\",takeLastWhile:\"takeRightWhile\",unapply:\"rest\",unnest:\"flatten\",useWith:\"overArgs\",where:\"conformsTo\",whereEq:\"isMatch\",zipObj:\"zipObject\"},s.aryMethod={1:[\"assignAll\",\"assignInAll\",\"attempt\",\"castArray\",\"ceil\",\"create\",\"curry\",\"curryRight\",\"defaultsAll\",\"defaultsDeepAll\",\"floor\",\"flow\",\"flowRight\",\"fromPairs\",\"invert\",\"iteratee\",\"memoize\",\"method\",\"mergeAll\",\"methodOf\",\"mixin\",\"nthArg\",\"over\",\"overEvery\",\"overSome\",\"rest\",\"reverse\",\"round\",\"runInContext\",\"spread\",\"template\",\"trim\",\"trimEnd\",\"trimStart\",\"uniqueId\",\"words\",\"zipAll\"],2:[\"add\",\"after\",\"ary\",\"assign\",\"assignAllWith\",\"assignIn\",\"assignInAllWith\",\"at\",\"before\",\"bind\",\"bindAll\",\"bindKey\",\"chunk\",\"cloneDeepWith\",\"cloneWith\",\"concat\",\"conformsTo\",\"countBy\",\"curryN\",\"curryRightN\",\"debounce\",\"defaults\",\"defaultsDeep\",\"defaultTo\",\"delay\",\"difference\",\"divide\",\"drop\",\"dropRight\",\"dropRightWhile\",\"dropWhile\",\"endsWith\",\"eq\",\"every\",\"filter\",\"find\",\"findIndex\",\"findKey\",\"findLast\",\"findLastIndex\",\"findLastKey\",\"flatMap\",\"flatMapDeep\",\"flattenDepth\",\"forEach\",\"forEachRight\",\"forIn\",\"forInRight\",\"forOwn\",\"forOwnRight\",\"get\",\"groupBy\",\"gt\",\"gte\",\"has\",\"hasIn\",\"includes\",\"indexOf\",\"intersection\",\"invertBy\",\"invoke\",\"invokeMap\",\"isEqual\",\"isMatch\",\"join\",\"keyBy\",\"lastIndexOf\",\"lt\",\"lte\",\"map\",\"mapKeys\",\"mapValues\",\"matchesProperty\",\"maxBy\",\"meanBy\",\"merge\",\"mergeAllWith\",\"minBy\",\"multiply\",\"nth\",\"omit\",\"omitBy\",\"overArgs\",\"pad\",\"padEnd\",\"padStart\",\"parseInt\",\"partial\",\"partialRight\",\"partition\",\"pick\",\"pickBy\",\"propertyOf\",\"pull\",\"pullAll\",\"pullAt\",\"random\",\"range\",\"rangeRight\",\"rearg\",\"reject\",\"remove\",\"repeat\",\"restFrom\",\"result\",\"sampleSize\",\"some\",\"sortBy\",\"sortedIndex\",\"sortedIndexOf\",\"sortedLastIndex\",\"sortedLastIndexOf\",\"sortedUniqBy\",\"split\",\"spreadFrom\",\"startsWith\",\"subtract\",\"sumBy\",\"take\",\"takeRight\",\"takeRightWhile\",\"takeWhile\",\"tap\",\"throttle\",\"thru\",\"times\",\"trimChars\",\"trimCharsEnd\",\"trimCharsStart\",\"truncate\",\"union\",\"uniqBy\",\"uniqWith\",\"unset\",\"unzipWith\",\"without\",\"wrap\",\"xor\",\"zip\",\"zipObject\",\"zipObjectDeep\"],3:[\"assignInWith\",\"assignWith\",\"clamp\",\"differenceBy\",\"differenceWith\",\"findFrom\",\"findIndexFrom\",\"findLastFrom\",\"findLastIndexFrom\",\"getOr\",\"includesFrom\",\"indexOfFrom\",\"inRange\",\"intersectionBy\",\"intersectionWith\",\"invokeArgs\",\"invokeArgsMap\",\"isEqualWith\",\"isMatchWith\",\"flatMapDepth\",\"lastIndexOfFrom\",\"mergeWith\",\"orderBy\",\"padChars\",\"padCharsEnd\",\"padCharsStart\",\"pullAllBy\",\"pullAllWith\",\"rangeStep\",\"rangeStepRight\",\"reduce\",\"reduceRight\",\"replace\",\"set\",\"slice\",\"sortedIndexBy\",\"sortedLastIndexBy\",\"transform\",\"unionBy\",\"unionWith\",\"update\",\"xorBy\",\"xorWith\",\"zipWith\"],4:[\"fill\",\"setWith\",\"updateWith\"]},s.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},s.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},s.iterateeRearg={mapKeys:[1],reduceRight:[1,0]},s.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},s.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},s.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},s.realToAlias=function(){var i=Object.prototype.hasOwnProperty,u=s.aliasToReal,m={};for(var v in u){var _=u[v];i.call(m,_)?m[_].push(v):m[_]=[v]}return m}(),s.remap={assignAll:\"assign\",assignAllWith:\"assignWith\",assignInAll:\"assignIn\",assignInAllWith:\"assignInWith\",curryN:\"curry\",curryRightN:\"curryRight\",defaultsAll:\"defaults\",defaultsDeepAll:\"defaultsDeep\",findFrom:\"find\",findIndexFrom:\"findIndex\",findLastFrom:\"findLast\",findLastIndexFrom:\"findLastIndex\",getOr:\"get\",includesFrom:\"includes\",indexOfFrom:\"indexOf\",invokeArgs:\"invoke\",invokeArgsMap:\"invokeMap\",lastIndexOfFrom:\"lastIndexOf\",mergeAll:\"merge\",mergeAllWith:\"mergeWith\",padChars:\"pad\",padCharsEnd:\"padEnd\",padCharsStart:\"padStart\",propertyOf:\"get\",rangeStep:\"range\",rangeStepRight:\"rangeRight\",restFrom:\"rest\",spreadFrom:\"spread\",trimChars:\"trim\",trimCharsEnd:\"trimEnd\",trimCharsStart:\"trimStart\",zipAll:\"zip\"},s.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},s.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}},4269:(i,s,u)=>{i.exports={ary:u(39514),assign:u(44037),clone:u(66678),curry:u(40087),forEach:u(77412),isArray:u(1469),isError:u(64647),isFunction:u(23560),isWeakMap:u(81018),iteratee:u(72594),keys:u(280),rearg:u(4963),toInteger:u(40554),toPath:u(30084)}},72700:(i,s,u)=>{i.exports=u(28252)},92822:(i,s,u)=>{var m=u(84599),v=u(4269);i.exports=function convert(i,s,u){return m(v,i,s,u)}},69306:i=>{i.exports={}},28252:(i,s,u)=>{var m=u(92822)(\"set\",u(36968));m.placeholder=u(69306),i.exports=m},27361:(i,s,u)=>{var m=u(97786);i.exports=function get(i,s,u){var v=null==i?void 0:m(i,s);return void 0===v?u:v}},79095:(i,s,u)=>{var m=u(13),v=u(222);i.exports=function hasIn(i,s){return null!=i&&v(i,s,m)}},6557:i=>{i.exports=function identity(i){return i}},35694:(i,s,u)=>{var m=u(9454),v=u(37005),_=Object.prototype,j=_.hasOwnProperty,M=_.propertyIsEnumerable,$=m(function(){return arguments}())?m:function(i){return v(i)&&j.call(i,\"callee\")&&!M.call(i,\"callee\")};i.exports=$},1469:i=>{var s=Array.isArray;i.exports=s},98612:(i,s,u)=>{var m=u(23560),v=u(41780);i.exports=function isArrayLike(i){return null!=i&&v(i.length)&&!m(i)}},29246:(i,s,u)=>{var m=u(98612),v=u(37005);i.exports=function isArrayLikeObject(i){return v(i)&&m(i)}},51584:(i,s,u)=>{var m=u(44239),v=u(37005);i.exports=function isBoolean(i){return!0===i||!1===i||v(i)&&\"[object Boolean]\"==m(i)}},44144:(i,s,u)=>{i=u.nmd(i);var m=u(55639),v=u(95062),_=s&&!s.nodeType&&s,j=_&&i&&!i.nodeType&&i,M=j&&j.exports===_?m.Buffer:void 0,$=(M?M.isBuffer:void 0)||v;i.exports=$},41609:(i,s,u)=>{var m=u(280),v=u(64160),_=u(35694),j=u(1469),M=u(98612),$=u(44144),W=u(25726),X=u(36719),Y=Object.prototype.hasOwnProperty;i.exports=function isEmpty(i){if(null==i)return!0;if(M(i)&&(j(i)||\"string\"==typeof i||\"function\"==typeof i.splice||$(i)||X(i)||_(i)))return!i.length;var s=v(i);if(\"[object Map]\"==s||\"[object Set]\"==s)return!i.size;if(W(i))return!m(i).length;for(var u in i)if(Y.call(i,u))return!1;return!0}},18446:(i,s,u)=>{var m=u(90939);i.exports=function isEqual(i,s){return m(i,s)}},64647:(i,s,u)=>{var m=u(44239),v=u(37005),_=u(68630);i.exports=function isError(i){if(!v(i))return!1;var s=m(i);return\"[object Error]\"==s||\"[object DOMException]\"==s||\"string\"==typeof i.message&&\"string\"==typeof i.name&&!_(i)}},23560:(i,s,u)=>{var m=u(44239),v=u(13218);i.exports=function isFunction(i){if(!v(i))return!1;var s=m(i);return\"[object Function]\"==s||\"[object GeneratorFunction]\"==s||\"[object AsyncFunction]\"==s||\"[object Proxy]\"==s}},41780:i=>{i.exports=function isLength(i){return\"number\"==typeof i&&i>-1&&i%1==0&&i<=9007199254740991}},56688:(i,s,u)=>{var m=u(25588),v=u(7518),_=u(31167),j=_&&_.isMap,M=j?v(j):m;i.exports=M},45220:i=>{i.exports=function isNull(i){return null===i}},81763:(i,s,u)=>{var m=u(44239),v=u(37005);i.exports=function isNumber(i){return\"number\"==typeof i||v(i)&&\"[object Number]\"==m(i)}},13218:i=>{i.exports=function isObject(i){var s=typeof i;return null!=i&&(\"object\"==s||\"function\"==s)}},37005:i=>{i.exports=function isObjectLike(i){return null!=i&&\"object\"==typeof i}},68630:(i,s,u)=>{var m=u(44239),v=u(85924),_=u(37005),j=Function.prototype,M=Object.prototype,$=j.toString,W=M.hasOwnProperty,X=$.call(Object);i.exports=function isPlainObject(i){if(!_(i)||\"[object Object]\"!=m(i))return!1;var s=v(i);if(null===s)return!0;var u=W.call(s,\"constructor\")&&s.constructor;return\"function\"==typeof u&&u instanceof u&&$.call(u)==X}},72928:(i,s,u)=>{var m=u(29221),v=u(7518),_=u(31167),j=_&&_.isSet,M=j?v(j):m;i.exports=M},47037:(i,s,u)=>{var m=u(44239),v=u(1469),_=u(37005);i.exports=function isString(i){return\"string\"==typeof i||!v(i)&&_(i)&&\"[object String]\"==m(i)}},33448:(i,s,u)=>{var m=u(44239),v=u(37005);i.exports=function isSymbol(i){return\"symbol\"==typeof i||v(i)&&\"[object Symbol]\"==m(i)}},36719:(i,s,u)=>{var m=u(38749),v=u(7518),_=u(31167),j=_&&_.isTypedArray,M=j?v(j):m;i.exports=M},81018:(i,s,u)=>{var m=u(64160),v=u(37005);i.exports=function isWeakMap(i){return v(i)&&\"[object WeakMap]\"==m(i)}},72594:(i,s,u)=>{var m=u(85990),v=u(67206);i.exports=function iteratee(i){return v(\"function\"==typeof i?i:m(i,1))}},3674:(i,s,u)=>{var m=u(14636),v=u(280),_=u(98612);i.exports=function keys(i){return _(i)?m(i):v(i)}},81704:(i,s,u)=>{var m=u(14636),v=u(10313),_=u(98612);i.exports=function keysIn(i){return _(i)?m(i,!0):v(i)}},10928:i=>{i.exports=function last(i){var s=null==i?0:i.length;return s?i[s-1]:void 0}},88306:(i,s,u)=>{var m=u(83369);function memoize(i,s){if(\"function\"!=typeof i||null!=s&&\"function\"!=typeof s)throw new TypeError(\"Expected a function\");var memoized=function(){var u=arguments,m=s?s.apply(this,u):u[0],v=memoized.cache;if(v.has(m))return v.get(m);var _=i.apply(this,u);return memoized.cache=v.set(m,_)||v,_};return memoized.cache=new(memoize.Cache||m),memoized}memoize.Cache=m,i.exports=memoize},82492:(i,s,u)=>{var m=u(42980),v=u(21463)((function(i,s,u){m(i,s,u)}));i.exports=v},94885:i=>{i.exports=function negate(i){if(\"function\"!=typeof i)throw new TypeError(\"Expected a function\");return function(){var s=arguments;switch(s.length){case 0:return!i.call(this);case 1:return!i.call(this,s[0]);case 2:return!i.call(this,s[0],s[1]);case 3:return!i.call(this,s[0],s[1],s[2])}return!i.apply(this,s)}}},50308:i=>{i.exports=function noop(){}},7771:(i,s,u)=>{var m=u(55639);i.exports=function(){return m.Date.now()}},57557:(i,s,u)=>{var m=u(29932),v=u(85990),_=u(57406),j=u(71811),M=u(98363),$=u(60696),W=u(99021),X=u(46904),Y=W((function(i,s){var u={};if(null==i)return u;var W=!1;s=m(s,(function(s){return s=j(s,i),W||(W=s.length>1),s})),M(i,X(i),u),W&&(u=v(u,7,$));for(var Y=s.length;Y--;)_(u,s[Y]);return u}));i.exports=Y},39601:(i,s,u)=>{var m=u(40371),v=u(79152),_=u(15403),j=u(40327);i.exports=function property(i){return _(i)?m(j(i)):v(i)}},4963:(i,s,u)=>{var m=u(97727),v=u(99021),_=v((function(i,s){return m(i,256,void 0,void 0,void 0,s)}));i.exports=_},54061:(i,s,u)=>{var m=u(62663),v=u(89881),_=u(67206),j=u(10107),M=u(1469);i.exports=function reduce(i,s,u){var $=M(i)?m:j,W=arguments.length<3;return $(i,_(s,4),u,W,v)}},36968:(i,s,u)=>{var m=u(10611);i.exports=function set(i,s,u){return null==i?i:m(i,s,u)}},59704:(i,s,u)=>{var m=u(82908),v=u(67206),_=u(5076),j=u(1469),M=u(16612);i.exports=function some(i,s,u){var $=j(i)?m:_;return u&&M(i,s,u)&&(s=void 0),$(i,v(s,3))}},70479:i=>{i.exports=function stubArray(){return[]}},95062:i=>{i.exports=function stubFalse(){return!1}},18601:(i,s,u)=>{var m=u(14841),v=1/0;i.exports=function toFinite(i){return i?(i=m(i))===v||i===-1/0?17976931348623157e292*(i<0?-1:1):i==i?i:0:0===i?i:0}},40554:(i,s,u)=>{var m=u(18601);i.exports=function toInteger(i){var s=m(i),u=s%1;return s==s?u?s-u:s:0}},7334:(i,s,u)=>{var m=u(79833);i.exports=function toLower(i){return m(i).toLowerCase()}},14841:(i,s,u)=>{var m=u(27561),v=u(13218),_=u(33448),j=/^[-+]0x[0-9a-f]+$/i,M=/^0b[01]+$/i,$=/^0o[0-7]+$/i,W=parseInt;i.exports=function toNumber(i){if(\"number\"==typeof i)return i;if(_(i))return NaN;if(v(i)){var s=\"function\"==typeof i.valueOf?i.valueOf():i;i=v(s)?s+\"\":s}if(\"string\"!=typeof i)return 0===i?i:+i;i=m(i);var u=M.test(i);return u||$.test(i)?W(i.slice(2),u?2:8):j.test(i)?NaN:+i}},30084:(i,s,u)=>{var m=u(29932),v=u(278),_=u(1469),j=u(33448),M=u(55514),$=u(40327),W=u(79833);i.exports=function toPath(i){return _(i)?m(i,$):j(i)?[i]:v(M(W(i)))}},59881:(i,s,u)=>{var m=u(98363),v=u(81704);i.exports=function toPlainObject(i){return m(i,v(i))}},79833:(i,s,u)=>{var m=u(80531);i.exports=function toString(i){return null==i?\"\":m(i)}},11700:(i,s,u)=>{var m=u(98805)(\"toUpperCase\");i.exports=m},58748:(i,s,u)=>{var m=u(49029),v=u(93157),_=u(79833),j=u(2757);i.exports=function words(i,s,u){return i=_(i),void 0===(s=u?void 0:s)?v(i)?j(i):m(i):i.match(s)||[]}},8111:(i,s,u)=>{var m=u(96425),v=u(7548),_=u(9435),j=u(1469),M=u(37005),$=u(21913),W=Object.prototype.hasOwnProperty;function lodash(i){if(M(i)&&!j(i)&&!(i instanceof m)){if(i instanceof v)return i;if(W.call(i,\"__wrapped__\"))return $(i)}return new v(i)}lodash.prototype=_.prototype,lodash.prototype.constructor=lodash,i.exports=lodash},7287:(i,s,u)=>{var m=u(34865),v=u(1757);i.exports=function zipObject(i,s){return v(i||[],s||[],m)}},96470:(i,s,u)=>{\"use strict\";var m=u(47802),v=u(21102);s.highlight=highlight,s.highlightAuto=function highlightAuto(i,s){var u,j,M,$,W=s||{},X=W.subset||m.listLanguages(),Y=W.prefix,Z=X.length,ee=-1;null==Y&&(Y=_);if(\"string\"!=typeof i)throw v(\"Expected `string` for value, got `%s`\",i);j={relevance:0,language:null,value:[]},u={relevance:0,language:null,value:[]};for(;++ee<Z;)$=X[ee],m.getLanguage($)&&((M=highlight($,i,s)).language=$,M.relevance>j.relevance&&(j=M),M.relevance>u.relevance&&(j=u,u=M));j.language&&(u.secondBest=j);return u},s.registerLanguage=function registerLanguage(i,s){m.registerLanguage(i,s)},s.listLanguages=function listLanguages(){return m.listLanguages()},s.registerAlias=function registerAlias(i,s){var u,v=i;s&&((v={})[i]=s);for(u in v)m.registerAliases(v[u],{languageName:u})},Emitter.prototype.addText=function text(i){var s,u,m=this.stack;if(\"\"===i)return;s=m[m.length-1],(u=s.children[s.children.length-1])&&\"text\"===u.type?u.value+=i:s.children.push({type:\"text\",value:i})},Emitter.prototype.addKeyword=function addKeyword(i,s){this.openNode(s),this.addText(i),this.closeNode()},Emitter.prototype.addSublanguage=function addSublanguage(i,s){var u=this.stack,m=u[u.length-1],v=i.rootNode.children,_=s?{type:\"element\",tagName:\"span\",properties:{className:[s]},children:v}:v;m.children=m.children.concat(_)},Emitter.prototype.openNode=function open(i){var s=this.stack,u=this.options.classPrefix+i,m=s[s.length-1],v={type:\"element\",tagName:\"span\",properties:{className:[u]},children:[]};m.children.push(v),s.push(v)},Emitter.prototype.closeNode=function close(){this.stack.pop()},Emitter.prototype.closeAllNodes=noop,Emitter.prototype.finalize=noop,Emitter.prototype.toHTML=function toHtmlNoop(){return\"\"};var _=\"hljs-\";function highlight(i,s,u){var j,M=m.configure({}),$=(u||{}).prefix;if(\"string\"!=typeof i)throw v(\"Expected `string` for name, got `%s`\",i);if(!m.getLanguage(i))throw v(\"Unknown language: `%s` is not registered\",i);if(\"string\"!=typeof s)throw v(\"Expected `string` for value, got `%s`\",s);if(null==$&&($=_),m.configure({__emitter:Emitter,classPrefix:$}),j=m.highlight(s,{language:i,ignoreIllegals:!0}),m.configure(M||{}),j.errorRaised)throw j.errorRaised;return{relevance:j.relevance,language:j.language,value:j.emitter.rootNode.children}}function Emitter(i){this.options=i,this.rootNode={children:[]},this.stack=[this.rootNode]}function noop(){}},42566:(i,s,u)=>{const m=u(94885);function coerceElementMatchingCallback(i){return\"string\"==typeof i?s=>s.element===i:i.constructor&&i.extend?s=>s instanceof i:i}class ArraySlice{constructor(i){this.elements=i||[]}toValue(){return this.elements.map((i=>i.toValue()))}map(i,s){return this.elements.map(i,s)}flatMap(i,s){return this.map(i,s).reduce(((i,s)=>i.concat(s)),[])}compactMap(i,s){const u=[];return this.forEach((m=>{const v=i.bind(s)(m);v&&u.push(v)})),u}filter(i,s){return i=coerceElementMatchingCallback(i),new ArraySlice(this.elements.filter(i,s))}reject(i,s){return i=coerceElementMatchingCallback(i),new ArraySlice(this.elements.filter(m(i),s))}find(i,s){return i=coerceElementMatchingCallback(i),this.elements.find(i,s)}forEach(i,s){this.elements.forEach(i,s)}reduce(i,s){return this.elements.reduce(i,s)}includes(i){return this.elements.some((s=>s.equals(i)))}shift(){return this.elements.shift()}unshift(i){this.elements.unshift(this.refract(i))}push(i){return this.elements.push(this.refract(i)),this}add(i){this.push(i)}get(i){return this.elements[i]}getValue(i){const s=this.elements[i];if(s)return s.toValue()}get length(){return this.elements.length}get isEmpty(){return 0===this.elements.length}get first(){return this.elements[0]}}\"undefined\"!=typeof Symbol&&(ArraySlice.prototype[Symbol.iterator]=function symbol(){return this.elements[Symbol.iterator]()}),i.exports=ArraySlice},17645:i=>{class KeyValuePair{constructor(i,s){this.key=i,this.value=s}clone(){const i=new KeyValuePair;return this.key&&(i.key=this.key.clone()),this.value&&(i.value=this.value.clone()),i}}i.exports=KeyValuePair},78520:(i,s,u)=>{const m=u(45220),v=u(47037),_=u(81763),j=u(51584),M=u(13218),$=u(28219),W=u(99829);class Namespace{constructor(i){this.elementMap={},this.elementDetection=[],this.Element=W.Element,this.KeyValuePair=W.KeyValuePair,i&&i.noDefault||this.useDefault(),this._attributeElementKeys=[],this._attributeElementArrayKeys=[]}use(i){return i.namespace&&i.namespace({base:this}),i.load&&i.load({base:this}),this}useDefault(){return this.register(\"null\",W.NullElement).register(\"string\",W.StringElement).register(\"number\",W.NumberElement).register(\"boolean\",W.BooleanElement).register(\"array\",W.ArrayElement).register(\"object\",W.ObjectElement).register(\"member\",W.MemberElement).register(\"ref\",W.RefElement).register(\"link\",W.LinkElement),this.detect(m,W.NullElement,!1).detect(v,W.StringElement,!1).detect(_,W.NumberElement,!1).detect(j,W.BooleanElement,!1).detect(Array.isArray,W.ArrayElement,!1).detect(M,W.ObjectElement,!1),this}register(i,s){return this._elements=void 0,this.elementMap[i]=s,this}unregister(i){return this._elements=void 0,delete this.elementMap[i],this}detect(i,s,u){return void 0===u||u?this.elementDetection.unshift([i,s]):this.elementDetection.push([i,s]),this}toElement(i){if(i instanceof this.Element)return i;let s;for(let u=0;u<this.elementDetection.length;u+=1){const m=this.elementDetection[u][0],v=this.elementDetection[u][1];if(m(i)){s=new v(i);break}}return s}getElementClass(i){const s=this.elementMap[i];return void 0===s?this.Element:s}fromRefract(i){return this.serialiser.deserialise(i)}toRefract(i){return this.serialiser.serialise(i)}get elements(){return void 0===this._elements&&(this._elements={Element:this.Element},Object.keys(this.elementMap).forEach((i=>{const s=i[0].toUpperCase()+i.substr(1);this._elements[s]=this.elementMap[i]}))),this._elements}get serialiser(){return new $(this)}}$.prototype.Namespace=Namespace,i.exports=Namespace},87526:(i,s,u)=>{const m=u(94885),v=u(42566);class ObjectSlice extends v{map(i,s){return this.elements.map((u=>i.bind(s)(u.value,u.key,u)))}filter(i,s){return new ObjectSlice(this.elements.filter((u=>i.bind(s)(u.value,u.key,u))))}reject(i,s){return this.filter(m(i.bind(s)))}forEach(i,s){return this.elements.forEach(((u,m)=>{i.bind(s)(u.value,u.key,u,m)}))}keys(){return this.map(((i,s)=>s.toValue()))}values(){return this.map((i=>i.toValue()))}}i.exports=ObjectSlice},99829:(i,s,u)=>{const m=u(3079),v=u(96295),_=u(16036),j=u(91090),M=u(18866),$=u(35804),W=u(5946),X=u(76735),Y=u(59964),Z=u(38588),ee=u(42566),ie=u(87526),ae=u(17645);function refract(i){if(i instanceof m)return i;if(\"string\"==typeof i)return new _(i);if(\"number\"==typeof i)return new j(i);if(\"boolean\"==typeof i)return new M(i);if(null===i)return new v;if(Array.isArray(i))return new $(i.map(refract));if(\"object\"==typeof i){return new X(i)}return i}m.prototype.ObjectElement=X,m.prototype.RefElement=Z,m.prototype.MemberElement=W,m.prototype.refract=refract,ee.prototype.refract=refract,i.exports={Element:m,NullElement:v,StringElement:_,NumberElement:j,BooleanElement:M,ArrayElement:$,MemberElement:W,ObjectElement:X,LinkElement:Y,RefElement:Z,refract,ArraySlice:ee,ObjectSlice:ie,KeyValuePair:ae}},59964:(i,s,u)=>{const m=u(3079);i.exports=class LinkElement extends m{constructor(i,s,u){super(i||[],s,u),this.element=\"link\"}get relation(){return this.attributes.get(\"relation\")}set relation(i){this.attributes.set(\"relation\",i)}get href(){return this.attributes.get(\"href\")}set href(i){this.attributes.set(\"href\",i)}}},38588:(i,s,u)=>{const m=u(3079);i.exports=class RefElement extends m{constructor(i,s,u){super(i||[],s,u),this.element=\"ref\",this.path||(this.path=\"element\")}get path(){return this.attributes.get(\"path\")}set path(i){this.attributes.set(\"path\",i)}}},43500:(i,s,u)=>{const m=u(78520),v=u(99829);s.lS=m,u(17645),s.O4=v.ArraySlice,v.ObjectSlice,s.W_=v.Element,s.RP=v.StringElement,s.VL=v.NumberElement,s.hh=v.BooleanElement,s.zr=v.NullElement,s.ON=v.ArrayElement,s.Sb=v.ObjectElement,s.c6=v.MemberElement,s.tK=v.RefElement,s.EA=v.LinkElement,s.Qc=v.refract,u(28219),u(3414)},35804:(i,s,u)=>{const m=u(94885),v=u(3079),_=u(42566);class ArrayElement extends v{constructor(i,s,u){super(i||[],s,u),this.element=\"array\"}primitive(){return\"array\"}get(i){return this.content[i]}getValue(i){const s=this.get(i);if(s)return s.toValue()}getIndex(i){return this.content[i]}set(i,s){return this.content[i]=this.refract(s),this}remove(i){const s=this.content.splice(i,1);return s.length?s[0]:null}map(i,s){return this.content.map(i,s)}flatMap(i,s){return this.map(i,s).reduce(((i,s)=>i.concat(s)),[])}compactMap(i,s){const u=[];return this.forEach((m=>{const v=i.bind(s)(m);v&&u.push(v)})),u}filter(i,s){return new _(this.content.filter(i,s))}reject(i,s){return this.filter(m(i),s)}reduce(i,s){let u,m;void 0!==s?(u=0,m=this.refract(s)):(u=1,m=\"object\"===this.primitive()?this.first.value:this.first);for(let s=u;s<this.length;s+=1){const u=this.content[s];m=\"object\"===this.primitive()?this.refract(i(m,u.value,u.key,u,this)):this.refract(i(m,u,s,this))}return m}forEach(i,s){this.content.forEach(((u,m)=>{i.bind(s)(u,this.refract(m))}))}shift(){return this.content.shift()}unshift(i){this.content.unshift(this.refract(i))}push(i){return this.content.push(this.refract(i)),this}add(i){this.push(i)}findElements(i,s){const u=s||{},m=!!u.recursive,v=void 0===u.results?[]:u.results;return this.forEach(((s,u,_)=>{m&&void 0!==s.findElements&&s.findElements(i,{results:v,recursive:m}),i(s,u,_)&&v.push(s)})),v}find(i){return new _(this.findElements(i,{recursive:!0}))}findByElement(i){return this.find((s=>s.element===i))}findByClass(i){return this.find((s=>s.classes.includes(i)))}getById(i){return this.find((s=>s.id.toValue()===i)).first}includes(i){return this.content.some((s=>s.equals(i)))}contains(i){return this.includes(i)}empty(){return new this.constructor([])}\"fantasy-land/empty\"(){return this.empty()}concat(i){return new this.constructor(this.content.concat(i.content))}\"fantasy-land/concat\"(i){return this.concat(i)}\"fantasy-land/map\"(i){return new this.constructor(this.map(i))}\"fantasy-land/chain\"(i){return this.map((s=>i(s)),this).reduce(((i,s)=>i.concat(s)),this.empty())}\"fantasy-land/filter\"(i){return new this.constructor(this.content.filter(i))}\"fantasy-land/reduce\"(i,s){return this.content.reduce(i,s)}get length(){return this.content.length}get isEmpty(){return 0===this.content.length}get first(){return this.getIndex(0)}get second(){return this.getIndex(1)}get last(){return this.getIndex(this.length-1)}}ArrayElement.empty=function empty(){return new this},ArrayElement[\"fantasy-land/empty\"]=ArrayElement.empty,\"undefined\"!=typeof Symbol&&(ArrayElement.prototype[Symbol.iterator]=function symbol(){return this.content[Symbol.iterator]()}),i.exports=ArrayElement},18866:(i,s,u)=>{const m=u(3079);i.exports=class BooleanElement extends m{constructor(i,s,u){super(i,s,u),this.element=\"boolean\"}primitive(){return\"boolean\"}}},3079:(i,s,u)=>{const m=u(18446),v=u(17645),_=u(42566);class Element{constructor(i,s,u){s&&(this.meta=s),u&&(this.attributes=u),this.content=i}freeze(){Object.isFrozen(this)||(this._meta&&(this.meta.parent=this,this.meta.freeze()),this._attributes&&(this.attributes.parent=this,this.attributes.freeze()),this.children.forEach((i=>{i.parent=this,i.freeze()}),this),this.content&&Array.isArray(this.content)&&Object.freeze(this.content),Object.freeze(this))}primitive(){}clone(){const i=new this.constructor;return i.element=this.element,this.meta.length&&(i._meta=this.meta.clone()),this.attributes.length&&(i._attributes=this.attributes.clone()),this.content?this.content.clone?i.content=this.content.clone():Array.isArray(this.content)?i.content=this.content.map((i=>i.clone())):i.content=this.content:i.content=this.content,i}toValue(){return this.content instanceof Element?this.content.toValue():this.content instanceof v?{key:this.content.key.toValue(),value:this.content.value?this.content.value.toValue():void 0}:this.content&&this.content.map?this.content.map((i=>i.toValue()),this):this.content}toRef(i){if(\"\"===this.id.toValue())throw Error(\"Cannot create reference to an element that does not contain an ID\");const s=new this.RefElement(this.id.toValue());return i&&(s.path=i),s}findRecursive(...i){if(arguments.length>1&&!this.isFrozen)throw new Error(\"Cannot find recursive with multiple element names without first freezing the element. Call `element.freeze()`\");const s=i.pop();let u=new _;const append=(i,s)=>(i.push(s),i),checkElement=(i,u)=>{u.element===s&&i.push(u);const m=u.findRecursive(s);return m&&m.reduce(append,i),u.content instanceof v&&(u.content.key&&checkElement(i,u.content.key),u.content.value&&checkElement(i,u.content.value)),i};return this.content&&(this.content.element&&checkElement(u,this.content),Array.isArray(this.content)&&this.content.reduce(checkElement,u)),i.isEmpty||(u=u.filter((s=>{let u=s.parents.map((i=>i.element));for(const s in i){const m=i[s],v=u.indexOf(m);if(-1===v)return!1;u=u.splice(0,v)}return!0}))),u}set(i){return this.content=i,this}equals(i){return m(this.toValue(),i)}getMetaProperty(i,s){if(!this.meta.hasKey(i)){if(this.isFrozen){const i=this.refract(s);return i.freeze(),i}this.meta.set(i,s)}return this.meta.get(i)}setMetaProperty(i,s){this.meta.set(i,s)}get element(){return this._storedElement||\"element\"}set element(i){this._storedElement=i}get content(){return this._content}set content(i){if(i instanceof Element)this._content=i;else if(i instanceof _)this.content=i.elements;else if(\"string\"==typeof i||\"number\"==typeof i||\"boolean\"==typeof i||\"null\"===i||null==i)this._content=i;else if(i instanceof v)this._content=i;else if(Array.isArray(i))this._content=i.map(this.refract);else{if(\"object\"!=typeof i)throw new Error(\"Cannot set content to given value\");this._content=Object.keys(i).map((s=>new this.MemberElement(s,i[s])))}}get meta(){if(!this._meta){if(this.isFrozen){const i=new this.ObjectElement;return i.freeze(),i}this._meta=new this.ObjectElement}return this._meta}set meta(i){i instanceof this.ObjectElement?this._meta=i:this.meta.set(i||{})}get attributes(){if(!this._attributes){if(this.isFrozen){const i=new this.ObjectElement;return i.freeze(),i}this._attributes=new this.ObjectElement}return this._attributes}set attributes(i){i instanceof this.ObjectElement?this._attributes=i:this.attributes.set(i||{})}get id(){return this.getMetaProperty(\"id\",\"\")}set id(i){this.setMetaProperty(\"id\",i)}get classes(){return this.getMetaProperty(\"classes\",[])}set classes(i){this.setMetaProperty(\"classes\",i)}get title(){return this.getMetaProperty(\"title\",\"\")}set title(i){this.setMetaProperty(\"title\",i)}get description(){return this.getMetaProperty(\"description\",\"\")}set description(i){this.setMetaProperty(\"description\",i)}get links(){return this.getMetaProperty(\"links\",[])}set links(i){this.setMetaProperty(\"links\",i)}get isFrozen(){return Object.isFrozen(this)}get parents(){let{parent:i}=this;const s=new _;for(;i;)s.push(i),i=i.parent;return s}get children(){if(Array.isArray(this.content))return new _(this.content);if(this.content instanceof v){const i=new _([this.content.key]);return this.content.value&&i.push(this.content.value),i}return this.content instanceof Element?new _([this.content]):new _}get recursiveChildren(){const i=new _;return this.children.forEach((s=>{i.push(s),s.recursiveChildren.forEach((s=>{i.push(s)}))})),i}}i.exports=Element},5946:(i,s,u)=>{const m=u(17645),v=u(3079);i.exports=class MemberElement extends v{constructor(i,s,u,v){super(new m,u,v),this.element=\"member\",this.key=i,this.value=s}get key(){return this.content.key}set key(i){this.content.key=this.refract(i)}get value(){return this.content.value}set value(i){this.content.value=this.refract(i)}}},96295:(i,s,u)=>{const m=u(3079);i.exports=class NullElement extends m{constructor(i,s,u){super(i||null,s,u),this.element=\"null\"}primitive(){return\"null\"}set(){return new Error(\"Cannot set the value of null\")}}},91090:(i,s,u)=>{const m=u(3079);i.exports=class NumberElement extends m{constructor(i,s,u){super(i,s,u),this.element=\"number\"}primitive(){return\"number\"}}},76735:(i,s,u)=>{const m=u(94885),v=u(13218),_=u(35804),j=u(5946),M=u(87526);i.exports=class ObjectElement extends _{constructor(i,s,u){super(i||[],s,u),this.element=\"object\"}primitive(){return\"object\"}toValue(){return this.content.reduce(((i,s)=>(i[s.key.toValue()]=s.value?s.value.toValue():void 0,i)),{})}get(i){const s=this.getMember(i);if(s)return s.value}getMember(i){if(void 0!==i)return this.content.find((s=>s.key.toValue()===i))}remove(i){let s=null;return this.content=this.content.filter((u=>u.key.toValue()!==i||(s=u,!1))),s}getKey(i){const s=this.getMember(i);if(s)return s.key}set(i,s){if(v(i))return Object.keys(i).forEach((s=>{this.set(s,i[s])})),this;const u=i,m=this.getMember(u);return m?m.value=s:this.content.push(new j(u,s)),this}keys(){return this.content.map((i=>i.key.toValue()))}values(){return this.content.map((i=>i.value.toValue()))}hasKey(i){return this.content.some((s=>s.key.equals(i)))}items(){return this.content.map((i=>[i.key.toValue(),i.value.toValue()]))}map(i,s){return this.content.map((u=>i.bind(s)(u.value,u.key,u)))}compactMap(i,s){const u=[];return this.forEach(((m,v,_)=>{const j=i.bind(s)(m,v,_);j&&u.push(j)})),u}filter(i,s){return new M(this.content).filter(i,s)}reject(i,s){return this.filter(m(i),s)}forEach(i,s){return this.content.forEach((u=>i.bind(s)(u.value,u.key,u)))}}},16036:(i,s,u)=>{const m=u(3079);i.exports=class StringElement extends m{constructor(i,s,u){super(i,s,u),this.element=\"string\"}primitive(){return\"string\"}get length(){return this.content.length}}},3414:(i,s,u)=>{const m=u(28219);i.exports=class JSON06Serialiser extends m{serialise(i){if(!(i instanceof this.namespace.elements.Element))throw new TypeError(`Given element \\`${i}\\` is not an Element instance`);let s;i._attributes&&i.attributes.get(\"variable\")&&(s=i.attributes.get(\"variable\"));const u={element:i.element};i._meta&&i._meta.length>0&&(u.meta=this.serialiseObject(i.meta));const m=\"enum\"===i.element||-1!==i.attributes.keys().indexOf(\"enumerations\");if(m){const s=this.enumSerialiseAttributes(i);s&&(u.attributes=s)}else if(i._attributes&&i._attributes.length>0){let{attributes:m}=i;m.get(\"metadata\")&&(m=m.clone(),m.set(\"meta\",m.get(\"metadata\")),m.remove(\"metadata\")),\"member\"===i.element&&s&&(m=m.clone(),m.remove(\"variable\")),m.length>0&&(u.attributes=this.serialiseObject(m))}if(m)u.content=this.enumSerialiseContent(i,u);else if(this[`${i.element}SerialiseContent`])u.content=this[`${i.element}SerialiseContent`](i,u);else if(void 0!==i.content){let m;s&&i.content.key?(m=i.content.clone(),m.key.attributes.set(\"variable\",s),m=this.serialiseContent(m)):m=this.serialiseContent(i.content),this.shouldSerialiseContent(i,m)&&(u.content=m)}else this.shouldSerialiseContent(i,i.content)&&i instanceof this.namespace.elements.Array&&(u.content=[]);return u}shouldSerialiseContent(i,s){return\"parseResult\"===i.element||\"httpRequest\"===i.element||\"httpResponse\"===i.element||\"category\"===i.element||\"link\"===i.element||void 0!==s&&(!Array.isArray(s)||0!==s.length)}refSerialiseContent(i,s){return delete s.attributes,{href:i.toValue(),path:i.path.toValue()}}sourceMapSerialiseContent(i){return i.toValue()}dataStructureSerialiseContent(i){return[this.serialiseContent(i.content)]}enumSerialiseAttributes(i){const s=i.attributes.clone(),u=s.remove(\"enumerations\")||new this.namespace.elements.Array([]),m=s.get(\"default\");let v=s.get(\"samples\")||new this.namespace.elements.Array([]);if(m&&m.content&&(m.content.attributes&&m.content.attributes.remove(\"typeAttributes\"),s.set(\"default\",new this.namespace.elements.Array([m.content]))),v.forEach((i=>{i.content&&i.content.element&&i.content.attributes.remove(\"typeAttributes\")})),i.content&&0!==u.length&&v.unshift(i.content),v=v.map((i=>i instanceof this.namespace.elements.Array?[i]:new this.namespace.elements.Array([i.content]))),v.length&&s.set(\"samples\",v),s.length>0)return this.serialiseObject(s)}enumSerialiseContent(i){if(i._attributes){const s=i.attributes.get(\"enumerations\");if(s&&s.length>0)return s.content.map((i=>{const s=i.clone();return s.attributes.remove(\"typeAttributes\"),this.serialise(s)}))}if(i.content){const s=i.content.clone();return s.attributes.remove(\"typeAttributes\"),[this.serialise(s)]}return[]}deserialise(i){if(\"string\"==typeof i)return new this.namespace.elements.String(i);if(\"number\"==typeof i)return new this.namespace.elements.Number(i);if(\"boolean\"==typeof i)return new this.namespace.elements.Boolean(i);if(null===i)return new this.namespace.elements.Null;if(Array.isArray(i))return new this.namespace.elements.Array(i.map(this.deserialise,this));const s=this.namespace.getElementClass(i.element),u=new s;u.element!==i.element&&(u.element=i.element),i.meta&&this.deserialiseObject(i.meta,u.meta),i.attributes&&this.deserialiseObject(i.attributes,u.attributes);const m=this.deserialiseContent(i.content);if(void 0===m&&null!==u.content||(u.content=m),\"enum\"===u.element){u.content&&u.attributes.set(\"enumerations\",u.content);let i=u.attributes.get(\"samples\");if(u.attributes.remove(\"samples\"),i){const m=i;i=new this.namespace.elements.Array,m.forEach((m=>{m.forEach((m=>{const v=new s(m);v.element=u.element,i.push(v)}))}));const v=i.shift();u.content=v?v.content:void 0,u.attributes.set(\"samples\",i)}else u.content=void 0;let m=u.attributes.get(\"default\");if(m&&m.length>0){m=m.get(0);const i=new s(m);i.element=u.element,u.attributes.set(\"default\",i)}}else if(\"dataStructure\"===u.element&&Array.isArray(u.content))[u.content]=u.content;else if(\"category\"===u.element){const i=u.attributes.get(\"meta\");i&&(u.attributes.set(\"metadata\",i),u.attributes.remove(\"meta\"))}else\"member\"===u.element&&u.key&&u.key._attributes&&u.key._attributes.getValue(\"variable\")&&(u.attributes.set(\"variable\",u.key.attributes.get(\"variable\")),u.key.attributes.remove(\"variable\"));return u}serialiseContent(i){if(i instanceof this.namespace.elements.Element)return this.serialise(i);if(i instanceof this.namespace.KeyValuePair){const s={key:this.serialise(i.key)};return i.value&&(s.value=this.serialise(i.value)),s}return i&&i.map?i.map(this.serialise,this):i}deserialiseContent(i){if(i){if(i.element)return this.deserialise(i);if(i.key){const s=new this.namespace.KeyValuePair(this.deserialise(i.key));return i.value&&(s.value=this.deserialise(i.value)),s}if(i.map)return i.map(this.deserialise,this)}return i}shouldRefract(i){return!!(i._attributes&&i.attributes.keys().length||i._meta&&i.meta.keys().length)||\"enum\"!==i.element&&(i.element!==i.primitive()||\"member\"===i.element)}convertKeyToRefract(i,s){return this.shouldRefract(s)?this.serialise(s):\"enum\"===s.element?this.serialiseEnum(s):\"array\"===s.element?s.map((s=>this.shouldRefract(s)||\"default\"===i?this.serialise(s):\"array\"===s.element||\"object\"===s.element||\"enum\"===s.element?s.children.map((i=>this.serialise(i))):s.toValue())):\"object\"===s.element?(s.content||[]).map(this.serialise,this):s.toValue()}serialiseEnum(i){return i.children.map((i=>this.serialise(i)))}serialiseObject(i){const s={};return i.forEach(((i,u)=>{if(i){const m=u.toValue();s[m]=this.convertKeyToRefract(m,i)}})),s}deserialiseObject(i,s){Object.keys(i).forEach((u=>{s.set(u,this.deserialise(i[u]))}))}}},28219:i=>{i.exports=class JSONSerialiser{constructor(i){this.namespace=i||new this.Namespace}serialise(i){if(!(i instanceof this.namespace.elements.Element))throw new TypeError(`Given element \\`${i}\\` is not an Element instance`);const s={element:i.element};i._meta&&i._meta.length>0&&(s.meta=this.serialiseObject(i.meta)),i._attributes&&i._attributes.length>0&&(s.attributes=this.serialiseObject(i.attributes));const u=this.serialiseContent(i.content);return void 0!==u&&(s.content=u),s}deserialise(i){if(!i.element)throw new Error(\"Given value is not an object containing an element name\");const s=new(this.namespace.getElementClass(i.element));s.element!==i.element&&(s.element=i.element),i.meta&&this.deserialiseObject(i.meta,s.meta),i.attributes&&this.deserialiseObject(i.attributes,s.attributes);const u=this.deserialiseContent(i.content);return void 0===u&&null!==s.content||(s.content=u),s}serialiseContent(i){if(i instanceof this.namespace.elements.Element)return this.serialise(i);if(i instanceof this.namespace.KeyValuePair){const s={key:this.serialise(i.key)};return i.value&&(s.value=this.serialise(i.value)),s}if(i&&i.map){if(0===i.length)return;return i.map(this.serialise,this)}return i}deserialiseContent(i){if(i){if(i.element)return this.deserialise(i);if(i.key){const s=new this.namespace.KeyValuePair(this.deserialise(i.key));return i.value&&(s.value=this.deserialise(i.value)),s}if(i.map)return i.map(this.deserialise,this)}return i}serialiseObject(i){const s={};if(i.forEach(((i,u)=>{i&&(s[u.toValue()]=this.serialise(i))})),0!==Object.keys(s).length)return s}deserialiseObject(i,s){Object.keys(i).forEach((u=>{s.set(u,this.deserialise(i[u]))}))}}},27418:i=>{\"use strict\";var s=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;i.exports=function shouldUseNative(){try{if(!Object.assign)return!1;var i=new String(\"abc\");if(i[5]=\"de\",\"5\"===Object.getOwnPropertyNames(i)[0])return!1;for(var s={},u=0;u<10;u++)s[\"_\"+String.fromCharCode(u)]=u;if(\"0123456789\"!==Object.getOwnPropertyNames(s).map((function(i){return s[i]})).join(\"\"))return!1;var m={};return\"abcdefghijklmnopqrst\".split(\"\").forEach((function(i){m[i]=i})),\"abcdefghijklmnopqrst\"===Object.keys(Object.assign({},m)).join(\"\")}catch(i){return!1}}()?Object.assign:function(i,v){for(var _,j,M=function toObject(i){if(null==i)throw new TypeError(\"Object.assign cannot be called with null or undefined\");return Object(i)}(i),$=1;$<arguments.length;$++){for(var W in _=Object(arguments[$]))u.call(_,W)&&(M[W]=_[W]);if(s){j=s(_);for(var X=0;X<j.length;X++)m.call(_,j[X])&&(M[j[X]]=_[j[X]])}}return M}},70631:(i,s,u)=>{var m=\"function\"==typeof Map&&Map.prototype,v=Object.getOwnPropertyDescriptor&&m?Object.getOwnPropertyDescriptor(Map.prototype,\"size\"):null,_=m&&v&&\"function\"==typeof v.get?v.get:null,j=m&&Map.prototype.forEach,M=\"function\"==typeof Set&&Set.prototype,$=Object.getOwnPropertyDescriptor&&M?Object.getOwnPropertyDescriptor(Set.prototype,\"size\"):null,W=M&&$&&\"function\"==typeof $.get?$.get:null,X=M&&Set.prototype.forEach,Y=\"function\"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,Z=\"function\"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,ee=\"function\"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,ie=Boolean.prototype.valueOf,ae=Object.prototype.toString,ce=Function.prototype.toString,le=String.prototype.match,pe=String.prototype.slice,de=String.prototype.replace,fe=String.prototype.toUpperCase,ye=String.prototype.toLowerCase,be=RegExp.prototype.test,_e=Array.prototype.concat,we=Array.prototype.join,Se=Array.prototype.slice,xe=Math.floor,Pe=\"function\"==typeof BigInt?BigInt.prototype.valueOf:null,Ie=Object.getOwnPropertySymbols,Te=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?Symbol.prototype.toString:null,Re=\"function\"==typeof Symbol&&\"object\"==typeof Symbol.iterator,qe=\"function\"==typeof Symbol&&Symbol.toStringTag&&(typeof Symbol.toStringTag===Re||\"symbol\")?Symbol.toStringTag:null,ze=Object.prototype.propertyIsEnumerable,Ve=(\"function\"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(i){return i.__proto__}:null);function addNumericSeparator(i,s){if(i===1/0||i===-1/0||i!=i||i&&i>-1e3&&i<1e3||be.call(/e/,s))return s;var u=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(\"number\"==typeof i){var m=i<0?-xe(-i):xe(i);if(m!==i){var v=String(m),_=pe.call(s,v.length+1);return de.call(v,u,\"$&_\")+\".\"+de.call(de.call(_,/([0-9]{3})/g,\"$&_\"),/_$/,\"\")}}return de.call(s,u,\"$&_\")}var We=u(24654),He=We.custom,Xe=isSymbol(He)?He:null;function wrapQuotes(i,s,u){var m=\"double\"===(u.quoteStyle||s)?'\"':\"'\";return m+i+m}function quote(i){return de.call(String(i),/\"/g,\"&quot;\")}function isArray(i){return!(\"[object Array]\"!==toStr(i)||qe&&\"object\"==typeof i&&qe in i)}function isRegExp(i){return!(\"[object RegExp]\"!==toStr(i)||qe&&\"object\"==typeof i&&qe in i)}function isSymbol(i){if(Re)return i&&\"object\"==typeof i&&i instanceof Symbol;if(\"symbol\"==typeof i)return!0;if(!i||\"object\"!=typeof i||!Te)return!1;try{return Te.call(i),!0}catch(i){}return!1}i.exports=function inspect_(i,s,u,m){var v=s||{};if(has(v,\"quoteStyle\")&&\"single\"!==v.quoteStyle&&\"double\"!==v.quoteStyle)throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');if(has(v,\"maxStringLength\")&&(\"number\"==typeof v.maxStringLength?v.maxStringLength<0&&v.maxStringLength!==1/0:null!==v.maxStringLength))throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');var M=!has(v,\"customInspect\")||v.customInspect;if(\"boolean\"!=typeof M&&\"symbol\"!==M)throw new TypeError(\"option \\\"customInspect\\\", if provided, must be `true`, `false`, or `'symbol'`\");if(has(v,\"indent\")&&null!==v.indent&&\"\\t\"!==v.indent&&!(parseInt(v.indent,10)===v.indent&&v.indent>0))throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');if(has(v,\"numericSeparator\")&&\"boolean\"!=typeof v.numericSeparator)throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');var $=v.numericSeparator;if(void 0===i)return\"undefined\";if(null===i)return\"null\";if(\"boolean\"==typeof i)return i?\"true\":\"false\";if(\"string\"==typeof i)return inspectString(i,v);if(\"number\"==typeof i){if(0===i)return 1/0/i>0?\"0\":\"-0\";var ae=String(i);return $?addNumericSeparator(i,ae):ae}if(\"bigint\"==typeof i){var fe=String(i)+\"n\";return $?addNumericSeparator(i,fe):fe}var be=void 0===v.depth?5:v.depth;if(void 0===u&&(u=0),u>=be&&be>0&&\"object\"==typeof i)return isArray(i)?\"[Array]\":\"[Object]\";var xe=function getIndent(i,s){var u;if(\"\\t\"===i.indent)u=\"\\t\";else{if(!(\"number\"==typeof i.indent&&i.indent>0))return null;u=we.call(Array(i.indent+1),\" \")}return{base:u,prev:we.call(Array(s+1),u)}}(v,u);if(void 0===m)m=[];else if(indexOf(m,i)>=0)return\"[Circular]\";function inspect(i,s,_){if(s&&(m=Se.call(m)).push(s),_){var j={depth:v.depth};return has(v,\"quoteStyle\")&&(j.quoteStyle=v.quoteStyle),inspect_(i,j,u+1,m)}return inspect_(i,v,u+1,m)}if(\"function\"==typeof i&&!isRegExp(i)){var Ie=function nameOf(i){if(i.name)return i.name;var s=le.call(ce.call(i),/^function\\s*([\\w$]+)/);if(s)return s[1];return null}(i),He=arrObjKeys(i,inspect);return\"[Function\"+(Ie?\": \"+Ie:\" (anonymous)\")+\"]\"+(He.length>0?\" { \"+we.call(He,\", \")+\" }\":\"\")}if(isSymbol(i)){var Ye=Re?de.call(String(i),/^(Symbol\\(.*\\))_[^)]*$/,\"$1\"):Te.call(i);return\"object\"!=typeof i||Re?Ye:markBoxed(Ye)}if(function isElement(i){if(!i||\"object\"!=typeof i)return!1;if(\"undefined\"!=typeof HTMLElement&&i instanceof HTMLElement)return!0;return\"string\"==typeof i.nodeName&&\"function\"==typeof i.getAttribute}(i)){for(var Qe=\"<\"+ye.call(String(i.nodeName)),et=i.attributes||[],tt=0;tt<et.length;tt++)Qe+=\" \"+et[tt].name+\"=\"+wrapQuotes(quote(et[tt].value),\"double\",v);return Qe+=\">\",i.childNodes&&i.childNodes.length&&(Qe+=\"...\"),Qe+=\"</\"+ye.call(String(i.nodeName))+\">\"}if(isArray(i)){if(0===i.length)return\"[]\";var rt=arrObjKeys(i,inspect);return xe&&!function singleLineValues(i){for(var s=0;s<i.length;s++)if(indexOf(i[s],\"\\n\")>=0)return!1;return!0}(rt)?\"[\"+indentedJoin(rt,xe)+\"]\":\"[ \"+we.call(rt,\", \")+\" ]\"}if(function isError(i){return!(\"[object Error]\"!==toStr(i)||qe&&\"object\"==typeof i&&qe in i)}(i)){var nt=arrObjKeys(i,inspect);return\"cause\"in Error.prototype||!(\"cause\"in i)||ze.call(i,\"cause\")?0===nt.length?\"[\"+String(i)+\"]\":\"{ [\"+String(i)+\"] \"+we.call(nt,\", \")+\" }\":\"{ [\"+String(i)+\"] \"+we.call(_e.call(\"[cause]: \"+inspect(i.cause),nt),\", \")+\" }\"}if(\"object\"==typeof i&&M){if(Xe&&\"function\"==typeof i[Xe]&&We)return We(i,{depth:be-u});if(\"symbol\"!==M&&\"function\"==typeof i.inspect)return i.inspect()}if(function isMap(i){if(!_||!i||\"object\"!=typeof i)return!1;try{_.call(i);try{W.call(i)}catch(i){return!0}return i instanceof Map}catch(i){}return!1}(i)){var ot=[];return j&&j.call(i,(function(s,u){ot.push(inspect(u,i,!0)+\" => \"+inspect(s,i))})),collectionOf(\"Map\",_.call(i),ot,xe)}if(function isSet(i){if(!W||!i||\"object\"!=typeof i)return!1;try{W.call(i);try{_.call(i)}catch(i){return!0}return i instanceof Set}catch(i){}return!1}(i)){var it=[];return X&&X.call(i,(function(s){it.push(inspect(s,i))})),collectionOf(\"Set\",W.call(i),it,xe)}if(function isWeakMap(i){if(!Y||!i||\"object\"!=typeof i)return!1;try{Y.call(i,Y);try{Z.call(i,Z)}catch(i){return!0}return i instanceof WeakMap}catch(i){}return!1}(i))return weakCollectionOf(\"WeakMap\");if(function isWeakSet(i){if(!Z||!i||\"object\"!=typeof i)return!1;try{Z.call(i,Z);try{Y.call(i,Y)}catch(i){return!0}return i instanceof WeakSet}catch(i){}return!1}(i))return weakCollectionOf(\"WeakSet\");if(function isWeakRef(i){if(!ee||!i||\"object\"!=typeof i)return!1;try{return ee.call(i),!0}catch(i){}return!1}(i))return weakCollectionOf(\"WeakRef\");if(function isNumber(i){return!(\"[object Number]\"!==toStr(i)||qe&&\"object\"==typeof i&&qe in i)}(i))return markBoxed(inspect(Number(i)));if(function isBigInt(i){if(!i||\"object\"!=typeof i||!Pe)return!1;try{return Pe.call(i),!0}catch(i){}return!1}(i))return markBoxed(inspect(Pe.call(i)));if(function isBoolean(i){return!(\"[object Boolean]\"!==toStr(i)||qe&&\"object\"==typeof i&&qe in i)}(i))return markBoxed(ie.call(i));if(function isString(i){return!(\"[object String]\"!==toStr(i)||qe&&\"object\"==typeof i&&qe in i)}(i))return markBoxed(inspect(String(i)));if(!function isDate(i){return!(\"[object Date]\"!==toStr(i)||qe&&\"object\"==typeof i&&qe in i)}(i)&&!isRegExp(i)){var at=arrObjKeys(i,inspect),st=Ve?Ve(i)===Object.prototype:i instanceof Object||i.constructor===Object,ct=i instanceof Object?\"\":\"null prototype\",lt=!st&&qe&&Object(i)===i&&qe in i?pe.call(toStr(i),8,-1):ct?\"Object\":\"\",ut=(st||\"function\"!=typeof i.constructor?\"\":i.constructor.name?i.constructor.name+\" \":\"\")+(lt||ct?\"[\"+we.call(_e.call([],lt||[],ct||[]),\": \")+\"] \":\"\");return 0===at.length?ut+\"{}\":xe?ut+\"{\"+indentedJoin(at,xe)+\"}\":ut+\"{ \"+we.call(at,\", \")+\" }\"}return String(i)};var Ye=Object.prototype.hasOwnProperty||function(i){return i in this};function has(i,s){return Ye.call(i,s)}function toStr(i){return ae.call(i)}function indexOf(i,s){if(i.indexOf)return i.indexOf(s);for(var u=0,m=i.length;u<m;u++)if(i[u]===s)return u;return-1}function inspectString(i,s){if(i.length>s.maxStringLength){var u=i.length-s.maxStringLength,m=\"... \"+u+\" more character\"+(u>1?\"s\":\"\");return inspectString(pe.call(i,0,s.maxStringLength),s)+m}return wrapQuotes(de.call(de.call(i,/(['\\\\])/g,\"\\\\$1\"),/[\\x00-\\x1f]/g,lowbyte),\"single\",s)}function lowbyte(i){var s=i.charCodeAt(0),u={8:\"b\",9:\"t\",10:\"n\",12:\"f\",13:\"r\"}[s];return u?\"\\\\\"+u:\"\\\\x\"+(s<16?\"0\":\"\")+fe.call(s.toString(16))}function markBoxed(i){return\"Object(\"+i+\")\"}function weakCollectionOf(i){return i+\" { ? }\"}function collectionOf(i,s,u,m){return i+\" (\"+s+\") {\"+(m?indentedJoin(u,m):we.call(u,\", \"))+\"}\"}function indentedJoin(i,s){if(0===i.length)return\"\";var u=\"\\n\"+s.prev+s.base;return u+we.call(i,\",\"+u)+\"\\n\"+s.prev}function arrObjKeys(i,s){var u=isArray(i),m=[];if(u){m.length=i.length;for(var v=0;v<i.length;v++)m[v]=has(i,v)?s(i[v],i):\"\"}var _,j=\"function\"==typeof Ie?Ie(i):[];if(Re){_={};for(var M=0;M<j.length;M++)_[\"$\"+j[M]]=j[M]}for(var $ in i)has(i,$)&&(u&&String(Number($))===$&&$<i.length||Re&&_[\"$\"+$]instanceof Symbol||(be.call(/[^\\w$]/,$)?m.push(s($,i)+\": \"+s(i[$],i)):m.push($+\": \"+s(i[$],i))));if(\"function\"==typeof Ie)for(var W=0;W<j.length;W++)ze.call(i,j[W])&&m.push(\"[\"+s(j[W])+\"]: \"+s(i[j[W]],i));return m}},34155:i=>{var s,u,m=i.exports={};function defaultSetTimout(){throw new Error(\"setTimeout has not been defined\")}function defaultClearTimeout(){throw new Error(\"clearTimeout has not been defined\")}function runTimeout(i){if(s===setTimeout)return setTimeout(i,0);if((s===defaultSetTimout||!s)&&setTimeout)return s=setTimeout,setTimeout(i,0);try{return s(i,0)}catch(u){try{return s.call(null,i,0)}catch(u){return s.call(this,i,0)}}}!function(){try{s=\"function\"==typeof setTimeout?setTimeout:defaultSetTimout}catch(i){s=defaultSetTimout}try{u=\"function\"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(i){u=defaultClearTimeout}}();var v,_=[],j=!1,M=-1;function cleanUpNextTick(){j&&v&&(j=!1,v.length?_=v.concat(_):M=-1,_.length&&drainQueue())}function drainQueue(){if(!j){var i=runTimeout(cleanUpNextTick);j=!0;for(var s=_.length;s;){for(v=_,_=[];++M<s;)v&&v[M].run();M=-1,s=_.length}v=null,j=!1,function runClearTimeout(i){if(u===clearTimeout)return clearTimeout(i);if((u===defaultClearTimeout||!u)&&clearTimeout)return u=clearTimeout,clearTimeout(i);try{return u(i)}catch(s){try{return u.call(null,i)}catch(s){return u.call(this,i)}}}(i)}}function Item(i,s){this.fun=i,this.array=s}function noop(){}m.nextTick=function(i){var s=new Array(arguments.length-1);if(arguments.length>1)for(var u=1;u<arguments.length;u++)s[u-1]=arguments[u];_.push(new Item(i,s)),1!==_.length||j||runTimeout(drainQueue)},Item.prototype.run=function(){this.fun.apply(null,this.array)},m.title=\"browser\",m.browser=!0,m.env={},m.argv=[],m.version=\"\",m.versions={},m.on=noop,m.addListener=noop,m.once=noop,m.off=noop,m.removeListener=noop,m.removeAllListeners=noop,m.emit=noop,m.prependListener=noop,m.prependOnceListener=noop,m.listeners=function(i){return[]},m.binding=function(i){throw new Error(\"process.binding is not supported\")},m.cwd=function(){return\"/\"},m.chdir=function(i){throw new Error(\"process.chdir is not supported\")},m.umask=function(){return 0}},92703:(i,s,u)=>{\"use strict\";var m=u(50414);function emptyFunction(){}function emptyFunctionWithReset(){}emptyFunctionWithReset.resetWarningCache=emptyFunction,i.exports=function(){function shim(i,s,u,v,_,j){if(j!==m){var M=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw M.name=\"Invariant Violation\",M}}function getShim(){return shim}shim.isRequired=shim;var i={array:shim,bigint:shim,bool:shim,func:shim,number:shim,object:shim,string:shim,symbol:shim,any:shim,arrayOf:getShim,element:shim,elementType:shim,instanceOf:getShim,node:shim,objectOf:getShim,oneOf:getShim,oneOfType:getShim,shape:getShim,exact:getShim,checkPropTypes:emptyFunctionWithReset,resetWarningCache:emptyFunction};return i.PropTypes=i,i}},45697:(i,s,u)=>{i.exports=u(92703)()},50414:i=>{\"use strict\";i.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},55798:i=>{\"use strict\";var s=String.prototype.replace,u=/%20/g,m=\"RFC1738\",v=\"RFC3986\";i.exports={default:v,formatters:{RFC1738:function(i){return s.call(i,u,\"+\")},RFC3986:function(i){return String(i)}},RFC1738:m,RFC3986:v}},80129:(i,s,u)=>{\"use strict\";var m=u(58261),v=u(55235),_=u(55798);i.exports={formats:_,parse:v,stringify:m}},55235:(i,s,u)=>{\"use strict\";var m=u(12769),v=Object.prototype.hasOwnProperty,_=Array.isArray,j={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:\"utf-8\",charsetSentinel:!1,comma:!1,decoder:m.decode,delimiter:\"&\",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},interpretNumericEntities=function(i){return i.replace(/&#(\\d+);/g,(function(i,s){return String.fromCharCode(parseInt(s,10))}))},parseArrayValue=function(i,s){return i&&\"string\"==typeof i&&s.comma&&i.indexOf(\",\")>-1?i.split(\",\"):i},M=function parseQueryStringKeys(i,s,u,m){if(i){var _=u.allowDots?i.replace(/\\.([^.[]+)/g,\"[$1]\"):i,j=/(\\[[^[\\]]*])/g,M=u.depth>0&&/(\\[[^[\\]]*])/.exec(_),$=M?_.slice(0,M.index):_,W=[];if($){if(!u.plainObjects&&v.call(Object.prototype,$)&&!u.allowPrototypes)return;W.push($)}for(var X=0;u.depth>0&&null!==(M=j.exec(_))&&X<u.depth;){if(X+=1,!u.plainObjects&&v.call(Object.prototype,M[1].slice(1,-1))&&!u.allowPrototypes)return;W.push(M[1])}return M&&W.push(\"[\"+_.slice(M.index)+\"]\"),function(i,s,u,m){for(var v=m?s:parseArrayValue(s,u),_=i.length-1;_>=0;--_){var j,M=i[_];if(\"[]\"===M&&u.parseArrays)j=[].concat(v);else{j=u.plainObjects?Object.create(null):{};var $=\"[\"===M.charAt(0)&&\"]\"===M.charAt(M.length-1)?M.slice(1,-1):M,W=parseInt($,10);u.parseArrays||\"\"!==$?!isNaN(W)&&M!==$&&String(W)===$&&W>=0&&u.parseArrays&&W<=u.arrayLimit?(j=[])[W]=v:\"__proto__\"!==$&&(j[$]=v):j={0:v}}v=j}return v}(W,s,u,m)}};i.exports=function(i,s){var u=function normalizeParseOptions(i){if(!i)return j;if(null!==i.decoder&&void 0!==i.decoder&&\"function\"!=typeof i.decoder)throw new TypeError(\"Decoder has to be a function.\");if(void 0!==i.charset&&\"utf-8\"!==i.charset&&\"iso-8859-1\"!==i.charset)throw new TypeError(\"The charset option must be either utf-8, iso-8859-1, or undefined\");var s=void 0===i.charset?j.charset:i.charset;return{allowDots:void 0===i.allowDots?j.allowDots:!!i.allowDots,allowPrototypes:\"boolean\"==typeof i.allowPrototypes?i.allowPrototypes:j.allowPrototypes,allowSparse:\"boolean\"==typeof i.allowSparse?i.allowSparse:j.allowSparse,arrayLimit:\"number\"==typeof i.arrayLimit?i.arrayLimit:j.arrayLimit,charset:s,charsetSentinel:\"boolean\"==typeof i.charsetSentinel?i.charsetSentinel:j.charsetSentinel,comma:\"boolean\"==typeof i.comma?i.comma:j.comma,decoder:\"function\"==typeof i.decoder?i.decoder:j.decoder,delimiter:\"string\"==typeof i.delimiter||m.isRegExp(i.delimiter)?i.delimiter:j.delimiter,depth:\"number\"==typeof i.depth||!1===i.depth?+i.depth:j.depth,ignoreQueryPrefix:!0===i.ignoreQueryPrefix,interpretNumericEntities:\"boolean\"==typeof i.interpretNumericEntities?i.interpretNumericEntities:j.interpretNumericEntities,parameterLimit:\"number\"==typeof i.parameterLimit?i.parameterLimit:j.parameterLimit,parseArrays:!1!==i.parseArrays,plainObjects:\"boolean\"==typeof i.plainObjects?i.plainObjects:j.plainObjects,strictNullHandling:\"boolean\"==typeof i.strictNullHandling?i.strictNullHandling:j.strictNullHandling}}(s);if(\"\"===i||null==i)return u.plainObjects?Object.create(null):{};for(var $=\"string\"==typeof i?function parseQueryStringValues(i,s){var u,M={},$=s.ignoreQueryPrefix?i.replace(/^\\?/,\"\"):i,W=s.parameterLimit===1/0?void 0:s.parameterLimit,X=$.split(s.delimiter,W),Y=-1,Z=s.charset;if(s.charsetSentinel)for(u=0;u<X.length;++u)0===X[u].indexOf(\"utf8=\")&&(\"utf8=%E2%9C%93\"===X[u]?Z=\"utf-8\":\"utf8=%26%2310003%3B\"===X[u]&&(Z=\"iso-8859-1\"),Y=u,u=X.length);for(u=0;u<X.length;++u)if(u!==Y){var ee,ie,ae=X[u],ce=ae.indexOf(\"]=\"),le=-1===ce?ae.indexOf(\"=\"):ce+1;-1===le?(ee=s.decoder(ae,j.decoder,Z,\"key\"),ie=s.strictNullHandling?null:\"\"):(ee=s.decoder(ae.slice(0,le),j.decoder,Z,\"key\"),ie=m.maybeMap(parseArrayValue(ae.slice(le+1),s),(function(i){return s.decoder(i,j.decoder,Z,\"value\")}))),ie&&s.interpretNumericEntities&&\"iso-8859-1\"===Z&&(ie=interpretNumericEntities(ie)),ae.indexOf(\"[]=\")>-1&&(ie=_(ie)?[ie]:ie),v.call(M,ee)?M[ee]=m.combine(M[ee],ie):M[ee]=ie}return M}(i,u):i,W=u.plainObjects?Object.create(null):{},X=Object.keys($),Y=0;Y<X.length;++Y){var Z=X[Y],ee=M(Z,$[Z],u,\"string\"==typeof i);W=m.merge(W,ee,u)}return!0===u.allowSparse?W:m.compact(W)}},58261:(i,s,u)=>{\"use strict\";var m=u(37478),v=u(12769),_=u(55798),j=Object.prototype.hasOwnProperty,M={brackets:function brackets(i){return i+\"[]\"},comma:\"comma\",indices:function indices(i,s){return i+\"[\"+s+\"]\"},repeat:function repeat(i){return i}},$=Array.isArray,W=String.prototype.split,X=Array.prototype.push,pushToArray=function(i,s){X.apply(i,$(s)?s:[s])},Y=Date.prototype.toISOString,Z=_.default,ee={addQueryPrefix:!1,allowDots:!1,charset:\"utf-8\",charsetSentinel:!1,delimiter:\"&\",encode:!0,encoder:v.encode,encodeValuesOnly:!1,format:Z,formatter:_.formatters[Z],indices:!1,serializeDate:function serializeDate(i){return Y.call(i)},skipNulls:!1,strictNullHandling:!1},ie={},ae=function stringify(i,s,u,_,j,M,X,Y,Z,ae,ce,le,pe,de,fe,ye){for(var be=i,_e=ye,we=0,Se=!1;void 0!==(_e=_e.get(ie))&&!Se;){var xe=_e.get(i);if(we+=1,void 0!==xe){if(xe===we)throw new RangeError(\"Cyclic object value\");Se=!0}void 0===_e.get(ie)&&(we=0)}if(\"function\"==typeof Y?be=Y(s,be):be instanceof Date?be=ce(be):\"comma\"===u&&$(be)&&(be=v.maybeMap(be,(function(i){return i instanceof Date?ce(i):i}))),null===be){if(j)return X&&!de?X(s,ee.encoder,fe,\"key\",le):s;be=\"\"}if(function isNonNullishPrimitive(i){return\"string\"==typeof i||\"number\"==typeof i||\"boolean\"==typeof i||\"symbol\"==typeof i||\"bigint\"==typeof i}(be)||v.isBuffer(be)){if(X){var Pe=de?s:X(s,ee.encoder,fe,\"key\",le);if(\"comma\"===u&&de){for(var Ie=W.call(String(be),\",\"),Te=\"\",Re=0;Re<Ie.length;++Re)Te+=(0===Re?\"\":\",\")+pe(X(Ie[Re],ee.encoder,fe,\"value\",le));return[pe(Pe)+(_&&$(be)&&1===Ie.length?\"[]\":\"\")+\"=\"+Te]}return[pe(Pe)+\"=\"+pe(X(be,ee.encoder,fe,\"value\",le))]}return[pe(s)+\"=\"+pe(String(be))]}var qe,ze=[];if(void 0===be)return ze;if(\"comma\"===u&&$(be))qe=[{value:be.length>0?be.join(\",\")||null:void 0}];else if($(Y))qe=Y;else{var Ve=Object.keys(be);qe=Z?Ve.sort(Z):Ve}for(var We=_&&$(be)&&1===be.length?s+\"[]\":s,He=0;He<qe.length;++He){var Xe=qe[He],Ye=\"object\"==typeof Xe&&void 0!==Xe.value?Xe.value:be[Xe];if(!M||null!==Ye){var Qe=$(be)?\"function\"==typeof u?u(We,Xe):We:We+(ae?\".\"+Xe:\"[\"+Xe+\"]\");ye.set(i,we);var et=m();et.set(ie,ye),pushToArray(ze,stringify(Ye,Qe,u,_,j,M,X,Y,Z,ae,ce,le,pe,de,fe,et))}}return ze};i.exports=function(i,s){var u,v=i,W=function normalizeStringifyOptions(i){if(!i)return ee;if(null!==i.encoder&&void 0!==i.encoder&&\"function\"!=typeof i.encoder)throw new TypeError(\"Encoder has to be a function.\");var s=i.charset||ee.charset;if(void 0!==i.charset&&\"utf-8\"!==i.charset&&\"iso-8859-1\"!==i.charset)throw new TypeError(\"The charset option must be either utf-8, iso-8859-1, or undefined\");var u=_.default;if(void 0!==i.format){if(!j.call(_.formatters,i.format))throw new TypeError(\"Unknown format option provided.\");u=i.format}var m=_.formatters[u],v=ee.filter;return(\"function\"==typeof i.filter||$(i.filter))&&(v=i.filter),{addQueryPrefix:\"boolean\"==typeof i.addQueryPrefix?i.addQueryPrefix:ee.addQueryPrefix,allowDots:void 0===i.allowDots?ee.allowDots:!!i.allowDots,charset:s,charsetSentinel:\"boolean\"==typeof i.charsetSentinel?i.charsetSentinel:ee.charsetSentinel,delimiter:void 0===i.delimiter?ee.delimiter:i.delimiter,encode:\"boolean\"==typeof i.encode?i.encode:ee.encode,encoder:\"function\"==typeof i.encoder?i.encoder:ee.encoder,encodeValuesOnly:\"boolean\"==typeof i.encodeValuesOnly?i.encodeValuesOnly:ee.encodeValuesOnly,filter:v,format:u,formatter:m,serializeDate:\"function\"==typeof i.serializeDate?i.serializeDate:ee.serializeDate,skipNulls:\"boolean\"==typeof i.skipNulls?i.skipNulls:ee.skipNulls,sort:\"function\"==typeof i.sort?i.sort:null,strictNullHandling:\"boolean\"==typeof i.strictNullHandling?i.strictNullHandling:ee.strictNullHandling}}(s);\"function\"==typeof W.filter?v=(0,W.filter)(\"\",v):$(W.filter)&&(u=W.filter);var X,Y=[];if(\"object\"!=typeof v||null===v)return\"\";X=s&&s.arrayFormat in M?s.arrayFormat:s&&\"indices\"in s?s.indices?\"indices\":\"repeat\":\"indices\";var Z=M[X];if(s&&\"commaRoundTrip\"in s&&\"boolean\"!=typeof s.commaRoundTrip)throw new TypeError(\"`commaRoundTrip` must be a boolean, or absent\");var ie=\"comma\"===Z&&s&&s.commaRoundTrip;u||(u=Object.keys(v)),W.sort&&u.sort(W.sort);for(var ce=m(),le=0;le<u.length;++le){var pe=u[le];W.skipNulls&&null===v[pe]||pushToArray(Y,ae(v[pe],pe,Z,ie,W.strictNullHandling,W.skipNulls,W.encode?W.encoder:null,W.filter,W.sort,W.allowDots,W.serializeDate,W.format,W.formatter,W.encodeValuesOnly,W.charset,ce))}var de=Y.join(W.delimiter),fe=!0===W.addQueryPrefix?\"?\":\"\";return W.charsetSentinel&&(\"iso-8859-1\"===W.charset?fe+=\"utf8=%26%2310003%3B&\":fe+=\"utf8=%E2%9C%93&\"),de.length>0?fe+de:\"\"}},12769:(i,s,u)=>{\"use strict\";var m=u(55798),v=Object.prototype.hasOwnProperty,_=Array.isArray,j=function(){for(var i=[],s=0;s<256;++s)i.push(\"%\"+((s<16?\"0\":\"\")+s.toString(16)).toUpperCase());return i}(),M=function arrayToObject(i,s){for(var u=s&&s.plainObjects?Object.create(null):{},m=0;m<i.length;++m)void 0!==i[m]&&(u[m]=i[m]);return u};i.exports={arrayToObject:M,assign:function assignSingleSource(i,s){return Object.keys(s).reduce((function(i,u){return i[u]=s[u],i}),i)},combine:function combine(i,s){return[].concat(i,s)},compact:function compact(i){for(var s=[{obj:{o:i},prop:\"o\"}],u=[],m=0;m<s.length;++m)for(var v=s[m],j=v.obj[v.prop],M=Object.keys(j),$=0;$<M.length;++$){var W=M[$],X=j[W];\"object\"==typeof X&&null!==X&&-1===u.indexOf(X)&&(s.push({obj:j,prop:W}),u.push(X))}return function compactQueue(i){for(;i.length>1;){var s=i.pop(),u=s.obj[s.prop];if(_(u)){for(var m=[],v=0;v<u.length;++v)void 0!==u[v]&&m.push(u[v]);s.obj[s.prop]=m}}}(s),i},decode:function(i,s,u){var m=i.replace(/\\+/g,\" \");if(\"iso-8859-1\"===u)return m.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(m)}catch(i){return m}},encode:function encode(i,s,u,v,_){if(0===i.length)return i;var M=i;if(\"symbol\"==typeof i?M=Symbol.prototype.toString.call(i):\"string\"!=typeof i&&(M=String(i)),\"iso-8859-1\"===u)return escape(M).replace(/%u[0-9a-f]{4}/gi,(function(i){return\"%26%23\"+parseInt(i.slice(2),16)+\"%3B\"}));for(var $=\"\",W=0;W<M.length;++W){var X=M.charCodeAt(W);45===X||46===X||95===X||126===X||X>=48&&X<=57||X>=65&&X<=90||X>=97&&X<=122||_===m.RFC1738&&(40===X||41===X)?$+=M.charAt(W):X<128?$+=j[X]:X<2048?$+=j[192|X>>6]+j[128|63&X]:X<55296||X>=57344?$+=j[224|X>>12]+j[128|X>>6&63]+j[128|63&X]:(W+=1,X=65536+((1023&X)<<10|1023&M.charCodeAt(W)),$+=j[240|X>>18]+j[128|X>>12&63]+j[128|X>>6&63]+j[128|63&X])}return $},isBuffer:function isBuffer(i){return!(!i||\"object\"!=typeof i)&&!!(i.constructor&&i.constructor.isBuffer&&i.constructor.isBuffer(i))},isRegExp:function isRegExp(i){return\"[object RegExp]\"===Object.prototype.toString.call(i)},maybeMap:function maybeMap(i,s){if(_(i)){for(var u=[],m=0;m<i.length;m+=1)u.push(s(i[m]));return u}return s(i)},merge:function merge(i,s,u){if(!s)return i;if(\"object\"!=typeof s){if(_(i))i.push(s);else{if(!i||\"object\"!=typeof i)return[i,s];(u&&(u.plainObjects||u.allowPrototypes)||!v.call(Object.prototype,s))&&(i[s]=!0)}return i}if(!i||\"object\"!=typeof i)return[i].concat(s);var m=i;return _(i)&&!_(s)&&(m=M(i,u)),_(i)&&_(s)?(s.forEach((function(s,m){if(v.call(i,m)){var _=i[m];_&&\"object\"==typeof _&&s&&\"object\"==typeof s?i[m]=merge(_,s,u):i.push(s)}else i[m]=s})),i):Object.keys(s).reduce((function(i,m){var _=s[m];return v.call(i,m)?i[m]=merge(i[m],_,u):i[m]=_,i}),m)}}},57129:(i,s)=>{\"use strict\";var u=Object.prototype.hasOwnProperty;function decode(i){try{return decodeURIComponent(i.replace(/\\+/g,\" \"))}catch(i){return null}}function encode(i){try{return encodeURIComponent(i)}catch(i){return null}}s.stringify=function querystringify(i,s){s=s||\"\";var m,v,_=[];for(v in\"string\"!=typeof s&&(s=\"?\"),i)if(u.call(i,v)){if((m=i[v])||null!=m&&!isNaN(m)||(m=\"\"),v=encode(v),m=encode(m),null===v||null===m)continue;_.push(v+\"=\"+m)}return _.length?s+_.join(\"&\"):\"\"},s.parse=function querystring(i){for(var s,u=/([^=?#&]+)=?([^&]*)/g,m={};s=u.exec(i);){var v=decode(s[1]),_=decode(s[2]);null===v||null===_||v in m||(m[v]=_)}return m}},14419:(i,s,u)=>{const m=u(60697),v=u(69450),_=m.types;i.exports=class RandExp{constructor(i,s){if(this._setDefaults(i),i instanceof RegExp)this.ignoreCase=i.ignoreCase,this.multiline=i.multiline,i=i.source;else{if(\"string\"!=typeof i)throw new Error(\"Expected a regexp or string\");this.ignoreCase=s&&-1!==s.indexOf(\"i\"),this.multiline=s&&-1!==s.indexOf(\"m\")}this.tokens=m(i)}_setDefaults(i){this.max=null!=i.max?i.max:null!=RandExp.prototype.max?RandExp.prototype.max:100,this.defaultRange=i.defaultRange?i.defaultRange:this.defaultRange.clone(),i.randInt&&(this.randInt=i.randInt)}gen(){return this._gen(this.tokens,[])}_gen(i,s){var u,m,v,j,M;switch(i.type){case _.ROOT:case _.GROUP:if(i.followedBy||i.notFollowedBy)return\"\";for(i.remember&&void 0===i.groupNumber&&(i.groupNumber=s.push(null)-1),m=\"\",j=0,M=(u=i.options?this._randSelect(i.options):i.stack).length;j<M;j++)m+=this._gen(u[j],s);return i.remember&&(s[i.groupNumber]=m),m;case _.POSITION:return\"\";case _.SET:var $=this._expand(i);return $.length?String.fromCharCode(this._randSelect($)):\"\";case _.REPETITION:for(v=this.randInt(i.min,i.max===1/0?i.min+this.max:i.max),m=\"\",j=0;j<v;j++)m+=this._gen(i.value,s);return m;case _.REFERENCE:return s[i.value-1]||\"\";case _.CHAR:var W=this.ignoreCase&&this._randBool()?this._toOtherCase(i.value):i.value;return String.fromCharCode(W)}}_toOtherCase(i){return i+(97<=i&&i<=122?-32:65<=i&&i<=90?32:0)}_randBool(){return!this.randInt(0,1)}_randSelect(i){return i instanceof v?i.index(this.randInt(0,i.length-1)):i[this.randInt(0,i.length-1)]}_expand(i){if(i.type===m.types.CHAR)return new v(i.value);if(i.type===m.types.RANGE)return new v(i.from,i.to);{let s=new v;for(let u=0;u<i.set.length;u++){let m=this._expand(i.set[u]);if(s.add(m),this.ignoreCase)for(let i=0;i<m.length;i++){let u=m.index(i),v=this._toOtherCase(u);u!==v&&s.add(v)}}return i.not?this.defaultRange.clone().subtract(s):this.defaultRange.clone().intersect(s)}}randInt(i,s){return i+Math.floor(Math.random()*(1+s-i))}get defaultRange(){return this._range=this._range||new v(32,126)}set defaultRange(i){this._range=i}static randexp(i,s){var u;return\"string\"==typeof i&&(i=new RegExp(i,s)),void 0===i._randexp?(u=new RandExp(i,s),i._randexp=u):(u=i._randexp)._setDefaults(i),u.gen()}static sugar(){RegExp.prototype.gen=function(){return RandExp.randexp(this)}}}},61798:(i,s,u)=>{\"use strict\";var m=u(34155),v=65536,_=4294967295;var j=u(89509).Buffer,M=u.g.crypto||u.g.msCrypto;M&&M.getRandomValues?i.exports=function randomBytes(i,s){if(i>_)throw new RangeError(\"requested too many random bytes\");var u=j.allocUnsafe(i);if(i>0)if(i>v)for(var $=0;$<i;$+=v)M.getRandomValues(u.slice($,$+v));else M.getRandomValues(u);if(\"function\"==typeof s)return m.nextTick((function(){s(null,u)}));return u}:i.exports=function oldBrowser(){throw new Error(\"Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11\")}},74300:(i,s,u)=>{\"use strict\";function _typeof(i){return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(i){return typeof i}:function(i){return i&&\"function\"==typeof Symbol&&i.constructor===Symbol&&i!==Symbol.prototype?\"symbol\":typeof i},_typeof(i)}Object.defineProperty(s,\"__esModule\",{value:!0}),s.CopyToClipboard=void 0;var m=_interopRequireDefault(u(67294)),v=_interopRequireDefault(u(20640)),_=[\"text\",\"onCopy\",\"options\",\"children\"];function _interopRequireDefault(i){return i&&i.__esModule?i:{default:i}}function ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function _objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?ownKeys(Object(u),!0).forEach((function(s){_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}function _objectWithoutProperties(i,s){if(null==i)return{};var u,m,v=function _objectWithoutPropertiesLoose(i,s){if(null==i)return{};var u,m,v={},_=Object.keys(i);for(m=0;m<_.length;m++)u=_[m],s.indexOf(u)>=0||(v[u]=i[u]);return v}(i,s);if(Object.getOwnPropertySymbols){var _=Object.getOwnPropertySymbols(i);for(m=0;m<_.length;m++)u=_[m],s.indexOf(u)>=0||Object.prototype.propertyIsEnumerable.call(i,u)&&(v[u]=i[u])}return v}function _defineProperties(i,s){for(var u=0;u<s.length;u++){var m=s[u];m.enumerable=m.enumerable||!1,m.configurable=!0,\"value\"in m&&(m.writable=!0),Object.defineProperty(i,m.key,m)}}function _setPrototypeOf(i,s){return _setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(i,s){return i.__proto__=s,i},_setPrototypeOf(i,s)}function _createSuper(i){var s=function _isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(i){return!1}}();return function _createSuperInternal(){var u,m=_getPrototypeOf(i);if(s){var v=_getPrototypeOf(this).constructor;u=Reflect.construct(m,arguments,v)}else u=m.apply(this,arguments);return function _possibleConstructorReturn(i,s){if(s&&(\"object\"===_typeof(s)||\"function\"==typeof s))return s;if(void 0!==s)throw new TypeError(\"Derived constructors may only return object or undefined\");return _assertThisInitialized(i)}(this,u)}}function _assertThisInitialized(i){if(void 0===i)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return i}function _getPrototypeOf(i){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(i){return i.__proto__||Object.getPrototypeOf(i)},_getPrototypeOf(i)}function _defineProperty(i,s,u){return s in i?Object.defineProperty(i,s,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[s]=u,i}var j=function(i){!function _inherits(i,s){if(\"function\"!=typeof s&&null!==s)throw new TypeError(\"Super expression must either be null or a function\");i.prototype=Object.create(s&&s.prototype,{constructor:{value:i,writable:!0,configurable:!0}}),Object.defineProperty(i,\"prototype\",{writable:!1}),s&&_setPrototypeOf(i,s)}(CopyToClipboard,i);var s=_createSuper(CopyToClipboard);function CopyToClipboard(){var i;!function _classCallCheck(i,s){if(!(i instanceof s))throw new TypeError(\"Cannot call a class as a function\")}(this,CopyToClipboard);for(var u=arguments.length,_=new Array(u),j=0;j<u;j++)_[j]=arguments[j];return _defineProperty(_assertThisInitialized(i=s.call.apply(s,[this].concat(_))),\"onClick\",(function(s){var u=i.props,_=u.text,j=u.onCopy,M=u.children,$=u.options,W=m.default.Children.only(M),X=(0,v.default)(_,$);j&&j(_,X),W&&W.props&&\"function\"==typeof W.props.onClick&&W.props.onClick(s)})),i}return function _createClass(i,s,u){return s&&_defineProperties(i.prototype,s),u&&_defineProperties(i,u),Object.defineProperty(i,\"prototype\",{writable:!1}),i}(CopyToClipboard,[{key:\"render\",value:function render(){var i=this.props,s=(i.text,i.onCopy,i.options,i.children),u=_objectWithoutProperties(i,_),v=m.default.Children.only(s);return m.default.cloneElement(v,_objectSpread(_objectSpread({},u),{},{onClick:this.onClick}))}}]),CopyToClipboard}(m.default.PureComponent);s.CopyToClipboard=j,_defineProperty(j,\"defaultProps\",{onCopy:void 0,options:void 0})},74855:(i,s,u)=>{\"use strict\";var m=u(74300).CopyToClipboard;m.CopyToClipboard=m,i.exports=m},53441:(i,s,u)=>{\"use strict\";function _typeof(i){return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(i){return typeof i}:function(i){return i&&\"function\"==typeof Symbol&&i.constructor===Symbol&&i!==Symbol.prototype?\"symbol\":typeof i},_typeof(i)}Object.defineProperty(s,\"__esModule\",{value:!0}),s.DebounceInput=void 0;var m=_interopRequireDefault(u(67294)),v=_interopRequireDefault(u(91296)),_=[\"element\",\"onChange\",\"value\",\"minLength\",\"debounceTimeout\",\"forceNotifyByEnter\",\"forceNotifyOnBlur\",\"onKeyDown\",\"onBlur\",\"inputRef\"];function _interopRequireDefault(i){return i&&i.__esModule?i:{default:i}}function _objectWithoutProperties(i,s){if(null==i)return{};var u,m,v=function _objectWithoutPropertiesLoose(i,s){if(null==i)return{};var u,m,v={},_=Object.keys(i);for(m=0;m<_.length;m++)u=_[m],s.indexOf(u)>=0||(v[u]=i[u]);return v}(i,s);if(Object.getOwnPropertySymbols){var _=Object.getOwnPropertySymbols(i);for(m=0;m<_.length;m++)u=_[m],s.indexOf(u)>=0||Object.prototype.propertyIsEnumerable.call(i,u)&&(v[u]=i[u])}return v}function ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function _objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?ownKeys(Object(u),!0).forEach((function(s){_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}function _defineProperties(i,s){for(var u=0;u<s.length;u++){var m=s[u];m.enumerable=m.enumerable||!1,m.configurable=!0,\"value\"in m&&(m.writable=!0),Object.defineProperty(i,m.key,m)}}function _setPrototypeOf(i,s){return _setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(i,s){return i.__proto__=s,i},_setPrototypeOf(i,s)}function _createSuper(i){var s=function _isNativeReflectConstruct(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(i){return!1}}();return function _createSuperInternal(){var u,m=_getPrototypeOf(i);if(s){var v=_getPrototypeOf(this).constructor;u=Reflect.construct(m,arguments,v)}else u=m.apply(this,arguments);return function _possibleConstructorReturn(i,s){if(s&&(\"object\"===_typeof(s)||\"function\"==typeof s))return s;if(void 0!==s)throw new TypeError(\"Derived constructors may only return object or undefined\");return _assertThisInitialized(i)}(this,u)}}function _assertThisInitialized(i){if(void 0===i)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return i}function _getPrototypeOf(i){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(i){return i.__proto__||Object.getPrototypeOf(i)},_getPrototypeOf(i)}function _defineProperty(i,s,u){return s in i?Object.defineProperty(i,s,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[s]=u,i}var j=function(i){!function _inherits(i,s){if(\"function\"!=typeof s&&null!==s)throw new TypeError(\"Super expression must either be null or a function\");i.prototype=Object.create(s&&s.prototype,{constructor:{value:i,writable:!0,configurable:!0}}),Object.defineProperty(i,\"prototype\",{writable:!1}),s&&_setPrototypeOf(i,s)}(DebounceInput,i);var s=_createSuper(DebounceInput);function DebounceInput(i){var u;!function _classCallCheck(i,s){if(!(i instanceof s))throw new TypeError(\"Cannot call a class as a function\")}(this,DebounceInput),_defineProperty(_assertThisInitialized(u=s.call(this,i)),\"onChange\",(function(i){i.persist();var s=u.state.value,m=u.props.minLength;u.setState({value:i.target.value},(function(){var v=u.state.value;v.length>=m?u.notify(i):s.length>v.length&&u.notify(_objectSpread(_objectSpread({},i),{},{target:_objectSpread(_objectSpread({},i.target),{},{value:\"\"})}))}))})),_defineProperty(_assertThisInitialized(u),\"onKeyDown\",(function(i){\"Enter\"===i.key&&u.forceNotify(i);var s=u.props.onKeyDown;s&&(i.persist(),s(i))})),_defineProperty(_assertThisInitialized(u),\"onBlur\",(function(i){u.forceNotify(i);var s=u.props.onBlur;s&&(i.persist(),s(i))})),_defineProperty(_assertThisInitialized(u),\"createNotifier\",(function(i){if(i<0)u.notify=function(){return null};else if(0===i)u.notify=u.doNotify;else{var s=(0,v.default)((function(i){u.isDebouncing=!1,u.doNotify(i)}),i);u.notify=function(i){u.isDebouncing=!0,s(i)},u.flush=function(){return s.flush()},u.cancel=function(){u.isDebouncing=!1,s.cancel()}}})),_defineProperty(_assertThisInitialized(u),\"doNotify\",(function(){u.props.onChange.apply(void 0,arguments)})),_defineProperty(_assertThisInitialized(u),\"forceNotify\",(function(i){var s=u.props.debounceTimeout;if(u.isDebouncing||!(s>0)){u.cancel&&u.cancel();var m=u.state.value,v=u.props.minLength;m.length>=v?u.doNotify(i):u.doNotify(_objectSpread(_objectSpread({},i),{},{target:_objectSpread(_objectSpread({},i.target),{},{value:m})}))}})),u.isDebouncing=!1,u.state={value:void 0===i.value||null===i.value?\"\":i.value};var m=u.props.debounceTimeout;return u.createNotifier(m),u}return function _createClass(i,s,u){return s&&_defineProperties(i.prototype,s),u&&_defineProperties(i,u),Object.defineProperty(i,\"prototype\",{writable:!1}),i}(DebounceInput,[{key:\"componentDidUpdate\",value:function componentDidUpdate(i){if(!this.isDebouncing){var s=this.props,u=s.value,m=s.debounceTimeout,v=i.debounceTimeout,_=i.value,j=this.state.value;void 0!==u&&_!==u&&j!==u&&this.setState({value:u}),m!==v&&this.createNotifier(m)}}},{key:\"componentWillUnmount\",value:function componentWillUnmount(){this.flush&&this.flush()}},{key:\"render\",value:function render(){var i,s,u=this.props,v=u.element,j=(u.onChange,u.value,u.minLength,u.debounceTimeout,u.forceNotifyByEnter),M=u.forceNotifyOnBlur,$=u.onKeyDown,W=u.onBlur,X=u.inputRef,Y=_objectWithoutProperties(u,_),Z=this.state.value;i=j?{onKeyDown:this.onKeyDown}:$?{onKeyDown:$}:{},s=M?{onBlur:this.onBlur}:W?{onBlur:W}:{};var ee=X?{ref:X}:{};return m.default.createElement(v,_objectSpread(_objectSpread(_objectSpread(_objectSpread({},Y),{},{onChange:this.onChange,value:Z},i),s),ee))}}]),DebounceInput}(m.default.PureComponent);s.DebounceInput=j,_defineProperty(j,\"defaultProps\",{element:\"input\",type:\"text\",onKeyDown:void 0,onBlur:void 0,value:void 0,minLength:0,debounceTimeout:100,forceNotifyByEnter:!0,forceNotifyOnBlur:!0,inputRef:void 0})},775:(i,s,u)=>{\"use strict\";var m=u(53441).DebounceInput;m.DebounceInput=m,i.exports=m},64448:(i,s,u)=>{\"use strict\";var m=u(67294),v=u(27418),_=u(63840);function y(i){for(var s=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+i,u=1;u<arguments.length;u++)s+=\"&args[]=\"+encodeURIComponent(arguments[u]);return\"Minified React error #\"+i+\"; visit \"+s+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!m)throw Error(y(227));var j=new Set,M={};function da(i,s){ea(i,s),ea(i+\"Capture\",s)}function ea(i,s){for(M[i]=s,i=0;i<s.length;i++)j.add(s[i])}var $=!(\"undefined\"==typeof window||void 0===window.document||void 0===window.document.createElement),W=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,X=Object.prototype.hasOwnProperty,Y={},Z={};function B(i,s,u,m,v,_,j){this.acceptsBooleans=2===s||3===s||4===s,this.attributeName=m,this.attributeNamespace=v,this.mustUseProperty=u,this.propertyName=i,this.type=s,this.sanitizeURL=_,this.removeEmptyString=j}var ee={};\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach((function(i){ee[i]=new B(i,0,!1,i,null,!1,!1)})),[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach((function(i){var s=i[0];ee[s]=new B(s,1,!1,i[1],null,!1,!1)})),[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach((function(i){ee[i]=new B(i,2,!1,i.toLowerCase(),null,!1,!1)})),[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach((function(i){ee[i]=new B(i,2,!1,i,null,!1,!1)})),\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach((function(i){ee[i]=new B(i,3,!1,i.toLowerCase(),null,!1,!1)})),[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach((function(i){ee[i]=new B(i,3,!0,i,null,!1,!1)})),[\"capture\",\"download\"].forEach((function(i){ee[i]=new B(i,4,!1,i,null,!1,!1)})),[\"cols\",\"rows\",\"size\",\"span\"].forEach((function(i){ee[i]=new B(i,6,!1,i,null,!1,!1)})),[\"rowSpan\",\"start\"].forEach((function(i){ee[i]=new B(i,5,!1,i.toLowerCase(),null,!1,!1)}));var ie=/[\\-:]([a-z])/g;function pa(i){return i[1].toUpperCase()}function qa(i,s,u,m){var v=ee.hasOwnProperty(s)?ee[s]:null;(null!==v?0===v.type:!m&&(2<s.length&&(\"o\"===s[0]||\"O\"===s[0])&&(\"n\"===s[1]||\"N\"===s[1])))||(function na(i,s,u,m){if(null==s||function ma(i,s,u,m){if(null!==u&&0===u.type)return!1;switch(typeof s){case\"function\":case\"symbol\":return!0;case\"boolean\":return!m&&(null!==u?!u.acceptsBooleans:\"data-\"!==(i=i.toLowerCase().slice(0,5))&&\"aria-\"!==i);default:return!1}}(i,s,u,m))return!0;if(m)return!1;if(null!==u)switch(u.type){case 3:return!s;case 4:return!1===s;case 5:return isNaN(s);case 6:return isNaN(s)||1>s}return!1}(s,u,v,m)&&(u=null),m||null===v?function la(i){return!!X.call(Z,i)||!X.call(Y,i)&&(W.test(i)?Z[i]=!0:(Y[i]=!0,!1))}(s)&&(null===u?i.removeAttribute(s):i.setAttribute(s,\"\"+u)):v.mustUseProperty?i[v.propertyName]=null===u?3!==v.type&&\"\":u:(s=v.attributeName,m=v.attributeNamespace,null===u?i.removeAttribute(s):(u=3===(v=v.type)||4===v&&!0===u?\"\":\"\"+u,m?i.setAttributeNS(m,s,u):i.setAttribute(s,u))))}\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach((function(i){var s=i.replace(ie,pa);ee[s]=new B(s,1,!1,i,null,!1,!1)})),\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach((function(i){var s=i.replace(ie,pa);ee[s]=new B(s,1,!1,i,\"http://www.w3.org/1999/xlink\",!1,!1)})),[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach((function(i){var s=i.replace(ie,pa);ee[s]=new B(s,1,!1,i,\"http://www.w3.org/XML/1998/namespace\",!1,!1)})),[\"tabIndex\",\"crossOrigin\"].forEach((function(i){ee[i]=new B(i,1,!1,i.toLowerCase(),null,!1,!1)})),ee.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1),[\"src\",\"href\",\"action\",\"formAction\"].forEach((function(i){ee[i]=new B(i,1,!1,i.toLowerCase(),null,!0,!0)}));var ae=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,ce=60103,le=60106,pe=60107,de=60108,fe=60114,ye=60109,be=60110,_e=60112,we=60113,Se=60120,xe=60115,Pe=60116,Ie=60121,Te=60128,Re=60129,qe=60130,ze=60131;if(\"function\"==typeof Symbol&&Symbol.for){var Ve=Symbol.for;ce=Ve(\"react.element\"),le=Ve(\"react.portal\"),pe=Ve(\"react.fragment\"),de=Ve(\"react.strict_mode\"),fe=Ve(\"react.profiler\"),ye=Ve(\"react.provider\"),be=Ve(\"react.context\"),_e=Ve(\"react.forward_ref\"),we=Ve(\"react.suspense\"),Se=Ve(\"react.suspense_list\"),xe=Ve(\"react.memo\"),Pe=Ve(\"react.lazy\"),Ie=Ve(\"react.block\"),Ve(\"react.scope\"),Te=Ve(\"react.opaque.id\"),Re=Ve(\"react.debug_trace_mode\"),qe=Ve(\"react.offscreen\"),ze=Ve(\"react.legacy_hidden\")}var We,He=\"function\"==typeof Symbol&&Symbol.iterator;function La(i){return null===i||\"object\"!=typeof i?null:\"function\"==typeof(i=He&&i[He]||i[\"@@iterator\"])?i:null}function Na(i){if(void 0===We)try{throw Error()}catch(i){var s=i.stack.trim().match(/\\n( *(at )?)/);We=s&&s[1]||\"\"}return\"\\n\"+We+i}var Xe=!1;function Pa(i,s){if(!i||Xe)return\"\";Xe=!0;var u=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(s)if(s=function(){throw Error()},Object.defineProperty(s.prototype,\"props\",{set:function(){throw Error()}}),\"object\"==typeof Reflect&&Reflect.construct){try{Reflect.construct(s,[])}catch(i){var m=i}Reflect.construct(i,[],s)}else{try{s.call()}catch(i){m=i}i.call(s.prototype)}else{try{throw Error()}catch(i){m=i}i()}}catch(i){if(i&&m&&\"string\"==typeof i.stack){for(var v=i.stack.split(\"\\n\"),_=m.stack.split(\"\\n\"),j=v.length-1,M=_.length-1;1<=j&&0<=M&&v[j]!==_[M];)M--;for(;1<=j&&0<=M;j--,M--)if(v[j]!==_[M]){if(1!==j||1!==M)do{if(j--,0>--M||v[j]!==_[M])return\"\\n\"+v[j].replace(\" at new \",\" at \")}while(1<=j&&0<=M);break}}}finally{Xe=!1,Error.prepareStackTrace=u}return(i=i?i.displayName||i.name:\"\")?Na(i):\"\"}function Qa(i){switch(i.tag){case 5:return Na(i.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return i=Pa(i.type,!1);case 11:return i=Pa(i.type.render,!1);case 22:return i=Pa(i.type._render,!1);case 1:return i=Pa(i.type,!0);default:return\"\"}}function Ra(i){if(null==i)return null;if(\"function\"==typeof i)return i.displayName||i.name||null;if(\"string\"==typeof i)return i;switch(i){case pe:return\"Fragment\";case le:return\"Portal\";case fe:return\"Profiler\";case de:return\"StrictMode\";case we:return\"Suspense\";case Se:return\"SuspenseList\"}if(\"object\"==typeof i)switch(i.$$typeof){case be:return(i.displayName||\"Context\")+\".Consumer\";case ye:return(i._context.displayName||\"Context\")+\".Provider\";case _e:var s=i.render;return s=s.displayName||s.name||\"\",i.displayName||(\"\"!==s?\"ForwardRef(\"+s+\")\":\"ForwardRef\");case xe:return Ra(i.type);case Ie:return Ra(i._render);case Pe:s=i._payload,i=i._init;try{return Ra(i(s))}catch(i){}}return null}function Sa(i){switch(typeof i){case\"boolean\":case\"number\":case\"object\":case\"string\":case\"undefined\":return i;default:return\"\"}}function Ta(i){var s=i.type;return(i=i.nodeName)&&\"input\"===i.toLowerCase()&&(\"checkbox\"===s||\"radio\"===s)}function Va(i){i._valueTracker||(i._valueTracker=function Ua(i){var s=Ta(i)?\"checked\":\"value\",u=Object.getOwnPropertyDescriptor(i.constructor.prototype,s),m=\"\"+i[s];if(!i.hasOwnProperty(s)&&void 0!==u&&\"function\"==typeof u.get&&\"function\"==typeof u.set){var v=u.get,_=u.set;return Object.defineProperty(i,s,{configurable:!0,get:function(){return v.call(this)},set:function(i){m=\"\"+i,_.call(this,i)}}),Object.defineProperty(i,s,{enumerable:u.enumerable}),{getValue:function(){return m},setValue:function(i){m=\"\"+i},stopTracking:function(){i._valueTracker=null,delete i[s]}}}}(i))}function Wa(i){if(!i)return!1;var s=i._valueTracker;if(!s)return!0;var u=s.getValue(),m=\"\";return i&&(m=Ta(i)?i.checked?\"true\":\"false\":i.value),(i=m)!==u&&(s.setValue(i),!0)}function Xa(i){if(void 0===(i=i||(\"undefined\"!=typeof document?document:void 0)))return null;try{return i.activeElement||i.body}catch(s){return i.body}}function Ya(i,s){var u=s.checked;return v({},s,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=u?u:i._wrapperState.initialChecked})}function Za(i,s){var u=null==s.defaultValue?\"\":s.defaultValue,m=null!=s.checked?s.checked:s.defaultChecked;u=Sa(null!=s.value?s.value:u),i._wrapperState={initialChecked:m,initialValue:u,controlled:\"checkbox\"===s.type||\"radio\"===s.type?null!=s.checked:null!=s.value}}function $a(i,s){null!=(s=s.checked)&&qa(i,\"checked\",s,!1)}function ab(i,s){$a(i,s);var u=Sa(s.value),m=s.type;if(null!=u)\"number\"===m?(0===u&&\"\"===i.value||i.value!=u)&&(i.value=\"\"+u):i.value!==\"\"+u&&(i.value=\"\"+u);else if(\"submit\"===m||\"reset\"===m)return void i.removeAttribute(\"value\");s.hasOwnProperty(\"value\")?bb(i,s.type,u):s.hasOwnProperty(\"defaultValue\")&&bb(i,s.type,Sa(s.defaultValue)),null==s.checked&&null!=s.defaultChecked&&(i.defaultChecked=!!s.defaultChecked)}function cb(i,s,u){if(s.hasOwnProperty(\"value\")||s.hasOwnProperty(\"defaultValue\")){var m=s.type;if(!(\"submit\"!==m&&\"reset\"!==m||void 0!==s.value&&null!==s.value))return;s=\"\"+i._wrapperState.initialValue,u||s===i.value||(i.value=s),i.defaultValue=s}\"\"!==(u=i.name)&&(i.name=\"\"),i.defaultChecked=!!i._wrapperState.initialChecked,\"\"!==u&&(i.name=u)}function bb(i,s,u){\"number\"===s&&Xa(i.ownerDocument)===i||(null==u?i.defaultValue=\"\"+i._wrapperState.initialValue:i.defaultValue!==\"\"+u&&(i.defaultValue=\"\"+u))}function eb(i,s){return i=v({children:void 0},s),(s=function db(i){var s=\"\";return m.Children.forEach(i,(function(i){null!=i&&(s+=i)})),s}(s.children))&&(i.children=s),i}function fb(i,s,u,m){if(i=i.options,s){s={};for(var v=0;v<u.length;v++)s[\"$\"+u[v]]=!0;for(u=0;u<i.length;u++)v=s.hasOwnProperty(\"$\"+i[u].value),i[u].selected!==v&&(i[u].selected=v),v&&m&&(i[u].defaultSelected=!0)}else{for(u=\"\"+Sa(u),s=null,v=0;v<i.length;v++){if(i[v].value===u)return i[v].selected=!0,void(m&&(i[v].defaultSelected=!0));null!==s||i[v].disabled||(s=i[v])}null!==s&&(s.selected=!0)}}function gb(i,s){if(null!=s.dangerouslySetInnerHTML)throw Error(y(91));return v({},s,{value:void 0,defaultValue:void 0,children:\"\"+i._wrapperState.initialValue})}function hb(i,s){var u=s.value;if(null==u){if(u=s.children,s=s.defaultValue,null!=u){if(null!=s)throw Error(y(92));if(Array.isArray(u)){if(!(1>=u.length))throw Error(y(93));u=u[0]}s=u}null==s&&(s=\"\"),u=s}i._wrapperState={initialValue:Sa(u)}}function ib(i,s){var u=Sa(s.value),m=Sa(s.defaultValue);null!=u&&((u=\"\"+u)!==i.value&&(i.value=u),null==s.defaultValue&&i.defaultValue!==u&&(i.defaultValue=u)),null!=m&&(i.defaultValue=\"\"+m)}function jb(i){var s=i.textContent;s===i._wrapperState.initialValue&&\"\"!==s&&null!==s&&(i.value=s)}var Ye={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};function lb(i){switch(i){case\"svg\":return\"http://www.w3.org/2000/svg\";case\"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(i,s){return null==i||\"http://www.w3.org/1999/xhtml\"===i?lb(s):\"http://www.w3.org/2000/svg\"===i&&\"foreignObject\"===s?\"http://www.w3.org/1999/xhtml\":i}var Qe,et,tt=(et=function(i,s){if(i.namespaceURI!==Ye.svg||\"innerHTML\"in i)i.innerHTML=s;else{for((Qe=Qe||document.createElement(\"div\")).innerHTML=\"<svg>\"+s.valueOf().toString()+\"</svg>\",s=Qe.firstChild;i.firstChild;)i.removeChild(i.firstChild);for(;s.firstChild;)i.appendChild(s.firstChild)}},\"undefined\"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(i,s,u,m){MSApp.execUnsafeLocalFunction((function(){return et(i,s)}))}:et);function pb(i,s){if(s){var u=i.firstChild;if(u&&u===i.lastChild&&3===u.nodeType)return void(u.nodeValue=s)}i.textContent=s}var rt={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},nt=[\"Webkit\",\"ms\",\"Moz\",\"O\"];function sb(i,s,u){return null==s||\"boolean\"==typeof s||\"\"===s?\"\":u||\"number\"!=typeof s||0===s||rt.hasOwnProperty(i)&&rt[i]?(\"\"+s).trim():s+\"px\"}function tb(i,s){for(var u in i=i.style,s)if(s.hasOwnProperty(u)){var m=0===u.indexOf(\"--\"),v=sb(u,s[u],m);\"float\"===u&&(u=\"cssFloat\"),m?i.setProperty(u,v):i[u]=v}}Object.keys(rt).forEach((function(i){nt.forEach((function(s){s=s+i.charAt(0).toUpperCase()+i.substring(1),rt[s]=rt[i]}))}));var ot=v({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vb(i,s){if(s){if(ot[i]&&(null!=s.children||null!=s.dangerouslySetInnerHTML))throw Error(y(137,i));if(null!=s.dangerouslySetInnerHTML){if(null!=s.children)throw Error(y(60));if(\"object\"!=typeof s.dangerouslySetInnerHTML||!(\"__html\"in s.dangerouslySetInnerHTML))throw Error(y(61))}if(null!=s.style&&\"object\"!=typeof s.style)throw Error(y(62))}}function wb(i,s){if(-1===i.indexOf(\"-\"))return\"string\"==typeof s.is;switch(i){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return!1;default:return!0}}function xb(i){return(i=i.target||i.srcElement||window).correspondingUseElement&&(i=i.correspondingUseElement),3===i.nodeType?i.parentNode:i}var it=null,at=null,st=null;function Bb(i){if(i=Cb(i)){if(\"function\"!=typeof it)throw Error(y(280));var s=i.stateNode;s&&(s=Db(s),it(i.stateNode,i.type,s))}}function Eb(i){at?st?st.push(i):st=[i]:at=i}function Fb(){if(at){var i=at,s=st;if(st=at=null,Bb(i),s)for(i=0;i<s.length;i++)Bb(s[i])}}function Gb(i,s){return i(s)}function Hb(i,s,u,m,v){return i(s,u,m,v)}function Ib(){}var ct=Gb,lt=!1,ut=!1;function Mb(){null===at&&null===st||(Ib(),Fb())}function Ob(i,s){var u=i.stateNode;if(null===u)return null;var m=Db(u);if(null===m)return null;u=m[s];e:switch(s){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":case\"onMouseEnter\":(m=!m.disabled)||(m=!(\"button\"===(i=i.type)||\"input\"===i||\"select\"===i||\"textarea\"===i)),i=!m;break e;default:i=!1}if(i)return null;if(u&&\"function\"!=typeof u)throw Error(y(231,s,typeof u));return u}var pt=!1;if($)try{var ht={};Object.defineProperty(ht,\"passive\",{get:function(){pt=!0}}),window.addEventListener(\"test\",ht,ht),window.removeEventListener(\"test\",ht,ht)}catch(et){pt=!1}function Rb(i,s,u,m,v,_,j,M,$){var W=Array.prototype.slice.call(arguments,3);try{s.apply(u,W)}catch(i){this.onError(i)}}var dt=!1,mt=null,yt=!1,gt=null,vt={onError:function(i){dt=!0,mt=i}};function Xb(i,s,u,m,v,_,j,M,$){dt=!1,mt=null,Rb.apply(vt,arguments)}function Zb(i){var s=i,u=i;if(i.alternate)for(;s.return;)s=s.return;else{i=s;do{0!=(1026&(s=i).flags)&&(u=s.return),i=s.return}while(i)}return 3===s.tag?u:null}function $b(i){if(13===i.tag){var s=i.memoizedState;if(null===s&&(null!==(i=i.alternate)&&(s=i.memoizedState)),null!==s)return s.dehydrated}return null}function ac(i){if(Zb(i)!==i)throw Error(y(188))}function cc(i){if(i=function bc(i){var s=i.alternate;if(!s){if(null===(s=Zb(i)))throw Error(y(188));return s!==i?null:i}for(var u=i,m=s;;){var v=u.return;if(null===v)break;var _=v.alternate;if(null===_){if(null!==(m=v.return)){u=m;continue}break}if(v.child===_.child){for(_=v.child;_;){if(_===u)return ac(v),i;if(_===m)return ac(v),s;_=_.sibling}throw Error(y(188))}if(u.return!==m.return)u=v,m=_;else{for(var j=!1,M=v.child;M;){if(M===u){j=!0,u=v,m=_;break}if(M===m){j=!0,m=v,u=_;break}M=M.sibling}if(!j){for(M=_.child;M;){if(M===u){j=!0,u=_,m=v;break}if(M===m){j=!0,m=_,u=v;break}M=M.sibling}if(!j)throw Error(y(189))}}if(u.alternate!==m)throw Error(y(190))}if(3!==u.tag)throw Error(y(188));return u.stateNode.current===u?i:s}(i),!i)return null;for(var s=i;;){if(5===s.tag||6===s.tag)return s;if(s.child)s.child.return=s,s=s.child;else{if(s===i)break;for(;!s.sibling;){if(!s.return||s.return===i)return null;s=s.return}s.sibling.return=s.return,s=s.sibling}}return null}function dc(i,s){for(var u=i.alternate;null!==s;){if(s===i||s===u)return!0;s=s.return}return!1}var bt,_t,wt,Et,St=!1,xt=[],Ot=null,kt=null,At=null,Ct=new Map,jt=new Map,Pt=[],It=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");function rc(i,s,u,m,v){return{blockedOn:i,domEventName:s,eventSystemFlags:16|u,nativeEvent:v,targetContainers:[m]}}function sc(i,s){switch(i){case\"focusin\":case\"focusout\":Ot=null;break;case\"dragenter\":case\"dragleave\":kt=null;break;case\"mouseover\":case\"mouseout\":At=null;break;case\"pointerover\":case\"pointerout\":Ct.delete(s.pointerId);break;case\"gotpointercapture\":case\"lostpointercapture\":jt.delete(s.pointerId)}}function tc(i,s,u,m,v,_){return null===i||i.nativeEvent!==_?(i=rc(s,u,m,v,_),null!==s&&(null!==(s=Cb(s))&&_t(s)),i):(i.eventSystemFlags|=m,s=i.targetContainers,null!==v&&-1===s.indexOf(v)&&s.push(v),i)}function vc(i){var s=wc(i.target);if(null!==s){var u=Zb(s);if(null!==u)if(13===(s=u.tag)){if(null!==(s=$b(u)))return i.blockedOn=s,void Et(i.lanePriority,(function(){_.unstable_runWithPriority(i.priority,(function(){wt(u)}))}))}else if(3===s&&u.stateNode.hydrate)return void(i.blockedOn=3===u.tag?u.stateNode.containerInfo:null)}i.blockedOn=null}function xc(i){if(null!==i.blockedOn)return!1;for(var s=i.targetContainers;0<s.length;){var u=yc(i.domEventName,i.eventSystemFlags,s[0],i.nativeEvent);if(null!==u)return null!==(s=Cb(u))&&_t(s),i.blockedOn=u,!1;s.shift()}return!0}function zc(i,s,u){xc(i)&&u.delete(s)}function Ac(){for(St=!1;0<xt.length;){var i=xt[0];if(null!==i.blockedOn){null!==(i=Cb(i.blockedOn))&&bt(i);break}for(var s=i.targetContainers;0<s.length;){var u=yc(i.domEventName,i.eventSystemFlags,s[0],i.nativeEvent);if(null!==u){i.blockedOn=u;break}s.shift()}null===i.blockedOn&&xt.shift()}null!==Ot&&xc(Ot)&&(Ot=null),null!==kt&&xc(kt)&&(kt=null),null!==At&&xc(At)&&(At=null),Ct.forEach(zc),jt.forEach(zc)}function Bc(i,s){i.blockedOn===s&&(i.blockedOn=null,St||(St=!0,_.unstable_scheduleCallback(_.unstable_NormalPriority,Ac)))}function Cc(i){function b(s){return Bc(s,i)}if(0<xt.length){Bc(xt[0],i);for(var s=1;s<xt.length;s++){var u=xt[s];u.blockedOn===i&&(u.blockedOn=null)}}for(null!==Ot&&Bc(Ot,i),null!==kt&&Bc(kt,i),null!==At&&Bc(At,i),Ct.forEach(b),jt.forEach(b),s=0;s<Pt.length;s++)(u=Pt[s]).blockedOn===i&&(u.blockedOn=null);for(;0<Pt.length&&null===(s=Pt[0]).blockedOn;)vc(s),null===s.blockedOn&&Pt.shift()}function Dc(i,s){var u={};return u[i.toLowerCase()]=s.toLowerCase(),u[\"Webkit\"+i]=\"webkit\"+s,u[\"Moz\"+i]=\"moz\"+s,u}var Nt={animationend:Dc(\"Animation\",\"AnimationEnd\"),animationiteration:Dc(\"Animation\",\"AnimationIteration\"),animationstart:Dc(\"Animation\",\"AnimationStart\"),transitionend:Dc(\"Transition\",\"TransitionEnd\")},Tt={},Mt={};function Hc(i){if(Tt[i])return Tt[i];if(!Nt[i])return i;var s,u=Nt[i];for(s in u)if(u.hasOwnProperty(s)&&s in Mt)return Tt[i]=u[s];return i}$&&(Mt=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Nt.animationend.animation,delete Nt.animationiteration.animation,delete Nt.animationstart.animation),\"TransitionEvent\"in window||delete Nt.transitionend.transition);var Rt=Hc(\"animationend\"),Dt=Hc(\"animationiteration\"),Bt=Hc(\"animationstart\"),Lt=Hc(\"transitionend\"),Ft=new Map,qt=new Map,$t=[\"abort\",\"abort\",Rt,\"animationEnd\",Dt,\"animationIteration\",Bt,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",Lt,\"transitionEnd\",\"waiting\",\"waiting\"];function Pc(i,s){for(var u=0;u<i.length;u+=2){var m=i[u],v=i[u+1];v=\"on\"+(v[0].toUpperCase()+v.slice(1)),qt.set(m,s),Ft.set(m,v),da(v,[m])}}(0,_.unstable_now)();var Ut=8;function Rc(i){if(0!=(1&i))return Ut=15,1;if(0!=(2&i))return Ut=14,2;if(0!=(4&i))return Ut=13,4;var s=24&i;return 0!==s?(Ut=12,s):0!=(32&i)?(Ut=11,32):0!==(s=192&i)?(Ut=10,s):0!=(256&i)?(Ut=9,256):0!==(s=3584&i)?(Ut=8,s):0!=(4096&i)?(Ut=7,4096):0!==(s=4186112&i)?(Ut=6,s):0!==(s=62914560&i)?(Ut=5,s):67108864&i?(Ut=4,67108864):0!=(134217728&i)?(Ut=3,134217728):0!==(s=805306368&i)?(Ut=2,s):0!=(1073741824&i)?(Ut=1,1073741824):(Ut=8,i)}function Uc(i,s){var u=i.pendingLanes;if(0===u)return Ut=0;var m=0,v=0,_=i.expiredLanes,j=i.suspendedLanes,M=i.pingedLanes;if(0!==_)m=_,v=Ut=15;else if(0!==(_=134217727&u)){var $=_&~j;0!==$?(m=Rc($),v=Ut):0!==(M&=_)&&(m=Rc(M),v=Ut)}else 0!==(_=u&~j)?(m=Rc(_),v=Ut):0!==M&&(m=Rc(M),v=Ut);if(0===m)return 0;if(m=u&((0>(m=31-zt(m))?0:1<<m)<<1)-1,0!==s&&s!==m&&0==(s&j)){if(Rc(s),v<=Ut)return s;Ut=v}if(0!==(s=i.entangledLanes))for(i=i.entanglements,s&=m;0<s;)v=1<<(u=31-zt(s)),m|=i[u],s&=~v;return m}function Wc(i){return 0!==(i=-1073741825&i.pendingLanes)?i:1073741824&i?1073741824:0}function Xc(i,s){switch(i){case 15:return 1;case 14:return 2;case 12:return 0===(i=Yc(24&~s))?Xc(10,s):i;case 10:return 0===(i=Yc(192&~s))?Xc(8,s):i;case 8:return 0===(i=Yc(3584&~s))&&(0===(i=Yc(4186112&~s))&&(i=512)),i;case 2:return 0===(s=Yc(805306368&~s))&&(s=268435456),s}throw Error(y(358,i))}function Yc(i){return i&-i}function Zc(i){for(var s=[],u=0;31>u;u++)s.push(i);return s}function $c(i,s,u){i.pendingLanes|=s;var m=s-1;i.suspendedLanes&=m,i.pingedLanes&=m,(i=i.eventTimes)[s=31-zt(s)]=u}var zt=Math.clz32?Math.clz32:function ad(i){return 0===i?32:31-(Vt(i)/Wt|0)|0},Vt=Math.log,Wt=Math.LN2;var Kt=_.unstable_UserBlockingPriority,Ht=_.unstable_runWithPriority,Jt=!0;function gd(i,s,u,m){lt||Ib();var v=hd,_=lt;lt=!0;try{Hb(v,i,s,u,m)}finally{(lt=_)||Mb()}}function id(i,s,u,m){Ht(Kt,hd.bind(null,i,s,u,m))}function hd(i,s,u,m){var v;if(Jt)if((v=0==(4&s))&&0<xt.length&&-1<It.indexOf(i))i=rc(null,i,s,u,m),xt.push(i);else{var _=yc(i,s,u,m);if(null===_)v&&sc(i,m);else{if(v){if(-1<It.indexOf(i))return i=rc(_,i,s,u,m),void xt.push(i);if(function uc(i,s,u,m,v){switch(s){case\"focusin\":return Ot=tc(Ot,i,s,u,m,v),!0;case\"dragenter\":return kt=tc(kt,i,s,u,m,v),!0;case\"mouseover\":return At=tc(At,i,s,u,m,v),!0;case\"pointerover\":var _=v.pointerId;return Ct.set(_,tc(Ct.get(_)||null,i,s,u,m,v)),!0;case\"gotpointercapture\":return _=v.pointerId,jt.set(_,tc(jt.get(_)||null,i,s,u,m,v)),!0}return!1}(_,i,s,u,m))return;sc(i,m)}jd(i,s,m,null,u)}}}function yc(i,s,u,m){var v=xb(m);if(null!==(v=wc(v))){var _=Zb(v);if(null===_)v=null;else{var j=_.tag;if(13===j){if(null!==(v=$b(_)))return v;v=null}else if(3===j){if(_.stateNode.hydrate)return 3===_.tag?_.stateNode.containerInfo:null;v=null}else _!==v&&(v=null)}}return jd(i,s,m,v,u),null}var Gt=null,Xt=null,Yt=null;function nd(){if(Yt)return Yt;var i,s,u=Xt,m=u.length,v=\"value\"in Gt?Gt.value:Gt.textContent,_=v.length;for(i=0;i<m&&u[i]===v[i];i++);var j=m-i;for(s=1;s<=j&&u[m-s]===v[_-s];s++);return Yt=v.slice(i,1<s?1-s:void 0)}function od(i){var s=i.keyCode;return\"charCode\"in i?0===(i=i.charCode)&&13===s&&(i=13):i=s,10===i&&(i=13),32<=i||13===i?i:0}function pd(){return!0}function qd(){return!1}function rd(i){function b(s,u,m,v,_){for(var j in this._reactName=s,this._targetInst=m,this.type=u,this.nativeEvent=v,this.target=_,this.currentTarget=null,i)i.hasOwnProperty(j)&&(s=i[j],this[j]=s?s(v):v[j]);return this.isDefaultPrevented=(null!=v.defaultPrevented?v.defaultPrevented:!1===v.returnValue)?pd:qd,this.isPropagationStopped=qd,this}return v(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var i=this.nativeEvent;i&&(i.preventDefault?i.preventDefault():\"unknown\"!=typeof i.returnValue&&(i.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var i=this.nativeEvent;i&&(i.stopPropagation?i.stopPropagation():\"unknown\"!=typeof i.cancelBubble&&(i.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd}),b}var Qt,Zt,er,tr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(i){return i.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},rr=rd(tr),nr=v({},tr,{view:0,detail:0}),ir=rd(nr),ar=v({},nr,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(i){return void 0===i.relatedTarget?i.fromElement===i.srcElement?i.toElement:i.fromElement:i.relatedTarget},movementX:function(i){return\"movementX\"in i?i.movementX:(i!==er&&(er&&\"mousemove\"===i.type?(Qt=i.screenX-er.screenX,Zt=i.screenY-er.screenY):Zt=Qt=0,er=i),Qt)},movementY:function(i){return\"movementY\"in i?i.movementY:Zt}}),sr=rd(ar),cr=rd(v({},ar,{dataTransfer:0})),lr=rd(v({},nr,{relatedTarget:0})),ur=rd(v({},tr,{animationName:0,elapsedTime:0,pseudoElement:0})),pr=v({},tr,{clipboardData:function(i){return\"clipboardData\"in i?i.clipboardData:window.clipboardData}}),dr=rd(pr),fr=rd(v({},tr,{data:0})),mr={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},yr={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},gr={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(i){var s=this.nativeEvent;return s.getModifierState?s.getModifierState(i):!!(i=gr[i])&&!!s[i]}function zd(){return Pd}var vr=v({},nr,{key:function(i){if(i.key){var s=mr[i.key]||i.key;if(\"Unidentified\"!==s)return s}return\"keypress\"===i.type?13===(i=od(i))?\"Enter\":String.fromCharCode(i):\"keydown\"===i.type||\"keyup\"===i.type?yr[i.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(i){return\"keypress\"===i.type?od(i):0},keyCode:function(i){return\"keydown\"===i.type||\"keyup\"===i.type?i.keyCode:0},which:function(i){return\"keypress\"===i.type?od(i):\"keydown\"===i.type||\"keyup\"===i.type?i.keyCode:0}}),br=rd(vr),_r=rd(v({},ar,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),wr=rd(v({},nr,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd})),Er=rd(v({},tr,{propertyName:0,elapsedTime:0,pseudoElement:0})),Sr=v({},ar,{deltaX:function(i){return\"deltaX\"in i?i.deltaX:\"wheelDeltaX\"in i?-i.wheelDeltaX:0},deltaY:function(i){return\"deltaY\"in i?i.deltaY:\"wheelDeltaY\"in i?-i.wheelDeltaY:\"wheelDelta\"in i?-i.wheelDelta:0},deltaZ:0,deltaMode:0}),xr=rd(Sr),Or=[9,13,27,32],kr=$&&\"CompositionEvent\"in window,Ar=null;$&&\"documentMode\"in document&&(Ar=document.documentMode);var Cr=$&&\"TextEvent\"in window&&!Ar,jr=$&&(!kr||Ar&&8<Ar&&11>=Ar),Pr=String.fromCharCode(32),Ir=!1;function ge(i,s){switch(i){case\"keyup\":return-1!==Or.indexOf(s.keyCode);case\"keydown\":return 229!==s.keyCode;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function he(i){return\"object\"==typeof(i=i.detail)&&\"data\"in i?i.data:null}var Nr=!1;var Tr={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(i){var s=i&&i.nodeName&&i.nodeName.toLowerCase();return\"input\"===s?!!Tr[i.type]:\"textarea\"===s}function ne(i,s,u,m){Eb(m),0<(s=oe(s,\"onChange\")).length&&(u=new rr(\"onChange\",\"change\",null,u,m),i.push({event:u,listeners:s}))}var Mr=null,Rr=null;function re(i){se(i,0)}function te(i){if(Wa(ue(i)))return i}function ve(i,s){if(\"change\"===i)return s}var Dr=!1;if($){var Br;if($){var Lr=\"oninput\"in document;if(!Lr){var Fr=document.createElement(\"div\");Fr.setAttribute(\"oninput\",\"return;\"),Lr=\"function\"==typeof Fr.oninput}Br=Lr}else Br=!1;Dr=Br&&(!document.documentMode||9<document.documentMode)}function Ae(){Mr&&(Mr.detachEvent(\"onpropertychange\",Be),Rr=Mr=null)}function Be(i){if(\"value\"===i.propertyName&&te(Rr)){var s=[];if(ne(s,Rr,i,xb(i)),i=re,lt)i(s);else{lt=!0;try{Gb(i,s)}finally{lt=!1,Mb()}}}}function Ce(i,s,u){\"focusin\"===i?(Ae(),Rr=u,(Mr=s).attachEvent(\"onpropertychange\",Be)):\"focusout\"===i&&Ae()}function De(i){if(\"selectionchange\"===i||\"keyup\"===i||\"keydown\"===i)return te(Rr)}function Ee(i,s){if(\"click\"===i)return te(s)}function Fe(i,s){if(\"input\"===i||\"change\"===i)return te(s)}var qr=\"function\"==typeof Object.is?Object.is:function Ge(i,s){return i===s&&(0!==i||1/i==1/s)||i!=i&&s!=s},$r=Object.prototype.hasOwnProperty;function Je(i,s){if(qr(i,s))return!0;if(\"object\"!=typeof i||null===i||\"object\"!=typeof s||null===s)return!1;var u=Object.keys(i),m=Object.keys(s);if(u.length!==m.length)return!1;for(m=0;m<u.length;m++)if(!$r.call(s,u[m])||!qr(i[u[m]],s[u[m]]))return!1;return!0}function Ke(i){for(;i&&i.firstChild;)i=i.firstChild;return i}function Le(i,s){var u,m=Ke(i);for(i=0;m;){if(3===m.nodeType){if(u=i+m.textContent.length,i<=s&&u>=s)return{node:m,offset:s-i};i=u}e:{for(;m;){if(m.nextSibling){m=m.nextSibling;break e}m=m.parentNode}m=void 0}m=Ke(m)}}function Me(i,s){return!(!i||!s)&&(i===s||(!i||3!==i.nodeType)&&(s&&3===s.nodeType?Me(i,s.parentNode):\"contains\"in i?i.contains(s):!!i.compareDocumentPosition&&!!(16&i.compareDocumentPosition(s))))}function Ne(){for(var i=window,s=Xa();s instanceof i.HTMLIFrameElement;){try{var u=\"string\"==typeof s.contentWindow.location.href}catch(i){u=!1}if(!u)break;s=Xa((i=s.contentWindow).document)}return s}function Oe(i){var s=i&&i.nodeName&&i.nodeName.toLowerCase();return s&&(\"input\"===s&&(\"text\"===i.type||\"search\"===i.type||\"tel\"===i.type||\"url\"===i.type||\"password\"===i.type)||\"textarea\"===s||\"true\"===i.contentEditable)}var Ur=$&&\"documentMode\"in document&&11>=document.documentMode,zr=null,Vr=null,Wr=null,Kr=!1;function Ue(i,s,u){var m=u.window===u?u.document:9===u.nodeType?u:u.ownerDocument;Kr||null==zr||zr!==Xa(m)||(\"selectionStart\"in(m=zr)&&Oe(m)?m={start:m.selectionStart,end:m.selectionEnd}:m={anchorNode:(m=(m.ownerDocument&&m.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:m.anchorOffset,focusNode:m.focusNode,focusOffset:m.focusOffset},Wr&&Je(Wr,m)||(Wr=m,0<(m=oe(Vr,\"onSelect\")).length&&(s=new rr(\"onSelect\",\"select\",null,s,u),i.push({event:s,listeners:m}),s.target=zr)))}Pc(\"cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),0),Pc(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1),Pc($t,2);for(var Hr=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),Jr=0;Jr<Hr.length;Jr++)qt.set(Hr[Jr],0);ea(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]),ea(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]),ea(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]),ea(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]),da(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \")),da(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \")),da(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]),da(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \")),da(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")),da(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var Gr=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),Xr=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Gr));function Ze(i,s,u){var m=i.type||\"unknown-event\";i.currentTarget=u,function Yb(i,s,u,m,v,_,j,M,$){if(Xb.apply(this,arguments),dt){if(!dt)throw Error(y(198));var W=mt;dt=!1,mt=null,yt||(yt=!0,gt=W)}}(m,s,void 0,i),i.currentTarget=null}function se(i,s){s=0!=(4&s);for(var u=0;u<i.length;u++){var m=i[u],v=m.event;m=m.listeners;e:{var _=void 0;if(s)for(var j=m.length-1;0<=j;j--){var M=m[j],$=M.instance,W=M.currentTarget;if(M=M.listener,$!==_&&v.isPropagationStopped())break e;Ze(v,M,W),_=$}else for(j=0;j<m.length;j++){if($=(M=m[j]).instance,W=M.currentTarget,M=M.listener,$!==_&&v.isPropagationStopped())break e;Ze(v,M,W),_=$}}}if(yt)throw i=gt,yt=!1,gt=null,i}function G(i,s){var u=$e(s),m=i+\"__bubble\";u.has(m)||(af(s,i,2,!1),u.add(m))}var Yr=\"_reactListening\"+Math.random().toString(36).slice(2);function cf(i){i[Yr]||(i[Yr]=!0,j.forEach((function(s){Xr.has(s)||df(s,!1,i,null),df(s,!0,i,null)})))}function df(i,s,u,m){var v=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,_=u;if(\"selectionchange\"===i&&9!==u.nodeType&&(_=u.ownerDocument),null!==m&&!s&&Xr.has(i)){if(\"scroll\"!==i)return;v|=2,_=m}var j=$e(_),M=i+\"__\"+(s?\"capture\":\"bubble\");j.has(M)||(s&&(v|=4),af(_,i,v,s),j.add(M))}function af(i,s,u,m){var v=qt.get(s);switch(void 0===v?2:v){case 0:v=gd;break;case 1:v=id;break;default:v=hd}u=v.bind(null,s,u,i),v=void 0,!pt||\"touchstart\"!==s&&\"touchmove\"!==s&&\"wheel\"!==s||(v=!0),m?void 0!==v?i.addEventListener(s,u,{capture:!0,passive:v}):i.addEventListener(s,u,!0):void 0!==v?i.addEventListener(s,u,{passive:v}):i.addEventListener(s,u,!1)}function jd(i,s,u,m,v){var _=m;if(0==(1&s)&&0==(2&s)&&null!==m)e:for(;;){if(null===m)return;var j=m.tag;if(3===j||4===j){var M=m.stateNode.containerInfo;if(M===v||8===M.nodeType&&M.parentNode===v)break;if(4===j)for(j=m.return;null!==j;){var $=j.tag;if((3===$||4===$)&&(($=j.stateNode.containerInfo)===v||8===$.nodeType&&$.parentNode===v))return;j=j.return}for(;null!==M;){if(null===(j=wc(M)))return;if(5===($=j.tag)||6===$){m=_=j;continue e}M=M.parentNode}}m=m.return}!function Nb(i,s,u){if(ut)return i(s,u);ut=!0;try{return ct(i,s,u)}finally{ut=!1,Mb()}}((function(){var m=_,v=xb(u),j=[];e:{var M=Ft.get(i);if(void 0!==M){var $=rr,W=i;switch(i){case\"keypress\":if(0===od(u))break e;case\"keydown\":case\"keyup\":$=br;break;case\"focusin\":W=\"focus\",$=lr;break;case\"focusout\":W=\"blur\",$=lr;break;case\"beforeblur\":case\"afterblur\":$=lr;break;case\"click\":if(2===u.button)break e;case\"auxclick\":case\"dblclick\":case\"mousedown\":case\"mousemove\":case\"mouseup\":case\"mouseout\":case\"mouseover\":case\"contextmenu\":$=sr;break;case\"drag\":case\"dragend\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"dragstart\":case\"drop\":$=cr;break;case\"touchcancel\":case\"touchend\":case\"touchmove\":case\"touchstart\":$=wr;break;case Rt:case Dt:case Bt:$=ur;break;case Lt:$=Er;break;case\"scroll\":$=ir;break;case\"wheel\":$=xr;break;case\"copy\":case\"cut\":case\"paste\":$=dr;break;case\"gotpointercapture\":case\"lostpointercapture\":case\"pointercancel\":case\"pointerdown\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"pointerup\":$=_r}var X=0!=(4&s),Y=!X&&\"scroll\"===i,Z=X?null!==M?M+\"Capture\":null:M;X=[];for(var ee,ie=m;null!==ie;){var ae=(ee=ie).stateNode;if(5===ee.tag&&null!==ae&&(ee=ae,null!==Z&&(null!=(ae=Ob(ie,Z))&&X.push(ef(ie,ae,ee)))),Y)break;ie=ie.return}0<X.length&&(M=new $(M,W,null,u,v),j.push({event:M,listeners:X}))}}if(0==(7&s)){if($=\"mouseout\"===i||\"pointerout\"===i,(!(M=\"mouseover\"===i||\"pointerover\"===i)||0!=(16&s)||!(W=u.relatedTarget||u.fromElement)||!wc(W)&&!W[sn])&&($||M)&&(M=v.window===v?v:(M=v.ownerDocument)?M.defaultView||M.parentWindow:window,$?($=m,null!==(W=(W=u.relatedTarget||u.toElement)?wc(W):null)&&(W!==(Y=Zb(W))||5!==W.tag&&6!==W.tag)&&(W=null)):($=null,W=m),$!==W)){if(X=sr,ae=\"onMouseLeave\",Z=\"onMouseEnter\",ie=\"mouse\",\"pointerout\"!==i&&\"pointerover\"!==i||(X=_r,ae=\"onPointerLeave\",Z=\"onPointerEnter\",ie=\"pointer\"),Y=null==$?M:ue($),ee=null==W?M:ue(W),(M=new X(ae,ie+\"leave\",$,u,v)).target=Y,M.relatedTarget=ee,ae=null,wc(v)===m&&((X=new X(Z,ie+\"enter\",W,u,v)).target=ee,X.relatedTarget=Y,ae=X),Y=ae,$&&W)e:{for(Z=W,ie=0,ee=X=$;ee;ee=gf(ee))ie++;for(ee=0,ae=Z;ae;ae=gf(ae))ee++;for(;0<ie-ee;)X=gf(X),ie--;for(;0<ee-ie;)Z=gf(Z),ee--;for(;ie--;){if(X===Z||null!==Z&&X===Z.alternate)break e;X=gf(X),Z=gf(Z)}X=null}else X=null;null!==$&&hf(j,M,$,X,!1),null!==W&&null!==Y&&hf(j,Y,W,X,!0)}if(\"select\"===($=(M=m?ue(m):window).nodeName&&M.nodeName.toLowerCase())||\"input\"===$&&\"file\"===M.type)var ce=ve;else if(me(M))if(Dr)ce=Fe;else{ce=De;var le=Ce}else($=M.nodeName)&&\"input\"===$.toLowerCase()&&(\"checkbox\"===M.type||\"radio\"===M.type)&&(ce=Ee);switch(ce&&(ce=ce(i,m))?ne(j,ce,u,v):(le&&le(i,M,m),\"focusout\"===i&&(le=M._wrapperState)&&le.controlled&&\"number\"===M.type&&bb(M,\"number\",M.value)),le=m?ue(m):window,i){case\"focusin\":(me(le)||\"true\"===le.contentEditable)&&(zr=le,Vr=m,Wr=null);break;case\"focusout\":Wr=Vr=zr=null;break;case\"mousedown\":Kr=!0;break;case\"contextmenu\":case\"mouseup\":case\"dragend\":Kr=!1,Ue(j,u,v);break;case\"selectionchange\":if(Ur)break;case\"keydown\":case\"keyup\":Ue(j,u,v)}var pe;if(kr)e:{switch(i){case\"compositionstart\":var de=\"onCompositionStart\";break e;case\"compositionend\":de=\"onCompositionEnd\";break e;case\"compositionupdate\":de=\"onCompositionUpdate\";break e}de=void 0}else Nr?ge(i,u)&&(de=\"onCompositionEnd\"):\"keydown\"===i&&229===u.keyCode&&(de=\"onCompositionStart\");de&&(jr&&\"ko\"!==u.locale&&(Nr||\"onCompositionStart\"!==de?\"onCompositionEnd\"===de&&Nr&&(pe=nd()):(Xt=\"value\"in(Gt=v)?Gt.value:Gt.textContent,Nr=!0)),0<(le=oe(m,de)).length&&(de=new fr(de,i,null,u,v),j.push({event:de,listeners:le}),pe?de.data=pe:null!==(pe=he(u))&&(de.data=pe))),(pe=Cr?function je(i,s){switch(i){case\"compositionend\":return he(s);case\"keypress\":return 32!==s.which?null:(Ir=!0,Pr);case\"textInput\":return(i=s.data)===Pr&&Ir?null:i;default:return null}}(i,u):function ke(i,s){if(Nr)return\"compositionend\"===i||!kr&&ge(i,s)?(i=nd(),Yt=Xt=Gt=null,Nr=!1,i):null;switch(i){case\"paste\":default:return null;case\"keypress\":if(!(s.ctrlKey||s.altKey||s.metaKey)||s.ctrlKey&&s.altKey){if(s.char&&1<s.char.length)return s.char;if(s.which)return String.fromCharCode(s.which)}return null;case\"compositionend\":return jr&&\"ko\"!==s.locale?null:s.data}}(i,u))&&(0<(m=oe(m,\"onBeforeInput\")).length&&(v=new fr(\"onBeforeInput\",\"beforeinput\",null,u,v),j.push({event:v,listeners:m}),v.data=pe))}se(j,s)}))}function ef(i,s,u){return{instance:i,listener:s,currentTarget:u}}function oe(i,s){for(var u=s+\"Capture\",m=[];null!==i;){var v=i,_=v.stateNode;5===v.tag&&null!==_&&(v=_,null!=(_=Ob(i,u))&&m.unshift(ef(i,_,v)),null!=(_=Ob(i,s))&&m.push(ef(i,_,v))),i=i.return}return m}function gf(i){if(null===i)return null;do{i=i.return}while(i&&5!==i.tag);return i||null}function hf(i,s,u,m,v){for(var _=s._reactName,j=[];null!==u&&u!==m;){var M=u,$=M.alternate,W=M.stateNode;if(null!==$&&$===m)break;5===M.tag&&null!==W&&(M=W,v?null!=($=Ob(u,_))&&j.unshift(ef(u,$,M)):v||null!=($=Ob(u,_))&&j.push(ef(u,$,M))),u=u.return}0!==j.length&&i.push({event:s,listeners:j})}function jf(){}var Qr=null,Zr=null;function mf(i,s){switch(i){case\"button\":case\"input\":case\"select\":case\"textarea\":return!!s.autoFocus}return!1}function nf(i,s){return\"textarea\"===i||\"option\"===i||\"noscript\"===i||\"string\"==typeof s.children||\"number\"==typeof s.children||\"object\"==typeof s.dangerouslySetInnerHTML&&null!==s.dangerouslySetInnerHTML&&null!=s.dangerouslySetInnerHTML.__html}var en=\"function\"==typeof setTimeout?setTimeout:void 0,tn=\"function\"==typeof clearTimeout?clearTimeout:void 0;function qf(i){1===i.nodeType?i.textContent=\"\":9===i.nodeType&&(null!=(i=i.body)&&(i.textContent=\"\"))}function rf(i){for(;null!=i;i=i.nextSibling){var s=i.nodeType;if(1===s||3===s)break}return i}function sf(i){i=i.previousSibling;for(var s=0;i;){if(8===i.nodeType){var u=i.data;if(\"$\"===u||\"$!\"===u||\"$?\"===u){if(0===s)return i;s--}else\"/$\"===u&&s++}i=i.previousSibling}return null}var rn=0;var nn=Math.random().toString(36).slice(2),on=\"__reactFiber$\"+nn,an=\"__reactProps$\"+nn,sn=\"__reactContainer$\"+nn,cn=\"__reactEvents$\"+nn;function wc(i){var s=i[on];if(s)return s;for(var u=i.parentNode;u;){if(s=u[sn]||u[on]){if(u=s.alternate,null!==s.child||null!==u&&null!==u.child)for(i=sf(i);null!==i;){if(u=i[on])return u;i=sf(i)}return s}u=(i=u).parentNode}return null}function Cb(i){return!(i=i[on]||i[sn])||5!==i.tag&&6!==i.tag&&13!==i.tag&&3!==i.tag?null:i}function ue(i){if(5===i.tag||6===i.tag)return i.stateNode;throw Error(y(33))}function Db(i){return i[an]||null}function $e(i){var s=i[cn];return void 0===s&&(s=i[cn]=new Set),s}var ln=[],un=-1;function Bf(i){return{current:i}}function H(i){0>un||(i.current=ln[un],ln[un]=null,un--)}function I(i,s){un++,ln[un]=i.current,i.current=s}var pn={},hn=Bf(pn),dn=Bf(!1),fn=pn;function Ef(i,s){var u=i.type.contextTypes;if(!u)return pn;var m=i.stateNode;if(m&&m.__reactInternalMemoizedUnmaskedChildContext===s)return m.__reactInternalMemoizedMaskedChildContext;var v,_={};for(v in u)_[v]=s[v];return m&&((i=i.stateNode).__reactInternalMemoizedUnmaskedChildContext=s,i.__reactInternalMemoizedMaskedChildContext=_),_}function Ff(i){return null!=(i=i.childContextTypes)}function Gf(){H(dn),H(hn)}function Hf(i,s,u){if(hn.current!==pn)throw Error(y(168));I(hn,s),I(dn,u)}function If(i,s,u){var m=i.stateNode;if(i=s.childContextTypes,\"function\"!=typeof m.getChildContext)return u;for(var _ in m=m.getChildContext())if(!(_ in i))throw Error(y(108,Ra(s)||\"Unknown\",_));return v({},u,m)}function Jf(i){return i=(i=i.stateNode)&&i.__reactInternalMemoizedMergedChildContext||pn,fn=hn.current,I(hn,i),I(dn,dn.current),!0}function Kf(i,s,u){var m=i.stateNode;if(!m)throw Error(y(169));u?(i=If(i,s,fn),m.__reactInternalMemoizedMergedChildContext=i,H(dn),H(hn),I(hn,i)):H(dn),I(dn,u)}var mn=null,yn=null,gn=_.unstable_runWithPriority,vn=_.unstable_scheduleCallback,bn=_.unstable_cancelCallback,_n=_.unstable_shouldYield,wn=_.unstable_requestPaint,En=_.unstable_now,Sn=_.unstable_getCurrentPriorityLevel,xn=_.unstable_ImmediatePriority,On=_.unstable_UserBlockingPriority,kn=_.unstable_NormalPriority,An=_.unstable_LowPriority,Cn=_.unstable_IdlePriority,jn={},Pn=void 0!==wn?wn:function(){},In=null,Nn=null,Tn=!1,Mn=En(),Rn=1e4>Mn?En:function(){return En()-Mn};function eg(){switch(Sn()){case xn:return 99;case On:return 98;case kn:return 97;case An:return 96;case Cn:return 95;default:throw Error(y(332))}}function fg(i){switch(i){case 99:return xn;case 98:return On;case 97:return kn;case 96:return An;case 95:return Cn;default:throw Error(y(332))}}function gg(i,s){return i=fg(i),gn(i,s)}function hg(i,s,u){return i=fg(i),vn(i,s,u)}function ig(){if(null!==Nn){var i=Nn;Nn=null,bn(i)}jg()}function jg(){if(!Tn&&null!==In){Tn=!0;var i=0;try{var s=In;gg(99,(function(){for(;i<s.length;i++){var u=s[i];do{u=u(!0)}while(null!==u)}})),In=null}catch(s){throw null!==In&&(In=In.slice(i+1)),vn(xn,ig),s}finally{Tn=!1}}}var Dn=ae.ReactCurrentBatchConfig;function lg(i,s){if(i&&i.defaultProps){for(var u in s=v({},s),i=i.defaultProps)void 0===s[u]&&(s[u]=i[u]);return s}return s}var Bn=Bf(null),Ln=null,Fn=null,qn=null;function qg(){qn=Fn=Ln=null}function rg(i){var s=Bn.current;H(Bn),i.type._context._currentValue=s}function sg(i,s){for(;null!==i;){var u=i.alternate;if((i.childLanes&s)===s){if(null===u||(u.childLanes&s)===s)break;u.childLanes|=s}else i.childLanes|=s,null!==u&&(u.childLanes|=s);i=i.return}}function tg(i,s){Ln=i,qn=Fn=null,null!==(i=i.dependencies)&&null!==i.firstContext&&(0!=(i.lanes&s)&&(yo=!0),i.firstContext=null)}function vg(i,s){if(qn!==i&&!1!==s&&0!==s)if(\"number\"==typeof s&&1073741823!==s||(qn=i,s=1073741823),s={context:i,observedBits:s,next:null},null===Fn){if(null===Ln)throw Error(y(308));Fn=s,Ln.dependencies={lanes:0,firstContext:s,responders:null}}else Fn=Fn.next=s;return i._currentValue}var $n=!1;function xg(i){i.updateQueue={baseState:i.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function yg(i,s){i=i.updateQueue,s.updateQueue===i&&(s.updateQueue={baseState:i.baseState,firstBaseUpdate:i.firstBaseUpdate,lastBaseUpdate:i.lastBaseUpdate,shared:i.shared,effects:i.effects})}function zg(i,s){return{eventTime:i,lane:s,tag:0,payload:null,callback:null,next:null}}function Ag(i,s){if(null!==(i=i.updateQueue)){var u=(i=i.shared).pending;null===u?s.next=s:(s.next=u.next,u.next=s),i.pending=s}}function Bg(i,s){var u=i.updateQueue,m=i.alternate;if(null!==m&&u===(m=m.updateQueue)){var v=null,_=null;if(null!==(u=u.firstBaseUpdate)){do{var j={eventTime:u.eventTime,lane:u.lane,tag:u.tag,payload:u.payload,callback:u.callback,next:null};null===_?v=_=j:_=_.next=j,u=u.next}while(null!==u);null===_?v=_=s:_=_.next=s}else v=_=s;return u={baseState:m.baseState,firstBaseUpdate:v,lastBaseUpdate:_,shared:m.shared,effects:m.effects},void(i.updateQueue=u)}null===(i=u.lastBaseUpdate)?u.firstBaseUpdate=s:i.next=s,u.lastBaseUpdate=s}function Cg(i,s,u,m){var _=i.updateQueue;$n=!1;var j=_.firstBaseUpdate,M=_.lastBaseUpdate,$=_.shared.pending;if(null!==$){_.shared.pending=null;var W=$,X=W.next;W.next=null,null===M?j=X:M.next=X,M=W;var Y=i.alternate;if(null!==Y){var Z=(Y=Y.updateQueue).lastBaseUpdate;Z!==M&&(null===Z?Y.firstBaseUpdate=X:Z.next=X,Y.lastBaseUpdate=W)}}if(null!==j){for(Z=_.baseState,M=0,Y=X=W=null;;){$=j.lane;var ee=j.eventTime;if((m&$)===$){null!==Y&&(Y=Y.next={eventTime:ee,lane:0,tag:j.tag,payload:j.payload,callback:j.callback,next:null});e:{var ie=i,ae=j;switch($=s,ee=u,ae.tag){case 1:if(\"function\"==typeof(ie=ae.payload)){Z=ie.call(ee,Z,$);break e}Z=ie;break e;case 3:ie.flags=-4097&ie.flags|64;case 0:if(null==($=\"function\"==typeof(ie=ae.payload)?ie.call(ee,Z,$):ie))break e;Z=v({},Z,$);break e;case 2:$n=!0}}null!==j.callback&&(i.flags|=32,null===($=_.effects)?_.effects=[j]:$.push(j))}else ee={eventTime:ee,lane:$,tag:j.tag,payload:j.payload,callback:j.callback,next:null},null===Y?(X=Y=ee,W=Z):Y=Y.next=ee,M|=$;if(null===(j=j.next)){if(null===($=_.shared.pending))break;j=$.next,$.next=null,_.lastBaseUpdate=$,_.shared.pending=null}}null===Y&&(W=Z),_.baseState=W,_.firstBaseUpdate=X,_.lastBaseUpdate=Y,Do|=M,i.lanes=M,i.memoizedState=Z}}function Eg(i,s,u){if(i=s.effects,s.effects=null,null!==i)for(s=0;s<i.length;s++){var m=i[s],v=m.callback;if(null!==v){if(m.callback=null,m=u,\"function\"!=typeof v)throw Error(y(191,v));v.call(m)}}}var Un=(new m.Component).refs;function Gg(i,s,u,m){u=null==(u=u(m,s=i.memoizedState))?s:v({},s,u),i.memoizedState=u,0===i.lanes&&(i.updateQueue.baseState=u)}var zn={isMounted:function(i){return!!(i=i._reactInternals)&&Zb(i)===i},enqueueSetState:function(i,s,u){i=i._reactInternals;var m=Hg(),v=Ig(i),_=zg(m,v);_.payload=s,null!=u&&(_.callback=u),Ag(i,_),Jg(i,v,m)},enqueueReplaceState:function(i,s,u){i=i._reactInternals;var m=Hg(),v=Ig(i),_=zg(m,v);_.tag=1,_.payload=s,null!=u&&(_.callback=u),Ag(i,_),Jg(i,v,m)},enqueueForceUpdate:function(i,s){i=i._reactInternals;var u=Hg(),m=Ig(i),v=zg(u,m);v.tag=2,null!=s&&(v.callback=s),Ag(i,v),Jg(i,m,u)}};function Lg(i,s,u,m,v,_,j){return\"function\"==typeof(i=i.stateNode).shouldComponentUpdate?i.shouldComponentUpdate(m,_,j):!s.prototype||!s.prototype.isPureReactComponent||(!Je(u,m)||!Je(v,_))}function Mg(i,s,u){var m=!1,v=pn,_=s.contextType;return\"object\"==typeof _&&null!==_?_=vg(_):(v=Ff(s)?fn:hn.current,_=(m=null!=(m=s.contextTypes))?Ef(i,v):pn),s=new s(u,_),i.memoizedState=null!==s.state&&void 0!==s.state?s.state:null,s.updater=zn,i.stateNode=s,s._reactInternals=i,m&&((i=i.stateNode).__reactInternalMemoizedUnmaskedChildContext=v,i.__reactInternalMemoizedMaskedChildContext=_),s}function Ng(i,s,u,m){i=s.state,\"function\"==typeof s.componentWillReceiveProps&&s.componentWillReceiveProps(u,m),\"function\"==typeof s.UNSAFE_componentWillReceiveProps&&s.UNSAFE_componentWillReceiveProps(u,m),s.state!==i&&zn.enqueueReplaceState(s,s.state,null)}function Og(i,s,u,m){var v=i.stateNode;v.props=u,v.state=i.memoizedState,v.refs=Un,xg(i);var _=s.contextType;\"object\"==typeof _&&null!==_?v.context=vg(_):(_=Ff(s)?fn:hn.current,v.context=Ef(i,_)),Cg(i,u,v,m),v.state=i.memoizedState,\"function\"==typeof(_=s.getDerivedStateFromProps)&&(Gg(i,s,_,u),v.state=i.memoizedState),\"function\"==typeof s.getDerivedStateFromProps||\"function\"==typeof v.getSnapshotBeforeUpdate||\"function\"!=typeof v.UNSAFE_componentWillMount&&\"function\"!=typeof v.componentWillMount||(s=v.state,\"function\"==typeof v.componentWillMount&&v.componentWillMount(),\"function\"==typeof v.UNSAFE_componentWillMount&&v.UNSAFE_componentWillMount(),s!==v.state&&zn.enqueueReplaceState(v,v.state,null),Cg(i,u,v,m),v.state=i.memoizedState),\"function\"==typeof v.componentDidMount&&(i.flags|=4)}var Vn=Array.isArray;function Qg(i,s,u){if(null!==(i=u.ref)&&\"function\"!=typeof i&&\"object\"!=typeof i){if(u._owner){if(u=u._owner){if(1!==u.tag)throw Error(y(309));var m=u.stateNode}if(!m)throw Error(y(147,i));var v=\"\"+i;return null!==s&&null!==s.ref&&\"function\"==typeof s.ref&&s.ref._stringRef===v?s.ref:(s=function(i){var s=m.refs;s===Un&&(s=m.refs={}),null===i?delete s[v]:s[v]=i},s._stringRef=v,s)}if(\"string\"!=typeof i)throw Error(y(284));if(!u._owner)throw Error(y(290,i))}return i}function Rg(i,s){if(\"textarea\"!==i.type)throw Error(y(31,\"[object Object]\"===Object.prototype.toString.call(s)?\"object with keys {\"+Object.keys(s).join(\", \")+\"}\":s))}function Sg(i){function b(s,u){if(i){var m=s.lastEffect;null!==m?(m.nextEffect=u,s.lastEffect=u):s.firstEffect=s.lastEffect=u,u.nextEffect=null,u.flags=8}}function c(s,u){if(!i)return null;for(;null!==u;)b(s,u),u=u.sibling;return null}function d(i,s){for(i=new Map;null!==s;)null!==s.key?i.set(s.key,s):i.set(s.index,s),s=s.sibling;return i}function e(i,s){return(i=Tg(i,s)).index=0,i.sibling=null,i}function f(s,u,m){return s.index=m,i?null!==(m=s.alternate)?(m=m.index)<u?(s.flags=2,u):m:(s.flags=2,u):u}function g(s){return i&&null===s.alternate&&(s.flags=2),s}function h(i,s,u,m){return null===s||6!==s.tag?((s=Ug(u,i.mode,m)).return=i,s):((s=e(s,u)).return=i,s)}function k(i,s,u,m){return null!==s&&s.elementType===u.type?((m=e(s,u.props)).ref=Qg(i,s,u),m.return=i,m):((m=Vg(u.type,u.key,u.props,null,i.mode,m)).ref=Qg(i,s,u),m.return=i,m)}function l(i,s,u,m){return null===s||4!==s.tag||s.stateNode.containerInfo!==u.containerInfo||s.stateNode.implementation!==u.implementation?((s=Wg(u,i.mode,m)).return=i,s):((s=e(s,u.children||[])).return=i,s)}function n(i,s,u,m,v){return null===s||7!==s.tag?((s=Xg(u,i.mode,m,v)).return=i,s):((s=e(s,u)).return=i,s)}function A(i,s,u){if(\"string\"==typeof s||\"number\"==typeof s)return(s=Ug(\"\"+s,i.mode,u)).return=i,s;if(\"object\"==typeof s&&null!==s){switch(s.$$typeof){case ce:return(u=Vg(s.type,s.key,s.props,null,i.mode,u)).ref=Qg(i,null,s),u.return=i,u;case le:return(s=Wg(s,i.mode,u)).return=i,s}if(Vn(s)||La(s))return(s=Xg(s,i.mode,u,null)).return=i,s;Rg(i,s)}return null}function p(i,s,u,m){var v=null!==s?s.key:null;if(\"string\"==typeof u||\"number\"==typeof u)return null!==v?null:h(i,s,\"\"+u,m);if(\"object\"==typeof u&&null!==u){switch(u.$$typeof){case ce:return u.key===v?u.type===pe?n(i,s,u.props.children,m,v):k(i,s,u,m):null;case le:return u.key===v?l(i,s,u,m):null}if(Vn(u)||La(u))return null!==v?null:n(i,s,u,m,null);Rg(i,u)}return null}function C(i,s,u,m,v){if(\"string\"==typeof m||\"number\"==typeof m)return h(s,i=i.get(u)||null,\"\"+m,v);if(\"object\"==typeof m&&null!==m){switch(m.$$typeof){case ce:return i=i.get(null===m.key?u:m.key)||null,m.type===pe?n(s,i,m.props.children,v,m.key):k(s,i,m,v);case le:return l(s,i=i.get(null===m.key?u:m.key)||null,m,v)}if(Vn(m)||La(m))return n(s,i=i.get(u)||null,m,v,null);Rg(s,m)}return null}function x(s,u,m,v){for(var _=null,j=null,M=u,$=u=0,W=null;null!==M&&$<m.length;$++){M.index>$?(W=M,M=null):W=M.sibling;var X=p(s,M,m[$],v);if(null===X){null===M&&(M=W);break}i&&M&&null===X.alternate&&b(s,M),u=f(X,u,$),null===j?_=X:j.sibling=X,j=X,M=W}if($===m.length)return c(s,M),_;if(null===M){for(;$<m.length;$++)null!==(M=A(s,m[$],v))&&(u=f(M,u,$),null===j?_=M:j.sibling=M,j=M);return _}for(M=d(s,M);$<m.length;$++)null!==(W=C(M,s,$,m[$],v))&&(i&&null!==W.alternate&&M.delete(null===W.key?$:W.key),u=f(W,u,$),null===j?_=W:j.sibling=W,j=W);return i&&M.forEach((function(i){return b(s,i)})),_}function w(s,u,m,v){var _=La(m);if(\"function\"!=typeof _)throw Error(y(150));if(null==(m=_.call(m)))throw Error(y(151));for(var j=_=null,M=u,$=u=0,W=null,X=m.next();null!==M&&!X.done;$++,X=m.next()){M.index>$?(W=M,M=null):W=M.sibling;var Y=p(s,M,X.value,v);if(null===Y){null===M&&(M=W);break}i&&M&&null===Y.alternate&&b(s,M),u=f(Y,u,$),null===j?_=Y:j.sibling=Y,j=Y,M=W}if(X.done)return c(s,M),_;if(null===M){for(;!X.done;$++,X=m.next())null!==(X=A(s,X.value,v))&&(u=f(X,u,$),null===j?_=X:j.sibling=X,j=X);return _}for(M=d(s,M);!X.done;$++,X=m.next())null!==(X=C(M,s,$,X.value,v))&&(i&&null!==X.alternate&&M.delete(null===X.key?$:X.key),u=f(X,u,$),null===j?_=X:j.sibling=X,j=X);return i&&M.forEach((function(i){return b(s,i)})),_}return function(i,s,u,m){var v=\"object\"==typeof u&&null!==u&&u.type===pe&&null===u.key;v&&(u=u.props.children);var _=\"object\"==typeof u&&null!==u;if(_)switch(u.$$typeof){case ce:e:{for(_=u.key,v=s;null!==v;){if(v.key===_){if(7===v.tag){if(u.type===pe){c(i,v.sibling),(s=e(v,u.props.children)).return=i,i=s;break e}}else if(v.elementType===u.type){c(i,v.sibling),(s=e(v,u.props)).ref=Qg(i,v,u),s.return=i,i=s;break e}c(i,v);break}b(i,v),v=v.sibling}u.type===pe?((s=Xg(u.props.children,i.mode,m,u.key)).return=i,i=s):((m=Vg(u.type,u.key,u.props,null,i.mode,m)).ref=Qg(i,s,u),m.return=i,i=m)}return g(i);case le:e:{for(v=u.key;null!==s;){if(s.key===v){if(4===s.tag&&s.stateNode.containerInfo===u.containerInfo&&s.stateNode.implementation===u.implementation){c(i,s.sibling),(s=e(s,u.children||[])).return=i,i=s;break e}c(i,s);break}b(i,s),s=s.sibling}(s=Wg(u,i.mode,m)).return=i,i=s}return g(i)}if(\"string\"==typeof u||\"number\"==typeof u)return u=\"\"+u,null!==s&&6===s.tag?(c(i,s.sibling),(s=e(s,u)).return=i,i=s):(c(i,s),(s=Ug(u,i.mode,m)).return=i,i=s),g(i);if(Vn(u))return x(i,s,u,m);if(La(u))return w(i,s,u,m);if(_&&Rg(i,u),void 0===u&&!v)switch(i.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(i.type)||\"Component\"))}return c(i,s)}}var Wn=Sg(!0),Kn=Sg(!1),Hn={},Jn=Bf(Hn),Gn=Bf(Hn),Xn=Bf(Hn);function dh(i){if(i===Hn)throw Error(y(174));return i}function eh(i,s){switch(I(Xn,s),I(Gn,i),I(Jn,Hn),i=s.nodeType){case 9:case 11:s=(s=s.documentElement)?s.namespaceURI:mb(null,\"\");break;default:s=mb(s=(i=8===i?s.parentNode:s).namespaceURI||null,i=i.tagName)}H(Jn),I(Jn,s)}function fh(){H(Jn),H(Gn),H(Xn)}function gh(i){dh(Xn.current);var s=dh(Jn.current),u=mb(s,i.type);s!==u&&(I(Gn,i),I(Jn,u))}function hh(i){Gn.current===i&&(H(Jn),H(Gn))}var Yn=Bf(0);function ih(i){for(var s=i;null!==s;){if(13===s.tag){var u=s.memoizedState;if(null!==u&&(null===(u=u.dehydrated)||\"$?\"===u.data||\"$!\"===u.data))return s}else if(19===s.tag&&void 0!==s.memoizedProps.revealOrder){if(0!=(64&s.flags))return s}else if(null!==s.child){s.child.return=s,s=s.child;continue}if(s===i)break;for(;null===s.sibling;){if(null===s.return||s.return===i)return null;s=s.return}s.sibling.return=s.return,s=s.sibling}return null}var Qn=null,Zn=null,eo=!1;function mh(i,s){var u=nh(5,null,null,0);u.elementType=\"DELETED\",u.type=\"DELETED\",u.stateNode=s,u.return=i,u.flags=8,null!==i.lastEffect?(i.lastEffect.nextEffect=u,i.lastEffect=u):i.firstEffect=i.lastEffect=u}function oh(i,s){switch(i.tag){case 5:var u=i.type;return null!==(s=1!==s.nodeType||u.toLowerCase()!==s.nodeName.toLowerCase()?null:s)&&(i.stateNode=s,!0);case 6:return null!==(s=\"\"===i.pendingProps||3!==s.nodeType?null:s)&&(i.stateNode=s,!0);default:return!1}}function ph(i){if(eo){var s=Zn;if(s){var u=s;if(!oh(i,s)){if(!(s=rf(u.nextSibling))||!oh(i,s))return i.flags=-1025&i.flags|2,eo=!1,void(Qn=i);mh(Qn,u)}Qn=i,Zn=rf(s.firstChild)}else i.flags=-1025&i.flags|2,eo=!1,Qn=i}}function qh(i){for(i=i.return;null!==i&&5!==i.tag&&3!==i.tag&&13!==i.tag;)i=i.return;Qn=i}function rh(i){if(i!==Qn)return!1;if(!eo)return qh(i),eo=!0,!1;var s=i.type;if(5!==i.tag||\"head\"!==s&&\"body\"!==s&&!nf(s,i.memoizedProps))for(s=Zn;s;)mh(i,s),s=rf(s.nextSibling);if(qh(i),13===i.tag){if(!(i=null!==(i=i.memoizedState)?i.dehydrated:null))throw Error(y(317));e:{for(i=i.nextSibling,s=0;i;){if(8===i.nodeType){var u=i.data;if(\"/$\"===u){if(0===s){Zn=rf(i.nextSibling);break e}s--}else\"$\"!==u&&\"$!\"!==u&&\"$?\"!==u||s++}i=i.nextSibling}Zn=null}}else Zn=Qn?rf(i.stateNode.nextSibling):null;return!0}function sh(){Zn=Qn=null,eo=!1}var to=[];function uh(){for(var i=0;i<to.length;i++)to[i]._workInProgressVersionPrimary=null;to.length=0}var ro=ae.ReactCurrentDispatcher,no=ae.ReactCurrentBatchConfig,oo=0,io=null,ao=null,so=null,co=!1,lo=!1;function Ah(){throw Error(y(321))}function Bh(i,s){if(null===s)return!1;for(var u=0;u<s.length&&u<i.length;u++)if(!qr(i[u],s[u]))return!1;return!0}function Ch(i,s,u,m,v,_){if(oo=_,io=s,s.memoizedState=null,s.updateQueue=null,s.lanes=0,ro.current=null===i||null===i.memoizedState?po:ho,i=u(m,v),lo){_=0;do{if(lo=!1,!(25>_))throw Error(y(301));_+=1,so=ao=null,s.updateQueue=null,ro.current=fo,i=u(m,v)}while(lo)}if(ro.current=uo,s=null!==ao&&null!==ao.next,oo=0,so=ao=io=null,co=!1,s)throw Error(y(300));return i}function Hh(){var i={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===so?io.memoizedState=so=i:so=so.next=i,so}function Ih(){if(null===ao){var i=io.alternate;i=null!==i?i.memoizedState:null}else i=ao.next;var s=null===so?io.memoizedState:so.next;if(null!==s)so=s,ao=i;else{if(null===i)throw Error(y(310));i={memoizedState:(ao=i).memoizedState,baseState:ao.baseState,baseQueue:ao.baseQueue,queue:ao.queue,next:null},null===so?io.memoizedState=so=i:so=so.next=i}return so}function Jh(i,s){return\"function\"==typeof s?s(i):s}function Kh(i){var s=Ih(),u=s.queue;if(null===u)throw Error(y(311));u.lastRenderedReducer=i;var m=ao,v=m.baseQueue,_=u.pending;if(null!==_){if(null!==v){var j=v.next;v.next=_.next,_.next=j}m.baseQueue=v=_,u.pending=null}if(null!==v){v=v.next,m=m.baseState;var M=j=_=null,$=v;do{var W=$.lane;if((oo&W)===W)null!==M&&(M=M.next={lane:0,action:$.action,eagerReducer:$.eagerReducer,eagerState:$.eagerState,next:null}),m=$.eagerReducer===i?$.eagerState:i(m,$.action);else{var X={lane:W,action:$.action,eagerReducer:$.eagerReducer,eagerState:$.eagerState,next:null};null===M?(j=M=X,_=m):M=M.next=X,io.lanes|=W,Do|=W}$=$.next}while(null!==$&&$!==v);null===M?_=m:M.next=j,qr(m,s.memoizedState)||(yo=!0),s.memoizedState=m,s.baseState=_,s.baseQueue=M,u.lastRenderedState=m}return[s.memoizedState,u.dispatch]}function Lh(i){var s=Ih(),u=s.queue;if(null===u)throw Error(y(311));u.lastRenderedReducer=i;var m=u.dispatch,v=u.pending,_=s.memoizedState;if(null!==v){u.pending=null;var j=v=v.next;do{_=i(_,j.action),j=j.next}while(j!==v);qr(_,s.memoizedState)||(yo=!0),s.memoizedState=_,null===s.baseQueue&&(s.baseState=_),u.lastRenderedState=_}return[_,m]}function Mh(i,s,u){var m=s._getVersion;m=m(s._source);var v=s._workInProgressVersionPrimary;if(null!==v?i=v===m:(i=i.mutableReadLanes,(i=(oo&i)===i)&&(s._workInProgressVersionPrimary=m,to.push(s))),i)return u(s._source);throw to.push(s),Error(y(350))}function Nh(i,s,u,m){var v=Co;if(null===v)throw Error(y(349));var _=s._getVersion,j=_(s._source),M=ro.current,$=M.useState((function(){return Mh(v,s,u)})),W=$[1],X=$[0];$=so;var Y=i.memoizedState,Z=Y.refs,ee=Z.getSnapshot,ie=Y.source;Y=Y.subscribe;var ae=io;return i.memoizedState={refs:Z,source:s,subscribe:m},M.useEffect((function(){Z.getSnapshot=u,Z.setSnapshot=W;var i=_(s._source);if(!qr(j,i)){i=u(s._source),qr(X,i)||(W(i),i=Ig(ae),v.mutableReadLanes|=i&v.pendingLanes),i=v.mutableReadLanes,v.entangledLanes|=i;for(var m=v.entanglements,M=i;0<M;){var $=31-zt(M),Y=1<<$;m[$]|=i,M&=~Y}}}),[u,s,m]),M.useEffect((function(){return m(s._source,(function(){var i=Z.getSnapshot,u=Z.setSnapshot;try{u(i(s._source));var m=Ig(ae);v.mutableReadLanes|=m&v.pendingLanes}catch(i){u((function(){throw i}))}}))}),[s,m]),qr(ee,u)&&qr(ie,s)&&qr(Y,m)||((i={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:X}).dispatch=W=Oh.bind(null,io,i),$.queue=i,$.baseQueue=null,X=Mh(v,s,u),$.memoizedState=$.baseState=X),X}function Ph(i,s,u){return Nh(Ih(),i,s,u)}function Qh(i){var s=Hh();return\"function\"==typeof i&&(i=i()),s.memoizedState=s.baseState=i,i=(i=s.queue={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:i}).dispatch=Oh.bind(null,io,i),[s.memoizedState,i]}function Rh(i,s,u,m){return i={tag:i,create:s,destroy:u,deps:m,next:null},null===(s=io.updateQueue)?(s={lastEffect:null},io.updateQueue=s,s.lastEffect=i.next=i):null===(u=s.lastEffect)?s.lastEffect=i.next=i:(m=u.next,u.next=i,i.next=m,s.lastEffect=i),i}function Sh(i){return i={current:i},Hh().memoizedState=i}function Th(){return Ih().memoizedState}function Uh(i,s,u,m){var v=Hh();io.flags|=i,v.memoizedState=Rh(1|s,u,void 0,void 0===m?null:m)}function Vh(i,s,u,m){var v=Ih();m=void 0===m?null:m;var _=void 0;if(null!==ao){var j=ao.memoizedState;if(_=j.destroy,null!==m&&Bh(m,j.deps))return void Rh(s,u,_,m)}io.flags|=i,v.memoizedState=Rh(1|s,u,_,m)}function Wh(i,s){return Uh(516,4,i,s)}function Xh(i,s){return Vh(516,4,i,s)}function Yh(i,s){return Vh(4,2,i,s)}function Zh(i,s){return\"function\"==typeof s?(i=i(),s(i),function(){s(null)}):null!=s?(i=i(),s.current=i,function(){s.current=null}):void 0}function $h(i,s,u){return u=null!=u?u.concat([i]):null,Vh(4,2,Zh.bind(null,s,i),u)}function ai(){}function bi(i,s){var u=Ih();s=void 0===s?null:s;var m=u.memoizedState;return null!==m&&null!==s&&Bh(s,m[1])?m[0]:(u.memoizedState=[i,s],i)}function ci(i,s){var u=Ih();s=void 0===s?null:s;var m=u.memoizedState;return null!==m&&null!==s&&Bh(s,m[1])?m[0]:(i=i(),u.memoizedState=[i,s],i)}function di(i,s){var u=eg();gg(98>u?98:u,(function(){i(!0)})),gg(97<u?97:u,(function(){var u=no.transition;no.transition=1;try{i(!1),s()}finally{no.transition=u}}))}function Oh(i,s,u){var m=Hg(),v=Ig(i),_={lane:v,action:u,eagerReducer:null,eagerState:null,next:null},j=s.pending;if(null===j?_.next=_:(_.next=j.next,j.next=_),s.pending=_,j=i.alternate,i===io||null!==j&&j===io)lo=co=!0;else{if(0===i.lanes&&(null===j||0===j.lanes)&&null!==(j=s.lastRenderedReducer))try{var M=s.lastRenderedState,$=j(M,u);if(_.eagerReducer=j,_.eagerState=$,qr($,M))return}catch(i){}Jg(i,v,m)}}var uo={readContext:vg,useCallback:Ah,useContext:Ah,useEffect:Ah,useImperativeHandle:Ah,useLayoutEffect:Ah,useMemo:Ah,useReducer:Ah,useRef:Ah,useState:Ah,useDebugValue:Ah,useDeferredValue:Ah,useTransition:Ah,useMutableSource:Ah,useOpaqueIdentifier:Ah,unstable_isNewReconciler:!1},po={readContext:vg,useCallback:function(i,s){return Hh().memoizedState=[i,void 0===s?null:s],i},useContext:vg,useEffect:Wh,useImperativeHandle:function(i,s,u){return u=null!=u?u.concat([i]):null,Uh(4,2,Zh.bind(null,s,i),u)},useLayoutEffect:function(i,s){return Uh(4,2,i,s)},useMemo:function(i,s){var u=Hh();return s=void 0===s?null:s,i=i(),u.memoizedState=[i,s],i},useReducer:function(i,s,u){var m=Hh();return s=void 0!==u?u(s):s,m.memoizedState=m.baseState=s,i=(i=m.queue={pending:null,dispatch:null,lastRenderedReducer:i,lastRenderedState:s}).dispatch=Oh.bind(null,io,i),[m.memoizedState,i]},useRef:Sh,useState:Qh,useDebugValue:ai,useDeferredValue:function(i){var s=Qh(i),u=s[0],m=s[1];return Wh((function(){var s=no.transition;no.transition=1;try{m(i)}finally{no.transition=s}}),[i]),u},useTransition:function(){var i=Qh(!1),s=i[0];return Sh(i=di.bind(null,i[1])),[i,s]},useMutableSource:function(i,s,u){var m=Hh();return m.memoizedState={refs:{getSnapshot:s,setSnapshot:null},source:i,subscribe:u},Nh(m,i,s,u)},useOpaqueIdentifier:function(){if(eo){var i=!1,s=function uf(i){return{$$typeof:Te,toString:i,valueOf:i}}((function(){throw i||(i=!0,u(\"r:\"+(rn++).toString(36))),Error(y(355))})),u=Qh(s)[1];return 0==(2&io.mode)&&(io.flags|=516,Rh(5,(function(){u(\"r:\"+(rn++).toString(36))}),void 0,null)),s}return Qh(s=\"r:\"+(rn++).toString(36)),s},unstable_isNewReconciler:!1},ho={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Kh,useRef:Th,useState:function(){return Kh(Jh)},useDebugValue:ai,useDeferredValue:function(i){var s=Kh(Jh),u=s[0],m=s[1];return Xh((function(){var s=no.transition;no.transition=1;try{m(i)}finally{no.transition=s}}),[i]),u},useTransition:function(){var i=Kh(Jh)[0];return[Th().current,i]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Kh(Jh)[0]},unstable_isNewReconciler:!1},fo={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Lh,useRef:Th,useState:function(){return Lh(Jh)},useDebugValue:ai,useDeferredValue:function(i){var s=Lh(Jh),u=s[0],m=s[1];return Xh((function(){var s=no.transition;no.transition=1;try{m(i)}finally{no.transition=s}}),[i]),u},useTransition:function(){var i=Lh(Jh)[0];return[Th().current,i]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Lh(Jh)[0]},unstable_isNewReconciler:!1},mo=ae.ReactCurrentOwner,yo=!1;function fi(i,s,u,m){s.child=null===i?Kn(s,null,u,m):Wn(s,i.child,u,m)}function gi(i,s,u,m,v){u=u.render;var _=s.ref;return tg(s,v),m=Ch(i,s,u,m,_,v),null===i||yo?(s.flags|=1,fi(i,s,m,v),s.child):(s.updateQueue=i.updateQueue,s.flags&=-517,i.lanes&=~v,hi(i,s,v))}function ii(i,s,u,m,v,_){if(null===i){var j=u.type;return\"function\"!=typeof j||ji(j)||void 0!==j.defaultProps||null!==u.compare||void 0!==u.defaultProps?((i=Vg(u.type,null,m,s,s.mode,_)).ref=s.ref,i.return=s,s.child=i):(s.tag=15,s.type=j,ki(i,s,j,m,v,_))}return j=i.child,0==(v&_)&&(v=j.memoizedProps,(u=null!==(u=u.compare)?u:Je)(v,m)&&i.ref===s.ref)?hi(i,s,_):(s.flags|=1,(i=Tg(j,m)).ref=s.ref,i.return=s,s.child=i)}function ki(i,s,u,m,v,_){if(null!==i&&Je(i.memoizedProps,m)&&i.ref===s.ref){if(yo=!1,0==(_&v))return s.lanes=i.lanes,hi(i,s,_);0!=(16384&i.flags)&&(yo=!0)}return li(i,s,u,m,_)}function mi(i,s,u){var m=s.pendingProps,v=m.children,_=null!==i?i.memoizedState:null;if(\"hidden\"===m.mode||\"unstable-defer-without-hiding\"===m.mode)if(0==(4&s.mode))s.memoizedState={baseLanes:0},ni(s,u);else{if(0==(1073741824&u))return i=null!==_?_.baseLanes|u:u,s.lanes=s.childLanes=1073741824,s.memoizedState={baseLanes:i},ni(s,i),null;s.memoizedState={baseLanes:0},ni(s,null!==_?_.baseLanes:u)}else null!==_?(m=_.baseLanes|u,s.memoizedState=null):m=u,ni(s,m);return fi(i,s,v,u),s.child}function oi(i,s){var u=s.ref;(null===i&&null!==u||null!==i&&i.ref!==u)&&(s.flags|=128)}function li(i,s,u,m,v){var _=Ff(u)?fn:hn.current;return _=Ef(s,_),tg(s,v),u=Ch(i,s,u,m,_,v),null===i||yo?(s.flags|=1,fi(i,s,u,v),s.child):(s.updateQueue=i.updateQueue,s.flags&=-517,i.lanes&=~v,hi(i,s,v))}function pi(i,s,u,m,v){if(Ff(u)){var _=!0;Jf(s)}else _=!1;if(tg(s,v),null===s.stateNode)null!==i&&(i.alternate=null,s.alternate=null,s.flags|=2),Mg(s,u,m),Og(s,u,m,v),m=!0;else if(null===i){var j=s.stateNode,M=s.memoizedProps;j.props=M;var $=j.context,W=u.contextType;\"object\"==typeof W&&null!==W?W=vg(W):W=Ef(s,W=Ff(u)?fn:hn.current);var X=u.getDerivedStateFromProps,Y=\"function\"==typeof X||\"function\"==typeof j.getSnapshotBeforeUpdate;Y||\"function\"!=typeof j.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof j.componentWillReceiveProps||(M!==m||$!==W)&&Ng(s,j,m,W),$n=!1;var Z=s.memoizedState;j.state=Z,Cg(s,m,j,v),$=s.memoizedState,M!==m||Z!==$||dn.current||$n?(\"function\"==typeof X&&(Gg(s,u,X,m),$=s.memoizedState),(M=$n||Lg(s,u,M,m,Z,$,W))?(Y||\"function\"!=typeof j.UNSAFE_componentWillMount&&\"function\"!=typeof j.componentWillMount||(\"function\"==typeof j.componentWillMount&&j.componentWillMount(),\"function\"==typeof j.UNSAFE_componentWillMount&&j.UNSAFE_componentWillMount()),\"function\"==typeof j.componentDidMount&&(s.flags|=4)):(\"function\"==typeof j.componentDidMount&&(s.flags|=4),s.memoizedProps=m,s.memoizedState=$),j.props=m,j.state=$,j.context=W,m=M):(\"function\"==typeof j.componentDidMount&&(s.flags|=4),m=!1)}else{j=s.stateNode,yg(i,s),M=s.memoizedProps,W=s.type===s.elementType?M:lg(s.type,M),j.props=W,Y=s.pendingProps,Z=j.context,\"object\"==typeof($=u.contextType)&&null!==$?$=vg($):$=Ef(s,$=Ff(u)?fn:hn.current);var ee=u.getDerivedStateFromProps;(X=\"function\"==typeof ee||\"function\"==typeof j.getSnapshotBeforeUpdate)||\"function\"!=typeof j.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof j.componentWillReceiveProps||(M!==Y||Z!==$)&&Ng(s,j,m,$),$n=!1,Z=s.memoizedState,j.state=Z,Cg(s,m,j,v);var ie=s.memoizedState;M!==Y||Z!==ie||dn.current||$n?(\"function\"==typeof ee&&(Gg(s,u,ee,m),ie=s.memoizedState),(W=$n||Lg(s,u,W,m,Z,ie,$))?(X||\"function\"!=typeof j.UNSAFE_componentWillUpdate&&\"function\"!=typeof j.componentWillUpdate||(\"function\"==typeof j.componentWillUpdate&&j.componentWillUpdate(m,ie,$),\"function\"==typeof j.UNSAFE_componentWillUpdate&&j.UNSAFE_componentWillUpdate(m,ie,$)),\"function\"==typeof j.componentDidUpdate&&(s.flags|=4),\"function\"==typeof j.getSnapshotBeforeUpdate&&(s.flags|=256)):(\"function\"!=typeof j.componentDidUpdate||M===i.memoizedProps&&Z===i.memoizedState||(s.flags|=4),\"function\"!=typeof j.getSnapshotBeforeUpdate||M===i.memoizedProps&&Z===i.memoizedState||(s.flags|=256),s.memoizedProps=m,s.memoizedState=ie),j.props=m,j.state=ie,j.context=$,m=W):(\"function\"!=typeof j.componentDidUpdate||M===i.memoizedProps&&Z===i.memoizedState||(s.flags|=4),\"function\"!=typeof j.getSnapshotBeforeUpdate||M===i.memoizedProps&&Z===i.memoizedState||(s.flags|=256),m=!1)}return qi(i,s,u,m,_,v)}function qi(i,s,u,m,v,_){oi(i,s);var j=0!=(64&s.flags);if(!m&&!j)return v&&Kf(s,u,!1),hi(i,s,_);m=s.stateNode,mo.current=s;var M=j&&\"function\"!=typeof u.getDerivedStateFromError?null:m.render();return s.flags|=1,null!==i&&j?(s.child=Wn(s,i.child,null,_),s.child=Wn(s,null,M,_)):fi(i,s,M,_),s.memoizedState=m.state,v&&Kf(s,u,!0),s.child}function ri(i){var s=i.stateNode;s.pendingContext?Hf(0,s.pendingContext,s.pendingContext!==s.context):s.context&&Hf(0,s.context,!1),eh(i,s.containerInfo)}var go,vo,bo,_o,wo={dehydrated:null,retryLane:0};function ti(i,s,u){var m,v=s.pendingProps,_=Yn.current,j=!1;return(m=0!=(64&s.flags))||(m=(null===i||null!==i.memoizedState)&&0!=(2&_)),m?(j=!0,s.flags&=-65):null!==i&&null===i.memoizedState||void 0===v.fallback||!0===v.unstable_avoidThisFallback||(_|=1),I(Yn,1&_),null===i?(void 0!==v.fallback&&ph(s),i=v.children,_=v.fallback,j?(i=ui(s,i,_,u),s.child.memoizedState={baseLanes:u},s.memoizedState=wo,i):\"number\"==typeof v.unstable_expectedLoadTime?(i=ui(s,i,_,u),s.child.memoizedState={baseLanes:u},s.memoizedState=wo,s.lanes=33554432,i):((u=vi({mode:\"visible\",children:i},s.mode,u,null)).return=s,s.child=u)):(i.memoizedState,j?(v=wi(i,s,v.children,v.fallback,u),j=s.child,_=i.child.memoizedState,j.memoizedState=null===_?{baseLanes:u}:{baseLanes:_.baseLanes|u},j.childLanes=i.childLanes&~u,s.memoizedState=wo,v):(u=xi(i,s,v.children,u),s.memoizedState=null,u))}function ui(i,s,u,m){var v=i.mode,_=i.child;return s={mode:\"hidden\",children:s},0==(2&v)&&null!==_?(_.childLanes=0,_.pendingProps=s):_=vi(s,v,0,null),u=Xg(u,v,m,null),_.return=i,u.return=i,_.sibling=u,i.child=_,u}function xi(i,s,u,m){var v=i.child;return i=v.sibling,u=Tg(v,{mode:\"visible\",children:u}),0==(2&s.mode)&&(u.lanes=m),u.return=s,u.sibling=null,null!==i&&(i.nextEffect=null,i.flags=8,s.firstEffect=s.lastEffect=i),s.child=u}function wi(i,s,u,m,v){var _=s.mode,j=i.child;i=j.sibling;var M={mode:\"hidden\",children:u};return 0==(2&_)&&s.child!==j?((u=s.child).childLanes=0,u.pendingProps=M,null!==(j=u.lastEffect)?(s.firstEffect=u.firstEffect,s.lastEffect=j,j.nextEffect=null):s.firstEffect=s.lastEffect=null):u=Tg(j,M),null!==i?m=Tg(i,m):(m=Xg(m,_,v,null)).flags|=2,m.return=s,u.return=s,u.sibling=m,s.child=u,m}function yi(i,s){i.lanes|=s;var u=i.alternate;null!==u&&(u.lanes|=s),sg(i.return,s)}function zi(i,s,u,m,v,_){var j=i.memoizedState;null===j?i.memoizedState={isBackwards:s,rendering:null,renderingStartTime:0,last:m,tail:u,tailMode:v,lastEffect:_}:(j.isBackwards=s,j.rendering=null,j.renderingStartTime=0,j.last=m,j.tail=u,j.tailMode=v,j.lastEffect=_)}function Ai(i,s,u){var m=s.pendingProps,v=m.revealOrder,_=m.tail;if(fi(i,s,m.children,u),0!=(2&(m=Yn.current)))m=1&m|2,s.flags|=64;else{if(null!==i&&0!=(64&i.flags))e:for(i=s.child;null!==i;){if(13===i.tag)null!==i.memoizedState&&yi(i,u);else if(19===i.tag)yi(i,u);else if(null!==i.child){i.child.return=i,i=i.child;continue}if(i===s)break e;for(;null===i.sibling;){if(null===i.return||i.return===s)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}m&=1}if(I(Yn,m),0==(2&s.mode))s.memoizedState=null;else switch(v){case\"forwards\":for(u=s.child,v=null;null!==u;)null!==(i=u.alternate)&&null===ih(i)&&(v=u),u=u.sibling;null===(u=v)?(v=s.child,s.child=null):(v=u.sibling,u.sibling=null),zi(s,!1,v,u,_,s.lastEffect);break;case\"backwards\":for(u=null,v=s.child,s.child=null;null!==v;){if(null!==(i=v.alternate)&&null===ih(i)){s.child=v;break}i=v.sibling,v.sibling=u,u=v,v=i}zi(s,!0,u,null,_,s.lastEffect);break;case\"together\":zi(s,!1,null,null,void 0,s.lastEffect);break;default:s.memoizedState=null}return s.child}function hi(i,s,u){if(null!==i&&(s.dependencies=i.dependencies),Do|=s.lanes,0!=(u&s.childLanes)){if(null!==i&&s.child!==i.child)throw Error(y(153));if(null!==s.child){for(u=Tg(i=s.child,i.pendingProps),s.child=u,u.return=s;null!==i.sibling;)i=i.sibling,(u=u.sibling=Tg(i,i.pendingProps)).return=s;u.sibling=null}return s.child}return null}function Fi(i,s){if(!eo)switch(i.tailMode){case\"hidden\":s=i.tail;for(var u=null;null!==s;)null!==s.alternate&&(u=s),s=s.sibling;null===u?i.tail=null:u.sibling=null;break;case\"collapsed\":u=i.tail;for(var m=null;null!==u;)null!==u.alternate&&(m=u),u=u.sibling;null===m?s||null===i.tail?i.tail=null:i.tail.sibling=null:m.sibling=null}}function Gi(i,s,u){var m=s.pendingProps;switch(s.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return Ff(s.type)&&Gf(),null;case 3:return fh(),H(dn),H(hn),uh(),(m=s.stateNode).pendingContext&&(m.context=m.pendingContext,m.pendingContext=null),null!==i&&null!==i.child||(rh(s)?s.flags|=4:m.hydrate||(s.flags|=256)),vo(s),null;case 5:hh(s);var _=dh(Xn.current);if(u=s.type,null!==i&&null!=s.stateNode)bo(i,s,u,m,_),i.ref!==s.ref&&(s.flags|=128);else{if(!m){if(null===s.stateNode)throw Error(y(166));return null}if(i=dh(Jn.current),rh(s)){m=s.stateNode,u=s.type;var j=s.memoizedProps;switch(m[on]=s,m[an]=j,u){case\"dialog\":G(\"cancel\",m),G(\"close\",m);break;case\"iframe\":case\"object\":case\"embed\":G(\"load\",m);break;case\"video\":case\"audio\":for(i=0;i<Gr.length;i++)G(Gr[i],m);break;case\"source\":G(\"error\",m);break;case\"img\":case\"image\":case\"link\":G(\"error\",m),G(\"load\",m);break;case\"details\":G(\"toggle\",m);break;case\"input\":Za(m,j),G(\"invalid\",m);break;case\"select\":m._wrapperState={wasMultiple:!!j.multiple},G(\"invalid\",m);break;case\"textarea\":hb(m,j),G(\"invalid\",m)}for(var $ in vb(u,j),i=null,j)j.hasOwnProperty($)&&(_=j[$],\"children\"===$?\"string\"==typeof _?m.textContent!==_&&(i=[\"children\",_]):\"number\"==typeof _&&m.textContent!==\"\"+_&&(i=[\"children\",\"\"+_]):M.hasOwnProperty($)&&null!=_&&\"onScroll\"===$&&G(\"scroll\",m));switch(u){case\"input\":Va(m),cb(m,j,!0);break;case\"textarea\":Va(m),jb(m);break;case\"select\":case\"option\":break;default:\"function\"==typeof j.onClick&&(m.onclick=jf)}m=i,s.updateQueue=m,null!==m&&(s.flags|=4)}else{switch($=9===_.nodeType?_:_.ownerDocument,i===Ye.html&&(i=lb(u)),i===Ye.html?\"script\"===u?((i=$.createElement(\"div\")).innerHTML=\"<script><\\/script>\",i=i.removeChild(i.firstChild)):\"string\"==typeof m.is?i=$.createElement(u,{is:m.is}):(i=$.createElement(u),\"select\"===u&&($=i,m.multiple?$.multiple=!0:m.size&&($.size=m.size))):i=$.createElementNS(i,u),i[on]=s,i[an]=m,go(i,s,!1,!1),s.stateNode=i,$=wb(u,m),u){case\"dialog\":G(\"cancel\",i),G(\"close\",i),_=m;break;case\"iframe\":case\"object\":case\"embed\":G(\"load\",i),_=m;break;case\"video\":case\"audio\":for(_=0;_<Gr.length;_++)G(Gr[_],i);_=m;break;case\"source\":G(\"error\",i),_=m;break;case\"img\":case\"image\":case\"link\":G(\"error\",i),G(\"load\",i),_=m;break;case\"details\":G(\"toggle\",i),_=m;break;case\"input\":Za(i,m),_=Ya(i,m),G(\"invalid\",i);break;case\"option\":_=eb(i,m);break;case\"select\":i._wrapperState={wasMultiple:!!m.multiple},_=v({},m,{value:void 0}),G(\"invalid\",i);break;case\"textarea\":hb(i,m),_=gb(i,m),G(\"invalid\",i);break;default:_=m}vb(u,_);var W=_;for(j in W)if(W.hasOwnProperty(j)){var X=W[j];\"style\"===j?tb(i,X):\"dangerouslySetInnerHTML\"===j?null!=(X=X?X.__html:void 0)&&tt(i,X):\"children\"===j?\"string\"==typeof X?(\"textarea\"!==u||\"\"!==X)&&pb(i,X):\"number\"==typeof X&&pb(i,\"\"+X):\"suppressContentEditableWarning\"!==j&&\"suppressHydrationWarning\"!==j&&\"autoFocus\"!==j&&(M.hasOwnProperty(j)?null!=X&&\"onScroll\"===j&&G(\"scroll\",i):null!=X&&qa(i,j,X,$))}switch(u){case\"input\":Va(i),cb(i,m,!1);break;case\"textarea\":Va(i),jb(i);break;case\"option\":null!=m.value&&i.setAttribute(\"value\",\"\"+Sa(m.value));break;case\"select\":i.multiple=!!m.multiple,null!=(j=m.value)?fb(i,!!m.multiple,j,!1):null!=m.defaultValue&&fb(i,!!m.multiple,m.defaultValue,!0);break;default:\"function\"==typeof _.onClick&&(i.onclick=jf)}mf(u,m)&&(s.flags|=4)}null!==s.ref&&(s.flags|=128)}return null;case 6:if(i&&null!=s.stateNode)_o(i,s,i.memoizedProps,m);else{if(\"string\"!=typeof m&&null===s.stateNode)throw Error(y(166));u=dh(Xn.current),dh(Jn.current),rh(s)?(m=s.stateNode,u=s.memoizedProps,m[on]=s,m.nodeValue!==u&&(s.flags|=4)):((m=(9===u.nodeType?u:u.ownerDocument).createTextNode(m))[on]=s,s.stateNode=m)}return null;case 13:return H(Yn),m=s.memoizedState,0!=(64&s.flags)?(s.lanes=u,s):(m=null!==m,u=!1,null===i?void 0!==s.memoizedProps.fallback&&rh(s):u=null!==i.memoizedState,m&&!u&&0!=(2&s.mode)&&(null===i&&!0!==s.memoizedProps.unstable_avoidThisFallback||0!=(1&Yn.current)?0===To&&(To=3):(0!==To&&3!==To||(To=4),null===Co||0==(134217727&Do)&&0==(134217727&Bo)||Ii(Co,Po))),(m||u)&&(s.flags|=4),null);case 4:return fh(),vo(s),null===i&&cf(s.stateNode.containerInfo),null;case 10:return rg(s),null;case 19:if(H(Yn),null===(m=s.memoizedState))return null;if(j=0!=(64&s.flags),null===($=m.rendering))if(j)Fi(m,!1);else{if(0!==To||null!==i&&0!=(64&i.flags))for(i=s.child;null!==i;){if(null!==($=ih(i))){for(s.flags|=64,Fi(m,!1),null!==(j=$.updateQueue)&&(s.updateQueue=j,s.flags|=4),null===m.lastEffect&&(s.firstEffect=null),s.lastEffect=m.lastEffect,m=u,u=s.child;null!==u;)i=m,(j=u).flags&=2,j.nextEffect=null,j.firstEffect=null,j.lastEffect=null,null===($=j.alternate)?(j.childLanes=0,j.lanes=i,j.child=null,j.memoizedProps=null,j.memoizedState=null,j.updateQueue=null,j.dependencies=null,j.stateNode=null):(j.childLanes=$.childLanes,j.lanes=$.lanes,j.child=$.child,j.memoizedProps=$.memoizedProps,j.memoizedState=$.memoizedState,j.updateQueue=$.updateQueue,j.type=$.type,i=$.dependencies,j.dependencies=null===i?null:{lanes:i.lanes,firstContext:i.firstContext}),u=u.sibling;return I(Yn,1&Yn.current|2),s.child}i=i.sibling}null!==m.tail&&Rn()>$o&&(s.flags|=64,j=!0,Fi(m,!1),s.lanes=33554432)}else{if(!j)if(null!==(i=ih($))){if(s.flags|=64,j=!0,null!==(u=i.updateQueue)&&(s.updateQueue=u,s.flags|=4),Fi(m,!0),null===m.tail&&\"hidden\"===m.tailMode&&!$.alternate&&!eo)return null!==(s=s.lastEffect=m.lastEffect)&&(s.nextEffect=null),null}else 2*Rn()-m.renderingStartTime>$o&&1073741824!==u&&(s.flags|=64,j=!0,Fi(m,!1),s.lanes=33554432);m.isBackwards?($.sibling=s.child,s.child=$):(null!==(u=m.last)?u.sibling=$:s.child=$,m.last=$)}return null!==m.tail?(u=m.tail,m.rendering=u,m.tail=u.sibling,m.lastEffect=s.lastEffect,m.renderingStartTime=Rn(),u.sibling=null,s=Yn.current,I(Yn,j?1&s|2:1&s),u):null;case 23:case 24:return Ki(),null!==i&&null!==i.memoizedState!=(null!==s.memoizedState)&&\"unstable-defer-without-hiding\"!==m.mode&&(s.flags|=4),null}throw Error(y(156,s.tag))}function Li(i){switch(i.tag){case 1:Ff(i.type)&&Gf();var s=i.flags;return 4096&s?(i.flags=-4097&s|64,i):null;case 3:if(fh(),H(dn),H(hn),uh(),0!=(64&(s=i.flags)))throw Error(y(285));return i.flags=-4097&s|64,i;case 5:return hh(i),null;case 13:return H(Yn),4096&(s=i.flags)?(i.flags=-4097&s|64,i):null;case 19:return H(Yn),null;case 4:return fh(),null;case 10:return rg(i),null;case 23:case 24:return Ki(),null;default:return null}}function Mi(i,s){try{var u=\"\",m=s;do{u+=Qa(m),m=m.return}while(m);var v=u}catch(i){v=\"\\nError generating stack: \"+i.message+\"\\n\"+i.stack}return{value:i,source:s,stack:v}}function Ni(i,s){try{console.error(s.value)}catch(i){setTimeout((function(){throw i}))}}go=function(i,s){for(var u=s.child;null!==u;){if(5===u.tag||6===u.tag)i.appendChild(u.stateNode);else if(4!==u.tag&&null!==u.child){u.child.return=u,u=u.child;continue}if(u===s)break;for(;null===u.sibling;){if(null===u.return||u.return===s)return;u=u.return}u.sibling.return=u.return,u=u.sibling}},vo=function(){},bo=function(i,s,u,m){var _=i.memoizedProps;if(_!==m){i=s.stateNode,dh(Jn.current);var j,$=null;switch(u){case\"input\":_=Ya(i,_),m=Ya(i,m),$=[];break;case\"option\":_=eb(i,_),m=eb(i,m),$=[];break;case\"select\":_=v({},_,{value:void 0}),m=v({},m,{value:void 0}),$=[];break;case\"textarea\":_=gb(i,_),m=gb(i,m),$=[];break;default:\"function\"!=typeof _.onClick&&\"function\"==typeof m.onClick&&(i.onclick=jf)}for(Y in vb(u,m),u=null,_)if(!m.hasOwnProperty(Y)&&_.hasOwnProperty(Y)&&null!=_[Y])if(\"style\"===Y){var W=_[Y];for(j in W)W.hasOwnProperty(j)&&(u||(u={}),u[j]=\"\")}else\"dangerouslySetInnerHTML\"!==Y&&\"children\"!==Y&&\"suppressContentEditableWarning\"!==Y&&\"suppressHydrationWarning\"!==Y&&\"autoFocus\"!==Y&&(M.hasOwnProperty(Y)?$||($=[]):($=$||[]).push(Y,null));for(Y in m){var X=m[Y];if(W=null!=_?_[Y]:void 0,m.hasOwnProperty(Y)&&X!==W&&(null!=X||null!=W))if(\"style\"===Y)if(W){for(j in W)!W.hasOwnProperty(j)||X&&X.hasOwnProperty(j)||(u||(u={}),u[j]=\"\");for(j in X)X.hasOwnProperty(j)&&W[j]!==X[j]&&(u||(u={}),u[j]=X[j])}else u||($||($=[]),$.push(Y,u)),u=X;else\"dangerouslySetInnerHTML\"===Y?(X=X?X.__html:void 0,W=W?W.__html:void 0,null!=X&&W!==X&&($=$||[]).push(Y,X)):\"children\"===Y?\"string\"!=typeof X&&\"number\"!=typeof X||($=$||[]).push(Y,\"\"+X):\"suppressContentEditableWarning\"!==Y&&\"suppressHydrationWarning\"!==Y&&(M.hasOwnProperty(Y)?(null!=X&&\"onScroll\"===Y&&G(\"scroll\",i),$||W===X||($=[])):\"object\"==typeof X&&null!==X&&X.$$typeof===Te?X.toString():($=$||[]).push(Y,X))}u&&($=$||[]).push(\"style\",u);var Y=$;(s.updateQueue=Y)&&(s.flags|=4)}},_o=function(i,s,u,m){u!==m&&(s.flags|=4)};var Eo=\"function\"==typeof WeakMap?WeakMap:Map;function Pi(i,s,u){(u=zg(-1,u)).tag=3,u.payload={element:null};var m=s.value;return u.callback=function(){Vo||(Vo=!0,Wo=m),Ni(0,s)},u}function Si(i,s,u){(u=zg(-1,u)).tag=3;var m=i.type.getDerivedStateFromError;if(\"function\"==typeof m){var v=s.value;u.payload=function(){return Ni(0,s),m(v)}}var _=i.stateNode;return null!==_&&\"function\"==typeof _.componentDidCatch&&(u.callback=function(){\"function\"!=typeof m&&(null===Ko?Ko=new Set([this]):Ko.add(this),Ni(0,s));var i=s.stack;this.componentDidCatch(s.value,{componentStack:null!==i?i:\"\"})}),u}var So=\"function\"==typeof WeakSet?WeakSet:Set;function Vi(i){var s=i.ref;if(null!==s)if(\"function\"==typeof s)try{s(null)}catch(s){Wi(i,s)}else s.current=null}function Xi(i,s){switch(s.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&s.flags&&null!==i){var u=i.memoizedProps,m=i.memoizedState;s=(i=s.stateNode).getSnapshotBeforeUpdate(s.elementType===s.type?u:lg(s.type,u),m),i.__reactInternalSnapshotBeforeUpdate=s}return;case 3:return void(256&s.flags&&qf(s.stateNode.containerInfo))}throw Error(y(163))}function Yi(i,s,u){switch(u.tag){case 0:case 11:case 15:case 22:if(null!==(s=null!==(s=u.updateQueue)?s.lastEffect:null)){i=s=s.next;do{if(3==(3&i.tag)){var m=i.create;i.destroy=m()}i=i.next}while(i!==s)}if(null!==(s=null!==(s=u.updateQueue)?s.lastEffect:null)){i=s=s.next;do{var v=i;m=v.next,0!=(4&(v=v.tag))&&0!=(1&v)&&(Zi(u,i),$i(u,i)),i=m}while(i!==s)}return;case 1:return i=u.stateNode,4&u.flags&&(null===s?i.componentDidMount():(m=u.elementType===u.type?s.memoizedProps:lg(u.type,s.memoizedProps),i.componentDidUpdate(m,s.memoizedState,i.__reactInternalSnapshotBeforeUpdate))),void(null!==(s=u.updateQueue)&&Eg(u,s,i));case 3:if(null!==(s=u.updateQueue)){if(i=null,null!==u.child)switch(u.child.tag){case 5:case 1:i=u.child.stateNode}Eg(u,s,i)}return;case 5:return i=u.stateNode,void(null===s&&4&u.flags&&mf(u.type,u.memoizedProps)&&i.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===u.memoizedState&&(u=u.alternate,null!==u&&(u=u.memoizedState,null!==u&&(u=u.dehydrated,null!==u&&Cc(u)))))}throw Error(y(163))}function aj(i,s){for(var u=i;;){if(5===u.tag){var m=u.stateNode;if(s)\"function\"==typeof(m=m.style).setProperty?m.setProperty(\"display\",\"none\",\"important\"):m.display=\"none\";else{m=u.stateNode;var v=u.memoizedProps.style;v=null!=v&&v.hasOwnProperty(\"display\")?v.display:null,m.style.display=sb(\"display\",v)}}else if(6===u.tag)u.stateNode.nodeValue=s?\"\":u.memoizedProps;else if((23!==u.tag&&24!==u.tag||null===u.memoizedState||u===i)&&null!==u.child){u.child.return=u,u=u.child;continue}if(u===i)break;for(;null===u.sibling;){if(null===u.return||u.return===i)return;u=u.return}u.sibling.return=u.return,u=u.sibling}}function bj(i,s){if(yn&&\"function\"==typeof yn.onCommitFiberUnmount)try{yn.onCommitFiberUnmount(mn,s)}catch(i){}switch(s.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(i=s.updateQueue)&&null!==(i=i.lastEffect)){var u=i=i.next;do{var m=u,v=m.destroy;if(m=m.tag,void 0!==v)if(0!=(4&m))Zi(s,u);else{m=s;try{v()}catch(i){Wi(m,i)}}u=u.next}while(u!==i)}break;case 1:if(Vi(s),\"function\"==typeof(i=s.stateNode).componentWillUnmount)try{i.props=s.memoizedProps,i.state=s.memoizedState,i.componentWillUnmount()}catch(i){Wi(s,i)}break;case 5:Vi(s);break;case 4:cj(i,s)}}function dj(i){i.alternate=null,i.child=null,i.dependencies=null,i.firstEffect=null,i.lastEffect=null,i.memoizedProps=null,i.memoizedState=null,i.pendingProps=null,i.return=null,i.updateQueue=null}function ej(i){return 5===i.tag||3===i.tag||4===i.tag}function fj(i){e:{for(var s=i.return;null!==s;){if(ej(s))break e;s=s.return}throw Error(y(160))}var u=s;switch(s=u.stateNode,u.tag){case 5:var m=!1;break;case 3:case 4:s=s.containerInfo,m=!0;break;default:throw Error(y(161))}16&u.flags&&(pb(s,\"\"),u.flags&=-17);e:t:for(u=i;;){for(;null===u.sibling;){if(null===u.return||ej(u.return)){u=null;break e}u=u.return}for(u.sibling.return=u.return,u=u.sibling;5!==u.tag&&6!==u.tag&&18!==u.tag;){if(2&u.flags)continue t;if(null===u.child||4===u.tag)continue t;u.child.return=u,u=u.child}if(!(2&u.flags)){u=u.stateNode;break e}}m?gj(i,u,s):hj(i,u,s)}function gj(i,s,u){var m=i.tag,v=5===m||6===m;if(v)i=v?i.stateNode:i.stateNode.instance,s?8===u.nodeType?u.parentNode.insertBefore(i,s):u.insertBefore(i,s):(8===u.nodeType?(s=u.parentNode).insertBefore(i,u):(s=u).appendChild(i),null!=(u=u._reactRootContainer)||null!==s.onclick||(s.onclick=jf));else if(4!==m&&null!==(i=i.child))for(gj(i,s,u),i=i.sibling;null!==i;)gj(i,s,u),i=i.sibling}function hj(i,s,u){var m=i.tag,v=5===m||6===m;if(v)i=v?i.stateNode:i.stateNode.instance,s?u.insertBefore(i,s):u.appendChild(i);else if(4!==m&&null!==(i=i.child))for(hj(i,s,u),i=i.sibling;null!==i;)hj(i,s,u),i=i.sibling}function cj(i,s){for(var u,m,v=s,_=!1;;){if(!_){_=v.return;e:for(;;){if(null===_)throw Error(y(160));switch(u=_.stateNode,_.tag){case 5:m=!1;break e;case 3:case 4:u=u.containerInfo,m=!0;break e}_=_.return}_=!0}if(5===v.tag||6===v.tag){e:for(var j=i,M=v,$=M;;)if(bj(j,$),null!==$.child&&4!==$.tag)$.child.return=$,$=$.child;else{if($===M)break e;for(;null===$.sibling;){if(null===$.return||$.return===M)break e;$=$.return}$.sibling.return=$.return,$=$.sibling}m?(j=u,M=v.stateNode,8===j.nodeType?j.parentNode.removeChild(M):j.removeChild(M)):u.removeChild(v.stateNode)}else if(4===v.tag){if(null!==v.child){u=v.stateNode.containerInfo,m=!0,v.child.return=v,v=v.child;continue}}else if(bj(i,v),null!==v.child){v.child.return=v,v=v.child;continue}if(v===s)break;for(;null===v.sibling;){if(null===v.return||v.return===s)return;4===(v=v.return).tag&&(_=!1)}v.sibling.return=v.return,v=v.sibling}}function ij(i,s){switch(s.tag){case 0:case 11:case 14:case 15:case 22:var u=s.updateQueue;if(null!==(u=null!==u?u.lastEffect:null)){var m=u=u.next;do{3==(3&m.tag)&&(i=m.destroy,m.destroy=void 0,void 0!==i&&i()),m=m.next}while(m!==u)}return;case 1:case 12:case 17:return;case 5:if(null!=(u=s.stateNode)){m=s.memoizedProps;var v=null!==i?i.memoizedProps:m;i=s.type;var _=s.updateQueue;if(s.updateQueue=null,null!==_){for(u[an]=m,\"input\"===i&&\"radio\"===m.type&&null!=m.name&&$a(u,m),wb(i,v),s=wb(i,m),v=0;v<_.length;v+=2){var j=_[v],M=_[v+1];\"style\"===j?tb(u,M):\"dangerouslySetInnerHTML\"===j?tt(u,M):\"children\"===j?pb(u,M):qa(u,j,M,s)}switch(i){case\"input\":ab(u,m);break;case\"textarea\":ib(u,m);break;case\"select\":i=u._wrapperState.wasMultiple,u._wrapperState.wasMultiple=!!m.multiple,null!=(_=m.value)?fb(u,!!m.multiple,_,!1):i!==!!m.multiple&&(null!=m.defaultValue?fb(u,!!m.multiple,m.defaultValue,!0):fb(u,!!m.multiple,m.multiple?[]:\"\",!1))}}}return;case 6:if(null===s.stateNode)throw Error(y(162));return void(s.stateNode.nodeValue=s.memoizedProps);case 3:return void((u=s.stateNode).hydrate&&(u.hydrate=!1,Cc(u.containerInfo)));case 13:return null!==s.memoizedState&&(qo=Rn(),aj(s.child,!0)),void kj(s);case 19:return void kj(s);case 23:case 24:return void aj(s,null!==s.memoizedState)}throw Error(y(163))}function kj(i){var s=i.updateQueue;if(null!==s){i.updateQueue=null;var u=i.stateNode;null===u&&(u=i.stateNode=new So),s.forEach((function(s){var m=lj.bind(null,i,s);u.has(s)||(u.add(s),s.then(m,m))}))}}function mj(i,s){return null!==i&&(null===(i=i.memoizedState)||null!==i.dehydrated)&&(null!==(s=s.memoizedState)&&null===s.dehydrated)}var xo=Math.ceil,Oo=ae.ReactCurrentDispatcher,ko=ae.ReactCurrentOwner,Ao=0,Co=null,jo=null,Po=0,Io=0,No=Bf(0),To=0,Mo=null,Ro=0,Do=0,Bo=0,Lo=0,Fo=null,qo=0,$o=1/0;function wj(){$o=Rn()+500}var Uo,zo=null,Vo=!1,Wo=null,Ko=null,Ho=!1,Jo=null,Go=90,Xo=[],Yo=[],Qo=null,Zo=0,ei=null,si=-1,_i=0,Ei=0,Oi=null,Ci=!1;function Hg(){return 0!=(48&Ao)?Rn():-1!==si?si:si=Rn()}function Ig(i){if(0==(2&(i=i.mode)))return 1;if(0==(4&i))return 99===eg()?1:2;if(0===_i&&(_i=Ro),0!==Dn.transition){0!==Ei&&(Ei=null!==Fo?Fo.pendingLanes:0),i=_i;var s=4186112&~Ei;return 0===(s&=-s)&&(0===(s=(i=4186112&~i)&-i)&&(s=8192)),s}return i=eg(),0!=(4&Ao)&&98===i?i=Xc(12,_i):i=Xc(i=function Sc(i){switch(i){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(i),_i),i}function Jg(i,s,u){if(50<Zo)throw Zo=0,ei=null,Error(y(185));if(null===(i=Kj(i,s)))return null;$c(i,s,u),i===Co&&(Bo|=s,4===To&&Ii(i,Po));var m=eg();1===s?0!=(8&Ao)&&0==(48&Ao)?Lj(i):(Mj(i,u),0===Ao&&(wj(),ig())):(0==(4&Ao)||98!==m&&99!==m||(null===Qo?Qo=new Set([i]):Qo.add(i)),Mj(i,u)),Fo=i}function Kj(i,s){i.lanes|=s;var u=i.alternate;for(null!==u&&(u.lanes|=s),u=i,i=i.return;null!==i;)i.childLanes|=s,null!==(u=i.alternate)&&(u.childLanes|=s),u=i,i=i.return;return 3===u.tag?u.stateNode:null}function Mj(i,s){for(var u=i.callbackNode,m=i.suspendedLanes,v=i.pingedLanes,_=i.expirationTimes,j=i.pendingLanes;0<j;){var M=31-zt(j),$=1<<M,W=_[M];if(-1===W){if(0==($&m)||0!=($&v)){W=s,Rc($);var X=Ut;_[M]=10<=X?W+250:6<=X?W+5e3:-1}}else W<=s&&(i.expiredLanes|=$);j&=~$}if(m=Uc(i,i===Co?Po:0),s=Ut,0===m)null!==u&&(u!==jn&&bn(u),i.callbackNode=null,i.callbackPriority=0);else{if(null!==u){if(i.callbackPriority===s)return;u!==jn&&bn(u)}15===s?(u=Lj.bind(null,i),null===In?(In=[u],Nn=vn(xn,jg)):In.push(u),u=jn):14===s?u=hg(99,Lj.bind(null,i)):(u=function Tc(i){switch(i){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(y(358,i))}}(s),u=hg(u,Nj.bind(null,i))),i.callbackPriority=s,i.callbackNode=u}}function Nj(i){if(si=-1,Ei=_i=0,0!=(48&Ao))throw Error(y(327));var s=i.callbackNode;if(Oj()&&i.callbackNode!==s)return null;var u=Uc(i,i===Co?Po:0);if(0===u)return null;var m=u,v=Ao;Ao|=16;var _=Pj();for(Co===i&&Po===m||(wj(),Qj(i,m));;)try{Rj();break}catch(s){Sj(i,s)}if(qg(),Oo.current=_,Ao=v,null!==jo?m=0:(Co=null,Po=0,m=To),0!=(Ro&Bo))Qj(i,0);else if(0!==m){if(2===m&&(Ao|=64,i.hydrate&&(i.hydrate=!1,qf(i.containerInfo)),0!==(u=Wc(i))&&(m=Tj(i,u))),1===m)throw s=Mo,Qj(i,0),Ii(i,u),Mj(i,Rn()),s;switch(i.finishedWork=i.current.alternate,i.finishedLanes=u,m){case 0:case 1:throw Error(y(345));case 2:case 5:Uj(i);break;case 3:if(Ii(i,u),(62914560&u)===u&&10<(m=qo+500-Rn())){if(0!==Uc(i,0))break;if(((v=i.suspendedLanes)&u)!==u){Hg(),i.pingedLanes|=i.suspendedLanes&v;break}i.timeoutHandle=en(Uj.bind(null,i),m);break}Uj(i);break;case 4:if(Ii(i,u),(4186112&u)===u)break;for(m=i.eventTimes,v=-1;0<u;){var j=31-zt(u);_=1<<j,(j=m[j])>v&&(v=j),u&=~_}if(u=v,10<(u=(120>(u=Rn()-u)?120:480>u?480:1080>u?1080:1920>u?1920:3e3>u?3e3:4320>u?4320:1960*xo(u/1960))-u)){i.timeoutHandle=en(Uj.bind(null,i),u);break}Uj(i);break;default:throw Error(y(329))}}return Mj(i,Rn()),i.callbackNode===s?Nj.bind(null,i):null}function Ii(i,s){for(s&=~Lo,s&=~Bo,i.suspendedLanes|=s,i.pingedLanes&=~s,i=i.expirationTimes;0<s;){var u=31-zt(s),m=1<<u;i[u]=-1,s&=~m}}function Lj(i){if(0!=(48&Ao))throw Error(y(327));if(Oj(),i===Co&&0!=(i.expiredLanes&Po)){var s=Po,u=Tj(i,s);0!=(Ro&Bo)&&(u=Tj(i,s=Uc(i,s)))}else u=Tj(i,s=Uc(i,0));if(0!==i.tag&&2===u&&(Ao|=64,i.hydrate&&(i.hydrate=!1,qf(i.containerInfo)),0!==(s=Wc(i))&&(u=Tj(i,s))),1===u)throw u=Mo,Qj(i,0),Ii(i,s),Mj(i,Rn()),u;return i.finishedWork=i.current.alternate,i.finishedLanes=s,Uj(i),Mj(i,Rn()),null}function Wj(i,s){var u=Ao;Ao|=1;try{return i(s)}finally{0===(Ao=u)&&(wj(),ig())}}function Xj(i,s){var u=Ao;Ao&=-2,Ao|=8;try{return i(s)}finally{0===(Ao=u)&&(wj(),ig())}}function ni(i,s){I(No,Io),Io|=s,Ro|=s}function Ki(){Io=No.current,H(No)}function Qj(i,s){i.finishedWork=null,i.finishedLanes=0;var u=i.timeoutHandle;if(-1!==u&&(i.timeoutHandle=-1,tn(u)),null!==jo)for(u=jo.return;null!==u;){var m=u;switch(m.tag){case 1:null!=(m=m.type.childContextTypes)&&Gf();break;case 3:fh(),H(dn),H(hn),uh();break;case 5:hh(m);break;case 4:fh();break;case 13:case 19:H(Yn);break;case 10:rg(m);break;case 23:case 24:Ki()}u=u.return}Co=i,jo=Tg(i.current,null),Po=Io=Ro=s,To=0,Mo=null,Lo=Bo=Do=0}function Sj(i,s){for(;;){var u=jo;try{if(qg(),ro.current=uo,co){for(var m=io.memoizedState;null!==m;){var v=m.queue;null!==v&&(v.pending=null),m=m.next}co=!1}if(oo=0,so=ao=io=null,lo=!1,ko.current=null,null===u||null===u.return){To=1,Mo=s,jo=null;break}e:{var _=i,j=u.return,M=u,$=s;if(s=Po,M.flags|=2048,M.firstEffect=M.lastEffect=null,null!==$&&\"object\"==typeof $&&\"function\"==typeof $.then){var W=$;if(0==(2&M.mode)){var X=M.alternate;X?(M.updateQueue=X.updateQueue,M.memoizedState=X.memoizedState,M.lanes=X.lanes):(M.updateQueue=null,M.memoizedState=null)}var Y=0!=(1&Yn.current),Z=j;do{var ee;if(ee=13===Z.tag){var ie=Z.memoizedState;if(null!==ie)ee=null!==ie.dehydrated;else{var ae=Z.memoizedProps;ee=void 0!==ae.fallback&&(!0!==ae.unstable_avoidThisFallback||!Y)}}if(ee){var ce=Z.updateQueue;if(null===ce){var le=new Set;le.add(W),Z.updateQueue=le}else ce.add(W);if(0==(2&Z.mode)){if(Z.flags|=64,M.flags|=16384,M.flags&=-2981,1===M.tag)if(null===M.alternate)M.tag=17;else{var pe=zg(-1,1);pe.tag=2,Ag(M,pe)}M.lanes|=1;break e}$=void 0,M=s;var de=_.pingCache;if(null===de?(de=_.pingCache=new Eo,$=new Set,de.set(W,$)):void 0===($=de.get(W))&&($=new Set,de.set(W,$)),!$.has(M)){$.add(M);var fe=Yj.bind(null,_,W,M);W.then(fe,fe)}Z.flags|=4096,Z.lanes=s;break e}Z=Z.return}while(null!==Z);$=Error((Ra(M.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==To&&(To=2),$=Mi($,M),Z=j;do{switch(Z.tag){case 3:_=$,Z.flags|=4096,s&=-s,Z.lanes|=s,Bg(Z,Pi(0,_,s));break e;case 1:_=$;var ye=Z.type,be=Z.stateNode;if(0==(64&Z.flags)&&(\"function\"==typeof ye.getDerivedStateFromError||null!==be&&\"function\"==typeof be.componentDidCatch&&(null===Ko||!Ko.has(be)))){Z.flags|=4096,s&=-s,Z.lanes|=s,Bg(Z,Si(Z,_,s));break e}}Z=Z.return}while(null!==Z)}Zj(u)}catch(i){s=i,jo===u&&null!==u&&(jo=u=u.return);continue}break}}function Pj(){var i=Oo.current;return Oo.current=uo,null===i?uo:i}function Tj(i,s){var u=Ao;Ao|=16;var m=Pj();for(Co===i&&Po===s||Qj(i,s);;)try{ak();break}catch(s){Sj(i,s)}if(qg(),Ao=u,Oo.current=m,null!==jo)throw Error(y(261));return Co=null,Po=0,To}function ak(){for(;null!==jo;)bk(jo)}function Rj(){for(;null!==jo&&!_n();)bk(jo)}function bk(i){var s=Uo(i.alternate,i,Io);i.memoizedProps=i.pendingProps,null===s?Zj(i):jo=s,ko.current=null}function Zj(i){var s=i;do{var u=s.alternate;if(i=s.return,0==(2048&s.flags)){if(null!==(u=Gi(u,s,Io)))return void(jo=u);if(24!==(u=s).tag&&23!==u.tag||null===u.memoizedState||0!=(1073741824&Io)||0==(4&u.mode)){for(var m=0,v=u.child;null!==v;)m|=v.lanes|v.childLanes,v=v.sibling;u.childLanes=m}null!==i&&0==(2048&i.flags)&&(null===i.firstEffect&&(i.firstEffect=s.firstEffect),null!==s.lastEffect&&(null!==i.lastEffect&&(i.lastEffect.nextEffect=s.firstEffect),i.lastEffect=s.lastEffect),1<s.flags&&(null!==i.lastEffect?i.lastEffect.nextEffect=s:i.firstEffect=s,i.lastEffect=s))}else{if(null!==(u=Li(s)))return u.flags&=2047,void(jo=u);null!==i&&(i.firstEffect=i.lastEffect=null,i.flags|=2048)}if(null!==(s=s.sibling))return void(jo=s);jo=s=i}while(null!==s);0===To&&(To=5)}function Uj(i){var s=eg();return gg(99,dk.bind(null,i,s)),null}function dk(i,s){do{Oj()}while(null!==Jo);if(0!=(48&Ao))throw Error(y(327));var u=i.finishedWork;if(null===u)return null;if(i.finishedWork=null,i.finishedLanes=0,u===i.current)throw Error(y(177));i.callbackNode=null;var m=u.lanes|u.childLanes,v=m,_=i.pendingLanes&~v;i.pendingLanes=v,i.suspendedLanes=0,i.pingedLanes=0,i.expiredLanes&=v,i.mutableReadLanes&=v,i.entangledLanes&=v,v=i.entanglements;for(var j=i.eventTimes,M=i.expirationTimes;0<_;){var $=31-zt(_),W=1<<$;v[$]=0,j[$]=-1,M[$]=-1,_&=~W}if(null!==Qo&&0==(24&m)&&Qo.has(i)&&Qo.delete(i),i===Co&&(jo=Co=null,Po=0),1<u.flags?null!==u.lastEffect?(u.lastEffect.nextEffect=u,m=u.firstEffect):m=u:m=u.firstEffect,null!==m){if(v=Ao,Ao|=32,ko.current=null,Qr=Jt,Oe(j=Ne())){if(\"selectionStart\"in j)M={start:j.selectionStart,end:j.selectionEnd};else e:if(M=(M=j.ownerDocument)&&M.defaultView||window,(W=M.getSelection&&M.getSelection())&&0!==W.rangeCount){M=W.anchorNode,_=W.anchorOffset,$=W.focusNode,W=W.focusOffset;try{M.nodeType,$.nodeType}catch(i){M=null;break e}var X=0,Y=-1,Z=-1,ee=0,ie=0,ae=j,ce=null;t:for(;;){for(var le;ae!==M||0!==_&&3!==ae.nodeType||(Y=X+_),ae!==$||0!==W&&3!==ae.nodeType||(Z=X+W),3===ae.nodeType&&(X+=ae.nodeValue.length),null!==(le=ae.firstChild);)ce=ae,ae=le;for(;;){if(ae===j)break t;if(ce===M&&++ee===_&&(Y=X),ce===$&&++ie===W&&(Z=X),null!==(le=ae.nextSibling))break;ce=(ae=ce).parentNode}ae=le}M=-1===Y||-1===Z?null:{start:Y,end:Z}}else M=null;M=M||{start:0,end:0}}else M=null;Zr={focusedElem:j,selectionRange:M},Jt=!1,Oi=null,Ci=!1,zo=m;do{try{ek()}catch(i){if(null===zo)throw Error(y(330));Wi(zo,i),zo=zo.nextEffect}}while(null!==zo);Oi=null,zo=m;do{try{for(j=i;null!==zo;){var pe=zo.flags;if(16&pe&&pb(zo.stateNode,\"\"),128&pe){var de=zo.alternate;if(null!==de){var fe=de.ref;null!==fe&&(\"function\"==typeof fe?fe(null):fe.current=null)}}switch(1038&pe){case 2:fj(zo),zo.flags&=-3;break;case 6:fj(zo),zo.flags&=-3,ij(zo.alternate,zo);break;case 1024:zo.flags&=-1025;break;case 1028:zo.flags&=-1025,ij(zo.alternate,zo);break;case 4:ij(zo.alternate,zo);break;case 8:cj(j,M=zo);var ye=M.alternate;dj(M),null!==ye&&dj(ye)}zo=zo.nextEffect}}catch(i){if(null===zo)throw Error(y(330));Wi(zo,i),zo=zo.nextEffect}}while(null!==zo);if(fe=Zr,de=Ne(),pe=fe.focusedElem,j=fe.selectionRange,de!==pe&&pe&&pe.ownerDocument&&Me(pe.ownerDocument.documentElement,pe)){null!==j&&Oe(pe)&&(de=j.start,void 0===(fe=j.end)&&(fe=de),\"selectionStart\"in pe?(pe.selectionStart=de,pe.selectionEnd=Math.min(fe,pe.value.length)):(fe=(de=pe.ownerDocument||document)&&de.defaultView||window).getSelection&&(fe=fe.getSelection(),M=pe.textContent.length,ye=Math.min(j.start,M),j=void 0===j.end?ye:Math.min(j.end,M),!fe.extend&&ye>j&&(M=j,j=ye,ye=M),M=Le(pe,ye),_=Le(pe,j),M&&_&&(1!==fe.rangeCount||fe.anchorNode!==M.node||fe.anchorOffset!==M.offset||fe.focusNode!==_.node||fe.focusOffset!==_.offset)&&((de=de.createRange()).setStart(M.node,M.offset),fe.removeAllRanges(),ye>j?(fe.addRange(de),fe.extend(_.node,_.offset)):(de.setEnd(_.node,_.offset),fe.addRange(de))))),de=[];for(fe=pe;fe=fe.parentNode;)1===fe.nodeType&&de.push({element:fe,left:fe.scrollLeft,top:fe.scrollTop});for(\"function\"==typeof pe.focus&&pe.focus(),pe=0;pe<de.length;pe++)(fe=de[pe]).element.scrollLeft=fe.left,fe.element.scrollTop=fe.top}Jt=!!Qr,Zr=Qr=null,i.current=u,zo=m;do{try{for(pe=i;null!==zo;){var be=zo.flags;if(36&be&&Yi(pe,zo.alternate,zo),128&be){de=void 0;var _e=zo.ref;if(null!==_e){var we=zo.stateNode;zo.tag,de=we,\"function\"==typeof _e?_e(de):_e.current=de}}zo=zo.nextEffect}}catch(i){if(null===zo)throw Error(y(330));Wi(zo,i),zo=zo.nextEffect}}while(null!==zo);zo=null,Pn(),Ao=v}else i.current=u;if(Ho)Ho=!1,Jo=i,Go=s;else for(zo=m;null!==zo;)s=zo.nextEffect,zo.nextEffect=null,8&zo.flags&&((be=zo).sibling=null,be.stateNode=null),zo=s;if(0===(m=i.pendingLanes)&&(Ko=null),1===m?i===ei?Zo++:(Zo=0,ei=i):Zo=0,u=u.stateNode,yn&&\"function\"==typeof yn.onCommitFiberRoot)try{yn.onCommitFiberRoot(mn,u,void 0,64==(64&u.current.flags))}catch(i){}if(Mj(i,Rn()),Vo)throw Vo=!1,i=Wo,Wo=null,i;return 0!=(8&Ao)||ig(),null}function ek(){for(;null!==zo;){var i=zo.alternate;Ci||null===Oi||(0!=(8&zo.flags)?dc(zo,Oi)&&(Ci=!0):13===zo.tag&&mj(i,zo)&&dc(zo,Oi)&&(Ci=!0));var s=zo.flags;0!=(256&s)&&Xi(i,zo),0==(512&s)||Ho||(Ho=!0,hg(97,(function(){return Oj(),null}))),zo=zo.nextEffect}}function Oj(){if(90!==Go){var i=97<Go?97:Go;return Go=90,gg(i,fk)}return!1}function $i(i,s){Xo.push(s,i),Ho||(Ho=!0,hg(97,(function(){return Oj(),null})))}function Zi(i,s){Yo.push(s,i),Ho||(Ho=!0,hg(97,(function(){return Oj(),null})))}function fk(){if(null===Jo)return!1;var i=Jo;if(Jo=null,0!=(48&Ao))throw Error(y(331));var s=Ao;Ao|=32;var u=Yo;Yo=[];for(var m=0;m<u.length;m+=2){var v=u[m],_=u[m+1],j=v.destroy;if(v.destroy=void 0,\"function\"==typeof j)try{j()}catch(i){if(null===_)throw Error(y(330));Wi(_,i)}}for(u=Xo,Xo=[],m=0;m<u.length;m+=2){v=u[m],_=u[m+1];try{var M=v.create;v.destroy=M()}catch(i){if(null===_)throw Error(y(330));Wi(_,i)}}for(M=i.current.firstEffect;null!==M;)i=M.nextEffect,M.nextEffect=null,8&M.flags&&(M.sibling=null,M.stateNode=null),M=i;return Ao=s,ig(),!0}function gk(i,s,u){Ag(i,s=Pi(0,s=Mi(u,s),1)),s=Hg(),null!==(i=Kj(i,1))&&($c(i,1,s),Mj(i,s))}function Wi(i,s){if(3===i.tag)gk(i,i,s);else for(var u=i.return;null!==u;){if(3===u.tag){gk(u,i,s);break}if(1===u.tag){var m=u.stateNode;if(\"function\"==typeof u.type.getDerivedStateFromError||\"function\"==typeof m.componentDidCatch&&(null===Ko||!Ko.has(m))){var v=Si(u,i=Mi(s,i),1);if(Ag(u,v),v=Hg(),null!==(u=Kj(u,1)))$c(u,1,v),Mj(u,v);else if(\"function\"==typeof m.componentDidCatch&&(null===Ko||!Ko.has(m)))try{m.componentDidCatch(s,i)}catch(i){}break}}u=u.return}}function Yj(i,s,u){var m=i.pingCache;null!==m&&m.delete(s),s=Hg(),i.pingedLanes|=i.suspendedLanes&u,Co===i&&(Po&u)===u&&(4===To||3===To&&(62914560&Po)===Po&&500>Rn()-qo?Qj(i,0):Lo|=u),Mj(i,s)}function lj(i,s){var u=i.stateNode;null!==u&&u.delete(s),0===(s=0)&&(0==(2&(s=i.mode))?s=1:0==(4&s)?s=99===eg()?1:2:(0===_i&&(_i=Ro),0===(s=Yc(62914560&~_i))&&(s=4194304))),u=Hg(),null!==(i=Kj(i,s))&&($c(i,s,u),Mj(i,u))}function ik(i,s,u,m){this.tag=i,this.key=u,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=s,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=m,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function nh(i,s,u,m){return new ik(i,s,u,m)}function ji(i){return!(!(i=i.prototype)||!i.isReactComponent)}function Tg(i,s){var u=i.alternate;return null===u?((u=nh(i.tag,s,i.key,i.mode)).elementType=i.elementType,u.type=i.type,u.stateNode=i.stateNode,u.alternate=i,i.alternate=u):(u.pendingProps=s,u.type=i.type,u.flags=0,u.nextEffect=null,u.firstEffect=null,u.lastEffect=null),u.childLanes=i.childLanes,u.lanes=i.lanes,u.child=i.child,u.memoizedProps=i.memoizedProps,u.memoizedState=i.memoizedState,u.updateQueue=i.updateQueue,s=i.dependencies,u.dependencies=null===s?null:{lanes:s.lanes,firstContext:s.firstContext},u.sibling=i.sibling,u.index=i.index,u.ref=i.ref,u}function Vg(i,s,u,m,v,_){var j=2;if(m=i,\"function\"==typeof i)ji(i)&&(j=1);else if(\"string\"==typeof i)j=5;else e:switch(i){case pe:return Xg(u.children,v,_,s);case Re:j=8,v|=16;break;case de:j=8,v|=1;break;case fe:return(i=nh(12,u,s,8|v)).elementType=fe,i.type=fe,i.lanes=_,i;case we:return(i=nh(13,u,s,v)).type=we,i.elementType=we,i.lanes=_,i;case Se:return(i=nh(19,u,s,v)).elementType=Se,i.lanes=_,i;case qe:return vi(u,v,_,s);case ze:return(i=nh(24,u,s,v)).elementType=ze,i.lanes=_,i;default:if(\"object\"==typeof i&&null!==i)switch(i.$$typeof){case ye:j=10;break e;case be:j=9;break e;case _e:j=11;break e;case xe:j=14;break e;case Pe:j=16,m=null;break e;case Ie:j=22;break e}throw Error(y(130,null==i?i:typeof i,\"\"))}return(s=nh(j,u,s,v)).elementType=i,s.type=m,s.lanes=_,s}function Xg(i,s,u,m){return(i=nh(7,i,m,s)).lanes=u,i}function vi(i,s,u,m){return(i=nh(23,i,m,s)).elementType=qe,i.lanes=u,i}function Ug(i,s,u){return(i=nh(6,i,null,s)).lanes=u,i}function Wg(i,s,u){return(s=nh(4,null!==i.children?i.children:[],i.key,s)).lanes=u,s.stateNode={containerInfo:i.containerInfo,pendingChildren:null,implementation:i.implementation},s}function jk(i,s,u){this.tag=s,this.containerInfo=i,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=u,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Zc(0),this.expirationTimes=Zc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Zc(0),this.mutableSourceEagerHydrationData=null}function lk(i,s,u,m){var v=s.current,_=Hg(),j=Ig(v);e:if(u){t:{if(Zb(u=u._reactInternals)!==u||1!==u.tag)throw Error(y(170));var M=u;do{switch(M.tag){case 3:M=M.stateNode.context;break t;case 1:if(Ff(M.type)){M=M.stateNode.__reactInternalMemoizedMergedChildContext;break t}}M=M.return}while(null!==M);throw Error(y(171))}if(1===u.tag){var $=u.type;if(Ff($)){u=If(u,$,M);break e}}u=M}else u=pn;return null===s.context?s.context=u:s.pendingContext=u,(s=zg(_,j)).payload={element:i},null!==(m=void 0===m?null:m)&&(s.callback=m),Ag(v,s),Jg(v,j,_),j}function mk(i){return(i=i.current).child?(i.child.tag,i.child.stateNode):null}function nk(i,s){if(null!==(i=i.memoizedState)&&null!==i.dehydrated){var u=i.retryLane;i.retryLane=0!==u&&u<s?u:s}}function ok(i,s){nk(i,s),(i=i.alternate)&&nk(i,s)}function qk(i,s,u){var m=null!=u&&null!=u.hydrationOptions&&u.hydrationOptions.mutableSources||null;if(u=new jk(i,s,null!=u&&!0===u.hydrate),s=nh(3,null,null,2===s?7:1===s?3:0),u.current=s,s.stateNode=u,xg(s),i[sn]=u.current,cf(8===i.nodeType?i.parentNode:i),m)for(i=0;i<m.length;i++){var v=(s=m[i])._getVersion;v=v(s._source),null==u.mutableSourceEagerHydrationData?u.mutableSourceEagerHydrationData=[s,v]:u.mutableSourceEagerHydrationData.push(s,v)}this._internalRoot=u}function rk(i){return!(!i||1!==i.nodeType&&9!==i.nodeType&&11!==i.nodeType&&(8!==i.nodeType||\" react-mount-point-unstable \"!==i.nodeValue))}function tk(i,s,u,m,v){var _=u._reactRootContainer;if(_){var j=_._internalRoot;if(\"function\"==typeof v){var M=v;v=function(){var i=mk(j);M.call(i)}}lk(s,j,i,v)}else{if(_=u._reactRootContainer=function sk(i,s){if(s||(s=!(!(s=i?9===i.nodeType?i.documentElement:i.firstChild:null)||1!==s.nodeType||!s.hasAttribute(\"data-reactroot\"))),!s)for(var u;u=i.lastChild;)i.removeChild(u);return new qk(i,0,s?{hydrate:!0}:void 0)}(u,m),j=_._internalRoot,\"function\"==typeof v){var $=v;v=function(){var i=mk(j);$.call(i)}}Xj((function(){lk(s,j,i,v)}))}return mk(j)}function uk(i,s){var u=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!rk(s))throw Error(y(200));return function kk(i,s,u){var m=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:le,key:null==m?null:\"\"+m,children:i,containerInfo:s,implementation:u}}(i,s,null,u)}Uo=function(i,s,u){var m=s.lanes;if(null!==i)if(i.memoizedProps!==s.pendingProps||dn.current)yo=!0;else{if(0==(u&m)){switch(yo=!1,s.tag){case 3:ri(s),sh();break;case 5:gh(s);break;case 1:Ff(s.type)&&Jf(s);break;case 4:eh(s,s.stateNode.containerInfo);break;case 10:m=s.memoizedProps.value;var v=s.type._context;I(Bn,v._currentValue),v._currentValue=m;break;case 13:if(null!==s.memoizedState)return 0!=(u&s.child.childLanes)?ti(i,s,u):(I(Yn,1&Yn.current),null!==(s=hi(i,s,u))?s.sibling:null);I(Yn,1&Yn.current);break;case 19:if(m=0!=(u&s.childLanes),0!=(64&i.flags)){if(m)return Ai(i,s,u);s.flags|=64}if(null!==(v=s.memoizedState)&&(v.rendering=null,v.tail=null,v.lastEffect=null),I(Yn,Yn.current),m)break;return null;case 23:case 24:return s.lanes=0,mi(i,s,u)}return hi(i,s,u)}yo=0!=(16384&i.flags)}else yo=!1;switch(s.lanes=0,s.tag){case 2:if(m=s.type,null!==i&&(i.alternate=null,s.alternate=null,s.flags|=2),i=s.pendingProps,v=Ef(s,hn.current),tg(s,u),v=Ch(null,s,m,i,v,u),s.flags|=1,\"object\"==typeof v&&null!==v&&\"function\"==typeof v.render&&void 0===v.$$typeof){if(s.tag=1,s.memoizedState=null,s.updateQueue=null,Ff(m)){var _=!0;Jf(s)}else _=!1;s.memoizedState=null!==v.state&&void 0!==v.state?v.state:null,xg(s);var j=m.getDerivedStateFromProps;\"function\"==typeof j&&Gg(s,m,j,i),v.updater=zn,s.stateNode=v,v._reactInternals=s,Og(s,m,i,u),s=qi(null,s,m,!0,_,u)}else s.tag=0,fi(null,s,v,u),s=s.child;return s;case 16:v=s.elementType;e:{switch(null!==i&&(i.alternate=null,s.alternate=null,s.flags|=2),i=s.pendingProps,v=(_=v._init)(v._payload),s.type=v,_=s.tag=function hk(i){if(\"function\"==typeof i)return ji(i)?1:0;if(null!=i){if((i=i.$$typeof)===_e)return 11;if(i===xe)return 14}return 2}(v),i=lg(v,i),_){case 0:s=li(null,s,v,i,u);break e;case 1:s=pi(null,s,v,i,u);break e;case 11:s=gi(null,s,v,i,u);break e;case 14:s=ii(null,s,v,lg(v.type,i),m,u);break e}throw Error(y(306,v,\"\"))}return s;case 0:return m=s.type,v=s.pendingProps,li(i,s,m,v=s.elementType===m?v:lg(m,v),u);case 1:return m=s.type,v=s.pendingProps,pi(i,s,m,v=s.elementType===m?v:lg(m,v),u);case 3:if(ri(s),m=s.updateQueue,null===i||null===m)throw Error(y(282));if(m=s.pendingProps,v=null!==(v=s.memoizedState)?v.element:null,yg(i,s),Cg(s,m,null,u),(m=s.memoizedState.element)===v)sh(),s=hi(i,s,u);else{if((_=(v=s.stateNode).hydrate)&&(Zn=rf(s.stateNode.containerInfo.firstChild),Qn=s,_=eo=!0),_){if(null!=(i=v.mutableSourceEagerHydrationData))for(v=0;v<i.length;v+=2)(_=i[v])._workInProgressVersionPrimary=i[v+1],to.push(_);for(u=Kn(s,null,m,u),s.child=u;u;)u.flags=-3&u.flags|1024,u=u.sibling}else fi(i,s,m,u),sh();s=s.child}return s;case 5:return gh(s),null===i&&ph(s),m=s.type,v=s.pendingProps,_=null!==i?i.memoizedProps:null,j=v.children,nf(m,v)?j=null:null!==_&&nf(m,_)&&(s.flags|=16),oi(i,s),fi(i,s,j,u),s.child;case 6:return null===i&&ph(s),null;case 13:return ti(i,s,u);case 4:return eh(s,s.stateNode.containerInfo),m=s.pendingProps,null===i?s.child=Wn(s,null,m,u):fi(i,s,m,u),s.child;case 11:return m=s.type,v=s.pendingProps,gi(i,s,m,v=s.elementType===m?v:lg(m,v),u);case 7:return fi(i,s,s.pendingProps,u),s.child;case 8:case 12:return fi(i,s,s.pendingProps.children,u),s.child;case 10:e:{m=s.type._context,v=s.pendingProps,j=s.memoizedProps,_=v.value;var M=s.type._context;if(I(Bn,M._currentValue),M._currentValue=_,null!==j)if(M=j.value,0===(_=qr(M,_)?0:0|(\"function\"==typeof m._calculateChangedBits?m._calculateChangedBits(M,_):1073741823))){if(j.children===v.children&&!dn.current){s=hi(i,s,u);break e}}else for(null!==(M=s.child)&&(M.return=s);null!==M;){var $=M.dependencies;if(null!==$){j=M.child;for(var W=$.firstContext;null!==W;){if(W.context===m&&0!=(W.observedBits&_)){1===M.tag&&((W=zg(-1,u&-u)).tag=2,Ag(M,W)),M.lanes|=u,null!==(W=M.alternate)&&(W.lanes|=u),sg(M.return,u),$.lanes|=u;break}W=W.next}}else j=10===M.tag&&M.type===s.type?null:M.child;if(null!==j)j.return=M;else for(j=M;null!==j;){if(j===s){j=null;break}if(null!==(M=j.sibling)){M.return=j.return,j=M;break}j=j.return}M=j}fi(i,s,v.children,u),s=s.child}return s;case 9:return v=s.type,m=(_=s.pendingProps).children,tg(s,u),m=m(v=vg(v,_.unstable_observedBits)),s.flags|=1,fi(i,s,m,u),s.child;case 14:return _=lg(v=s.type,s.pendingProps),ii(i,s,v,_=lg(v.type,_),m,u);case 15:return ki(i,s,s.type,s.pendingProps,m,u);case 17:return m=s.type,v=s.pendingProps,v=s.elementType===m?v:lg(m,v),null!==i&&(i.alternate=null,s.alternate=null,s.flags|=2),s.tag=1,Ff(m)?(i=!0,Jf(s)):i=!1,tg(s,u),Mg(s,m,v),Og(s,m,v,u),qi(null,s,m,!0,i,u);case 19:return Ai(i,s,u);case 23:case 24:return mi(i,s,u)}throw Error(y(156,s.tag))},qk.prototype.render=function(i){lk(i,this._internalRoot,null,null)},qk.prototype.unmount=function(){var i=this._internalRoot,s=i.containerInfo;lk(null,i,null,(function(){s[sn]=null}))},bt=function(i){13===i.tag&&(Jg(i,4,Hg()),ok(i,4))},_t=function(i){13===i.tag&&(Jg(i,67108864,Hg()),ok(i,67108864))},wt=function(i){if(13===i.tag){var s=Hg(),u=Ig(i);Jg(i,u,s),ok(i,u)}},Et=function(i,s){return s()},it=function(i,s,u){switch(s){case\"input\":if(ab(i,u),s=u.name,\"radio\"===u.type&&null!=s){for(u=i;u.parentNode;)u=u.parentNode;for(u=u.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+s)+'][type=\"radio\"]'),s=0;s<u.length;s++){var m=u[s];if(m!==i&&m.form===i.form){var v=Db(m);if(!v)throw Error(y(90));Wa(m),ab(m,v)}}}break;case\"textarea\":ib(i,u);break;case\"select\":null!=(s=u.value)&&fb(i,!!u.multiple,s,!1)}},Gb=Wj,Hb=function(i,s,u,m,v){var _=Ao;Ao|=4;try{return gg(98,i.bind(null,s,u,m,v))}finally{0===(Ao=_)&&(wj(),ig())}},Ib=function(){0==(49&Ao)&&(function Vj(){if(null!==Qo){var i=Qo;Qo=null,i.forEach((function(i){i.expiredLanes|=24&i.pendingLanes,Mj(i,Rn())}))}ig()}(),Oj())},ct=function(i,s){var u=Ao;Ao|=2;try{return i(s)}finally{0===(Ao=u)&&(wj(),ig())}};var Ti={Events:[Cb,ue,Db,Eb,Fb,Oj,{current:!1}]},Ri={findFiberByHostInstance:wc,bundleType:0,version:\"17.0.2\",rendererPackageName:\"react-dom\"},Di={bundleType:Ri.bundleType,version:Ri.version,rendererPackageName:Ri.rendererPackageName,rendererConfig:Ri.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ae.ReactCurrentDispatcher,findHostInstanceByFiber:function(i){return null===(i=cc(i))?null:i.stateNode},findFiberByHostInstance:Ri.findFiberByHostInstance||function pk(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if(\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var Bi=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Bi.isDisabled&&Bi.supportsFiber)try{mn=Bi.inject(Di),yn=Bi}catch(et){}}s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Ti,s.createPortal=uk,s.findDOMNode=function(i){if(null==i)return null;if(1===i.nodeType)return i;var s=i._reactInternals;if(void 0===s){if(\"function\"==typeof i.render)throw Error(y(188));throw Error(y(268,Object.keys(i)))}return i=null===(i=cc(s))?null:i.stateNode},s.flushSync=function(i,s){var u=Ao;if(0!=(48&u))return i(s);Ao|=1;try{if(i)return gg(99,i.bind(null,s))}finally{Ao=u,ig()}},s.hydrate=function(i,s,u){if(!rk(s))throw Error(y(200));return tk(null,i,s,!0,u)},s.render=function(i,s,u){if(!rk(s))throw Error(y(200));return tk(null,i,s,!1,u)},s.unmountComponentAtNode=function(i){if(!rk(i))throw Error(y(40));return!!i._reactRootContainer&&(Xj((function(){tk(null,null,i,!1,(function(){i._reactRootContainer=null,i[sn]=null}))})),!0)},s.unstable_batchedUpdates=Wj,s.unstable_createPortal=function(i,s){return uk(i,s,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},s.unstable_renderSubtreeIntoContainer=function(i,s,u,m){if(!rk(u))throw Error(y(200));if(null==i||void 0===i._reactInternals)throw Error(y(38));return tk(i,s,u,!1,m)},s.version=\"17.0.2\"},73935:(i,s,u)=>{\"use strict\";!function checkDCE(){if(\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(i){console.error(i)}}(),i.exports=u(64448)},23930:(i,s,u)=>{\"use strict\";var m,v=u(43393),_=\"<<anonymous>>\",j=function productionTypeChecker(){invariant(!1,\"ImmutablePropTypes type checking code is stripped in production.\")};j.isRequired=j;var M=function getProductionTypeChecker(){return j};function getPropType(i){var s=typeof i;return Array.isArray(i)?\"array\":i instanceof RegExp?\"object\":i instanceof v.Iterable?\"Immutable.\"+i.toSource().split(\" \")[0]:s}function createChainableTypeChecker(i){function checkType(s,u,m,v,j,M){for(var $=arguments.length,W=Array($>6?$-6:0),X=6;X<$;X++)W[X-6]=arguments[X];return M=M||m,v=v||_,null!=u[m]?i.apply(void 0,[u,m,v,j,M].concat(W)):s?new Error(\"Required \"+j+\" `\"+M+\"` was not specified in `\"+v+\"`.\"):void 0}var s=checkType.bind(null,!1);return s.isRequired=checkType.bind(null,!0),s}function createIterableSubclassTypeChecker(i,s){return function createImmutableTypeChecker(i,s){return createChainableTypeChecker((function validate(u,m,v,_,j){var M=u[m];if(!s(M)){var $=getPropType(M);return new Error(\"Invalid \"+_+\" `\"+j+\"` of type `\"+$+\"` supplied to `\"+v+\"`, expected `\"+i+\"`.\")}return null}))}(\"Iterable.\"+i,(function(i){return v.Iterable.isIterable(i)&&s(i)}))}(m={listOf:M,mapOf:M,orderedMapOf:M,setOf:M,orderedSetOf:M,stackOf:M,iterableOf:M,recordOf:M,shape:M,contains:M,mapContains:M,orderedMapContains:M,list:j,map:j,orderedMap:j,set:j,orderedSet:j,stack:j,seq:j,record:j,iterable:j}).iterable.indexed=createIterableSubclassTypeChecker(\"Indexed\",v.Iterable.isIndexed),m.iterable.keyed=createIterableSubclassTypeChecker(\"Keyed\",v.Iterable.isKeyed),i.exports=m},69921:(i,s)=>{\"use strict\";var u=60103,m=60106,v=60107,_=60108,j=60114,M=60109,$=60110,W=60112,X=60113,Y=60120,Z=60115,ee=60116,ie=60121,ae=60122,ce=60117,le=60129,pe=60131;if(\"function\"==typeof Symbol&&Symbol.for){var de=Symbol.for;u=de(\"react.element\"),m=de(\"react.portal\"),v=de(\"react.fragment\"),_=de(\"react.strict_mode\"),j=de(\"react.profiler\"),M=de(\"react.provider\"),$=de(\"react.context\"),W=de(\"react.forward_ref\"),X=de(\"react.suspense\"),Y=de(\"react.suspense_list\"),Z=de(\"react.memo\"),ee=de(\"react.lazy\"),ie=de(\"react.block\"),ae=de(\"react.server.block\"),ce=de(\"react.fundamental\"),le=de(\"react.debug_trace_mode\"),pe=de(\"react.legacy_hidden\")}function y(i){if(\"object\"==typeof i&&null!==i){var s=i.$$typeof;switch(s){case u:switch(i=i.type){case v:case j:case _:case X:case Y:return i;default:switch(i=i&&i.$$typeof){case $:case W:case ee:case Z:case M:return i;default:return s}}case m:return s}}}var fe=M,ye=u,be=W,_e=v,we=ee,Se=Z,xe=m,Pe=j,Ie=_,Te=X;s.ContextConsumer=$,s.ContextProvider=fe,s.Element=ye,s.ForwardRef=be,s.Fragment=_e,s.Lazy=we,s.Memo=Se,s.Portal=xe,s.Profiler=Pe,s.StrictMode=Ie,s.Suspense=Te,s.isAsyncMode=function(){return!1},s.isConcurrentMode=function(){return!1},s.isContextConsumer=function(i){return y(i)===$},s.isContextProvider=function(i){return y(i)===M},s.isElement=function(i){return\"object\"==typeof i&&null!==i&&i.$$typeof===u},s.isForwardRef=function(i){return y(i)===W},s.isFragment=function(i){return y(i)===v},s.isLazy=function(i){return y(i)===ee},s.isMemo=function(i){return y(i)===Z},s.isPortal=function(i){return y(i)===m},s.isProfiler=function(i){return y(i)===j},s.isStrictMode=function(i){return y(i)===_},s.isSuspense=function(i){return y(i)===X},s.isValidElementType=function(i){return\"string\"==typeof i||\"function\"==typeof i||i===v||i===j||i===le||i===_||i===X||i===Y||i===pe||\"object\"==typeof i&&null!==i&&(i.$$typeof===ee||i.$$typeof===Z||i.$$typeof===M||i.$$typeof===$||i.$$typeof===W||i.$$typeof===ce||i.$$typeof===ie||i[0]===ae)},s.typeOf=y},59864:(i,s,u)=>{\"use strict\";i.exports=u(69921)},72408:(i,s,u)=>{\"use strict\";var m=u(27418),v=60103,_=60106;s.Fragment=60107,s.StrictMode=60108,s.Profiler=60114;var j=60109,M=60110,$=60112;s.Suspense=60113;var W=60115,X=60116;if(\"function\"==typeof Symbol&&Symbol.for){var Y=Symbol.for;v=Y(\"react.element\"),_=Y(\"react.portal\"),s.Fragment=Y(\"react.fragment\"),s.StrictMode=Y(\"react.strict_mode\"),s.Profiler=Y(\"react.profiler\"),j=Y(\"react.provider\"),M=Y(\"react.context\"),$=Y(\"react.forward_ref\"),s.Suspense=Y(\"react.suspense\"),W=Y(\"react.memo\"),X=Y(\"react.lazy\")}var Z=\"function\"==typeof Symbol&&Symbol.iterator;function z(i){for(var s=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+i,u=1;u<arguments.length;u++)s+=\"&args[]=\"+encodeURIComponent(arguments[u]);return\"Minified React error #\"+i+\"; visit \"+s+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var ee={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ie={};function C(i,s,u){this.props=i,this.context=s,this.refs=ie,this.updater=u||ee}function D(){}function E(i,s,u){this.props=i,this.context=s,this.refs=ie,this.updater=u||ee}C.prototype.isReactComponent={},C.prototype.setState=function(i,s){if(\"object\"!=typeof i&&\"function\"!=typeof i&&null!=i)throw Error(z(85));this.updater.enqueueSetState(this,i,s,\"setState\")},C.prototype.forceUpdate=function(i){this.updater.enqueueForceUpdate(this,i,\"forceUpdate\")},D.prototype=C.prototype;var ae=E.prototype=new D;ae.constructor=E,m(ae,C.prototype),ae.isPureReactComponent=!0;var ce={current:null},le=Object.prototype.hasOwnProperty,pe={key:!0,ref:!0,__self:!0,__source:!0};function J(i,s,u){var m,_={},j=null,M=null;if(null!=s)for(m in void 0!==s.ref&&(M=s.ref),void 0!==s.key&&(j=\"\"+s.key),s)le.call(s,m)&&!pe.hasOwnProperty(m)&&(_[m]=s[m]);var $=arguments.length-2;if(1===$)_.children=u;else if(1<$){for(var W=Array($),X=0;X<$;X++)W[X]=arguments[X+2];_.children=W}if(i&&i.defaultProps)for(m in $=i.defaultProps)void 0===_[m]&&(_[m]=$[m]);return{$$typeof:v,type:i,key:j,ref:M,props:_,_owner:ce.current}}function L(i){return\"object\"==typeof i&&null!==i&&i.$$typeof===v}var de=/\\/+/g;function N(i,s){return\"object\"==typeof i&&null!==i&&null!=i.key?function escape(i){var s={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+i.replace(/[=:]/g,(function(i){return s[i]}))}(\"\"+i.key):s.toString(36)}function O(i,s,u,m,j){var M=typeof i;\"undefined\"!==M&&\"boolean\"!==M||(i=null);var $=!1;if(null===i)$=!0;else switch(M){case\"string\":case\"number\":$=!0;break;case\"object\":switch(i.$$typeof){case v:case _:$=!0}}if($)return j=j($=i),i=\"\"===m?\".\"+N($,0):m,Array.isArray(j)?(u=\"\",null!=i&&(u=i.replace(de,\"$&/\")+\"/\"),O(j,s,u,\"\",(function(i){return i}))):null!=j&&(L(j)&&(j=function K(i,s){return{$$typeof:v,type:i.type,key:s,ref:i.ref,props:i.props,_owner:i._owner}}(j,u+(!j.key||$&&$.key===j.key?\"\":(\"\"+j.key).replace(de,\"$&/\")+\"/\")+i)),s.push(j)),1;if($=0,m=\"\"===m?\".\":m+\":\",Array.isArray(i))for(var W=0;W<i.length;W++){var X=m+N(M=i[W],W);$+=O(M,s,u,X,j)}else if(X=function y(i){return null===i||\"object\"!=typeof i?null:\"function\"==typeof(i=Z&&i[Z]||i[\"@@iterator\"])?i:null}(i),\"function\"==typeof X)for(i=X.call(i),W=0;!(M=i.next()).done;)$+=O(M=M.value,s,u,X=m+N(M,W++),j);else if(\"object\"===M)throw s=\"\"+i,Error(z(31,\"[object Object]\"===s?\"object with keys {\"+Object.keys(i).join(\", \")+\"}\":s));return $}function P(i,s,u){if(null==i)return i;var m=[],v=0;return O(i,m,\"\",\"\",(function(i){return s.call(u,i,v++)})),m}function Q(i){if(-1===i._status){var s=i._result;s=s(),i._status=0,i._result=s,s.then((function(s){0===i._status&&(s=s.default,i._status=1,i._result=s)}),(function(s){0===i._status&&(i._status=2,i._result=s)}))}if(1===i._status)return i._result;throw i._result}var fe={current:null};function S(){var i=fe.current;if(null===i)throw Error(z(321));return i}var ye={ReactCurrentDispatcher:fe,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:ce,IsSomeRendererActing:{current:!1},assign:m};s.Children={map:P,forEach:function(i,s,u){P(i,(function(){s.apply(this,arguments)}),u)},count:function(i){var s=0;return P(i,(function(){s++})),s},toArray:function(i){return P(i,(function(i){return i}))||[]},only:function(i){if(!L(i))throw Error(z(143));return i}},s.Component=C,s.PureComponent=E,s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ye,s.cloneElement=function(i,s,u){if(null==i)throw Error(z(267,i));var _=m({},i.props),j=i.key,M=i.ref,$=i._owner;if(null!=s){if(void 0!==s.ref&&(M=s.ref,$=ce.current),void 0!==s.key&&(j=\"\"+s.key),i.type&&i.type.defaultProps)var W=i.type.defaultProps;for(X in s)le.call(s,X)&&!pe.hasOwnProperty(X)&&(_[X]=void 0===s[X]&&void 0!==W?W[X]:s[X])}var X=arguments.length-2;if(1===X)_.children=u;else if(1<X){W=Array(X);for(var Y=0;Y<X;Y++)W[Y]=arguments[Y+2];_.children=W}return{$$typeof:v,type:i.type,key:j,ref:M,props:_,_owner:$}},s.createContext=function(i,s){return void 0===s&&(s=null),(i={$$typeof:M,_calculateChangedBits:s,_currentValue:i,_currentValue2:i,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:j,_context:i},i.Consumer=i},s.createElement=J,s.createFactory=function(i){var s=J.bind(null,i);return s.type=i,s},s.createRef=function(){return{current:null}},s.forwardRef=function(i){return{$$typeof:$,render:i}},s.isValidElement=L,s.lazy=function(i){return{$$typeof:X,_payload:{_status:-1,_result:i},_init:Q}},s.memo=function(i,s){return{$$typeof:W,type:i,compare:void 0===s?null:s}},s.useCallback=function(i,s){return S().useCallback(i,s)},s.useContext=function(i,s){return S().useContext(i,s)},s.useDebugValue=function(){},s.useEffect=function(i,s){return S().useEffect(i,s)},s.useImperativeHandle=function(i,s,u){return S().useImperativeHandle(i,s,u)},s.useLayoutEffect=function(i,s){return S().useLayoutEffect(i,s)},s.useMemo=function(i,s){return S().useMemo(i,s)},s.useReducer=function(i,s,u){return S().useReducer(i,s,u)},s.useRef=function(i){return S().useRef(i)},s.useState=function(i){return S().useState(i)},s.version=\"17.0.2\"},67294:(i,s,u)=>{\"use strict\";i.exports=u(72408)},94281:i=>{\"use strict\";var s={};function createErrorType(i,u,m){m||(m=Error);var v=function(i){function NodeError(s,m,v){return i.call(this,function getMessage(i,s,m){return\"string\"==typeof u?u:u(i,s,m)}(s,m,v))||this}return function _inheritsLoose(i,s){i.prototype=Object.create(s.prototype),i.prototype.constructor=i,i.__proto__=s}(NodeError,i),NodeError}(m);v.prototype.name=m.name,v.prototype.code=i,s[i]=v}function oneOf(i,s){if(Array.isArray(i)){var u=i.length;return i=i.map((function(i){return String(i)})),u>2?\"one of \".concat(s,\" \").concat(i.slice(0,u-1).join(\", \"),\", or \")+i[u-1]:2===u?\"one of \".concat(s,\" \").concat(i[0],\" or \").concat(i[1]):\"of \".concat(s,\" \").concat(i[0])}return\"of \".concat(s,\" \").concat(String(i))}createErrorType(\"ERR_INVALID_OPT_VALUE\",(function(i,s){return'The value \"'+s+'\" is invalid for option \"'+i+'\"'}),TypeError),createErrorType(\"ERR_INVALID_ARG_TYPE\",(function(i,s,u){var m,v;if(\"string\"==typeof s&&function startsWith(i,s,u){return i.substr(!u||u<0?0:+u,s.length)===s}(s,\"not \")?(m=\"must not be\",s=s.replace(/^not /,\"\")):m=\"must be\",function endsWith(i,s,u){return(void 0===u||u>i.length)&&(u=i.length),i.substring(u-s.length,u)===s}(i,\" argument\"))v=\"The \".concat(i,\" \").concat(m,\" \").concat(oneOf(s,\"type\"));else{var _=function includes(i,s,u){return\"number\"!=typeof u&&(u=0),!(u+s.length>i.length)&&-1!==i.indexOf(s,u)}(i,\".\")?\"property\":\"argument\";v='The \"'.concat(i,'\" ').concat(_,\" \").concat(m,\" \").concat(oneOf(s,\"type\"))}return v+=\". Received type \".concat(typeof u)}),TypeError),createErrorType(\"ERR_STREAM_PUSH_AFTER_EOF\",\"stream.push() after EOF\"),createErrorType(\"ERR_METHOD_NOT_IMPLEMENTED\",(function(i){return\"The \"+i+\" method is not implemented\"})),createErrorType(\"ERR_STREAM_PREMATURE_CLOSE\",\"Premature close\"),createErrorType(\"ERR_STREAM_DESTROYED\",(function(i){return\"Cannot call \"+i+\" after a stream was destroyed\"})),createErrorType(\"ERR_MULTIPLE_CALLBACK\",\"Callback called multiple times\"),createErrorType(\"ERR_STREAM_CANNOT_PIPE\",\"Cannot pipe, not readable\"),createErrorType(\"ERR_STREAM_WRITE_AFTER_END\",\"write after end\"),createErrorType(\"ERR_STREAM_NULL_VALUES\",\"May not write null values to stream\",TypeError),createErrorType(\"ERR_UNKNOWN_ENCODING\",(function(i){return\"Unknown encoding: \"+i}),TypeError),createErrorType(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\",\"stream.unshift() after end event\"),i.exports.q=s},56753:(i,s,u)=>{\"use strict\";var m=u(34155),v=Object.keys||function(i){var s=[];for(var u in i)s.push(u);return s};i.exports=Duplex;var _=u(79481),j=u(64229);u(35717)(Duplex,_);for(var M=v(j.prototype),$=0;$<M.length;$++){var W=M[$];Duplex.prototype[W]||(Duplex.prototype[W]=j.prototype[W])}function Duplex(i){if(!(this instanceof Duplex))return new Duplex(i);_.call(this,i),j.call(this,i),this.allowHalfOpen=!0,i&&(!1===i.readable&&(this.readable=!1),!1===i.writable&&(this.writable=!1),!1===i.allowHalfOpen&&(this.allowHalfOpen=!1,this.once(\"end\",onend)))}function onend(){this._writableState.ended||m.nextTick(onEndNT,this)}function onEndNT(i){i.end()}Object.defineProperty(Duplex.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function get(){return this._writableState.highWaterMark}}),Object.defineProperty(Duplex.prototype,\"writableBuffer\",{enumerable:!1,get:function get(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(Duplex.prototype,\"writableLength\",{enumerable:!1,get:function get(){return this._writableState.length}}),Object.defineProperty(Duplex.prototype,\"destroyed\",{enumerable:!1,get:function get(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function set(i){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=i,this._writableState.destroyed=i)}})},82725:(i,s,u)=>{\"use strict\";i.exports=PassThrough;var m=u(74605);function PassThrough(i){if(!(this instanceof PassThrough))return new PassThrough(i);m.call(this,i)}u(35717)(PassThrough,m),PassThrough.prototype._transform=function(i,s,u){u(null,i)}},79481:(i,s,u)=>{\"use strict\";var m,v=u(34155);i.exports=Readable,Readable.ReadableState=ReadableState;u(17187).EventEmitter;var _=function EElistenerCount(i,s){return i.listeners(s).length},j=u(22503),M=u(48764).Buffer,$=(void 0!==u.g?u.g:\"undefined\"!=typeof window?window:\"undefined\"!=typeof self?self:{}).Uint8Array||function(){};var W,X=u(94616);W=X&&X.debuglog?X.debuglog(\"stream\"):function debug(){};var Y,Z,ee,ie=u(57327),ae=u(61195),ce=u(82457).getHighWaterMark,le=u(94281).q,pe=le.ERR_INVALID_ARG_TYPE,de=le.ERR_STREAM_PUSH_AFTER_EOF,fe=le.ERR_METHOD_NOT_IMPLEMENTED,ye=le.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;u(35717)(Readable,j);var be=ae.errorOrDestroy,_e=[\"error\",\"close\",\"destroy\",\"pause\",\"resume\"];function ReadableState(i,s,v){m=m||u(56753),i=i||{},\"boolean\"!=typeof v&&(v=s instanceof m),this.objectMode=!!i.objectMode,v&&(this.objectMode=this.objectMode||!!i.readableObjectMode),this.highWaterMark=ce(this,i,\"readableHighWaterMark\",v),this.buffer=new ie,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==i.emitClose,this.autoDestroy=!!i.autoDestroy,this.destroyed=!1,this.defaultEncoding=i.defaultEncoding||\"utf8\",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,i.encoding&&(Y||(Y=u(32553).s),this.decoder=new Y(i.encoding),this.encoding=i.encoding)}function Readable(i){if(m=m||u(56753),!(this instanceof Readable))return new Readable(i);var s=this instanceof m;this._readableState=new ReadableState(i,this,s),this.readable=!0,i&&(\"function\"==typeof i.read&&(this._read=i.read),\"function\"==typeof i.destroy&&(this._destroy=i.destroy)),j.call(this)}function readableAddChunk(i,s,u,m,v){W(\"readableAddChunk\",s);var _,j=i._readableState;if(null===s)j.reading=!1,function onEofChunk(i,s){if(W(\"onEofChunk\"),s.ended)return;if(s.decoder){var u=s.decoder.end();u&&u.length&&(s.buffer.push(u),s.length+=s.objectMode?1:u.length)}s.ended=!0,s.sync?emitReadable(i):(s.needReadable=!1,s.emittedReadable||(s.emittedReadable=!0,emitReadable_(i)))}(i,j);else if(v||(_=function chunkInvalid(i,s){var u;(function _isUint8Array(i){return M.isBuffer(i)||i instanceof $})(s)||\"string\"==typeof s||void 0===s||i.objectMode||(u=new pe(\"chunk\",[\"string\",\"Buffer\",\"Uint8Array\"],s));return u}(j,s)),_)be(i,_);else if(j.objectMode||s&&s.length>0)if(\"string\"==typeof s||j.objectMode||Object.getPrototypeOf(s)===M.prototype||(s=function _uint8ArrayToBuffer(i){return M.from(i)}(s)),m)j.endEmitted?be(i,new ye):addChunk(i,j,s,!0);else if(j.ended)be(i,new de);else{if(j.destroyed)return!1;j.reading=!1,j.decoder&&!u?(s=j.decoder.write(s),j.objectMode||0!==s.length?addChunk(i,j,s,!1):maybeReadMore(i,j)):addChunk(i,j,s,!1)}else m||(j.reading=!1,maybeReadMore(i,j));return!j.ended&&(j.length<j.highWaterMark||0===j.length)}function addChunk(i,s,u,m){s.flowing&&0===s.length&&!s.sync?(s.awaitDrain=0,i.emit(\"data\",u)):(s.length+=s.objectMode?1:u.length,m?s.buffer.unshift(u):s.buffer.push(u),s.needReadable&&emitReadable(i)),maybeReadMore(i,s)}Object.defineProperty(Readable.prototype,\"destroyed\",{enumerable:!1,get:function get(){return void 0!==this._readableState&&this._readableState.destroyed},set:function set(i){this._readableState&&(this._readableState.destroyed=i)}}),Readable.prototype.destroy=ae.destroy,Readable.prototype._undestroy=ae.undestroy,Readable.prototype._destroy=function(i,s){s(i)},Readable.prototype.push=function(i,s){var u,m=this._readableState;return m.objectMode?u=!0:\"string\"==typeof i&&((s=s||m.defaultEncoding)!==m.encoding&&(i=M.from(i,s),s=\"\"),u=!0),readableAddChunk(this,i,s,!1,u)},Readable.prototype.unshift=function(i){return readableAddChunk(this,i,null,!0,!1)},Readable.prototype.isPaused=function(){return!1===this._readableState.flowing},Readable.prototype.setEncoding=function(i){Y||(Y=u(32553).s);var s=new Y(i);this._readableState.decoder=s,this._readableState.encoding=this._readableState.decoder.encoding;for(var m=this._readableState.buffer.head,v=\"\";null!==m;)v+=s.write(m.data),m=m.next;return this._readableState.buffer.clear(),\"\"!==v&&this._readableState.buffer.push(v),this._readableState.length=v.length,this};var we=1073741824;function howMuchToRead(i,s){return i<=0||0===s.length&&s.ended?0:s.objectMode?1:i!=i?s.flowing&&s.length?s.buffer.head.data.length:s.length:(i>s.highWaterMark&&(s.highWaterMark=function computeNewHighWaterMark(i){return i>=we?i=we:(i--,i|=i>>>1,i|=i>>>2,i|=i>>>4,i|=i>>>8,i|=i>>>16,i++),i}(i)),i<=s.length?i:s.ended?s.length:(s.needReadable=!0,0))}function emitReadable(i){var s=i._readableState;W(\"emitReadable\",s.needReadable,s.emittedReadable),s.needReadable=!1,s.emittedReadable||(W(\"emitReadable\",s.flowing),s.emittedReadable=!0,v.nextTick(emitReadable_,i))}function emitReadable_(i){var s=i._readableState;W(\"emitReadable_\",s.destroyed,s.length,s.ended),s.destroyed||!s.length&&!s.ended||(i.emit(\"readable\"),s.emittedReadable=!1),s.needReadable=!s.flowing&&!s.ended&&s.length<=s.highWaterMark,flow(i)}function maybeReadMore(i,s){s.readingMore||(s.readingMore=!0,v.nextTick(maybeReadMore_,i,s))}function maybeReadMore_(i,s){for(;!s.reading&&!s.ended&&(s.length<s.highWaterMark||s.flowing&&0===s.length);){var u=s.length;if(W(\"maybeReadMore read 0\"),i.read(0),u===s.length)break}s.readingMore=!1}function updateReadableListening(i){var s=i._readableState;s.readableListening=i.listenerCount(\"readable\")>0,s.resumeScheduled&&!s.paused?s.flowing=!0:i.listenerCount(\"data\")>0&&i.resume()}function nReadingNextTick(i){W(\"readable nexttick read 0\"),i.read(0)}function resume_(i,s){W(\"resume\",s.reading),s.reading||i.read(0),s.resumeScheduled=!1,i.emit(\"resume\"),flow(i),s.flowing&&!s.reading&&i.read(0)}function flow(i){var s=i._readableState;for(W(\"flow\",s.flowing);s.flowing&&null!==i.read(););}function fromList(i,s){return 0===s.length?null:(s.objectMode?u=s.buffer.shift():!i||i>=s.length?(u=s.decoder?s.buffer.join(\"\"):1===s.buffer.length?s.buffer.first():s.buffer.concat(s.length),s.buffer.clear()):u=s.buffer.consume(i,s.decoder),u);var u}function endReadable(i){var s=i._readableState;W(\"endReadable\",s.endEmitted),s.endEmitted||(s.ended=!0,v.nextTick(endReadableNT,s,i))}function endReadableNT(i,s){if(W(\"endReadableNT\",i.endEmitted,i.length),!i.endEmitted&&0===i.length&&(i.endEmitted=!0,s.readable=!1,s.emit(\"end\"),i.autoDestroy)){var u=s._writableState;(!u||u.autoDestroy&&u.finished)&&s.destroy()}}function indexOf(i,s){for(var u=0,m=i.length;u<m;u++)if(i[u]===s)return u;return-1}Readable.prototype.read=function(i){W(\"read\",i),i=parseInt(i,10);var s=this._readableState,u=i;if(0!==i&&(s.emittedReadable=!1),0===i&&s.needReadable&&((0!==s.highWaterMark?s.length>=s.highWaterMark:s.length>0)||s.ended))return W(\"read: emitReadable\",s.length,s.ended),0===s.length&&s.ended?endReadable(this):emitReadable(this),null;if(0===(i=howMuchToRead(i,s))&&s.ended)return 0===s.length&&endReadable(this),null;var m,v=s.needReadable;return W(\"need readable\",v),(0===s.length||s.length-i<s.highWaterMark)&&W(\"length less than watermark\",v=!0),s.ended||s.reading?W(\"reading or ended\",v=!1):v&&(W(\"do read\"),s.reading=!0,s.sync=!0,0===s.length&&(s.needReadable=!0),this._read(s.highWaterMark),s.sync=!1,s.reading||(i=howMuchToRead(u,s))),null===(m=i>0?fromList(i,s):null)?(s.needReadable=s.length<=s.highWaterMark,i=0):(s.length-=i,s.awaitDrain=0),0===s.length&&(s.ended||(s.needReadable=!0),u!==i&&s.ended&&endReadable(this)),null!==m&&this.emit(\"data\",m),m},Readable.prototype._read=function(i){be(this,new fe(\"_read()\"))},Readable.prototype.pipe=function(i,s){var u=this,m=this._readableState;switch(m.pipesCount){case 0:m.pipes=i;break;case 1:m.pipes=[m.pipes,i];break;default:m.pipes.push(i)}m.pipesCount+=1,W(\"pipe count=%d opts=%j\",m.pipesCount,s);var j=(!s||!1!==s.end)&&i!==v.stdout&&i!==v.stderr?onend:unpipe;function onunpipe(s,v){W(\"onunpipe\"),s===u&&v&&!1===v.hasUnpiped&&(v.hasUnpiped=!0,function cleanup(){W(\"cleanup\"),i.removeListener(\"close\",onclose),i.removeListener(\"finish\",onfinish),i.removeListener(\"drain\",M),i.removeListener(\"error\",onerror),i.removeListener(\"unpipe\",onunpipe),u.removeListener(\"end\",onend),u.removeListener(\"end\",unpipe),u.removeListener(\"data\",ondata),$=!0,!m.awaitDrain||i._writableState&&!i._writableState.needDrain||M()}())}function onend(){W(\"onend\"),i.end()}m.endEmitted?v.nextTick(j):u.once(\"end\",j),i.on(\"unpipe\",onunpipe);var M=function pipeOnDrain(i){return function pipeOnDrainFunctionResult(){var s=i._readableState;W(\"pipeOnDrain\",s.awaitDrain),s.awaitDrain&&s.awaitDrain--,0===s.awaitDrain&&_(i,\"data\")&&(s.flowing=!0,flow(i))}}(u);i.on(\"drain\",M);var $=!1;function ondata(s){W(\"ondata\");var v=i.write(s);W(\"dest.write\",v),!1===v&&((1===m.pipesCount&&m.pipes===i||m.pipesCount>1&&-1!==indexOf(m.pipes,i))&&!$&&(W(\"false write response, pause\",m.awaitDrain),m.awaitDrain++),u.pause())}function onerror(s){W(\"onerror\",s),unpipe(),i.removeListener(\"error\",onerror),0===_(i,\"error\")&&be(i,s)}function onclose(){i.removeListener(\"finish\",onfinish),unpipe()}function onfinish(){W(\"onfinish\"),i.removeListener(\"close\",onclose),unpipe()}function unpipe(){W(\"unpipe\"),u.unpipe(i)}return u.on(\"data\",ondata),function prependListener(i,s,u){if(\"function\"==typeof i.prependListener)return i.prependListener(s,u);i._events&&i._events[s]?Array.isArray(i._events[s])?i._events[s].unshift(u):i._events[s]=[u,i._events[s]]:i.on(s,u)}(i,\"error\",onerror),i.once(\"close\",onclose),i.once(\"finish\",onfinish),i.emit(\"pipe\",u),m.flowing||(W(\"pipe resume\"),u.resume()),i},Readable.prototype.unpipe=function(i){var s=this._readableState,u={hasUnpiped:!1};if(0===s.pipesCount)return this;if(1===s.pipesCount)return i&&i!==s.pipes||(i||(i=s.pipes),s.pipes=null,s.pipesCount=0,s.flowing=!1,i&&i.emit(\"unpipe\",this,u)),this;if(!i){var m=s.pipes,v=s.pipesCount;s.pipes=null,s.pipesCount=0,s.flowing=!1;for(var _=0;_<v;_++)m[_].emit(\"unpipe\",this,{hasUnpiped:!1});return this}var j=indexOf(s.pipes,i);return-1===j||(s.pipes.splice(j,1),s.pipesCount-=1,1===s.pipesCount&&(s.pipes=s.pipes[0]),i.emit(\"unpipe\",this,u)),this},Readable.prototype.on=function(i,s){var u=j.prototype.on.call(this,i,s),m=this._readableState;return\"data\"===i?(m.readableListening=this.listenerCount(\"readable\")>0,!1!==m.flowing&&this.resume()):\"readable\"===i&&(m.endEmitted||m.readableListening||(m.readableListening=m.needReadable=!0,m.flowing=!1,m.emittedReadable=!1,W(\"on readable\",m.length,m.reading),m.length?emitReadable(this):m.reading||v.nextTick(nReadingNextTick,this))),u},Readable.prototype.addListener=Readable.prototype.on,Readable.prototype.removeListener=function(i,s){var u=j.prototype.removeListener.call(this,i,s);return\"readable\"===i&&v.nextTick(updateReadableListening,this),u},Readable.prototype.removeAllListeners=function(i){var s=j.prototype.removeAllListeners.apply(this,arguments);return\"readable\"!==i&&void 0!==i||v.nextTick(updateReadableListening,this),s},Readable.prototype.resume=function(){var i=this._readableState;return i.flowing||(W(\"resume\"),i.flowing=!i.readableListening,function resume(i,s){s.resumeScheduled||(s.resumeScheduled=!0,v.nextTick(resume_,i,s))}(this,i)),i.paused=!1,this},Readable.prototype.pause=function(){return W(\"call pause flowing=%j\",this._readableState.flowing),!1!==this._readableState.flowing&&(W(\"pause\"),this._readableState.flowing=!1,this.emit(\"pause\")),this._readableState.paused=!0,this},Readable.prototype.wrap=function(i){var s=this,u=this._readableState,m=!1;for(var v in i.on(\"end\",(function(){if(W(\"wrapped end\"),u.decoder&&!u.ended){var i=u.decoder.end();i&&i.length&&s.push(i)}s.push(null)})),i.on(\"data\",(function(v){(W(\"wrapped data\"),u.decoder&&(v=u.decoder.write(v)),u.objectMode&&null==v)||(u.objectMode||v&&v.length)&&(s.push(v)||(m=!0,i.pause()))})),i)void 0===this[v]&&\"function\"==typeof i[v]&&(this[v]=function methodWrap(s){return function methodWrapReturnFunction(){return i[s].apply(i,arguments)}}(v));for(var _=0;_<_e.length;_++)i.on(_e[_],this.emit.bind(this,_e[_]));return this._read=function(s){W(\"wrapped _read\",s),m&&(m=!1,i.resume())},this},\"function\"==typeof Symbol&&(Readable.prototype[Symbol.asyncIterator]=function(){return void 0===Z&&(Z=u(45850)),Z(this)}),Object.defineProperty(Readable.prototype,\"readableHighWaterMark\",{enumerable:!1,get:function get(){return this._readableState.highWaterMark}}),Object.defineProperty(Readable.prototype,\"readableBuffer\",{enumerable:!1,get:function get(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(Readable.prototype,\"readableFlowing\",{enumerable:!1,get:function get(){return this._readableState.flowing},set:function set(i){this._readableState&&(this._readableState.flowing=i)}}),Readable._fromList=fromList,Object.defineProperty(Readable.prototype,\"readableLength\",{enumerable:!1,get:function get(){return this._readableState.length}}),\"function\"==typeof Symbol&&(Readable.from=function(i,s){return void 0===ee&&(ee=u(15167)),ee(Readable,i,s)})},74605:(i,s,u)=>{\"use strict\";i.exports=Transform;var m=u(94281).q,v=m.ERR_METHOD_NOT_IMPLEMENTED,_=m.ERR_MULTIPLE_CALLBACK,j=m.ERR_TRANSFORM_ALREADY_TRANSFORMING,M=m.ERR_TRANSFORM_WITH_LENGTH_0,$=u(56753);function afterTransform(i,s){var u=this._transformState;u.transforming=!1;var m=u.writecb;if(null===m)return this.emit(\"error\",new _);u.writechunk=null,u.writecb=null,null!=s&&this.push(s),m(i);var v=this._readableState;v.reading=!1,(v.needReadable||v.length<v.highWaterMark)&&this._read(v.highWaterMark)}function Transform(i){if(!(this instanceof Transform))return new Transform(i);$.call(this,i),this._transformState={afterTransform:afterTransform.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,i&&(\"function\"==typeof i.transform&&(this._transform=i.transform),\"function\"==typeof i.flush&&(this._flush=i.flush)),this.on(\"prefinish\",prefinish)}function prefinish(){var i=this;\"function\"!=typeof this._flush||this._readableState.destroyed?done(this,null,null):this._flush((function(s,u){done(i,s,u)}))}function done(i,s,u){if(s)return i.emit(\"error\",s);if(null!=u&&i.push(u),i._writableState.length)throw new M;if(i._transformState.transforming)throw new j;return i.push(null)}u(35717)(Transform,$),Transform.prototype.push=function(i,s){return this._transformState.needTransform=!1,$.prototype.push.call(this,i,s)},Transform.prototype._transform=function(i,s,u){u(new v(\"_transform()\"))},Transform.prototype._write=function(i,s,u){var m=this._transformState;if(m.writecb=u,m.writechunk=i,m.writeencoding=s,!m.transforming){var v=this._readableState;(m.needTransform||v.needReadable||v.length<v.highWaterMark)&&this._read(v.highWaterMark)}},Transform.prototype._read=function(i){var s=this._transformState;null===s.writechunk||s.transforming?s.needTransform=!0:(s.transforming=!0,this._transform(s.writechunk,s.writeencoding,s.afterTransform))},Transform.prototype._destroy=function(i,s){$.prototype._destroy.call(this,i,(function(i){s(i)}))}},64229:(i,s,u)=>{\"use strict\";var m,v=u(34155);function CorkedRequest(i){var s=this;this.next=null,this.entry=null,this.finish=function(){!function onCorkedFinish(i,s,u){var m=i.entry;i.entry=null;for(;m;){var v=m.callback;s.pendingcb--,v(u),m=m.next}s.corkedRequestsFree.next=i}(s,i)}}i.exports=Writable,Writable.WritableState=WritableState;var _={deprecate:u(94927)},j=u(22503),M=u(48764).Buffer,$=(void 0!==u.g?u.g:\"undefined\"!=typeof window?window:\"undefined\"!=typeof self?self:{}).Uint8Array||function(){};var W,X=u(61195),Y=u(82457).getHighWaterMark,Z=u(94281).q,ee=Z.ERR_INVALID_ARG_TYPE,ie=Z.ERR_METHOD_NOT_IMPLEMENTED,ae=Z.ERR_MULTIPLE_CALLBACK,ce=Z.ERR_STREAM_CANNOT_PIPE,le=Z.ERR_STREAM_DESTROYED,pe=Z.ERR_STREAM_NULL_VALUES,de=Z.ERR_STREAM_WRITE_AFTER_END,fe=Z.ERR_UNKNOWN_ENCODING,ye=X.errorOrDestroy;function nop(){}function WritableState(i,s,_){m=m||u(56753),i=i||{},\"boolean\"!=typeof _&&(_=s instanceof m),this.objectMode=!!i.objectMode,_&&(this.objectMode=this.objectMode||!!i.writableObjectMode),this.highWaterMark=Y(this,i,\"writableHighWaterMark\",_),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var j=!1===i.decodeStrings;this.decodeStrings=!j,this.defaultEncoding=i.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(i){!function onwrite(i,s){var u=i._writableState,m=u.sync,_=u.writecb;if(\"function\"!=typeof _)throw new ae;if(function onwriteStateUpdate(i){i.writing=!1,i.writecb=null,i.length-=i.writelen,i.writelen=0}(u),s)!function onwriteError(i,s,u,m,_){--s.pendingcb,u?(v.nextTick(_,m),v.nextTick(finishMaybe,i,s),i._writableState.errorEmitted=!0,ye(i,m)):(_(m),i._writableState.errorEmitted=!0,ye(i,m),finishMaybe(i,s))}(i,u,m,s,_);else{var j=needFinish(u)||i.destroyed;j||u.corked||u.bufferProcessing||!u.bufferedRequest||clearBuffer(i,u),m?v.nextTick(afterWrite,i,u,j,_):afterWrite(i,u,j,_)}}(s,i)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==i.emitClose,this.autoDestroy=!!i.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new CorkedRequest(this)}function Writable(i){var s=this instanceof(m=m||u(56753));if(!s&&!W.call(Writable,this))return new Writable(i);this._writableState=new WritableState(i,this,s),this.writable=!0,i&&(\"function\"==typeof i.write&&(this._write=i.write),\"function\"==typeof i.writev&&(this._writev=i.writev),\"function\"==typeof i.destroy&&(this._destroy=i.destroy),\"function\"==typeof i.final&&(this._final=i.final)),j.call(this)}function doWrite(i,s,u,m,v,_,j){s.writelen=m,s.writecb=j,s.writing=!0,s.sync=!0,s.destroyed?s.onwrite(new le(\"write\")):u?i._writev(v,s.onwrite):i._write(v,_,s.onwrite),s.sync=!1}function afterWrite(i,s,u,m){u||function onwriteDrain(i,s){0===s.length&&s.needDrain&&(s.needDrain=!1,i.emit(\"drain\"))}(i,s),s.pendingcb--,m(),finishMaybe(i,s)}function clearBuffer(i,s){s.bufferProcessing=!0;var u=s.bufferedRequest;if(i._writev&&u&&u.next){var m=s.bufferedRequestCount,v=new Array(m),_=s.corkedRequestsFree;_.entry=u;for(var j=0,M=!0;u;)v[j]=u,u.isBuf||(M=!1),u=u.next,j+=1;v.allBuffers=M,doWrite(i,s,!0,s.length,v,\"\",_.finish),s.pendingcb++,s.lastBufferedRequest=null,_.next?(s.corkedRequestsFree=_.next,_.next=null):s.corkedRequestsFree=new CorkedRequest(s),s.bufferedRequestCount=0}else{for(;u;){var $=u.chunk,W=u.encoding,X=u.callback;if(doWrite(i,s,!1,s.objectMode?1:$.length,$,W,X),u=u.next,s.bufferedRequestCount--,s.writing)break}null===u&&(s.lastBufferedRequest=null)}s.bufferedRequest=u,s.bufferProcessing=!1}function needFinish(i){return i.ending&&0===i.length&&null===i.bufferedRequest&&!i.finished&&!i.writing}function callFinal(i,s){i._final((function(u){s.pendingcb--,u&&ye(i,u),s.prefinished=!0,i.emit(\"prefinish\"),finishMaybe(i,s)}))}function finishMaybe(i,s){var u=needFinish(s);if(u&&(function prefinish(i,s){s.prefinished||s.finalCalled||(\"function\"!=typeof i._final||s.destroyed?(s.prefinished=!0,i.emit(\"prefinish\")):(s.pendingcb++,s.finalCalled=!0,v.nextTick(callFinal,i,s)))}(i,s),0===s.pendingcb&&(s.finished=!0,i.emit(\"finish\"),s.autoDestroy))){var m=i._readableState;(!m||m.autoDestroy&&m.endEmitted)&&i.destroy()}return u}u(35717)(Writable,j),WritableState.prototype.getBuffer=function getBuffer(){for(var i=this.bufferedRequest,s=[];i;)s.push(i),i=i.next;return s},function(){try{Object.defineProperty(WritableState.prototype,\"buffer\",{get:_.deprecate((function writableStateBufferGetter(){return this.getBuffer()}),\"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\",\"DEP0003\")})}catch(i){}}(),\"function\"==typeof Symbol&&Symbol.hasInstance&&\"function\"==typeof Function.prototype[Symbol.hasInstance]?(W=Function.prototype[Symbol.hasInstance],Object.defineProperty(Writable,Symbol.hasInstance,{value:function value(i){return!!W.call(this,i)||this===Writable&&(i&&i._writableState instanceof WritableState)}})):W=function realHasInstance(i){return i instanceof this},Writable.prototype.pipe=function(){ye(this,new ce)},Writable.prototype.write=function(i,s,u){var m=this._writableState,_=!1,j=!m.objectMode&&function _isUint8Array(i){return M.isBuffer(i)||i instanceof $}(i);return j&&!M.isBuffer(i)&&(i=function _uint8ArrayToBuffer(i){return M.from(i)}(i)),\"function\"==typeof s&&(u=s,s=null),j?s=\"buffer\":s||(s=m.defaultEncoding),\"function\"!=typeof u&&(u=nop),m.ending?function writeAfterEnd(i,s){var u=new de;ye(i,u),v.nextTick(s,u)}(this,u):(j||function validChunk(i,s,u,m){var _;return null===u?_=new pe:\"string\"==typeof u||s.objectMode||(_=new ee(\"chunk\",[\"string\",\"Buffer\"],u)),!_||(ye(i,_),v.nextTick(m,_),!1)}(this,m,i,u))&&(m.pendingcb++,_=function writeOrBuffer(i,s,u,m,v,_){if(!u){var j=function decodeChunk(i,s,u){i.objectMode||!1===i.decodeStrings||\"string\"!=typeof s||(s=M.from(s,u));return s}(s,m,v);m!==j&&(u=!0,v=\"buffer\",m=j)}var $=s.objectMode?1:m.length;s.length+=$;var W=s.length<s.highWaterMark;W||(s.needDrain=!0);if(s.writing||s.corked){var X=s.lastBufferedRequest;s.lastBufferedRequest={chunk:m,encoding:v,isBuf:u,callback:_,next:null},X?X.next=s.lastBufferedRequest:s.bufferedRequest=s.lastBufferedRequest,s.bufferedRequestCount+=1}else doWrite(i,s,!1,$,m,v,_);return W}(this,m,j,i,s,u)),_},Writable.prototype.cork=function(){this._writableState.corked++},Writable.prototype.uncork=function(){var i=this._writableState;i.corked&&(i.corked--,i.writing||i.corked||i.bufferProcessing||!i.bufferedRequest||clearBuffer(this,i))},Writable.prototype.setDefaultEncoding=function setDefaultEncoding(i){if(\"string\"==typeof i&&(i=i.toLowerCase()),!([\"hex\",\"utf8\",\"utf-8\",\"ascii\",\"binary\",\"base64\",\"ucs2\",\"ucs-2\",\"utf16le\",\"utf-16le\",\"raw\"].indexOf((i+\"\").toLowerCase())>-1))throw new fe(i);return this._writableState.defaultEncoding=i,this},Object.defineProperty(Writable.prototype,\"writableBuffer\",{enumerable:!1,get:function get(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(Writable.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function get(){return this._writableState.highWaterMark}}),Writable.prototype._write=function(i,s,u){u(new ie(\"_write()\"))},Writable.prototype._writev=null,Writable.prototype.end=function(i,s,u){var m=this._writableState;return\"function\"==typeof i?(u=i,i=null,s=null):\"function\"==typeof s&&(u=s,s=null),null!=i&&this.write(i,s),m.corked&&(m.corked=1,this.uncork()),m.ending||function endWritable(i,s,u){s.ending=!0,finishMaybe(i,s),u&&(s.finished?v.nextTick(u):i.once(\"finish\",u));s.ended=!0,i.writable=!1}(this,m,u),this},Object.defineProperty(Writable.prototype,\"writableLength\",{enumerable:!1,get:function get(){return this._writableState.length}}),Object.defineProperty(Writable.prototype,\"destroyed\",{enumerable:!1,get:function get(){return void 0!==this._writableState&&this._writableState.destroyed},set:function set(i){this._writableState&&(this._writableState.destroyed=i)}}),Writable.prototype.destroy=X.destroy,Writable.prototype._undestroy=X.undestroy,Writable.prototype._destroy=function(i,s){s(i)}},45850:(i,s,u)=>{\"use strict\";var m,v=u(34155);function _defineProperty(i,s,u){return(s=function _toPropertyKey(i){var s=function _toPrimitive(i,s){if(\"object\"!=typeof i||null===i)return i;var u=i[Symbol.toPrimitive];if(void 0!==u){var m=u.call(i,s||\"default\");if(\"object\"!=typeof m)return m;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===s?String:Number)(i)}(i,\"string\");return\"symbol\"==typeof s?s:String(s)}(s))in i?Object.defineProperty(i,s,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[s]=u,i}var _=u(8610),j=Symbol(\"lastResolve\"),M=Symbol(\"lastReject\"),$=Symbol(\"error\"),W=Symbol(\"ended\"),X=Symbol(\"lastPromise\"),Y=Symbol(\"handlePromise\"),Z=Symbol(\"stream\");function createIterResult(i,s){return{value:i,done:s}}function readAndResolve(i){var s=i[j];if(null!==s){var u=i[Z].read();null!==u&&(i[X]=null,i[j]=null,i[M]=null,s(createIterResult(u,!1)))}}function onReadable(i){v.nextTick(readAndResolve,i)}var ee=Object.getPrototypeOf((function(){})),ie=Object.setPrototypeOf((_defineProperty(m={get stream(){return this[Z]},next:function next(){var i=this,s=this[$];if(null!==s)return Promise.reject(s);if(this[W])return Promise.resolve(createIterResult(void 0,!0));if(this[Z].destroyed)return new Promise((function(s,u){v.nextTick((function(){i[$]?u(i[$]):s(createIterResult(void 0,!0))}))}));var u,m=this[X];if(m)u=new Promise(function wrapForNext(i,s){return function(u,m){i.then((function(){s[W]?u(createIterResult(void 0,!0)):s[Y](u,m)}),m)}}(m,this));else{var _=this[Z].read();if(null!==_)return Promise.resolve(createIterResult(_,!1));u=new Promise(this[Y])}return this[X]=u,u}},Symbol.asyncIterator,(function(){return this})),_defineProperty(m,\"return\",(function _return(){var i=this;return new Promise((function(s,u){i[Z].destroy(null,(function(i){i?u(i):s(createIterResult(void 0,!0))}))}))})),m),ee);i.exports=function createReadableStreamAsyncIterator(i){var s,u=Object.create(ie,(_defineProperty(s={},Z,{value:i,writable:!0}),_defineProperty(s,j,{value:null,writable:!0}),_defineProperty(s,M,{value:null,writable:!0}),_defineProperty(s,$,{value:null,writable:!0}),_defineProperty(s,W,{value:i._readableState.endEmitted,writable:!0}),_defineProperty(s,Y,{value:function value(i,s){var m=u[Z].read();m?(u[X]=null,u[j]=null,u[M]=null,i(createIterResult(m,!1))):(u[j]=i,u[M]=s)},writable:!0}),s));return u[X]=null,_(i,(function(i){if(i&&\"ERR_STREAM_PREMATURE_CLOSE\"!==i.code){var s=u[M];return null!==s&&(u[X]=null,u[j]=null,u[M]=null,s(i)),void(u[$]=i)}var m=u[j];null!==m&&(u[X]=null,u[j]=null,u[M]=null,m(createIterResult(void 0,!0))),u[W]=!0})),i.on(\"readable\",onReadable.bind(null,u)),u}},57327:(i,s,u)=>{\"use strict\";function ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function _objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?ownKeys(Object(u),!0).forEach((function(s){_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}function _defineProperty(i,s,u){return(s=_toPropertyKey(s))in i?Object.defineProperty(i,s,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[s]=u,i}function _defineProperties(i,s){for(var u=0;u<s.length;u++){var m=s[u];m.enumerable=m.enumerable||!1,m.configurable=!0,\"value\"in m&&(m.writable=!0),Object.defineProperty(i,_toPropertyKey(m.key),m)}}function _toPropertyKey(i){var s=function _toPrimitive(i,s){if(\"object\"!=typeof i||null===i)return i;var u=i[Symbol.toPrimitive];if(void 0!==u){var m=u.call(i,s||\"default\");if(\"object\"!=typeof m)return m;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===s?String:Number)(i)}(i,\"string\");return\"symbol\"==typeof s?s:String(s)}var m=u(48764).Buffer,v=u(52361).inspect,_=v&&v.custom||\"inspect\";i.exports=function(){function BufferList(){!function _classCallCheck(i,s){if(!(i instanceof s))throw new TypeError(\"Cannot call a class as a function\")}(this,BufferList),this.head=null,this.tail=null,this.length=0}return function _createClass(i,s,u){return s&&_defineProperties(i.prototype,s),u&&_defineProperties(i,u),Object.defineProperty(i,\"prototype\",{writable:!1}),i}(BufferList,[{key:\"push\",value:function push(i){var s={data:i,next:null};this.length>0?this.tail.next=s:this.head=s,this.tail=s,++this.length}},{key:\"unshift\",value:function unshift(i){var s={data:i,next:this.head};0===this.length&&(this.tail=s),this.head=s,++this.length}},{key:\"shift\",value:function shift(){if(0!==this.length){var i=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,i}}},{key:\"clear\",value:function clear(){this.head=this.tail=null,this.length=0}},{key:\"join\",value:function join(i){if(0===this.length)return\"\";for(var s=this.head,u=\"\"+s.data;s=s.next;)u+=i+s.data;return u}},{key:\"concat\",value:function concat(i){if(0===this.length)return m.alloc(0);for(var s,u,v,_=m.allocUnsafe(i>>>0),j=this.head,M=0;j;)s=j.data,u=_,v=M,m.prototype.copy.call(s,u,v),M+=j.data.length,j=j.next;return _}},{key:\"consume\",value:function consume(i,s){var u;return i<this.head.data.length?(u=this.head.data.slice(0,i),this.head.data=this.head.data.slice(i)):u=i===this.head.data.length?this.shift():s?this._getString(i):this._getBuffer(i),u}},{key:\"first\",value:function first(){return this.head.data}},{key:\"_getString\",value:function _getString(i){var s=this.head,u=1,m=s.data;for(i-=m.length;s=s.next;){var v=s.data,_=i>v.length?v.length:i;if(_===v.length?m+=v:m+=v.slice(0,i),0===(i-=_)){_===v.length?(++u,s.next?this.head=s.next:this.head=this.tail=null):(this.head=s,s.data=v.slice(_));break}++u}return this.length-=u,m}},{key:\"_getBuffer\",value:function _getBuffer(i){var s=m.allocUnsafe(i),u=this.head,v=1;for(u.data.copy(s),i-=u.data.length;u=u.next;){var _=u.data,j=i>_.length?_.length:i;if(_.copy(s,s.length-i,0,j),0===(i-=j)){j===_.length?(++v,u.next?this.head=u.next:this.head=this.tail=null):(this.head=u,u.data=_.slice(j));break}++v}return this.length-=v,s}},{key:_,value:function value(i,s){return v(this,_objectSpread(_objectSpread({},s),{},{depth:0,customInspect:!1}))}}]),BufferList}()},61195:(i,s,u)=>{\"use strict\";var m=u(34155);function emitErrorAndCloseNT(i,s){emitErrorNT(i,s),emitCloseNT(i)}function emitCloseNT(i){i._writableState&&!i._writableState.emitClose||i._readableState&&!i._readableState.emitClose||i.emit(\"close\")}function emitErrorNT(i,s){i.emit(\"error\",s)}i.exports={destroy:function destroy(i,s){var u=this,v=this._readableState&&this._readableState.destroyed,_=this._writableState&&this._writableState.destroyed;return v||_?(s?s(i):i&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,m.nextTick(emitErrorNT,this,i)):m.nextTick(emitErrorNT,this,i)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(i||null,(function(i){!s&&i?u._writableState?u._writableState.errorEmitted?m.nextTick(emitCloseNT,u):(u._writableState.errorEmitted=!0,m.nextTick(emitErrorAndCloseNT,u,i)):m.nextTick(emitErrorAndCloseNT,u,i):s?(m.nextTick(emitCloseNT,u),s(i)):m.nextTick(emitCloseNT,u)})),this)},undestroy:function undestroy(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function errorOrDestroy(i,s){var u=i._readableState,m=i._writableState;u&&u.autoDestroy||m&&m.autoDestroy?i.destroy(s):i.emit(\"error\",s)}}},8610:(i,s,u)=>{\"use strict\";var m=u(94281).q.ERR_STREAM_PREMATURE_CLOSE;function noop(){}i.exports=function eos(i,s,u){if(\"function\"==typeof s)return eos(i,null,s);s||(s={}),u=function once(i){var s=!1;return function(){if(!s){s=!0;for(var u=arguments.length,m=new Array(u),v=0;v<u;v++)m[v]=arguments[v];i.apply(this,m)}}}(u||noop);var v=s.readable||!1!==s.readable&&i.readable,_=s.writable||!1!==s.writable&&i.writable,j=function onlegacyfinish(){i.writable||$()},M=i._writableState&&i._writableState.finished,$=function onfinish(){_=!1,M=!0,v||u.call(i)},W=i._readableState&&i._readableState.endEmitted,X=function onend(){v=!1,W=!0,_||u.call(i)},Y=function onerror(s){u.call(i,s)},Z=function onclose(){var s;return v&&!W?(i._readableState&&i._readableState.ended||(s=new m),u.call(i,s)):_&&!M?(i._writableState&&i._writableState.ended||(s=new m),u.call(i,s)):void 0},ee=function onrequest(){i.req.on(\"finish\",$)};return!function isRequest(i){return i.setHeader&&\"function\"==typeof i.abort}(i)?_&&!i._writableState&&(i.on(\"end\",j),i.on(\"close\",j)):(i.on(\"complete\",$),i.on(\"abort\",Z),i.req?ee():i.on(\"request\",ee)),i.on(\"end\",X),i.on(\"finish\",$),!1!==s.error&&i.on(\"error\",Y),i.on(\"close\",Z),function(){i.removeListener(\"complete\",$),i.removeListener(\"abort\",Z),i.removeListener(\"request\",ee),i.req&&i.req.removeListener(\"finish\",$),i.removeListener(\"end\",j),i.removeListener(\"close\",j),i.removeListener(\"finish\",$),i.removeListener(\"end\",X),i.removeListener(\"error\",Y),i.removeListener(\"close\",Z)}}},15167:i=>{i.exports=function(){throw new Error(\"Readable.from is not available in the browser\")}},59946:(i,s,u)=>{\"use strict\";var m;var v=u(94281).q,_=v.ERR_MISSING_ARGS,j=v.ERR_STREAM_DESTROYED;function noop(i){if(i)throw i}function call(i){i()}function pipe(i,s){return i.pipe(s)}i.exports=function pipeline(){for(var i=arguments.length,s=new Array(i),v=0;v<i;v++)s[v]=arguments[v];var M,$=function popCallback(i){return i.length?\"function\"!=typeof i[i.length-1]?noop:i.pop():noop}(s);if(Array.isArray(s[0])&&(s=s[0]),s.length<2)throw new _(\"streams\");var W=s.map((function(i,v){var _=v<s.length-1;return function destroyer(i,s,v,_){_=function once(i){var s=!1;return function(){s||(s=!0,i.apply(void 0,arguments))}}(_);var M=!1;i.on(\"close\",(function(){M=!0})),void 0===m&&(m=u(8610)),m(i,{readable:s,writable:v},(function(i){if(i)return _(i);M=!0,_()}));var $=!1;return function(s){if(!M&&!$)return $=!0,function isRequest(i){return i.setHeader&&\"function\"==typeof i.abort}(i)?i.abort():\"function\"==typeof i.destroy?i.destroy():void _(s||new j(\"pipe\"))}}(i,_,v>0,(function(i){M||(M=i),i&&W.forEach(call),_||(W.forEach(call),$(M))}))}));return s.reduce(pipe)}},82457:(i,s,u)=>{\"use strict\";var m=u(94281).q.ERR_INVALID_OPT_VALUE;i.exports={getHighWaterMark:function getHighWaterMark(i,s,u,v){var _=function highWaterMarkFrom(i,s,u){return null!=i.highWaterMark?i.highWaterMark:s?i[u]:null}(s,v,u);if(null!=_){if(!isFinite(_)||Math.floor(_)!==_||_<0)throw new m(v?u:\"highWaterMark\",_);return Math.floor(_)}return i.objectMode?16:16384}}},22503:(i,s,u)=>{i.exports=u(17187).EventEmitter},27428:(i,s,u)=>{\"use strict\";Object.defineProperty(s,\"__esModule\",{value:!0});var m=function _interopRequireDefault(i){return i&&i.__esModule?i:{default:i}}(u(43393)),v=u(79607);s.default=function(i){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m.default.Map,u=Object.keys(i);return function(){var m=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s(),_=arguments[1];return m.withMutations((function(s){u.forEach((function(u){var m=(0,i[u])(s.get(u),_);(0,v.validateNextState)(m,u,_),s.set(u,m)}))}))}},i.exports=s.default},72739:(i,s,u)=>{\"use strict\";s.U=void 0;var m=function _interopRequireDefault(i){return i&&i.__esModule?i:{default:i}}(u(27428));s.U=m.default},94528:(i,s)=>{\"use strict\";Object.defineProperty(s,\"__esModule\",{value:!0}),s.default=function(i){return i&&\"@@redux/INIT\"===i.type?\"initialState argument passed to createStore\":\"previous state received by the reducer\"},i.exports=s.default},93651:(i,s,u)=>{\"use strict\";Object.defineProperty(s,\"__esModule\",{value:!0});var m=_interopRequireDefault(u(43393)),v=_interopRequireDefault(u(94528));function _interopRequireDefault(i){return i&&i.__esModule?i:{default:i}}s.default=function(i,s,u){var _=Object.keys(s);if(!_.length)return\"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.\";var j=(0,v.default)(u);if(m.default.isImmutable?!m.default.isImmutable(i):!m.default.Iterable.isIterable(i))return\"The \"+j+' is of unexpected type. Expected argument to be an instance of Immutable.Collection or Immutable.Record with the following properties: \"'+_.join('\", \"')+'\".';var M=i.toSeq().keySeq().toArray().filter((function(i){return!s.hasOwnProperty(i)}));return M.length>0?\"Unexpected \"+(1===M.length?\"property\":\"properties\")+' \"'+M.join('\", \"')+'\" found in '+j+'. Expected to find one of the known reducer property names instead: \"'+_.join('\", \"')+'\". Unexpected properties will be ignored.':null},i.exports=s.default},79607:(i,s,u)=>{\"use strict\";Object.defineProperty(s,\"__esModule\",{value:!0}),s.validateNextState=s.getUnexpectedInvocationParameterMessage=s.getStateName=void 0;var m=_interopRequireDefault(u(94528)),v=_interopRequireDefault(u(93651)),_=_interopRequireDefault(u(85527));function _interopRequireDefault(i){return i&&i.__esModule?i:{default:i}}s.getStateName=m.default,s.getUnexpectedInvocationParameterMessage=v.default,s.validateNextState=_.default},85527:(i,s)=>{\"use strict\";Object.defineProperty(s,\"__esModule\",{value:!0}),s.default=function(i,s,u){if(void 0===i)throw new Error('Reducer \"'+s+'\" returned undefined when handling \"'+u.type+'\" action. To ignore an action, you must explicitly return the previous state.')},i.exports=s.default},96464:i=>{\"use strict\";var s,u=\"\";i.exports=function repeat(i,m){if(\"string\"!=typeof i)throw new TypeError(\"expected a string\");if(1===m)return i;if(2===m)return i+i;var v=i.length*m;if(s!==i||void 0===s)s=i,u=\"\";else if(u.length>=v)return u.substr(0,v);for(;v>u.length&&m>1;)1&m&&(u+=i),m>>=1,i+=i;return u=(u+=i).substr(0,v)}},47418:i=>{\"use strict\";i.exports=function required(i,s){if(s=s.split(\":\")[0],!(i=+i))return!1;switch(s){case\"http\":case\"ws\":return 80!==i;case\"https\":case\"wss\":return 443!==i;case\"ftp\":return 21!==i;case\"gopher\":return 70!==i;case\"file\":return!1}return 0!==i}},60697:(i,s,u)=>{const m=u(86245),v=u(30504),_=u(94992),j=u(82407);i.exports=i=>{var s,u,M=0,$={type:v.ROOT,stack:[]},W=$,X=$.stack,Y=[],repeatErr=s=>{m.error(i,\"Nothing to repeat at column \"+(s-1))},Z=m.strToChars(i);for(s=Z.length;M<s;)switch(u=Z[M++]){case\"\\\\\":switch(u=Z[M++]){case\"b\":X.push(j.wordBoundary());break;case\"B\":X.push(j.nonWordBoundary());break;case\"w\":X.push(_.words());break;case\"W\":X.push(_.notWords());break;case\"d\":X.push(_.ints());break;case\"D\":X.push(_.notInts());break;case\"s\":X.push(_.whitespace());break;case\"S\":X.push(_.notWhitespace());break;default:/\\d/.test(u)?X.push({type:v.REFERENCE,value:parseInt(u,10)}):X.push({type:v.CHAR,value:u.charCodeAt(0)})}break;case\"^\":X.push(j.begin());break;case\"$\":X.push(j.end());break;case\"[\":var ee;\"^\"===Z[M]?(ee=!0,M++):ee=!1;var ie=m.tokenizeClass(Z.slice(M),i);M+=ie[1],X.push({type:v.SET,set:ie[0],not:ee});break;case\".\":X.push(_.anyChar());break;case\"(\":var ae={type:v.GROUP,stack:[],remember:!0};\"?\"===(u=Z[M])&&(u=Z[M+1],M+=2,\"=\"===u?ae.followedBy=!0:\"!\"===u?ae.notFollowedBy=!0:\":\"!==u&&m.error(i,`Invalid group, character '${u}' after '?' at column `+(M-1)),ae.remember=!1),X.push(ae),Y.push(W),W=ae,X=ae.stack;break;case\")\":0===Y.length&&m.error(i,\"Unmatched ) at column \"+(M-1)),X=(W=Y.pop()).options?W.options[W.options.length-1]:W.stack;break;case\"|\":W.options||(W.options=[W.stack],delete W.stack);var ce=[];W.options.push(ce),X=ce;break;case\"{\":var le,pe,de=/^(\\d+)(,(\\d+)?)?\\}/.exec(Z.slice(M));null!==de?(0===X.length&&repeatErr(M),le=parseInt(de[1],10),pe=de[2]?de[3]?parseInt(de[3],10):1/0:le,M+=de[0].length,X.push({type:v.REPETITION,min:le,max:pe,value:X.pop()})):X.push({type:v.CHAR,value:123});break;case\"?\":0===X.length&&repeatErr(M),X.push({type:v.REPETITION,min:0,max:1,value:X.pop()});break;case\"+\":0===X.length&&repeatErr(M),X.push({type:v.REPETITION,min:1,max:1/0,value:X.pop()});break;case\"*\":0===X.length&&repeatErr(M),X.push({type:v.REPETITION,min:0,max:1/0,value:X.pop()});break;default:X.push({type:v.CHAR,value:u.charCodeAt(0)})}return 0!==Y.length&&m.error(i,\"Unterminated group\"),$},i.exports.types=v},82407:(i,s,u)=>{const m=u(30504);s.wordBoundary=()=>({type:m.POSITION,value:\"b\"}),s.nonWordBoundary=()=>({type:m.POSITION,value:\"B\"}),s.begin=()=>({type:m.POSITION,value:\"^\"}),s.end=()=>({type:m.POSITION,value:\"$\"})},94992:(i,s,u)=>{const m=u(30504),INTS=()=>[{type:m.RANGE,from:48,to:57}],WORDS=()=>[{type:m.CHAR,value:95},{type:m.RANGE,from:97,to:122},{type:m.RANGE,from:65,to:90}].concat(INTS()),WHITESPACE=()=>[{type:m.CHAR,value:9},{type:m.CHAR,value:10},{type:m.CHAR,value:11},{type:m.CHAR,value:12},{type:m.CHAR,value:13},{type:m.CHAR,value:32},{type:m.CHAR,value:160},{type:m.CHAR,value:5760},{type:m.RANGE,from:8192,to:8202},{type:m.CHAR,value:8232},{type:m.CHAR,value:8233},{type:m.CHAR,value:8239},{type:m.CHAR,value:8287},{type:m.CHAR,value:12288},{type:m.CHAR,value:65279}];s.words=()=>({type:m.SET,set:WORDS(),not:!1}),s.notWords=()=>({type:m.SET,set:WORDS(),not:!0}),s.ints=()=>({type:m.SET,set:INTS(),not:!1}),s.notInts=()=>({type:m.SET,set:INTS(),not:!0}),s.whitespace=()=>({type:m.SET,set:WHITESPACE(),not:!1}),s.notWhitespace=()=>({type:m.SET,set:WHITESPACE(),not:!0}),s.anyChar=()=>({type:m.SET,set:[{type:m.CHAR,value:10},{type:m.CHAR,value:13},{type:m.CHAR,value:8232},{type:m.CHAR,value:8233}],not:!0})},30504:i=>{i.exports={ROOT:0,GROUP:1,POSITION:2,SET:3,RANGE:4,REPETITION:5,REFERENCE:6,CHAR:7}},86245:(i,s,u)=>{const m=u(30504),v=u(94992),_={0:0,t:9,n:10,v:11,f:12,r:13};s.strToChars=function(i){return i=i.replace(/(\\[\\\\b\\])|(\\\\)?\\\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|(0?[0-7]{2})|c([@A-Z[\\\\\\]^?])|([0tnvfr]))/g,(function(i,s,u,m,v,j,M,$){if(u)return i;var W=s?8:m?parseInt(m,16):v?parseInt(v,16):j?parseInt(j,8):M?\"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^ ?\".indexOf(M):_[$],X=String.fromCharCode(W);return/[[\\]{}^$.|?*+()]/.test(X)&&(X=\"\\\\\"+X),X}))},s.tokenizeClass=(i,u)=>{for(var _,j,M=[],$=/\\\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\\\)(.)|([^\\]\\\\]))-(?:\\\\)?([^\\]]))|(\\])|(?:\\\\)?([^])/g;null!=(_=$.exec(i));)if(_[1])M.push(v.words());else if(_[2])M.push(v.ints());else if(_[3])M.push(v.whitespace());else if(_[4])M.push(v.notWords());else if(_[5])M.push(v.notInts());else if(_[6])M.push(v.notWhitespace());else if(_[7])M.push({type:m.RANGE,from:(_[8]||_[9]).charCodeAt(0),to:_[10].charCodeAt(0)});else{if(!(j=_[12]))return[M,$.lastIndex];M.push({type:m.CHAR,value:j.charCodeAt(0)})}s.error(u,\"Unterminated character class\")},s.error=(i,s)=>{throw new SyntaxError(\"Invalid regular expression: /\"+i+\"/: \"+s)}},89509:(i,s,u)=>{var m=u(48764),v=m.Buffer;function copyProps(i,s){for(var u in i)s[u]=i[u]}function SafeBuffer(i,s,u){return v(i,s,u)}v.from&&v.alloc&&v.allocUnsafe&&v.allocUnsafeSlow?i.exports=m:(copyProps(m,s),s.Buffer=SafeBuffer),SafeBuffer.prototype=Object.create(v.prototype),copyProps(v,SafeBuffer),SafeBuffer.from=function(i,s,u){if(\"number\"==typeof i)throw new TypeError(\"Argument must not be a number\");return v(i,s,u)},SafeBuffer.alloc=function(i,s,u){if(\"number\"!=typeof i)throw new TypeError(\"Argument must be a number\");var m=v(i);return void 0!==s?\"string\"==typeof u?m.fill(s,u):m.fill(s):m.fill(0),m},SafeBuffer.allocUnsafe=function(i){if(\"number\"!=typeof i)throw new TypeError(\"Argument must be a number\");return v(i)},SafeBuffer.allocUnsafeSlow=function(i){if(\"number\"!=typeof i)throw new TypeError(\"Argument must be a number\");return m.SlowBuffer(i)}},60053:(i,s)=>{\"use strict\";var u,m,v,_;if(\"object\"==typeof performance&&\"function\"==typeof performance.now){var j=performance;s.unstable_now=function(){return j.now()}}else{var M=Date,$=M.now();s.unstable_now=function(){return M.now()-$}}if(\"undefined\"==typeof window||\"function\"!=typeof MessageChannel){var W=null,X=null,w=function(){if(null!==W)try{var i=s.unstable_now();W(!0,i),W=null}catch(i){throw setTimeout(w,0),i}};u=function(i){null!==W?setTimeout(u,0,i):(W=i,setTimeout(w,0))},m=function(i,s){X=setTimeout(i,s)},v=function(){clearTimeout(X)},s.unstable_shouldYield=function(){return!1},_=s.unstable_forceFrameRate=function(){}}else{var Y=window.setTimeout,Z=window.clearTimeout;if(\"undefined\"!=typeof console){var ee=window.cancelAnimationFrame;\"function\"!=typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\"),\"function\"!=typeof ee&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var ie=!1,ae=null,ce=-1,le=5,pe=0;s.unstable_shouldYield=function(){return s.unstable_now()>=pe},_=function(){},s.unstable_forceFrameRate=function(i){0>i||125<i?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):le=0<i?Math.floor(1e3/i):5};var de=new MessageChannel,fe=de.port2;de.port1.onmessage=function(){if(null!==ae){var i=s.unstable_now();pe=i+le;try{ae(!0,i)?fe.postMessage(null):(ie=!1,ae=null)}catch(i){throw fe.postMessage(null),i}}else ie=!1},u=function(i){ae=i,ie||(ie=!0,fe.postMessage(null))},m=function(i,u){ce=Y((function(){i(s.unstable_now())}),u)},v=function(){Z(ce),ce=-1}}function H(i,s){var u=i.length;i.push(s);e:for(;;){var m=u-1>>>1,v=i[m];if(!(void 0!==v&&0<I(v,s)))break e;i[m]=s,i[u]=v,u=m}}function J(i){return void 0===(i=i[0])?null:i}function K(i){var s=i[0];if(void 0!==s){var u=i.pop();if(u!==s){i[0]=u;e:for(var m=0,v=i.length;m<v;){var _=2*(m+1)-1,j=i[_],M=_+1,$=i[M];if(void 0!==j&&0>I(j,u))void 0!==$&&0>I($,j)?(i[m]=$,i[M]=u,m=M):(i[m]=j,i[_]=u,m=_);else{if(!(void 0!==$&&0>I($,u)))break e;i[m]=$,i[M]=u,m=M}}}return s}return null}function I(i,s){var u=i.sortIndex-s.sortIndex;return 0!==u?u:i.id-s.id}var ye=[],be=[],_e=1,we=null,Se=3,xe=!1,Pe=!1,Ie=!1;function T(i){for(var s=J(be);null!==s;){if(null===s.callback)K(be);else{if(!(s.startTime<=i))break;K(be),s.sortIndex=s.expirationTime,H(ye,s)}s=J(be)}}function U(i){if(Ie=!1,T(i),!Pe)if(null!==J(ye))Pe=!0,u(V);else{var s=J(be);null!==s&&m(U,s.startTime-i)}}function V(i,u){Pe=!1,Ie&&(Ie=!1,v()),xe=!0;var _=Se;try{for(T(u),we=J(ye);null!==we&&(!(we.expirationTime>u)||i&&!s.unstable_shouldYield());){var j=we.callback;if(\"function\"==typeof j){we.callback=null,Se=we.priorityLevel;var M=j(we.expirationTime<=u);u=s.unstable_now(),\"function\"==typeof M?we.callback=M:we===J(ye)&&K(ye),T(u)}else K(ye);we=J(ye)}if(null!==we)var $=!0;else{var W=J(be);null!==W&&m(U,W.startTime-u),$=!1}return $}finally{we=null,Se=_,xe=!1}}var Te=_;s.unstable_IdlePriority=5,s.unstable_ImmediatePriority=1,s.unstable_LowPriority=4,s.unstable_NormalPriority=3,s.unstable_Profiling=null,s.unstable_UserBlockingPriority=2,s.unstable_cancelCallback=function(i){i.callback=null},s.unstable_continueExecution=function(){Pe||xe||(Pe=!0,u(V))},s.unstable_getCurrentPriorityLevel=function(){return Se},s.unstable_getFirstCallbackNode=function(){return J(ye)},s.unstable_next=function(i){switch(Se){case 1:case 2:case 3:var s=3;break;default:s=Se}var u=Se;Se=s;try{return i()}finally{Se=u}},s.unstable_pauseExecution=function(){},s.unstable_requestPaint=Te,s.unstable_runWithPriority=function(i,s){switch(i){case 1:case 2:case 3:case 4:case 5:break;default:i=3}var u=Se;Se=i;try{return s()}finally{Se=u}},s.unstable_scheduleCallback=function(i,_,j){var M=s.unstable_now();switch(\"object\"==typeof j&&null!==j?j=\"number\"==typeof(j=j.delay)&&0<j?M+j:M:j=M,i){case 1:var $=-1;break;case 2:$=250;break;case 5:$=1073741823;break;case 4:$=1e4;break;default:$=5e3}return i={id:_e++,callback:_,priorityLevel:i,startTime:j,expirationTime:$=j+$,sortIndex:-1},j>M?(i.sortIndex=j,H(be,i),null===J(ye)&&i===J(be)&&(Ie?v():Ie=!0,m(U,j-M))):(i.sortIndex=$,H(ye,i),Pe||xe||(Pe=!0,u(V))),i},s.unstable_wrapCallback=function(i){var s=Se;return function(){var u=Se;Se=s;try{return i.apply(this,arguments)}finally{Se=u}}}},63840:(i,s,u)=>{\"use strict\";i.exports=u(60053)},7710:(i,s,u)=>{\"use strict\";var m=u(48764).Buffer;class NonError extends Error{constructor(i){super(NonError._prepareSuperMessage(i)),Object.defineProperty(this,\"name\",{value:\"NonError\",configurable:!0,writable:!0}),Error.captureStackTrace&&Error.captureStackTrace(this,NonError)}static _prepareSuperMessage(i){try{return JSON.stringify(i)}catch{return String(i)}}}const v=[{property:\"name\",enumerable:!1},{property:\"message\",enumerable:!1},{property:\"stack\",enumerable:!1},{property:\"code\",enumerable:!0}],_=Symbol(\".toJSON called\"),destroyCircular=({from:i,seen:s,to_:u,forceEnumerable:j,maxDepth:M,depth:$})=>{const W=u||(Array.isArray(i)?[]:{});if(s.push(i),$>=M)return W;if(\"function\"==typeof i.toJSON&&!0!==i[_])return(i=>{i[_]=!0;const s=i.toJSON();return delete i[_],s})(i);for(const[u,v]of Object.entries(i))\"function\"==typeof m&&m.isBuffer(v)?W[u]=\"[object Buffer]\":\"function\"!=typeof v&&(v&&\"object\"==typeof v?s.includes(i[u])?W[u]=\"[Circular]\":($++,W[u]=destroyCircular({from:i[u],seen:s.slice(),forceEnumerable:j,maxDepth:M,depth:$})):W[u]=v);for(const{property:s,enumerable:u}of v)\"string\"==typeof i[s]&&Object.defineProperty(W,s,{value:i[s],enumerable:!!j||u,configurable:!0,writable:!0});return W};i.exports={serializeError:(i,s={})=>{const{maxDepth:u=Number.POSITIVE_INFINITY}=s;return\"object\"==typeof i&&null!==i?destroyCircular({from:i,seen:[],forceEnumerable:!0,maxDepth:u,depth:0}):\"function\"==typeof i?`[Function: ${i.name||\"anonymous\"}]`:i},deserializeError:(i,s={})=>{const{maxDepth:u=Number.POSITIVE_INFINITY}=s;if(i instanceof Error)return i;if(\"object\"==typeof i&&null!==i&&!Array.isArray(i)){const s=new Error;return destroyCircular({from:i,seen:[],to_:s,maxDepth:u,depth:0}),s}return new NonError(i)}}},24189:(i,s,u)=>{var m=u(89509).Buffer;function Hash(i,s){this._block=m.alloc(i),this._finalSize=s,this._blockSize=i,this._len=0}Hash.prototype.update=function(i,s){\"string\"==typeof i&&(s=s||\"utf8\",i=m.from(i,s));for(var u=this._block,v=this._blockSize,_=i.length,j=this._len,M=0;M<_;){for(var $=j%v,W=Math.min(_-M,v-$),X=0;X<W;X++)u[$+X]=i[M+X];M+=W,(j+=W)%v==0&&this._update(u)}return this._len+=_,this},Hash.prototype.digest=function(i){var s=this._len%this._blockSize;this._block[s]=128,this._block.fill(0,s+1),s>=this._finalSize&&(this._update(this._block),this._block.fill(0));var u=8*this._len;if(u<=4294967295)this._block.writeUInt32BE(u,this._blockSize-4);else{var m=(4294967295&u)>>>0,v=(u-m)/4294967296;this._block.writeUInt32BE(v,this._blockSize-8),this._block.writeUInt32BE(m,this._blockSize-4)}this._update(this._block);var _=this._hash();return i?_.toString(i):_},Hash.prototype._update=function(){throw new Error(\"_update must be implemented by subclass\")},i.exports=Hash},89072:(i,s,u)=>{var m=i.exports=function SHA(i){i=i.toLowerCase();var s=m[i];if(!s)throw new Error(i+\" is not supported (we accept pull requests)\");return new s};m.sha=u(74448),m.sha1=u(18336),m.sha224=u(48432),m.sha256=u(67499),m.sha384=u(51686),m.sha512=u(87816)},74448:(i,s,u)=>{var m=u(35717),v=u(24189),_=u(89509).Buffer,j=[1518500249,1859775393,-1894007588,-899497514],M=new Array(80);function Sha(){this.init(),this._w=M,v.call(this,64,56)}function rotl30(i){return i<<30|i>>>2}function ft(i,s,u,m){return 0===i?s&u|~s&m:2===i?s&u|s&m|u&m:s^u^m}m(Sha,v),Sha.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},Sha.prototype._update=function(i){for(var s,u=this._w,m=0|this._a,v=0|this._b,_=0|this._c,M=0|this._d,$=0|this._e,W=0;W<16;++W)u[W]=i.readInt32BE(4*W);for(;W<80;++W)u[W]=u[W-3]^u[W-8]^u[W-14]^u[W-16];for(var X=0;X<80;++X){var Y=~~(X/20),Z=0|((s=m)<<5|s>>>27)+ft(Y,v,_,M)+$+u[X]+j[Y];$=M,M=_,_=rotl30(v),v=m,m=Z}this._a=m+this._a|0,this._b=v+this._b|0,this._c=_+this._c|0,this._d=M+this._d|0,this._e=$+this._e|0},Sha.prototype._hash=function(){var i=_.allocUnsafe(20);return i.writeInt32BE(0|this._a,0),i.writeInt32BE(0|this._b,4),i.writeInt32BE(0|this._c,8),i.writeInt32BE(0|this._d,12),i.writeInt32BE(0|this._e,16),i},i.exports=Sha},18336:(i,s,u)=>{var m=u(35717),v=u(24189),_=u(89509).Buffer,j=[1518500249,1859775393,-1894007588,-899497514],M=new Array(80);function Sha1(){this.init(),this._w=M,v.call(this,64,56)}function rotl5(i){return i<<5|i>>>27}function rotl30(i){return i<<30|i>>>2}function ft(i,s,u,m){return 0===i?s&u|~s&m:2===i?s&u|s&m|u&m:s^u^m}m(Sha1,v),Sha1.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},Sha1.prototype._update=function(i){for(var s,u=this._w,m=0|this._a,v=0|this._b,_=0|this._c,M=0|this._d,$=0|this._e,W=0;W<16;++W)u[W]=i.readInt32BE(4*W);for(;W<80;++W)u[W]=(s=u[W-3]^u[W-8]^u[W-14]^u[W-16])<<1|s>>>31;for(var X=0;X<80;++X){var Y=~~(X/20),Z=rotl5(m)+ft(Y,v,_,M)+$+u[X]+j[Y]|0;$=M,M=_,_=rotl30(v),v=m,m=Z}this._a=m+this._a|0,this._b=v+this._b|0,this._c=_+this._c|0,this._d=M+this._d|0,this._e=$+this._e|0},Sha1.prototype._hash=function(){var i=_.allocUnsafe(20);return i.writeInt32BE(0|this._a,0),i.writeInt32BE(0|this._b,4),i.writeInt32BE(0|this._c,8),i.writeInt32BE(0|this._d,12),i.writeInt32BE(0|this._e,16),i},i.exports=Sha1},48432:(i,s,u)=>{var m=u(35717),v=u(67499),_=u(24189),j=u(89509).Buffer,M=new Array(64);function Sha224(){this.init(),this._w=M,_.call(this,64,56)}m(Sha224,v),Sha224.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},Sha224.prototype._hash=function(){var i=j.allocUnsafe(28);return i.writeInt32BE(this._a,0),i.writeInt32BE(this._b,4),i.writeInt32BE(this._c,8),i.writeInt32BE(this._d,12),i.writeInt32BE(this._e,16),i.writeInt32BE(this._f,20),i.writeInt32BE(this._g,24),i},i.exports=Sha224},67499:(i,s,u)=>{var m=u(35717),v=u(24189),_=u(89509).Buffer,j=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],M=new Array(64);function Sha256(){this.init(),this._w=M,v.call(this,64,56)}function ch(i,s,u){return u^i&(s^u)}function maj(i,s,u){return i&s|u&(i|s)}function sigma0(i){return(i>>>2|i<<30)^(i>>>13|i<<19)^(i>>>22|i<<10)}function sigma1(i){return(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7)}function gamma0(i){return(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3}m(Sha256,v),Sha256.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},Sha256.prototype._update=function(i){for(var s,u=this._w,m=0|this._a,v=0|this._b,_=0|this._c,M=0|this._d,$=0|this._e,W=0|this._f,X=0|this._g,Y=0|this._h,Z=0;Z<16;++Z)u[Z]=i.readInt32BE(4*Z);for(;Z<64;++Z)u[Z]=0|(((s=u[Z-2])>>>17|s<<15)^(s>>>19|s<<13)^s>>>10)+u[Z-7]+gamma0(u[Z-15])+u[Z-16];for(var ee=0;ee<64;++ee){var ie=Y+sigma1($)+ch($,W,X)+j[ee]+u[ee]|0,ae=sigma0(m)+maj(m,v,_)|0;Y=X,X=W,W=$,$=M+ie|0,M=_,_=v,v=m,m=ie+ae|0}this._a=m+this._a|0,this._b=v+this._b|0,this._c=_+this._c|0,this._d=M+this._d|0,this._e=$+this._e|0,this._f=W+this._f|0,this._g=X+this._g|0,this._h=Y+this._h|0},Sha256.prototype._hash=function(){var i=_.allocUnsafe(32);return i.writeInt32BE(this._a,0),i.writeInt32BE(this._b,4),i.writeInt32BE(this._c,8),i.writeInt32BE(this._d,12),i.writeInt32BE(this._e,16),i.writeInt32BE(this._f,20),i.writeInt32BE(this._g,24),i.writeInt32BE(this._h,28),i},i.exports=Sha256},51686:(i,s,u)=>{var m=u(35717),v=u(87816),_=u(24189),j=u(89509).Buffer,M=new Array(160);function Sha384(){this.init(),this._w=M,_.call(this,128,112)}m(Sha384,v),Sha384.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},Sha384.prototype._hash=function(){var i=j.allocUnsafe(48);function writeInt64BE(s,u,m){i.writeInt32BE(s,m),i.writeInt32BE(u,m+4)}return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),i},i.exports=Sha384},87816:(i,s,u)=>{var m=u(35717),v=u(24189),_=u(89509).Buffer,j=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],M=new Array(160);function Sha512(){this.init(),this._w=M,v.call(this,128,112)}function Ch(i,s,u){return u^i&(s^u)}function maj(i,s,u){return i&s|u&(i|s)}function sigma0(i,s){return(i>>>28|s<<4)^(s>>>2|i<<30)^(s>>>7|i<<25)}function sigma1(i,s){return(i>>>14|s<<18)^(i>>>18|s<<14)^(s>>>9|i<<23)}function Gamma0(i,s){return(i>>>1|s<<31)^(i>>>8|s<<24)^i>>>7}function Gamma0l(i,s){return(i>>>1|s<<31)^(i>>>8|s<<24)^(i>>>7|s<<25)}function Gamma1(i,s){return(i>>>19|s<<13)^(s>>>29|i<<3)^i>>>6}function Gamma1l(i,s){return(i>>>19|s<<13)^(s>>>29|i<<3)^(i>>>6|s<<26)}function getCarry(i,s){return i>>>0<s>>>0?1:0}m(Sha512,v),Sha512.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},Sha512.prototype._update=function(i){for(var s=this._w,u=0|this._ah,m=0|this._bh,v=0|this._ch,_=0|this._dh,M=0|this._eh,$=0|this._fh,W=0|this._gh,X=0|this._hh,Y=0|this._al,Z=0|this._bl,ee=0|this._cl,ie=0|this._dl,ae=0|this._el,ce=0|this._fl,le=0|this._gl,pe=0|this._hl,de=0;de<32;de+=2)s[de]=i.readInt32BE(4*de),s[de+1]=i.readInt32BE(4*de+4);for(;de<160;de+=2){var fe=s[de-30],ye=s[de-30+1],be=Gamma0(fe,ye),_e=Gamma0l(ye,fe),we=Gamma1(fe=s[de-4],ye=s[de-4+1]),Se=Gamma1l(ye,fe),xe=s[de-14],Pe=s[de-14+1],Ie=s[de-32],Te=s[de-32+1],Re=_e+Pe|0,qe=be+xe+getCarry(Re,_e)|0;qe=(qe=qe+we+getCarry(Re=Re+Se|0,Se)|0)+Ie+getCarry(Re=Re+Te|0,Te)|0,s[de]=qe,s[de+1]=Re}for(var ze=0;ze<160;ze+=2){qe=s[ze],Re=s[ze+1];var Ve=maj(u,m,v),We=maj(Y,Z,ee),He=sigma0(u,Y),Xe=sigma0(Y,u),Ye=sigma1(M,ae),Qe=sigma1(ae,M),et=j[ze],tt=j[ze+1],rt=Ch(M,$,W),nt=Ch(ae,ce,le),ot=pe+Qe|0,it=X+Ye+getCarry(ot,pe)|0;it=(it=(it=it+rt+getCarry(ot=ot+nt|0,nt)|0)+et+getCarry(ot=ot+tt|0,tt)|0)+qe+getCarry(ot=ot+Re|0,Re)|0;var at=Xe+We|0,st=He+Ve+getCarry(at,Xe)|0;X=W,pe=le,W=$,le=ce,$=M,ce=ae,M=_+it+getCarry(ae=ie+ot|0,ie)|0,_=v,ie=ee,v=m,ee=Z,m=u,Z=Y,u=it+st+getCarry(Y=ot+at|0,ot)|0}this._al=this._al+Y|0,this._bl=this._bl+Z|0,this._cl=this._cl+ee|0,this._dl=this._dl+ie|0,this._el=this._el+ae|0,this._fl=this._fl+ce|0,this._gl=this._gl+le|0,this._hl=this._hl+pe|0,this._ah=this._ah+u+getCarry(this._al,Y)|0,this._bh=this._bh+m+getCarry(this._bl,Z)|0,this._ch=this._ch+v+getCarry(this._cl,ee)|0,this._dh=this._dh+_+getCarry(this._dl,ie)|0,this._eh=this._eh+M+getCarry(this._el,ae)|0,this._fh=this._fh+$+getCarry(this._fl,ce)|0,this._gh=this._gh+W+getCarry(this._gl,le)|0,this._hh=this._hh+X+getCarry(this._hl,pe)|0},Sha512.prototype._hash=function(){var i=_.allocUnsafe(64);function writeInt64BE(s,u,m){i.writeInt32BE(s,m),i.writeInt32BE(u,m+4)}return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),writeInt64BE(this._gh,this._gl,48),writeInt64BE(this._hh,this._hl,56),i},i.exports=Sha512},37478:(i,s,u)=>{\"use strict\";var m=u(40210),v=u(21924),_=u(70631),j=m(\"%TypeError%\"),M=m(\"%WeakMap%\",!0),$=m(\"%Map%\",!0),W=v(\"WeakMap.prototype.get\",!0),X=v(\"WeakMap.prototype.set\",!0),Y=v(\"WeakMap.prototype.has\",!0),Z=v(\"Map.prototype.get\",!0),ee=v(\"Map.prototype.set\",!0),ie=v(\"Map.prototype.has\",!0),listGetNode=function(i,s){for(var u,m=i;null!==(u=m.next);m=u)if(u.key===s)return m.next=u.next,u.next=i.next,i.next=u,u};i.exports=function getSideChannel(){var i,s,u,m={assert:function(i){if(!m.has(i))throw new j(\"Side channel does not contain \"+_(i))},get:function(m){if(M&&m&&(\"object\"==typeof m||\"function\"==typeof m)){if(i)return W(i,m)}else if($){if(s)return Z(s,m)}else if(u)return function(i,s){var u=listGetNode(i,s);return u&&u.value}(u,m)},has:function(m){if(M&&m&&(\"object\"==typeof m||\"function\"==typeof m)){if(i)return Y(i,m)}else if($){if(s)return ie(s,m)}else if(u)return function(i,s){return!!listGetNode(i,s)}(u,m);return!1},set:function(m,v){M&&m&&(\"object\"==typeof m||\"function\"==typeof m)?(i||(i=new M),X(i,m,v)):$?(s||(s=new $),ee(s,m,v)):(u||(u={key:{},next:null}),function(i,s,u){var m=listGetNode(i,s);m?m.value=u:i.next={key:s,next:i.next,value:u}}(u,m,v))}};return m}},43992:i=>{!function(){\"use strict\";var s,u,m,v,_,j=\"properties\",M=\"deepProperties\",$=\"propertyDescriptors\",W=\"staticProperties\",X=\"staticDeepProperties\",Y=\"staticPropertyDescriptors\",Z=\"configuration\",ee=\"deepConfiguration\",ie=\"deepProps\",ae=\"deepStatics\",ce=\"deepConf\",le=\"initializers\",pe=\"methods\",de=\"composers\",fe=\"compose\";function S(i){return Object.getOwnPropertyNames(i).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(i):[])}function r(i,s){return Array.prototype.slice.call(arguments,2).reduce(i,s)}var ye=r.bind(0,(function r(i,s){if(s)for(var u=S(s),m=0;m<u.length;m+=1)Object.defineProperty(i,u[m],Object.getOwnPropertyDescriptor(s,u[m]));return i}));function C(i){return\"function\"==typeof i}function N(i){return i&&\"object\"==typeof i||C(i)}function z(i){return i&&\"object\"==typeof i&&i.__proto__==Object.prototype}var be=r.bind(0,(function r(i,u){if(u===s)return i;if(Array.isArray(u))return(Array.isArray(i)?i:[]).concat(u);if(!z(u))return u;for(var m,v,_=S(u),j=0;j<_.length;)m=_[j++],(v=Object.getOwnPropertyDescriptor(u,m)).hasOwnProperty(\"value\")?v.value!==s&&(i[m]=r(z(i[m])||Array.isArray(u[m])?i[m]:{},u[m])):Object.defineProperty(i,m,v);return i}));function I(){return(u=Array.prototype.concat.apply([],arguments).filter((function(i,s,u){return C(i)&&u.indexOf(i)===s}))).length?u:s}function e(i,s){function r(u,m){N(s[u])&&(N(i[u])||(i[u]={}),(m||ye)(i[u],s[u]))}function t(m){(u=I(i[m],s[m]))&&(i[m]=u)}return s&&N(s=s[fe]||s)&&(r(pe),r(j),r(M,be),r($),r(W),r(X,be),r(Y),r(Z),r(ee,be),t(le),t(de)),i}function R(){return function t(i){return u=function r(){return function r(i){var u,m,v=r[fe]||{},_={__proto__:v[pe]},W=v[le],X=Array.prototype.slice.apply(arguments),Y=v[M];if(Y&&be(_,Y),(Y=v[j])&&ye(_,Y),(Y=v[$])&&Object.defineProperties(_,Y),!W||!W.length)return _;for(i===s&&(i={}),v=0;v<W.length;)C(u=W[v++])&&(_=(m=u.call(_,i,{instance:_,stamp:r,args:X}))===s?_:m);return _}}(),(m=i[X])&&be(u,m),(m=i[W])&&ye(u,m),(m=i[Y])&&Object.defineProperties(u,m),m=C(u[fe])?u[fe]:R,ye(u[fe]=function(){return m.apply(this,arguments)},i),u}(Array.prototype.concat.apply([this],arguments).reduce(e,{}))}function V(i){return C(i)&&C(i[fe])}var _e={};function o(i,_){return function(){return(v={})[i]=_.apply(s,Array.prototype.concat.apply([{}],arguments)),((u=this)&&u[fe]||m).call(u,v)}}_e[pe]=o(pe,ye),_e[j]=_e.props=o(j,ye),_e[le]=_e.init=o(le,I),_e[de]=o(de,I),_e[M]=_e[ie]=o(M,be),_e[W]=_e.statics=o(W,ye),_e[X]=_e[ae]=o(X,be),_e[Z]=_e.conf=o(Z,ye),_e[ee]=_e[ce]=o(ee,be),_e[$]=o($,ye),_e[Y]=o(Y,ye),m=_e[fe]=ye((function r(){for(var i,_e,we=0,Se=[],xe=arguments,Pe=this;we<xe.length;)N(i=xe[we++])&&Se.push(V(i)?i:((v={})[pe]=(_e=i)[pe]||s,m=_e.props,v[j]=N((u=_e[j])||m)?ye({},m,u):s,v[le]=I(_e.init,_e[le]),v[de]=I(_e[de]),m=_e[ie],v[M]=N((u=_e[M])||m)?be({},m,u):s,v[$]=_e[$],m=_e.statics,v[W]=N((u=_e[W])||m)?ye({},m,u):s,m=_e[ae],v[X]=N((u=_e[X])||m)?be({},m,u):s,u=_e[Y],v[Y]=N((m=_e.name&&{name:{value:_e.name}})||u)?ye({},u,m):s,m=_e.conf,v[Z]=N((u=_e[Z])||m)?ye({},m,u):s,m=_e[ce],v[ee]=N((u=_e[ee])||m)?be({},m,u):s,v));if(i=R.apply(Pe||_,Se),Pe&&Se.unshift(Pe),Array.isArray(xe=i[fe][de]))for(we=0;we<xe.length;)i=V(Pe=xe[we++]({stamp:i,composables:Se}))?Pe:i;return i}),_e),_e.create=function(){return this.apply(s,arguments)},(v={})[W]=_e,_=R(v),m[fe]=m.bind(),m.version=\"4.3.2\",\"object\"!=typeof s?i.exports=m:self.stampit=m}()},42830:(i,s,u)=>{i.exports=Stream;var m=u(17187).EventEmitter;function Stream(){m.call(this)}u(35717)(Stream,m),Stream.Readable=u(79481),Stream.Writable=u(64229),Stream.Duplex=u(56753),Stream.Transform=u(74605),Stream.PassThrough=u(82725),Stream.finished=u(8610),Stream.pipeline=u(59946),Stream.Stream=Stream,Stream.prototype.pipe=function(i,s){var u=this;function ondata(s){i.writable&&!1===i.write(s)&&u.pause&&u.pause()}function ondrain(){u.readable&&u.resume&&u.resume()}u.on(\"data\",ondata),i.on(\"drain\",ondrain),i._isStdio||s&&!1===s.end||(u.on(\"end\",onend),u.on(\"close\",onclose));var v=!1;function onend(){v||(v=!0,i.end())}function onclose(){v||(v=!0,\"function\"==typeof i.destroy&&i.destroy())}function onerror(i){if(cleanup(),0===m.listenerCount(this,\"error\"))throw i}function cleanup(){u.removeListener(\"data\",ondata),i.removeListener(\"drain\",ondrain),u.removeListener(\"end\",onend),u.removeListener(\"close\",onclose),u.removeListener(\"error\",onerror),i.removeListener(\"error\",onerror),u.removeListener(\"end\",cleanup),u.removeListener(\"close\",cleanup),i.removeListener(\"close\",cleanup)}return u.on(\"error\",onerror),i.on(\"error\",onerror),u.on(\"end\",cleanup),u.on(\"close\",cleanup),i.on(\"close\",cleanup),i.emit(\"pipe\",u),i}},32553:(i,s,u)=>{\"use strict\";var m=u(89509).Buffer,v=m.isEncoding||function(i){switch((i=\"\"+i)&&i.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return!0;default:return!1}};function StringDecoder(i){var s;switch(this.encoding=function normalizeEncoding(i){var s=function _normalizeEncoding(i){if(!i)return\"utf8\";for(var s;;)switch(i){case\"utf8\":case\"utf-8\":return\"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return\"utf16le\";case\"latin1\":case\"binary\":return\"latin1\";case\"base64\":case\"ascii\":case\"hex\":return i;default:if(s)return;i=(\"\"+i).toLowerCase(),s=!0}}(i);if(\"string\"!=typeof s&&(m.isEncoding===v||!v(i)))throw new Error(\"Unknown encoding: \"+i);return s||i}(i),this.encoding){case\"utf16le\":this.text=utf16Text,this.end=utf16End,s=4;break;case\"utf8\":this.fillLast=utf8FillLast,s=4;break;case\"base64\":this.text=base64Text,this.end=base64End,s=3;break;default:return this.write=simpleWrite,void(this.end=simpleEnd)}this.lastNeed=0,this.lastTotal=0,this.lastChar=m.allocUnsafe(s)}function utf8CheckByte(i){return i<=127?0:i>>5==6?2:i>>4==14?3:i>>3==30?4:i>>6==2?-1:-2}function utf8FillLast(i){var s=this.lastTotal-this.lastNeed,u=function utf8CheckExtraBytes(i,s,u){if(128!=(192&s[0]))return i.lastNeed=0,\"�\";if(i.lastNeed>1&&s.length>1){if(128!=(192&s[1]))return i.lastNeed=1,\"�\";if(i.lastNeed>2&&s.length>2&&128!=(192&s[2]))return i.lastNeed=2,\"�\"}}(this,i);return void 0!==u?u:this.lastNeed<=i.length?(i.copy(this.lastChar,s,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(i.copy(this.lastChar,s,0,i.length),void(this.lastNeed-=i.length))}function utf16Text(i,s){if((i.length-s)%2==0){var u=i.toString(\"utf16le\",s);if(u){var m=u.charCodeAt(u.length-1);if(m>=55296&&m<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=i[i.length-2],this.lastChar[1]=i[i.length-1],u.slice(0,-1)}return u}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=i[i.length-1],i.toString(\"utf16le\",s,i.length-1)}function utf16End(i){var s=i&&i.length?this.write(i):\"\";if(this.lastNeed){var u=this.lastTotal-this.lastNeed;return s+this.lastChar.toString(\"utf16le\",0,u)}return s}function base64Text(i,s){var u=(i.length-s)%3;return 0===u?i.toString(\"base64\",s):(this.lastNeed=3-u,this.lastTotal=3,1===u?this.lastChar[0]=i[i.length-1]:(this.lastChar[0]=i[i.length-2],this.lastChar[1]=i[i.length-1]),i.toString(\"base64\",s,i.length-u))}function base64End(i){var s=i&&i.length?this.write(i):\"\";return this.lastNeed?s+this.lastChar.toString(\"base64\",0,3-this.lastNeed):s}function simpleWrite(i){return i.toString(this.encoding)}function simpleEnd(i){return i&&i.length?this.write(i):\"\"}s.s=StringDecoder,StringDecoder.prototype.write=function(i){if(0===i.length)return\"\";var s,u;if(this.lastNeed){if(void 0===(s=this.fillLast(i)))return\"\";u=this.lastNeed,this.lastNeed=0}else u=0;return u<i.length?s?s+this.text(i,u):this.text(i,u):s||\"\"},StringDecoder.prototype.end=function utf8End(i){var s=i&&i.length?this.write(i):\"\";return this.lastNeed?s+\"�\":s},StringDecoder.prototype.text=function utf8Text(i,s){var u=function utf8CheckIncomplete(i,s,u){var m=s.length-1;if(m<u)return 0;var v=utf8CheckByte(s[m]);if(v>=0)return v>0&&(i.lastNeed=v-1),v;if(--m<u||-2===v)return 0;if(v=utf8CheckByte(s[m]),v>=0)return v>0&&(i.lastNeed=v-2),v;if(--m<u||-2===v)return 0;if(v=utf8CheckByte(s[m]),v>=0)return v>0&&(2===v?v=0:i.lastNeed=v-3),v;return 0}(this,i,s);if(!this.lastNeed)return i.toString(\"utf8\",s);this.lastTotal=u;var m=i.length-(u-this.lastNeed);return i.copy(this.lastChar,0,m),i.toString(\"utf8\",s,m)},StringDecoder.prototype.fillLast=function(i){if(this.lastNeed<=i.length)return i.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);i.copy(this.lastChar,this.lastTotal-this.lastNeed,0,i.length),this.lastNeed-=i.length}},11742:i=>{i.exports=function(){var i=document.getSelection();if(!i.rangeCount)return function(){};for(var s=document.activeElement,u=[],m=0;m<i.rangeCount;m++)u.push(i.getRangeAt(m));switch(s.tagName.toUpperCase()){case\"INPUT\":case\"TEXTAREA\":s.blur();break;default:s=null}return i.removeAllRanges(),function(){\"Caret\"===i.type&&i.removeAllRanges(),i.rangeCount||u.forEach((function(s){i.addRange(s)})),s&&s.focus()}}},13692:i=>{\"use strict\";function toS(i){return Object.prototype.toString.call(i)}var s=Array.isArray||function isArray(i){return\"[object Array]\"===Object.prototype.toString.call(i)};function forEach(i,s){if(i.forEach)return i.forEach(s);for(var u=0;u<i.length;u++)s(i[u],u,i)}var u=Object.keys||function keys(i){var s=[];for(var u in i)s.push(u);return s},m=Object.prototype.hasOwnProperty||function(i,s){return s in i};function copy(i){if(\"object\"==typeof i&&null!==i){var m;if(s(i))m=[];else if(function isDate(i){return\"[object Date]\"===toS(i)}(i))m=new Date(i.getTime?i.getTime():i);else if(function isRegExp(i){return\"[object RegExp]\"===toS(i)}(i))m=new RegExp(i);else if(function isError(i){return\"[object Error]\"===toS(i)}(i))m={message:i.message};else if(function isBoolean(i){return\"[object Boolean]\"===toS(i)}(i)||function isNumber(i){return\"[object Number]\"===toS(i)}(i)||function isString(i){return\"[object String]\"===toS(i)}(i))m=Object(i);else if(Object.create&&Object.getPrototypeOf)m=Object.create(Object.getPrototypeOf(i));else if(i.constructor===Object)m={};else{var v=i.constructor&&i.constructor.prototype||i.__proto__||{},_=function T(){};_.prototype=v,m=new _}return forEach(u(i),(function(s){m[s]=i[s]})),m}return i}function walk(i,v,_){var j=[],M=[],$=!0;return function walker(i){var W=_?copy(i):i,X={},Y=!0,Z={node:W,node_:i,path:[].concat(j),parent:M[M.length-1],parents:M,key:j[j.length-1],isRoot:0===j.length,level:j.length,circular:null,update:function(i,s){Z.isRoot||(Z.parent.node[Z.key]=i),Z.node=i,s&&(Y=!1)},delete:function(i){delete Z.parent.node[Z.key],i&&(Y=!1)},remove:function(i){s(Z.parent.node)?Z.parent.node.splice(Z.key,1):delete Z.parent.node[Z.key],i&&(Y=!1)},keys:null,before:function(i){X.before=i},after:function(i){X.after=i},pre:function(i){X.pre=i},post:function(i){X.post=i},stop:function(){$=!1},block:function(){Y=!1}};if(!$)return Z;function updateState(){if(\"object\"==typeof Z.node&&null!==Z.node){Z.keys&&Z.node_===Z.node||(Z.keys=u(Z.node)),Z.isLeaf=0===Z.keys.length;for(var s=0;s<M.length;s++)if(M[s].node_===i){Z.circular=M[s];break}}else Z.isLeaf=!0,Z.keys=null;Z.notLeaf=!Z.isLeaf,Z.notRoot=!Z.isRoot}updateState();var ee=v.call(Z,Z.node);return void 0!==ee&&Z.update&&Z.update(ee),X.before&&X.before.call(Z,Z.node),Y?(\"object\"!=typeof Z.node||null===Z.node||Z.circular||(M.push(Z),updateState(),forEach(Z.keys,(function(i,s){j.push(i),X.pre&&X.pre.call(Z,Z.node[i],i);var u=walker(Z.node[i]);_&&m.call(Z.node,i)&&(Z.node[i]=u.node),u.isLast=s===Z.keys.length-1,u.isFirst=0===s,X.post&&X.post.call(Z,u),j.pop()})),M.pop()),X.after&&X.after.call(Z,Z.node),Z):Z}(i).node}function Traverse(i){this.value=i}function traverse(i){return new Traverse(i)}Traverse.prototype.get=function(i){for(var s=this.value,u=0;u<i.length;u++){var v=i[u];if(!s||!m.call(s,v))return;s=s[v]}return s},Traverse.prototype.has=function(i){for(var s=this.value,u=0;u<i.length;u++){var v=i[u];if(!s||!m.call(s,v))return!1;s=s[v]}return!0},Traverse.prototype.set=function(i,s){for(var u=this.value,v=0;v<i.length-1;v++){var _=i[v];m.call(u,_)||(u[_]={}),u=u[_]}return u[i[v]]=s,s},Traverse.prototype.map=function(i){return walk(this.value,i,!0)},Traverse.prototype.forEach=function(i){return this.value=walk(this.value,i,!1),this.value},Traverse.prototype.reduce=function(i,s){var u=1===arguments.length,m=u?this.value:s;return this.forEach((function(s){this.isRoot&&u||(m=i.call(this,m,s))})),m},Traverse.prototype.paths=function(){var i=[];return this.forEach((function(){i.push(this.path)})),i},Traverse.prototype.nodes=function(){var i=[];return this.forEach((function(){i.push(this.node)})),i},Traverse.prototype.clone=function(){var i=[],s=[];return function clone(m){for(var v=0;v<i.length;v++)if(i[v]===m)return s[v];if(\"object\"==typeof m&&null!==m){var _=copy(m);return i.push(m),s.push(_),forEach(u(m),(function(i){_[i]=clone(m[i])})),i.pop(),s.pop(),_}return m}(this.value)},forEach(u(Traverse.prototype),(function(i){traverse[i]=function(s){var u=[].slice.call(arguments,1),m=new Traverse(s);return m[i].apply(m,u)}})),i.exports=traverse},84564:(i,s,u)=>{\"use strict\";var m=u(47418),v=u(57129),_=/^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/,j=/[\\n\\r\\t]/g,M=/^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//,$=/:\\d+$/,W=/^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i,X=/^[a-zA-Z]:/;function trimLeft(i){return(i||\"\").toString().replace(_,\"\")}var Y=[[\"#\",\"hash\"],[\"?\",\"query\"],function sanitize(i,s){return isSpecial(s.protocol)?i.replace(/\\\\/g,\"/\"):i},[\"/\",\"pathname\"],[\"@\",\"auth\",1],[NaN,\"host\",void 0,1,1],[/:(\\d*)$/,\"port\",void 0,1],[NaN,\"hostname\",void 0,1,1]],Z={hash:1,query:1};function lolcation(i){var s,m=(\"undefined\"!=typeof window?window:void 0!==u.g?u.g:\"undefined\"!=typeof self?self:{}).location||{},v={},_=typeof(i=i||m);if(\"blob:\"===i.protocol)v=new Url(unescape(i.pathname),{});else if(\"string\"===_)for(s in v=new Url(i,{}),Z)delete v[s];else if(\"object\"===_){for(s in i)s in Z||(v[s]=i[s]);void 0===v.slashes&&(v.slashes=M.test(i.href))}return v}function isSpecial(i){return\"file:\"===i||\"ftp:\"===i||\"http:\"===i||\"https:\"===i||\"ws:\"===i||\"wss:\"===i}function extractProtocol(i,s){i=(i=trimLeft(i)).replace(j,\"\"),s=s||{};var u,m=W.exec(i),v=m[1]?m[1].toLowerCase():\"\",_=!!m[2],M=!!m[3],$=0;return _?M?(u=m[2]+m[3]+m[4],$=m[2].length+m[3].length):(u=m[2]+m[4],$=m[2].length):M?(u=m[3]+m[4],$=m[3].length):u=m[4],\"file:\"===v?$>=2&&(u=u.slice(2)):isSpecial(v)?u=m[4]:v?_&&(u=u.slice(2)):$>=2&&isSpecial(s.protocol)&&(u=m[4]),{protocol:v,slashes:_||isSpecial(v),slashesCount:$,rest:u}}function Url(i,s,u){if(i=(i=trimLeft(i)).replace(j,\"\"),!(this instanceof Url))return new Url(i,s,u);var _,M,$,W,Z,ee,ie=Y.slice(),ae=typeof s,ce=this,le=0;for(\"object\"!==ae&&\"string\"!==ae&&(u=s,s=null),u&&\"function\"!=typeof u&&(u=v.parse),_=!(M=extractProtocol(i||\"\",s=lolcation(s))).protocol&&!M.slashes,ce.slashes=M.slashes||_&&s.slashes,ce.protocol=M.protocol||s.protocol||\"\",i=M.rest,(\"file:\"===M.protocol&&(2!==M.slashesCount||X.test(i))||!M.slashes&&(M.protocol||M.slashesCount<2||!isSpecial(ce.protocol)))&&(ie[3]=[/(.*)/,\"pathname\"]);le<ie.length;le++)\"function\"!=typeof(W=ie[le])?($=W[0],ee=W[1],$!=$?ce[ee]=i:\"string\"==typeof $?~(Z=\"@\"===$?i.lastIndexOf($):i.indexOf($))&&(\"number\"==typeof W[2]?(ce[ee]=i.slice(0,Z),i=i.slice(Z+W[2])):(ce[ee]=i.slice(Z),i=i.slice(0,Z))):(Z=$.exec(i))&&(ce[ee]=Z[1],i=i.slice(0,Z.index)),ce[ee]=ce[ee]||_&&W[3]&&s[ee]||\"\",W[4]&&(ce[ee]=ce[ee].toLowerCase())):i=W(i,ce);u&&(ce.query=u(ce.query)),_&&s.slashes&&\"/\"!==ce.pathname.charAt(0)&&(\"\"!==ce.pathname||\"\"!==s.pathname)&&(ce.pathname=function resolve(i,s){if(\"\"===i)return s;for(var u=(s||\"/\").split(\"/\").slice(0,-1).concat(i.split(\"/\")),m=u.length,v=u[m-1],_=!1,j=0;m--;)\".\"===u[m]?u.splice(m,1):\"..\"===u[m]?(u.splice(m,1),j++):j&&(0===m&&(_=!0),u.splice(m,1),j--);return _&&u.unshift(\"\"),\".\"!==v&&\"..\"!==v||u.push(\"\"),u.join(\"/\")}(ce.pathname,s.pathname)),\"/\"!==ce.pathname.charAt(0)&&isSpecial(ce.protocol)&&(ce.pathname=\"/\"+ce.pathname),m(ce.port,ce.protocol)||(ce.host=ce.hostname,ce.port=\"\"),ce.username=ce.password=\"\",ce.auth&&(~(Z=ce.auth.indexOf(\":\"))?(ce.username=ce.auth.slice(0,Z),ce.username=encodeURIComponent(decodeURIComponent(ce.username)),ce.password=ce.auth.slice(Z+1),ce.password=encodeURIComponent(decodeURIComponent(ce.password))):ce.username=encodeURIComponent(decodeURIComponent(ce.auth)),ce.auth=ce.password?ce.username+\":\"+ce.password:ce.username),ce.origin=\"file:\"!==ce.protocol&&isSpecial(ce.protocol)&&ce.host?ce.protocol+\"//\"+ce.host:\"null\",ce.href=ce.toString()}Url.prototype={set:function set(i,s,u){var _=this;switch(i){case\"query\":\"string\"==typeof s&&s.length&&(s=(u||v.parse)(s)),_[i]=s;break;case\"port\":_[i]=s,m(s,_.protocol)?s&&(_.host=_.hostname+\":\"+s):(_.host=_.hostname,_[i]=\"\");break;case\"hostname\":_[i]=s,_.port&&(s+=\":\"+_.port),_.host=s;break;case\"host\":_[i]=s,$.test(s)?(s=s.split(\":\"),_.port=s.pop(),_.hostname=s.join(\":\")):(_.hostname=s,_.port=\"\");break;case\"protocol\":_.protocol=s.toLowerCase(),_.slashes=!u;break;case\"pathname\":case\"hash\":if(s){var j=\"pathname\"===i?\"/\":\"#\";_[i]=s.charAt(0)!==j?j+s:s}else _[i]=s;break;case\"username\":case\"password\":_[i]=encodeURIComponent(s);break;case\"auth\":var M=s.indexOf(\":\");~M?(_.username=s.slice(0,M),_.username=encodeURIComponent(decodeURIComponent(_.username)),_.password=s.slice(M+1),_.password=encodeURIComponent(decodeURIComponent(_.password))):_.username=encodeURIComponent(decodeURIComponent(s))}for(var W=0;W<Y.length;W++){var X=Y[W];X[4]&&(_[X[1]]=_[X[1]].toLowerCase())}return _.auth=_.password?_.username+\":\"+_.password:_.username,_.origin=\"file:\"!==_.protocol&&isSpecial(_.protocol)&&_.host?_.protocol+\"//\"+_.host:\"null\",_.href=_.toString(),_},toString:function toString(i){i&&\"function\"==typeof i||(i=v.stringify);var s,u=this,m=u.host,_=u.protocol;_&&\":\"!==_.charAt(_.length-1)&&(_+=\":\");var j=_+(u.protocol&&u.slashes||isSpecial(u.protocol)?\"//\":\"\");return u.username?(j+=u.username,u.password&&(j+=\":\"+u.password),j+=\"@\"):u.password?(j+=\":\"+u.password,j+=\"@\"):\"file:\"!==u.protocol&&isSpecial(u.protocol)&&!m&&\"/\"!==u.pathname&&(j+=\"@\"),(\":\"===m[m.length-1]||$.test(u.hostname)&&!u.port)&&(m+=\":\"),j+=m+u.pathname,(s=\"object\"==typeof u.query?i(u.query):u.query)&&(j+=\"?\"!==s.charAt(0)?\"?\"+s:s),u.hash&&(j+=u.hash),j}},Url.extractProtocol=extractProtocol,Url.location=lolcation,Url.trimLeft=trimLeft,Url.qs=v,i.exports=Url},52511:function(i,s,u){var m;i=u.nmd(i),function(v){s&&s.nodeType,i&&i.nodeType;var _=\"object\"==typeof u.g&&u.g;_.global!==_&&_.window!==_&&_.self;var j,M=2147483647,$=36,W=1,X=26,Y=38,Z=700,ee=72,ie=128,ae=\"-\",ce=/^xn--/,le=/[^\\x20-\\x7E]/,pe=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,de={overflow:\"Overflow: input needs wider integers to process\",\"not-basic\":\"Illegal input >= 0x80 (not a basic code point)\",\"invalid-input\":\"Invalid input\"},fe=$-W,ye=Math.floor,be=String.fromCharCode;function error(i){throw new RangeError(de[i])}function map(i,s){for(var u=i.length,m=[];u--;)m[u]=s(i[u]);return m}function mapDomain(i,s){var u=i.split(\"@\"),m=\"\";return u.length>1&&(m=u[0]+\"@\",i=u[1]),m+map((i=i.replace(pe,\".\")).split(\".\"),s).join(\".\")}function ucs2decode(i){for(var s,u,m=[],v=0,_=i.length;v<_;)(s=i.charCodeAt(v++))>=55296&&s<=56319&&v<_?56320==(64512&(u=i.charCodeAt(v++)))?m.push(((1023&s)<<10)+(1023&u)+65536):(m.push(s),v--):m.push(s);return m}function ucs2encode(i){return map(i,(function(i){var s=\"\";return i>65535&&(s+=be((i-=65536)>>>10&1023|55296),i=56320|1023&i),s+=be(i)})).join(\"\")}function digitToBasic(i,s){return i+22+75*(i<26)-((0!=s)<<5)}function adapt(i,s,u){var m=0;for(i=u?ye(i/Z):i>>1,i+=ye(i/s);i>fe*X>>1;m+=$)i=ye(i/fe);return ye(m+(fe+1)*i/(i+Y))}function decode(i){var s,u,m,v,_,j,Y,Z,ce,le,pe,de=[],fe=i.length,be=0,_e=ie,we=ee;for((u=i.lastIndexOf(ae))<0&&(u=0),m=0;m<u;++m)i.charCodeAt(m)>=128&&error(\"not-basic\"),de.push(i.charCodeAt(m));for(v=u>0?u+1:0;v<fe;){for(_=be,j=1,Y=$;v>=fe&&error(\"invalid-input\"),((Z=(pe=i.charCodeAt(v++))-48<10?pe-22:pe-65<26?pe-65:pe-97<26?pe-97:$)>=$||Z>ye((M-be)/j))&&error(\"overflow\"),be+=Z*j,!(Z<(ce=Y<=we?W:Y>=we+X?X:Y-we));Y+=$)j>ye(M/(le=$-ce))&&error(\"overflow\"),j*=le;we=adapt(be-_,s=de.length+1,0==_),ye(be/s)>M-_e&&error(\"overflow\"),_e+=ye(be/s),be%=s,de.splice(be++,0,_e)}return ucs2encode(de)}function encode(i){var s,u,m,v,_,j,Y,Z,ce,le,pe,de,fe,_e,we,Se=[];for(de=(i=ucs2decode(i)).length,s=ie,u=0,_=ee,j=0;j<de;++j)(pe=i[j])<128&&Se.push(be(pe));for(m=v=Se.length,v&&Se.push(ae);m<de;){for(Y=M,j=0;j<de;++j)(pe=i[j])>=s&&pe<Y&&(Y=pe);for(Y-s>ye((M-u)/(fe=m+1))&&error(\"overflow\"),u+=(Y-s)*fe,s=Y,j=0;j<de;++j)if((pe=i[j])<s&&++u>M&&error(\"overflow\"),pe==s){for(Z=u,ce=$;!(Z<(le=ce<=_?W:ce>=_+X?X:ce-_));ce+=$)we=Z-le,_e=$-le,Se.push(be(digitToBasic(le+we%_e,0))),Z=ye(we/_e);Se.push(be(digitToBasic(Z,0))),_=adapt(u,fe,m==v),u=0,++m}++u,++s}return Se.join(\"\")}j={version:\"1.4.1\",ucs2:{decode:ucs2decode,encode:ucs2encode},decode,encode,toASCII:function toASCII(i){return mapDomain(i,(function(i){return le.test(i)?\"xn--\"+encode(i):i}))},toUnicode:function toUnicode(i){return mapDomain(i,(function(i){return ce.test(i)?decode(i.slice(4).toLowerCase()):i}))}},void 0===(m=function(){return j}.call(s,u,s,i))||(i.exports=m)}()},8575:(i,s,u)=>{\"use strict\";var m=u(52511);function Url(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var v=/^([a-z0-9.+-]+:)/i,_=/:[0-9]*$/,j=/^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/,M=[\"{\",\"}\",\"|\",\"\\\\\",\"^\",\"`\"].concat([\"<\",\">\",'\"',\"`\",\" \",\"\\r\",\"\\n\",\"\\t\"]),$=[\"'\"].concat(M),W=[\"%\",\"/\",\"?\",\";\",\"#\"].concat($),X=[\"/\",\"?\",\"#\"],Y=/^[+a-z0-9A-Z_-]{0,63}$/,Z=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,ee={javascript:!0,\"javascript:\":!0},ie={javascript:!0,\"javascript:\":!0},ae={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,\"http:\":!0,\"https:\":!0,\"ftp:\":!0,\"gopher:\":!0,\"file:\":!0},ce=u(80129);function urlParse(i,s,u){if(i&&\"object\"==typeof i&&i instanceof Url)return i;var m=new Url;return m.parse(i,s,u),m}Url.prototype.parse=function(i,s,u){if(\"string\"!=typeof i)throw new TypeError(\"Parameter 'url' must be a string, not \"+typeof i);var _=i.indexOf(\"?\"),M=-1!==_&&_<i.indexOf(\"#\")?\"?\":\"#\",le=i.split(M);le[0]=le[0].replace(/\\\\/g,\"/\");var pe=i=le.join(M);if(pe=pe.trim(),!u&&1===i.split(\"#\").length){var de=j.exec(pe);if(de)return this.path=pe,this.href=pe,this.pathname=de[1],de[2]?(this.search=de[2],this.query=s?ce.parse(this.search.substr(1)):this.search.substr(1)):s&&(this.search=\"\",this.query={}),this}var fe=v.exec(pe);if(fe){var ye=(fe=fe[0]).toLowerCase();this.protocol=ye,pe=pe.substr(fe.length)}if(u||fe||pe.match(/^\\/\\/[^@/]+@[^@/]+/)){var be=\"//\"===pe.substr(0,2);!be||fe&&ie[fe]||(pe=pe.substr(2),this.slashes=!0)}if(!ie[fe]&&(be||fe&&!ae[fe])){for(var _e,we,Se=-1,xe=0;xe<X.length;xe++){-1!==(Pe=pe.indexOf(X[xe]))&&(-1===Se||Pe<Se)&&(Se=Pe)}-1!==(we=-1===Se?pe.lastIndexOf(\"@\"):pe.lastIndexOf(\"@\",Se))&&(_e=pe.slice(0,we),pe=pe.slice(we+1),this.auth=decodeURIComponent(_e)),Se=-1;for(xe=0;xe<W.length;xe++){var Pe;-1!==(Pe=pe.indexOf(W[xe]))&&(-1===Se||Pe<Se)&&(Se=Pe)}-1===Se&&(Se=pe.length),this.host=pe.slice(0,Se),pe=pe.slice(Se),this.parseHost(),this.hostname=this.hostname||\"\";var Ie=\"[\"===this.hostname[0]&&\"]\"===this.hostname[this.hostname.length-1];if(!Ie)for(var Te=this.hostname.split(/\\./),Re=(xe=0,Te.length);xe<Re;xe++){var qe=Te[xe];if(qe&&!qe.match(Y)){for(var ze=\"\",Ve=0,We=qe.length;Ve<We;Ve++)qe.charCodeAt(Ve)>127?ze+=\"x\":ze+=qe[Ve];if(!ze.match(Y)){var He=Te.slice(0,xe),Xe=Te.slice(xe+1),Ye=qe.match(Z);Ye&&(He.push(Ye[1]),Xe.unshift(Ye[2])),Xe.length&&(pe=\"/\"+Xe.join(\".\")+pe),this.hostname=He.join(\".\");break}}}this.hostname.length>255?this.hostname=\"\":this.hostname=this.hostname.toLowerCase(),Ie||(this.hostname=m.toASCII(this.hostname));var Qe=this.port?\":\"+this.port:\"\",et=this.hostname||\"\";this.host=et+Qe,this.href+=this.host,Ie&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),\"/\"!==pe[0]&&(pe=\"/\"+pe))}if(!ee[ye])for(xe=0,Re=$.length;xe<Re;xe++){var tt=$[xe];if(-1!==pe.indexOf(tt)){var rt=encodeURIComponent(tt);rt===tt&&(rt=escape(tt)),pe=pe.split(tt).join(rt)}}var nt=pe.indexOf(\"#\");-1!==nt&&(this.hash=pe.substr(nt),pe=pe.slice(0,nt));var ot=pe.indexOf(\"?\");if(-1!==ot?(this.search=pe.substr(ot),this.query=pe.substr(ot+1),s&&(this.query=ce.parse(this.query)),pe=pe.slice(0,ot)):s&&(this.search=\"\",this.query={}),pe&&(this.pathname=pe),ae[ye]&&this.hostname&&!this.pathname&&(this.pathname=\"/\"),this.pathname||this.search){Qe=this.pathname||\"\";var it=this.search||\"\";this.path=Qe+it}return this.href=this.format(),this},Url.prototype.format=function(){var i=this.auth||\"\";i&&(i=(i=encodeURIComponent(i)).replace(/%3A/i,\":\"),i+=\"@\");var s=this.protocol||\"\",u=this.pathname||\"\",m=this.hash||\"\",v=!1,_=\"\";this.host?v=i+this.host:this.hostname&&(v=i+(-1===this.hostname.indexOf(\":\")?this.hostname:\"[\"+this.hostname+\"]\"),this.port&&(v+=\":\"+this.port)),this.query&&\"object\"==typeof this.query&&Object.keys(this.query).length&&(_=ce.stringify(this.query));var j=this.search||_&&\"?\"+_||\"\";return s&&\":\"!==s.substr(-1)&&(s+=\":\"),this.slashes||(!s||ae[s])&&!1!==v?(v=\"//\"+(v||\"\"),u&&\"/\"!==u.charAt(0)&&(u=\"/\"+u)):v||(v=\"\"),m&&\"#\"!==m.charAt(0)&&(m=\"#\"+m),j&&\"?\"!==j.charAt(0)&&(j=\"?\"+j),s+v+(u=u.replace(/[?#]/g,(function(i){return encodeURIComponent(i)})))+(j=j.replace(\"#\",\"%23\"))+m},Url.prototype.resolve=function(i){return this.resolveObject(urlParse(i,!1,!0)).format()},Url.prototype.resolveObject=function(i){if(\"string\"==typeof i){var s=new Url;s.parse(i,!1,!0),i=s}for(var u=new Url,m=Object.keys(this),v=0;v<m.length;v++){var _=m[v];u[_]=this[_]}if(u.hash=i.hash,\"\"===i.href)return u.href=u.format(),u;if(i.slashes&&!i.protocol){for(var j=Object.keys(i),M=0;M<j.length;M++){var $=j[M];\"protocol\"!==$&&(u[$]=i[$])}return ae[u.protocol]&&u.hostname&&!u.pathname&&(u.pathname=\"/\",u.path=u.pathname),u.href=u.format(),u}if(i.protocol&&i.protocol!==u.protocol){if(!ae[i.protocol]){for(var W=Object.keys(i),X=0;X<W.length;X++){var Y=W[X];u[Y]=i[Y]}return u.href=u.format(),u}if(u.protocol=i.protocol,i.host||ie[i.protocol])u.pathname=i.pathname;else{for(var Z=(i.pathname||\"\").split(\"/\");Z.length&&!(i.host=Z.shift()););i.host||(i.host=\"\"),i.hostname||(i.hostname=\"\"),\"\"!==Z[0]&&Z.unshift(\"\"),Z.length<2&&Z.unshift(\"\"),u.pathname=Z.join(\"/\")}if(u.search=i.search,u.query=i.query,u.host=i.host||\"\",u.auth=i.auth,u.hostname=i.hostname||i.host,u.port=i.port,u.pathname||u.search){var ee=u.pathname||\"\",ce=u.search||\"\";u.path=ee+ce}return u.slashes=u.slashes||i.slashes,u.href=u.format(),u}var le=u.pathname&&\"/\"===u.pathname.charAt(0),pe=i.host||i.pathname&&\"/\"===i.pathname.charAt(0),de=pe||le||u.host&&i.pathname,fe=de,ye=u.pathname&&u.pathname.split(\"/\")||[],be=(Z=i.pathname&&i.pathname.split(\"/\")||[],u.protocol&&!ae[u.protocol]);if(be&&(u.hostname=\"\",u.port=null,u.host&&(\"\"===ye[0]?ye[0]=u.host:ye.unshift(u.host)),u.host=\"\",i.protocol&&(i.hostname=null,i.port=null,i.host&&(\"\"===Z[0]?Z[0]=i.host:Z.unshift(i.host)),i.host=null),de=de&&(\"\"===Z[0]||\"\"===ye[0])),pe)u.host=i.host||\"\"===i.host?i.host:u.host,u.hostname=i.hostname||\"\"===i.hostname?i.hostname:u.hostname,u.search=i.search,u.query=i.query,ye=Z;else if(Z.length)ye||(ye=[]),ye.pop(),ye=ye.concat(Z),u.search=i.search,u.query=i.query;else if(null!=i.search){if(be)u.host=ye.shift(),u.hostname=u.host,(Pe=!!(u.host&&u.host.indexOf(\"@\")>0)&&u.host.split(\"@\"))&&(u.auth=Pe.shift(),u.hostname=Pe.shift(),u.host=u.hostname);return u.search=i.search,u.query=i.query,null===u.pathname&&null===u.search||(u.path=(u.pathname?u.pathname:\"\")+(u.search?u.search:\"\")),u.href=u.format(),u}if(!ye.length)return u.pathname=null,u.search?u.path=\"/\"+u.search:u.path=null,u.href=u.format(),u;for(var _e=ye.slice(-1)[0],we=(u.host||i.host||ye.length>1)&&(\".\"===_e||\"..\"===_e)||\"\"===_e,Se=0,xe=ye.length;xe>=0;xe--)\".\"===(_e=ye[xe])?ye.splice(xe,1):\"..\"===_e?(ye.splice(xe,1),Se++):Se&&(ye.splice(xe,1),Se--);if(!de&&!fe)for(;Se--;Se)ye.unshift(\"..\");!de||\"\"===ye[0]||ye[0]&&\"/\"===ye[0].charAt(0)||ye.unshift(\"\"),we&&\"/\"!==ye.join(\"/\").substr(-1)&&ye.push(\"\");var Pe,Ie=\"\"===ye[0]||ye[0]&&\"/\"===ye[0].charAt(0);be&&(u.hostname=Ie?\"\":ye.length?ye.shift():\"\",u.host=u.hostname,(Pe=!!(u.host&&u.host.indexOf(\"@\")>0)&&u.host.split(\"@\"))&&(u.auth=Pe.shift(),u.hostname=Pe.shift(),u.host=u.hostname));return(de=de||u.host&&ye.length)&&!Ie&&ye.unshift(\"\"),ye.length>0?u.pathname=ye.join(\"/\"):(u.pathname=null,u.path=null),null===u.pathname&&null===u.search||(u.path=(u.pathname?u.pathname:\"\")+(u.search?u.search:\"\")),u.auth=i.auth||u.auth,u.slashes=u.slashes||i.slashes,u.href=u.format(),u},Url.prototype.parseHost=function(){var i=this.host,s=_.exec(i);s&&(\":\"!==(s=s[0])&&(this.port=s.substr(1)),i=i.substr(0,i.length-s.length)),i&&(this.hostname=i)},s.parse=urlParse,s.resolve=function urlResolve(i,s){return urlParse(i,!1,!0).resolve(s)},s.resolveObject=function urlResolveObject(i,s){return i?urlParse(i,!1,!0).resolveObject(s):s},s.format=function urlFormat(i){return\"string\"==typeof i&&(i=urlParse(i)),i instanceof Url?i.format():Url.prototype.format.call(i)},s.Url=Url},53250:(i,s,u)=>{\"use strict\";var m=u(67294);var v=\"function\"==typeof Object.is?Object.is:function h(i,s){return i===s&&(0!==i||1/i==1/s)||i!=i&&s!=s},_=m.useState,j=m.useEffect,M=m.useLayoutEffect,$=m.useDebugValue;function r(i){var s=i.getSnapshot;i=i.value;try{var u=s();return!v(i,u)}catch(i){return!0}}var W=\"undefined\"==typeof window||void 0===window.document||void 0===window.document.createElement?function t(i,s){return s()}:function q(i,s){var u=s(),m=_({inst:{value:u,getSnapshot:s}}),v=m[0].inst,W=m[1];return M((function(){v.value=u,v.getSnapshot=s,r(v)&&W({inst:v})}),[i,u,s]),j((function(){return r(v)&&W({inst:v}),i((function(){r(v)&&W({inst:v})}))}),[i]),$(u),u};s.useSyncExternalStore=void 0!==m.useSyncExternalStore?m.useSyncExternalStore:W},50139:(i,s,u)=>{\"use strict\";var m=u(67294),v=u(61688);var _=\"function\"==typeof Object.is?Object.is:function p(i,s){return i===s&&(0!==i||1/i==1/s)||i!=i&&s!=s},j=v.useSyncExternalStore,M=m.useRef,$=m.useEffect,W=m.useMemo,X=m.useDebugValue;s.useSyncExternalStoreWithSelector=function(i,s,u,m,v){var Y=M(null);if(null===Y.current){var Z={hasValue:!1,value:null};Y.current=Z}else Z=Y.current;Y=W((function(){function a(s){if(!M){if(M=!0,i=s,s=m(s),void 0!==v&&Z.hasValue){var u=Z.value;if(v(u,s))return j=u}return j=s}if(u=j,_(i,s))return u;var $=m(s);return void 0!==v&&v(u,$)?u:(i=s,j=$)}var i,j,M=!1,$=void 0===u?null:u;return[function(){return a(s())},null===$?void 0:function(){return a($())}]}),[s,u,m,v]);var ee=j(i,Y[0],Y[1]);return $((function(){Z.hasValue=!0,Z.value=ee}),[ee]),X(ee),ee}},61688:(i,s,u)=>{\"use strict\";i.exports=u(53250)},52798:(i,s,u)=>{\"use strict\";i.exports=u(50139)},94927:(i,s,u)=>{function config(i){try{if(!u.g.localStorage)return!1}catch(i){return!1}var s=u.g.localStorage[i];return null!=s&&\"true\"===String(s).toLowerCase()}i.exports=function deprecate(i,s){if(config(\"noDeprecation\"))return i;var u=!1;return function deprecated(){if(!u){if(config(\"throwDeprecation\"))throw new Error(s);config(\"traceDeprecation\")?console.trace(s):console.warn(s),u=!0}return i.apply(this,arguments)}}},3131:(i,s,u)=>{\"use strict\";var m=u(96464),v=function isClosingTag(i){return/<\\/+[^>]+>/.test(i)},_=function isSelfClosingTag(i){return/<[^>]+\\/>/.test(i)},j=function isOpeningTag(i){return function isTag(i){return/<[^>!]+>/.test(i)}(i)&&!v(i)&&!_(i)};function getType(i){return v(i)?\"ClosingTag\":j(i)?\"OpeningTag\":_(i)?\"SelfClosingTag\":\"Text\"}i.exports=function(i){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=s.indentor,v=s.textNodesOnSameLine,_=0,j=[];u=u||\"    \";var M=function lexer(i){return function splitOnTags(i){return i.split(/(<\\/?[^>]+>)/g).filter((function(i){return\"\"!==i.trim()}))}(i).map((function(i){return{value:i,type:getType(i)}}))}(i).map((function(i,s,M){var $=i.value,W=i.type;\"ClosingTag\"===W&&_--;var X=m(u,_),Y=X+$;if(\"OpeningTag\"===W&&_++,v){var Z=M[s-1],ee=M[s-2];\"ClosingTag\"===W&&\"Text\"===Z.type&&\"OpeningTag\"===ee.type&&(Y=\"\"+X+ee.value+Z.value+$,j.push(s-2,s-1))}return Y}));return j.forEach((function(i){return M[i]=null})),M.filter((function(i){return!!i})).join(\"\\n\")}},80255:i=>{var s={\"&\":\"&amp;\",'\"':\"&quot;\",\"'\":\"&apos;\",\"<\":\"&lt;\",\">\":\"&gt;\"};i.exports=function escapeForXML(i){return i&&i.replace?i.replace(/([&\"<>'])/g,(function(i,u){return s[u]})):i}},53479:(i,s,u)=>{var m=u(34155),v=u(80255),_=u(42830).Stream;function resolve(i,s,u){var m,_=function create_indent(i,s){return new Array(s||0).join(i||\"\")}(s,u=u||0),j=i;if(\"object\"==typeof i&&((j=i[m=Object.keys(i)[0]])&&j._elem))return j._elem.name=m,j._elem.icount=u,j._elem.indent=s,j._elem.indents=_,j._elem.interrupt=j,j._elem;var M,$=[],W=[];function get_attributes(i){Object.keys(i).forEach((function(s){$.push(function attribute(i,s){return i+'=\"'+v(s)+'\"'}(s,i[s]))}))}switch(typeof j){case\"object\":if(null===j)break;j._attr&&get_attributes(j._attr),j._cdata&&W.push((\"<![CDATA[\"+j._cdata).replace(/\\]\\]>/g,\"]]]]><![CDATA[>\")+\"]]>\"),j.forEach&&(M=!1,W.push(\"\"),j.forEach((function(i){\"object\"==typeof i?\"_attr\"==Object.keys(i)[0]?get_attributes(i._attr):W.push(resolve(i,s,u+1)):(W.pop(),M=!0,W.push(v(i)))})),M||W.push(\"\"));break;default:W.push(v(j))}return{name:m,interrupt:!1,attributes:$,content:W,icount:u,indents:_,indent:s}}function format(i,s,u){if(\"object\"!=typeof s)return i(!1,s);var m=s.interrupt?1:s.content.length;function proceed(){for(;s.content.length;){var v=s.content.shift();if(void 0!==v){if(interrupt(v))return;format(i,v)}}i(!1,(m>1?s.indents:\"\")+(s.name?\"</\"+s.name+\">\":\"\")+(s.indent&&!u?\"\\n\":\"\")),u&&u()}function interrupt(s){return!!s.interrupt&&(s.interrupt.append=i,s.interrupt.end=proceed,s.interrupt=!1,i(!0),!0)}if(i(!1,s.indents+(s.name?\"<\"+s.name:\"\")+(s.attributes.length?\" \"+s.attributes.join(\" \"):\"\")+(m?s.name?\">\":\"\":s.name?\"/>\":\"\")+(s.indent&&m>1?\"\\n\":\"\")),!m)return i(!1,s.indent?\"\\n\":\"\");interrupt(s)||proceed()}i.exports=function xml(i,s){\"object\"!=typeof s&&(s={indent:s});var u=s.stream?new _:null,v=\"\",j=!1,M=s.indent?!0===s.indent?\"    \":s.indent:\"\",$=!0;function delay(i){$?m.nextTick(i):i()}function append(i,s){if(void 0!==s&&(v+=s),i&&!j&&(u=u||new _,j=!0),i&&j){var m=v;delay((function(){u.emit(\"data\",m)})),v=\"\"}}function add(i,s){format(append,resolve(i,M,M?1:0),s)}function end(){if(u){var i=v;delay((function(){u.emit(\"data\",i),u.emit(\"end\"),u.readable=!1,u.emit(\"close\")}))}}return delay((function(){$=!1})),s.declaration&&function addXmlDeclaration(i){var s={version:\"1.0\",encoding:i.encoding||\"UTF-8\"};i.standalone&&(s.standalone=i.standalone),add({\"?xml\":{_attr:s}}),v=v.replace(\"/>\",\"?>\")}(s.declaration),i&&i.forEach?i.forEach((function(s,u){var m;u+1===i.length&&(m=end),add(s,m)})):add(i,end),u?(u.readable=!0,u):v},i.exports.element=i.exports.Element=function element(){var i={_elem:resolve(Array.prototype.slice.call(arguments)),push:function(i){if(!this.append)throw new Error(\"not assigned to a parent!\");var s=this,u=this._elem.indent;format(this.append,resolve(i,u,this._elem.icount+(u?1:0)),(function(){s.append(!0)}))},close:function(i){void 0!==i&&this.push(i),this.end&&this.end()}};return i}},45172:function(i,s){var u,m,v;m=[],u=function(){\"use strict\";var isNativeSmoothScrollEnabledOn=function(i){return i&&\"getComputedStyle\"in window&&\"smooth\"===window.getComputedStyle(i)[\"scroll-behavior\"]};if(\"undefined\"==typeof window||!(\"document\"in window))return{};var makeScroller=function(i,s,u){var m;s=s||999,u||0===u||(u=9);var setScrollTimeoutId=function(i){m=i},stopScroll=function(){clearTimeout(m),setScrollTimeoutId(0)},getTopWithEdgeOffset=function(s){return Math.max(0,i.getTopOf(s)-u)},scrollToY=function(u,m,v){if(stopScroll(),0===m||m&&m<0||isNativeSmoothScrollEnabledOn(i.body))i.toY(u),v&&v();else{var _=i.getY(),j=Math.max(0,u)-_,M=(new Date).getTime();m=m||Math.min(Math.abs(j),s),function loopScroll(){setScrollTimeoutId(setTimeout((function(){var s=Math.min(1,((new Date).getTime()-M)/m),u=Math.max(0,Math.floor(_+j*(s<.5?2*s*s:s*(4-2*s)-1)));i.toY(u),s<1&&i.getHeight()+u<i.body.scrollHeight?loopScroll():(setTimeout(stopScroll,99),v&&v())}),9))}()}},scrollToElem=function(i,s,u){scrollToY(getTopWithEdgeOffset(i),s,u)},scrollIntoView=function(s,m,v){var _=s.getBoundingClientRect().height,j=i.getTopOf(s)+_,M=i.getHeight(),$=i.getY(),W=$+M;getTopWithEdgeOffset(s)<$||_+u>M?scrollToElem(s,m,v):j+u>W?scrollToY(j-M+u,m,v):v&&v()},scrollToCenterOf=function(s,u,m,v){scrollToY(Math.max(0,i.getTopOf(s)-i.getHeight()/2+(m||s.getBoundingClientRect().height/2)),u,v)};return{setup:function(i,m){return(0===i||i)&&(s=i),(0===m||m)&&(u=m),{defaultDuration:s,edgeOffset:u}},to:scrollToElem,toY:scrollToY,intoView:scrollIntoView,center:scrollToCenterOf,stop:stopScroll,moving:function(){return!!m},getY:i.getY,getTopOf:i.getTopOf}},i=document.documentElement,getDocY=function(){return window.scrollY||i.scrollTop},s=makeScroller({body:document.scrollingElement||document.body,toY:function(i){window.scrollTo(0,i)},getY:getDocY,getHeight:function(){return window.innerHeight||i.clientHeight},getTopOf:function(s){return s.getBoundingClientRect().top+getDocY()-i.offsetTop}});if(s.createScroller=function(s,u,m){return makeScroller({body:s,toY:function(i){s.scrollTop=i},getY:function(){return s.scrollTop},getHeight:function(){return Math.min(s.clientHeight,window.innerHeight||i.clientHeight)},getTopOf:function(i){return i.offsetTop}},u,m)},\"addEventListener\"in window&&!window.noZensmooth&&!isNativeSmoothScrollEnabledOn(document.body)){var u=\"history\"in window&&\"pushState\"in history,m=u&&\"scrollRestoration\"in history;m&&(history.scrollRestoration=\"auto\"),window.addEventListener(\"load\",(function(){m&&(setTimeout((function(){history.scrollRestoration=\"manual\"}),9),window.addEventListener(\"popstate\",(function(i){i.state&&\"zenscrollY\"in i.state&&s.toY(i.state.zenscrollY)}),!1)),window.location.hash&&setTimeout((function(){var i=s.setup().edgeOffset;if(i){var u=document.getElementById(window.location.href.split(\"#\")[1]);if(u){var m=Math.max(0,s.getTopOf(u)-i),v=s.getY()-m;0<=v&&v<9&&window.scrollTo(0,m)}}}),9)}),!1);var v=new RegExp(\"(^|\\\\s)noZensmooth(\\\\s|$)\");window.addEventListener(\"click\",(function(i){for(var _=i.target;_&&\"A\"!==_.tagName;)_=_.parentNode;if(!(!_||1!==i.which||i.shiftKey||i.metaKey||i.ctrlKey||i.altKey)){if(m){var j=history.state&&\"object\"==typeof history.state?history.state:{};j.zenscrollY=s.getY();try{history.replaceState(j,\"\")}catch(i){}}var M=_.getAttribute(\"href\")||\"\";if(0===M.indexOf(\"#\")&&!v.test(_.className)){var $=0,W=document.getElementById(M.substring(1));if(\"#\"!==M){if(!W)return;$=s.getTopOf(W)}i.preventDefault();var onDone=function(){window.location=M},X=s.setup().edgeOffset;X&&($=Math.max(0,$-X),u&&(onDone=function(){history.pushState({},\"\",M)})),s.toY($,null,onDone)}}}),!1)}return s}(),void 0===(v=\"function\"==typeof u?u.apply(s,m):u)||(i.exports=v)},24654:()=>{},52361:()=>{},94616:()=>{},69689:i=>{i.exports=function _classApplyDescriptorGet(i,s){return s.get?s.get.call(i):s.value},i.exports.__esModule=!0,i.exports.default=i.exports},66412:i=>{i.exports=function _classExtractFieldDescriptor(i,s,u){if(!s.has(i))throw new TypeError(\"attempted to \"+u+\" private field on non-instance\");return s.get(i)},i.exports.__esModule=!0,i.exports.default=i.exports},47667:(i,s,u)=>{var m=u(69689),v=u(66412);i.exports=function _classPrivateFieldGet(i,s){var u=v(i,s,\"get\");return m(i,u)},i.exports.__esModule=!0,i.exports.default=i.exports},61125:(i,s,u)=>{var m=u(73685),v=u(57696);i.exports=function _defineProperty(i,s,u){return(s=v(s))in i?m(i,s,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[s]=u,i},i.exports.__esModule=!0,i.exports.default=i.exports},23101:(i,s,u)=>{var m=u(60269),v=u(14122);function _extends(){var s;return i.exports=_extends=m?v(s=m).call(s):function(i){for(var s=1;s<arguments.length;s++){var u=arguments[s];for(var m in u)Object.prototype.hasOwnProperty.call(u,m)&&(i[m]=u[m])}return i},i.exports.__esModule=!0,i.exports.default=i.exports,_extends.apply(this,arguments)}i.exports=_extends,i.exports.__esModule=!0,i.exports.default=i.exports},58826:(i,s,u)=>{var m=u(93799),v=u(84710),_=u(44442),j=u(27533),M=u(1449),$=u(57152),W=u(39057),X=u(70573),Y=u(73685),Z=u(61125);function ownKeys(i,s){var u=m(i);if(v){var $=v(i);s&&($=_($).call($,(function(s){return j(i,s).enumerable}))),M(u).apply(u,$)}return u}i.exports=function _objectSpread2(i){for(var s=1;s<arguments.length;s++){var u,m,v=null!=arguments[s]?arguments[s]:{};s%2?$(u=ownKeys(Object(v),!0)).call(u,(function(s){Z(i,s,v[s])})):W?X(i,W(v)):$(m=ownKeys(Object(v))).call(m,(function(s){Y(i,s,j(v,s))}))}return i},i.exports.__esModule=!0,i.exports.default=i.exports},88436:(i,s,u)=>{var m=u(84710),v=u(69447),_=u(80300);i.exports=function _objectWithoutProperties(i,s){if(null==i)return{};var u,j,M=_(i,s);if(m){var $=m(i);for(j=0;j<$.length;j++)u=$[j],v(s).call(s,u)>=0||Object.prototype.propertyIsEnumerable.call(i,u)&&(M[u]=i[u])}return M},i.exports.__esModule=!0,i.exports.default=i.exports},80300:(i,s,u)=>{var m=u(93799),v=u(69447);i.exports=function _objectWithoutPropertiesLoose(i,s){if(null==i)return{};var u,_,j={},M=m(i);for(_=0;_<M.length;_++)u=M[_],v(s).call(s,u)>=0||(j[u]=i[u]);return j},i.exports.__esModule=!0,i.exports.default=i.exports},18504:(i,s,u)=>{var m=u(71384),v=u(20474).default;i.exports=function _toPrimitive(i,s){if(\"object\"!==v(i)||null===i)return i;var u=i[m];if(void 0!==u){var _=u.call(i,s||\"default\");if(\"object\"!==v(_))return _;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===s?String:Number)(i)},i.exports.__esModule=!0,i.exports.default=i.exports},57696:(i,s,u)=>{var m=u(20474).default,v=u(18504);i.exports=function _toPropertyKey(i){var s=v(i,\"string\");return\"symbol\"===m(s)?s:String(s)},i.exports.__esModule=!0,i.exports.default=i.exports},20474:(i,s,u)=>{var m=u(86600),v=u(9759);function _typeof(s){return i.exports=_typeof=\"function\"==typeof m&&\"symbol\"==typeof v?function(i){return typeof i}:function(i){return i&&\"function\"==typeof m&&i.constructor===m&&i!==m.prototype?\"symbol\":typeof i},i.exports.__esModule=!0,i.exports.default=i.exports,_typeof(s)}i.exports=_typeof,i.exports.__esModule=!0,i.exports.default=i.exports}},s={};function __webpack_require__(u){var m=s[u];if(void 0!==m)return m.exports;var v=s[u]={id:u,loaded:!1,exports:{}};return i[u].call(v.exports,v,v.exports,__webpack_require__),v.loaded=!0,v.exports}__webpack_require__.n=i=>{var s=i&&i.__esModule?()=>i.default:()=>i;return __webpack_require__.d(s,{a:s}),s},__webpack_require__.d=(i,s)=>{for(var u in s)__webpack_require__.o(s,u)&&!__webpack_require__.o(i,u)&&Object.defineProperty(i,u,{enumerable:!0,get:s[u]})},__webpack_require__.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(i){if(\"object\"==typeof window)return window}}(),__webpack_require__.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),__webpack_require__.r=i=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(i,\"__esModule\",{value:!0})},__webpack_require__.nmd=i=>(i.paths=[],i.children||(i.children=[]),i);var u={};return(()=>{\"use strict\";__webpack_require__.d(u,{default:()=>TT});var i={};__webpack_require__.r(i),__webpack_require__.d(i,{CLEAR:()=>pt,CLEAR_BY:()=>ht,NEW_AUTH_ERR:()=>ut,NEW_SPEC_ERR:()=>ct,NEW_SPEC_ERR_BATCH:()=>lt,NEW_THROWN_ERR:()=>at,NEW_THROWN_ERR_BATCH:()=>st,clear:()=>clear,clearBy:()=>clearBy,newAuthErr:()=>newAuthErr,newSpecErr:()=>newSpecErr,newSpecErrBatch:()=>newSpecErrBatch,newThrownErr:()=>newThrownErr,newThrownErrBatch:()=>newThrownErrBatch});var s={};__webpack_require__.r(s),__webpack_require__.d(s,{AUTHORIZE:()=>qt,AUTHORIZE_OAUTH2:()=>zt,CONFIGURE_AUTH:()=>Wt,LOGOUT:()=>$t,PRE_AUTHORIZE_OAUTH2:()=>Ut,RESTORE_AUTHORIZATION:()=>Kt,SHOW_AUTH_POPUP:()=>Ft,VALIDATE:()=>Vt,authPopup:()=>authPopup,authorize:()=>authorize,authorizeAccessCodeWithBasicAuthentication:()=>authorizeAccessCodeWithBasicAuthentication,authorizeAccessCodeWithFormParams:()=>authorizeAccessCodeWithFormParams,authorizeApplication:()=>authorizeApplication,authorizeOauth2:()=>authorizeOauth2,authorizeOauth2WithPersistOption:()=>authorizeOauth2WithPersistOption,authorizePassword:()=>authorizePassword,authorizeRequest:()=>authorizeRequest,authorizeWithPersistOption:()=>authorizeWithPersistOption,configureAuth:()=>configureAuth,logout:()=>logout,logoutWithPersistOption:()=>logoutWithPersistOption,persistAuthorizationIfNeeded:()=>persistAuthorizationIfNeeded,preAuthorizeImplicit:()=>preAuthorizeImplicit,restoreAuthorization:()=>restoreAuthorization,showDefinitions:()=>showDefinitions});var m={};__webpack_require__.r(m),__webpack_require__.d(m,{authorized:()=>Zt,definitionsForRequirements:()=>definitionsForRequirements,definitionsToAuthorize:()=>Qt,getConfigs:()=>er,getDefinitionsByNames:()=>getDefinitionsByNames,isAuthorized:()=>isAuthorized,shownDefinitions:()=>Yt});var v={};__webpack_require__.r(v),__webpack_require__.d(v,{TOGGLE_CONFIGS:()=>uo,UPDATE_CONFIGS:()=>lo,loaded:()=>actions_loaded,toggle:()=>toggle,update:()=>actions_update});var _={};__webpack_require__.r(_),__webpack_require__.d(_,{downloadConfig:()=>downloadConfig,getConfigByUrl:()=>getConfigByUrl});var j={};__webpack_require__.r(j),__webpack_require__.d(j,{get:()=>get});var M={};__webpack_require__.r(M),__webpack_require__.d(M,{transform:()=>transform});var $={};__webpack_require__.r($),__webpack_require__.d($,{transform:()=>parameter_oneof_transform});var W={};__webpack_require__.r(W),__webpack_require__.d(W,{allErrors:()=>jo,lastError:()=>Po});var X={};__webpack_require__.r(X),__webpack_require__.d(X,{SHOW:()=>Qo,UPDATE_FILTER:()=>Xo,UPDATE_LAYOUT:()=>Go,UPDATE_MODE:()=>Yo,changeMode:()=>changeMode,show:()=>actions_show,updateFilter:()=>updateFilter,updateLayout:()=>updateLayout});var Y={};__webpack_require__.r(Y),__webpack_require__.d(Y,{current:()=>current,currentFilter:()=>currentFilter,isShown:()=>isShown,showSummary:()=>ei,whatMode:()=>whatMode});var Z={};__webpack_require__.r(Z),__webpack_require__.d(Z,{taggedOperations:()=>taggedOperations});var ee={};__webpack_require__.r(ee),__webpack_require__.d(ee,{requestSnippetGenerator_curl_bash:()=>requestSnippetGenerator_curl_bash,requestSnippetGenerator_curl_cmd:()=>requestSnippetGenerator_curl_cmd,requestSnippetGenerator_curl_powershell:()=>requestSnippetGenerator_curl_powershell});var ie={};__webpack_require__.r(ie),__webpack_require__.d(ie,{getActiveLanguage:()=>Ei,getDefaultExpanded:()=>Oi,getGenerators:()=>_i,getSnippetGenerators:()=>getSnippetGenerators});var ae={};__webpack_require__.r(ae),__webpack_require__.d(ae,{allowTryItOutFor:()=>allowTryItOutFor,basePath:()=>Es,canExecuteScheme:()=>canExecuteScheme,consumes:()=>gs,consumesOptionsFor:()=>consumesOptionsFor,contentTypeValues:()=>contentTypeValues,currentProducesFor:()=>currentProducesFor,definitions:()=>ws,externalDocs:()=>ps,findDefinition:()=>findDefinition,getOAS3RequiredRequestBodyContentType:()=>getOAS3RequiredRequestBodyContentType,getParameter:()=>getParameter,hasHost:()=>Is,host:()=>Ss,info:()=>us,isMediaTypeSchemaPropertiesEqual:()=>isMediaTypeSchemaPropertiesEqual,isOAS3:()=>ls,lastError:()=>es,mutatedRequestFor:()=>mutatedRequestFor,mutatedRequests:()=>Ps,operationScheme:()=>operationScheme,operationWithMeta:()=>operationWithMeta,operations:()=>ys,operationsWithRootInherited:()=>Os,operationsWithTags:()=>As,parameterInclusionSettingFor:()=>parameterInclusionSettingFor,parameterValues:()=>parameterValues,parameterWithMeta:()=>parameterWithMeta,parameterWithMetaByIdentity:()=>parameterWithMetaByIdentity,parametersIncludeIn:()=>parametersIncludeIn,parametersIncludeType:()=>parametersIncludeType,paths:()=>fs,produces:()=>vs,producesOptionsFor:()=>producesOptionsFor,requestFor:()=>requestFor,requests:()=>js,responseFor:()=>responseFor,responses:()=>Cs,schemes:()=>xs,security:()=>bs,securityDefinitions:()=>_s,semver:()=>ds,spec:()=>spec,specJS:()=>as,specJson:()=>os,specJsonWithResolvedSubtrees:()=>cs,specResolved:()=>ss,specResolvedSubtree:()=>specResolvedSubtree,specSource:()=>ns,specStr:()=>rs,tagDetails:()=>tagDetails,taggedOperations:()=>selectors_taggedOperations,tags:()=>ks,url:()=>ts,validOperationMethods:()=>ms,validateBeforeExecute:()=>validateBeforeExecute,validationErrors:()=>validationErrors,version:()=>hs});var ce={};__webpack_require__.r(ce),__webpack_require__.d(ce,{CLEAR_REQUEST:()=>ec,CLEAR_RESPONSE:()=>Zs,CLEAR_VALIDATE_PARAMS:()=>nc,LOG_REQUEST:()=>Qs,SET_MUTATED_REQUEST:()=>Ys,SET_REQUEST:()=>Xs,SET_RESPONSE:()=>Gs,SET_SCHEME:()=>pc,UPDATE_EMPTY_PARAM_INCLUSION:()=>Hs,UPDATE_JSON:()=>Ws,UPDATE_OPERATION_META_VALUE:()=>oc,UPDATE_PARAM:()=>Ks,UPDATE_RESOLVED:()=>ic,UPDATE_RESOLVED_SUBTREE:()=>lc,UPDATE_SPEC:()=>zs,UPDATE_URL:()=>Vs,VALIDATE_PARAMS:()=>Js,changeConsumesValue:()=>changeConsumesValue,changeParam:()=>changeParam,changeParamByIdentity:()=>changeParamByIdentity,changeProducesValue:()=>changeProducesValue,clearRequest:()=>clearRequest,clearResponse:()=>clearResponse,clearValidateParams:()=>clearValidateParams,execute:()=>actions_execute,executeRequest:()=>executeRequest,invalidateResolvedSubtreeCache:()=>invalidateResolvedSubtreeCache,logRequest:()=>logRequest,parseToJson:()=>parseToJson,requestResolvedSubtree:()=>requestResolvedSubtree,resolveSpec:()=>resolveSpec,setMutatedRequest:()=>setMutatedRequest,setRequest:()=>setRequest,setResponse:()=>setResponse,setScheme:()=>setScheme,updateEmptyParamInclusion:()=>updateEmptyParamInclusion,updateJsonSpec:()=>updateJsonSpec,updateResolved:()=>updateResolved,updateResolvedSubtree:()=>updateResolvedSubtree,updateSpec:()=>updateSpec,updateUrl:()=>updateUrl,validateParams:()=>validateParams});var le={};__webpack_require__.r(le),__webpack_require__.d(le,{executeRequest:()=>wrap_actions_executeRequest,updateJsonSpec:()=>wrap_actions_updateJsonSpec,updateSpec:()=>wrap_actions_updateSpec,validateParams:()=>wrap_actions_validateParams});var pe={};__webpack_require__.r(pe),__webpack_require__.d(pe,{JsonPatchError:()=>kc,_areEquals:()=>_areEquals,applyOperation:()=>applyOperation,applyPatch:()=>applyPatch,applyReducer:()=>applyReducer,deepClone:()=>jc,getValueByPointer:()=>getValueByPointer,validate:()=>validate,validator:()=>validator});var de={};__webpack_require__.r(de),__webpack_require__.d(de,{compare:()=>compare,generate:()=>generate,observe:()=>observe,unobserve:()=>unobserve});var fe={};__webpack_require__.r(fe),__webpack_require__.d(fe,{hasElementSourceMap:()=>hasElementSourceMap,includesClasses:()=>includesClasses,includesSymbols:()=>includesSymbols,isAnnotationElement:()=>Td,isArrayElement:()=>Ad,isBooleanElement:()=>Od,isCommentElement:()=>Md,isElement:()=>wd,isLinkElement:()=>Id,isMemberElement:()=>Cd,isNullElement:()=>xd,isNumberElement:()=>Sd,isObjectElement:()=>kd,isParseResultElement:()=>Rd,isPrimitiveElement:()=>isPrimitiveElement,isRefElement:()=>Nd,isSourceMapElement:()=>Dd,isStringElement:()=>Ed});var ye={};__webpack_require__.r(ye),__webpack_require__.d(ye,{isJSONReferenceElement:()=>Oy,isJSONSchemaElement:()=>xy,isLinkDescriptionElement:()=>Ay,isMediaElement:()=>ky});var be={};__webpack_require__.r(be),__webpack_require__.d(be,{isOpenApi3_0LikeElement:()=>isOpenApi3_0LikeElement,isOpenApiExtension:()=>isOpenApiExtension,isParameterLikeElement:()=>isParameterLikeElement,isReferenceLikeElement:()=>isReferenceLikeElement,isRequestBodyLikeElement:()=>isRequestBodyLikeElement,isResponseLikeElement:()=>isResponseLikeElement,isServerLikeElement:()=>$y,isTagLikeElement:()=>Uy});var _e={};__webpack_require__.r(_e),__webpack_require__.d(_e,{isBooleanJsonSchemaElement:()=>isBooleanJsonSchemaElement,isCallbackElement:()=>pv,isComponentsElement:()=>hv,isContactElement:()=>dv,isExampleElement:()=>fv,isExternalDocumentationElement:()=>mv,isHeaderElement:()=>yv,isInfoElement:()=>gv,isLicenseElement:()=>vv,isLinkElement:()=>bv,isLinkElementExternal:()=>isLinkElementExternal,isMediaTypeElement:()=>Mv,isOpenApi3_0Element:()=>wv,isOpenapiElement:()=>_v,isOperationElement:()=>Ev,isParameterElement:()=>Sv,isPathItemElement:()=>xv,isPathItemElementExternal:()=>isPathItemElementExternal,isPathsElement:()=>Ov,isReferenceElement:()=>kv,isReferenceElementExternal:()=>isReferenceElementExternal,isRequestBodyElement:()=>Av,isResponseElement:()=>Cv,isResponsesElement:()=>jv,isSchemaElement:()=>Pv,isSecurityRequirementElement:()=>Iv,isServerElement:()=>Nv,isServerVariableElement:()=>Tv});var we={};__webpack_require__.r(we),__webpack_require__.d(we,{isBooleanJsonSchemaElement:()=>predicates_isBooleanJsonSchemaElement,isCallbackElement:()=>XS,isComponentsElement:()=>YS,isContactElement:()=>QS,isExampleElement:()=>ZS,isExternalDocumentationElement:()=>ex,isHeaderElement:()=>tx,isInfoElement:()=>rx,isJsonSchemaDialectElement:()=>nx,isLicenseElement:()=>ox,isLinkElement:()=>ix,isLinkElementExternal:()=>predicates_isLinkElementExternal,isMediaTypeElement:()=>_x,isOpenApi3_1Element:()=>sx,isOpenapiElement:()=>ax,isOperationElement:()=>cx,isParameterElement:()=>lx,isPathItemElement:()=>ux,isPathItemElementExternal:()=>predicates_isPathItemElementExternal,isPathsElement:()=>px,isReferenceElement:()=>hx,isReferenceElementExternal:()=>predicates_isReferenceElementExternal,isRequestBodyElement:()=>dx,isResponseElement:()=>fx,isResponsesElement:()=>mx,isSchemaElement:()=>yx,isSecurityRequirementElement:()=>gx,isServerElement:()=>vx,isServerVariableElement:()=>bx});var Se={};__webpack_require__.r(Se),__webpack_require__.d(Se,{cookie:()=>parameter_builders_cookie,header:()=>parameter_builders_header,path:()=>parameter_builders_path,query:()=>query});var xe={};__webpack_require__.r(xe),__webpack_require__.d(xe,{Button:()=>Button,Col:()=>Col,Collapse:()=>Collapse,Container:()=>Container,Input:()=>Input,Link:()=>layout_utils_Link,Row:()=>Row,Select:()=>Select,TextArea:()=>TextArea});var Pe={};__webpack_require__.r(Pe),__webpack_require__.d(Pe,{JsonSchemaArrayItemFile:()=>JsonSchemaArrayItemFile,JsonSchemaArrayItemText:()=>JsonSchemaArrayItemText,JsonSchemaForm:()=>JsonSchemaForm,JsonSchema_array:()=>JsonSchema_array,JsonSchema_boolean:()=>JsonSchema_boolean,JsonSchema_object:()=>JsonSchema_object,JsonSchema_string:()=>JsonSchema_string});var Ie={};__webpack_require__.r(Ie),__webpack_require__.d(Ie,{basePath:()=>bI,consumes:()=>_I,definitions:()=>mI,hasHost:()=>yI,host:()=>vI,produces:()=>wI,schemes:()=>EI,securityDefinitions:()=>gI,validOperationMethods:()=>wrap_selectors_validOperationMethods});var Te={};__webpack_require__.r(Te),__webpack_require__.d(Te,{definitionsToAuthorize:()=>SI});var Re={};__webpack_require__.r(Re),__webpack_require__.d(Re,{callbacksOperations:()=>kI,isOAS3:()=>selectors_isOAS3,isOAS30:()=>selectors_isOAS30,isSwagger2:()=>selectors_isSwagger2,servers:()=>OI});var qe={};__webpack_require__.r(qe),__webpack_require__.d(qe,{CLEAR_REQUEST_BODY_VALIDATE_ERROR:()=>GI,CLEAR_REQUEST_BODY_VALUE:()=>XI,SET_REQUEST_BODY_VALIDATE_ERROR:()=>JI,UPDATE_ACTIVE_EXAMPLES_MEMBER:()=>VI,UPDATE_REQUEST_BODY_INCLUSION:()=>zI,UPDATE_REQUEST_BODY_VALUE:()=>$I,UPDATE_REQUEST_BODY_VALUE_RETAIN_FLAG:()=>UI,UPDATE_REQUEST_CONTENT_TYPE:()=>WI,UPDATE_RESPONSE_CONTENT_TYPE:()=>KI,UPDATE_SELECTED_SERVER:()=>qI,UPDATE_SERVER_VARIABLE_VALUE:()=>HI,clearRequestBodyValidateError:()=>clearRequestBodyValidateError,clearRequestBodyValue:()=>clearRequestBodyValue,initRequestBodyValidateError:()=>initRequestBodyValidateError,setActiveExamplesMember:()=>setActiveExamplesMember,setRequestBodyInclusion:()=>setRequestBodyInclusion,setRequestBodyValidateError:()=>setRequestBodyValidateError,setRequestBodyValue:()=>setRequestBodyValue,setRequestContentType:()=>setRequestContentType,setResponseContentType:()=>setResponseContentType,setRetainRequestBodyValueFlag:()=>setRetainRequestBodyValueFlag,setSelectedServer:()=>setSelectedServer,setServerVariableValue:()=>setServerVariableValue});var ze={};__webpack_require__.r(ze),__webpack_require__.d(ze,{activeExamplesMember:()=>nN,hasUserEditedBody:()=>eN,requestBodyErrors:()=>rN,requestBodyInclusionSetting:()=>tN,requestBodyValue:()=>QI,requestContentType:()=>oN,responseContentType:()=>iN,selectDefaultRequestBodyValue:()=>selectDefaultRequestBodyValue,selectedServer:()=>YI,serverEffectiveValue:()=>cN,serverVariableValue:()=>aN,serverVariables:()=>sN,shouldRetainRequestBodyValue:()=>ZI,validOperationMethods:()=>uN,validateBeforeExecute:()=>lN,validateShallowRequired:()=>validateShallowRequired});var Ve=__webpack_require__(27698),We=__webpack_require__.n(Ve),He=__webpack_require__(67294);function _typeof(i){return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(i){return typeof i}:function(i){return i&&\"function\"==typeof Symbol&&i.constructor===Symbol&&i!==Symbol.prototype?\"symbol\":typeof i},_typeof(i)}function _toPropertyKey(i){var s=function _toPrimitive(i,s){if(\"object\"!==_typeof(i)||null===i)return i;var u=i[Symbol.toPrimitive];if(void 0!==u){var m=u.call(i,s||\"default\");if(\"object\"!==_typeof(m))return m;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===s?String:Number)(i)}(i,\"string\");return\"symbol\"===_typeof(s)?s:String(s)}function _defineProperty(i,s,u){return(s=_toPropertyKey(s))in i?Object.defineProperty(i,s,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[s]=u,i}function ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function _objectSpread2(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?ownKeys(Object(u),!0).forEach((function(s){_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}function formatProdErrorMessage(i){return\"Minified Redux error #\"+i+\"; visit https://redux.js.org/Errors?code=\"+i+\" for the full message or use the non-minified dev environment for full errors. \"}var Xe=\"function\"==typeof Symbol&&Symbol.observable||\"@@observable\",Ye=function randomString(){return Math.random().toString(36).substring(7).split(\"\").join(\".\")},Qe={INIT:\"@@redux/INIT\"+Ye(),REPLACE:\"@@redux/REPLACE\"+Ye(),PROBE_UNKNOWN_ACTION:function PROBE_UNKNOWN_ACTION(){return\"@@redux/PROBE_UNKNOWN_ACTION\"+Ye()}};function isPlainObject(i){if(\"object\"!=typeof i||null===i)return!1;for(var s=i;null!==Object.getPrototypeOf(s);)s=Object.getPrototypeOf(s);return Object.getPrototypeOf(i)===s}function createStore(i,s,u){var m;if(\"function\"==typeof s&&\"function\"==typeof u||\"function\"==typeof u&&\"function\"==typeof arguments[3])throw new Error(formatProdErrorMessage(0));if(\"function\"==typeof s&&void 0===u&&(u=s,s=void 0),void 0!==u){if(\"function\"!=typeof u)throw new Error(formatProdErrorMessage(1));return u(createStore)(i,s)}if(\"function\"!=typeof i)throw new Error(formatProdErrorMessage(2));var v=i,_=s,j=[],M=j,$=!1;function ensureCanMutateNextListeners(){M===j&&(M=j.slice())}function getState(){if($)throw new Error(formatProdErrorMessage(3));return _}function subscribe(i){if(\"function\"!=typeof i)throw new Error(formatProdErrorMessage(4));if($)throw new Error(formatProdErrorMessage(5));var s=!0;return ensureCanMutateNextListeners(),M.push(i),function unsubscribe(){if(s){if($)throw new Error(formatProdErrorMessage(6));s=!1,ensureCanMutateNextListeners();var u=M.indexOf(i);M.splice(u,1),j=null}}}function dispatch(i){if(!isPlainObject(i))throw new Error(formatProdErrorMessage(7));if(void 0===i.type)throw new Error(formatProdErrorMessage(8));if($)throw new Error(formatProdErrorMessage(9));try{$=!0,_=v(_,i)}finally{$=!1}for(var s=j=M,u=0;u<s.length;u++){(0,s[u])()}return i}return dispatch({type:Qe.INIT}),(m={dispatch,subscribe,getState,replaceReducer:function replaceReducer(i){if(\"function\"!=typeof i)throw new Error(formatProdErrorMessage(10));v=i,dispatch({type:Qe.REPLACE})}})[Xe]=function observable(){var i,s=subscribe;return(i={subscribe:function subscribe(i){if(\"object\"!=typeof i||null===i)throw new Error(formatProdErrorMessage(11));function observeState(){i.next&&i.next(getState())}return observeState(),{unsubscribe:s(observeState)}}})[Xe]=function(){return this},i},m}function bindActionCreator(i,s){return function(){return s(i.apply(this,arguments))}}function redux_compose(){for(var i=arguments.length,s=new Array(i),u=0;u<i;u++)s[u]=arguments[u];return 0===s.length?function(i){return i}:1===s.length?s[0]:s.reduce((function(i,s){return function(){return i(s.apply(void 0,arguments))}}))}var et=__webpack_require__(43393),tt=__webpack_require__.n(et),rt=__webpack_require__(72739),nt=__webpack_require__(7710),ot=__webpack_require__(82492),it=__webpack_require__.n(ot);const at=\"err_new_thrown_err\",st=\"err_new_thrown_err_batch\",ct=\"err_new_spec_err\",lt=\"err_new_spec_err_batch\",ut=\"err_new_auth_err\",pt=\"err_clear\",ht=\"err_clear_by\";function newThrownErr(i){return{type:at,payload:(0,nt.serializeError)(i)}}function newThrownErrBatch(i){return{type:st,payload:i}}function newSpecErr(i){return{type:ct,payload:i}}function newSpecErrBatch(i){return{type:lt,payload:i}}function newAuthErr(i){return{type:ut,payload:i}}function clear(){return{type:pt,payload:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}}}function clearBy(){return{type:ht,payload:arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>!0}}const dt=function makeWindow(){var i={location:{},history:{},open:()=>{},close:()=>{},File:function(){},FormData:function(){}};if(\"undefined\"==typeof window)return i;try{i=window;for(var s of[\"File\",\"Blob\",\"FormData\"])s in window&&(i[s]=window[s])}catch(i){console.error(i)}return i}();var mt=__webpack_require__(17967),yt=(__webpack_require__(68929),__webpack_require__(11700),__webpack_require__(88306)),gt=__webpack_require__.n(yt),vt=__webpack_require__(13311),bt=__webpack_require__.n(vt),_t=__webpack_require__(59704),wt=__webpack_require__.n(_t),Et=__webpack_require__(77813),St=__webpack_require__.n(Et),xt=__webpack_require__(23560),Ot=__webpack_require__.n(xt),kt=__webpack_require__(8269),At=__webpack_require__.n(kt),Ct=__webpack_require__(61798),jt=__webpack_require__.n(Ct),Pt=__webpack_require__(89072),It=__webpack_require__.n(Pt);const Nt=tt().Set.of(\"type\",\"format\",\"items\",\"default\",\"maximum\",\"exclusiveMaximum\",\"minimum\",\"exclusiveMinimum\",\"maxLength\",\"minLength\",\"pattern\",\"maxItems\",\"minItems\",\"uniqueItems\",\"enum\",\"multipleOf\");function getParameterSchema(i){let{isOAS3:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!tt().Map.isMap(i))return{schema:tt().Map(),parameterContentMediaType:null};if(!s)return\"body\"===i.get(\"in\")?{schema:i.get(\"schema\",tt().Map()),parameterContentMediaType:null}:{schema:i.filter(((i,s)=>Nt.includes(s))),parameterContentMediaType:null};if(i.get(\"content\")){const s=i.get(\"content\",tt().Map({})).keySeq().first();return{schema:i.getIn([\"content\",s,\"schema\"],tt().Map()),parameterContentMediaType:s}}return{schema:i.get(\"schema\")?i.get(\"schema\",tt().Map()):tt().Map(),parameterContentMediaType:null}}var Tt=__webpack_require__(48764).Buffer;const Mt=\"default\",isImmutable=i=>tt().Iterable.isIterable(i);function objectify(i){return isObject(i)?isImmutable(i)?i.toJS():i:{}}function fromJSOrdered(i){if(isImmutable(i))return i;if(i instanceof dt.File)return i;if(!isObject(i))return i;if(Array.isArray(i))return tt().Seq(i).map(fromJSOrdered).toList();if(Ot()(i.entries)){const s=function createObjWithHashedKeys(i){if(!Ot()(i.entries))return i;const s={},u=\"_**[]\",m={};for(let v of i.entries())if(s[v[0]]||m[v[0]]&&m[v[0]].containsMultiple){if(!m[v[0]]){m[v[0]]={containsMultiple:!0,length:1},s[`${v[0]}${u}${m[v[0]].length}`]=s[v[0]],delete s[v[0]]}m[v[0]].length+=1,s[`${v[0]}${u}${m[v[0]].length}`]=v[1]}else s[v[0]]=v[1];return s}(i);return tt().OrderedMap(s).map(fromJSOrdered)}return tt().OrderedMap(i).map(fromJSOrdered)}function normalizeArray(i){return Array.isArray(i)?i:[i]}function isFn(i){return\"function\"==typeof i}function isObject(i){return!!i&&\"object\"==typeof i}function isFunc(i){return\"function\"==typeof i}function isArray(i){return Array.isArray(i)}const Rt=gt();function objMap(i,s){return Object.keys(i).reduce(((u,m)=>(u[m]=s(i[m],m),u)),{})}function objReduce(i,s){return Object.keys(i).reduce(((u,m)=>{let v=s(i[m],m);return v&&\"object\"==typeof v&&Object.assign(u,v),u}),{})}function systemThunkMiddleware(i){return s=>{let{dispatch:u,getState:m}=s;return s=>u=>\"function\"==typeof u?u(i()):s(u)}}function validateValueBySchema(i,s,u,m,v){if(!s)return[];let _=[],j=s.get(\"nullable\"),M=s.get(\"required\"),$=s.get(\"maximum\"),W=s.get(\"minimum\"),X=s.get(\"type\"),Y=s.get(\"format\"),Z=s.get(\"maxLength\"),ee=s.get(\"minLength\"),ie=s.get(\"uniqueItems\"),ae=s.get(\"maxItems\"),ce=s.get(\"minItems\"),le=s.get(\"pattern\");const pe=u||!0===M,de=null!=i;if(j&&null===i||!X||!(pe||de&&\"array\"===X||!(!pe&&!de)))return[];let fe=\"string\"===X&&i,ye=\"array\"===X&&Array.isArray(i)&&i.length,be=\"array\"===X&&tt().List.isList(i)&&i.count();const _e=[fe,ye,be,\"array\"===X&&\"string\"==typeof i&&i,\"file\"===X&&i instanceof dt.File,\"boolean\"===X&&(i||!1===i),\"number\"===X&&(i||0===i),\"integer\"===X&&(i||0===i),\"object\"===X&&\"object\"==typeof i&&null!==i,\"object\"===X&&\"string\"==typeof i&&i].some((i=>!!i));if(pe&&!_e&&!m)return _.push(\"Required field is not provided\"),_;if(\"object\"===X&&(null===v||\"application/json\"===v)){let u=i;if(\"string\"==typeof i)try{u=JSON.parse(i)}catch(i){return _.push(\"Parameter string value must be valid JSON\"),_}s&&s.has(\"required\")&&isFunc(M.isList)&&M.isList()&&M.forEach((i=>{void 0===u[i]&&_.push({propKey:i,error:\"Required property not found\"})})),s&&s.has(\"properties\")&&s.get(\"properties\").forEach(((i,s)=>{const j=validateValueBySchema(u[s],i,!1,m,v);_.push(...j.map((i=>({propKey:s,error:i}))))}))}if(le){let s=((i,s)=>{if(!new RegExp(s).test(i))return\"Value must follow pattern \"+s})(i,le);s&&_.push(s)}if(ce&&\"array\"===X){let s=((i,s)=>{if(!i&&s>=1||i&&i.length<s)return`Array must contain at least ${s} item${1===s?\"\":\"s\"}`})(i,ce);s&&_.push(s)}if(ae&&\"array\"===X){let s=((i,s)=>{if(i&&i.length>s)return`Array must not contain more then ${s} item${1===s?\"\":\"s\"}`})(i,ae);s&&_.push({needRemove:!0,error:s})}if(ie&&\"array\"===X){let s=((i,s)=>{if(i&&(\"true\"===s||!0===s)){const s=(0,et.fromJS)(i),u=s.toSet();if(i.length>u.size){let i=(0,et.Set)();if(s.forEach(((u,m)=>{s.filter((i=>isFunc(i.equals)?i.equals(u):i===u)).size>1&&(i=i.add(m))})),0!==i.size)return i.map((i=>({index:i,error:\"No duplicates allowed.\"}))).toArray()}}})(i,ie);s&&_.push(...s)}if(Z||0===Z){let s=((i,s)=>{if(i.length>s)return`Value must be no longer than ${s} character${1!==s?\"s\":\"\"}`})(i,Z);s&&_.push(s)}if(ee){let s=((i,s)=>{if(i.length<s)return`Value must be at least ${s} character${1!==s?\"s\":\"\"}`})(i,ee);s&&_.push(s)}if($||0===$){let s=((i,s)=>{if(i>s)return`Value must be less than ${s}`})(i,$);s&&_.push(s)}if(W||0===W){let s=((i,s)=>{if(i<s)return`Value must be greater than ${s}`})(i,W);s&&_.push(s)}if(\"string\"===X){let s;if(s=\"date-time\"===Y?(i=>{if(isNaN(Date.parse(i)))return\"Value must be a DateTime\"})(i):\"uuid\"===Y?(i=>{if(i=i.toString().toLowerCase(),!/^[{(]?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}[)}]?$/.test(i))return\"Value must be a Guid\"})(i):(i=>{if(i&&\"string\"!=typeof i)return\"Value must be a string\"})(i),!s)return _;_.push(s)}else if(\"boolean\"===X){let s=(i=>{if(\"true\"!==i&&\"false\"!==i&&!0!==i&&!1!==i)return\"Value must be a boolean\"})(i);if(!s)return _;_.push(s)}else if(\"number\"===X){let s=(i=>{if(!/^-?\\d+(\\.?\\d+)?$/.test(i))return\"Value must be a number\"})(i);if(!s)return _;_.push(s)}else if(\"integer\"===X){let s=(i=>{if(!/^-?\\d+$/.test(i))return\"Value must be an integer\"})(i);if(!s)return _;_.push(s)}else if(\"array\"===X){if(!ye&&!be)return _;i&&i.forEach(((i,u)=>{const j=validateValueBySchema(i,s.get(\"items\"),!1,m,v);_.push(...j.map((i=>({index:u,error:i}))))}))}else if(\"file\"===X){let s=(i=>{if(i&&!(i instanceof dt.File))return\"Value must be a file\"})(i);if(!s)return _;_.push(s)}return _}const utils_btoa=i=>{let s;return s=i instanceof Tt?i:Tt.from(i.toString(),\"utf-8\"),s.toString(\"base64\")},Dt={operationsSorter:{alpha:(i,s)=>i.get(\"path\").localeCompare(s.get(\"path\")),method:(i,s)=>i.get(\"method\").localeCompare(s.get(\"method\"))},tagsSorter:{alpha:(i,s)=>i.localeCompare(s)}},buildFormData=i=>{let s=[];for(let u in i){let m=i[u];void 0!==m&&\"\"!==m&&s.push([u,\"=\",encodeURIComponent(m).replace(/%20/g,\"+\")].join(\"\"))}return s.join(\"&\")},shallowEqualKeys=(i,s,u)=>!!bt()(u,(u=>St()(i[u],s[u])));function sanitizeUrl(i){return\"string\"!=typeof i||\"\"===i?\"\":(0,mt.Nm)(i)}function requiresValidationURL(i){return!(!i||i.indexOf(\"localhost\")>=0||i.indexOf(\"127.0.0.1\")>=0||\"none\"===i)}const createDeepLinkPath=i=>\"string\"==typeof i||i instanceof String?i.trim().replace(/\\s/g,\"%20\"):\"\",escapeDeepLinkPath=i=>At()(createDeepLinkPath(i).replace(/%20/g,\"_\")),getExtensions=i=>i.filter(((i,s)=>/^x-/.test(s))),getCommonExtensions=i=>i.filter(((i,s)=>/^pattern|maxLength|minLength|maximum|minimum/.test(s)));function deeplyStripKey(i,s){let u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>!0;if(\"object\"!=typeof i||Array.isArray(i)||null===i||!s)return i;const m=Object.assign({},i);return Object.keys(m).forEach((i=>{i===s&&u(m[i],i)?delete m[i]:m[i]=deeplyStripKey(m[i],s,u)})),m}function stringify(i){if(\"string\"==typeof i)return i;if(i&&i.toJS&&(i=i.toJS()),\"object\"==typeof i&&null!==i)try{return JSON.stringify(i,null,2)}catch(s){return String(i)}return null==i?\"\":i.toString()}function paramToIdentifier(i){let{returnAll:s=!1,allowHashes:u=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!tt().Map.isMap(i))throw new Error(\"paramToIdentifier: received a non-Im.Map parameter as input\");const m=i.get(\"name\"),v=i.get(\"in\");let _=[];return i&&i.hashCode&&v&&m&&u&&_.push(`${v}.${m}.hash-${i.hashCode()}`),v&&m&&_.push(`${v}.${m}`),_.push(m),s?_:_[0]||\"\"}function paramToValue(i,s){const u=paramToIdentifier(i,{returnAll:!0}).map((i=>s[i])).filter((i=>void 0!==i));return u[0]}function b64toB64UrlEncoded(i){return i.replace(/\\+/g,\"-\").replace(/\\//g,\"_\").replace(/=/g,\"\")}const isEmptyValue=i=>!i||!(!isImmutable(i)||!i.isEmpty()),idFn=i=>i;function createStoreWithMiddleware(i,s,u){let m=[systemThunkMiddleware(u)];return createStore(i,s,(dt.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||redux_compose)(function applyMiddleware(){for(var i=arguments.length,s=new Array(i),u=0;u<i;u++)s[u]=arguments[u];return function(i){return function(){var u=i.apply(void 0,arguments),m=function dispatch(){throw new Error(formatProdErrorMessage(15))},v={getState:u.getState,dispatch:function dispatch(){return m.apply(void 0,arguments)}},_=s.map((function(i){return i(v)}));return m=redux_compose.apply(void 0,_)(u.dispatch),_objectSpread2(_objectSpread2({},u),{},{dispatch:m})}}}(...m)))}class Store{constructor(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};We()(this,{state:{},plugins:[],pluginsOptions:{},system:{configs:{},fn:{},components:{},rootInjects:{},statePlugins:{}},boundSystem:{},toolbox:{}},i),this.getSystem=this._getSystem.bind(this),this.store=function configureStore(i,s,u){return createStoreWithMiddleware(i,s,u)}(idFn,(0,et.fromJS)(this.state),this.getSystem),this.buildSystem(!1),this.register(this.plugins)}getStore(){return this.store}register(i){let s=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];var u=combinePlugins(i,this.getSystem(),this.pluginsOptions);systemExtend(this.system,u),s&&this.buildSystem();callAfterLoad.call(this.system,i,this.getSystem())&&this.buildSystem()}buildSystem(){let i=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],s=this.getStore().dispatch,u=this.getStore().getState;this.boundSystem=Object.assign({},this.getRootInjects(),this.getWrappedAndBoundActions(s),this.getWrappedAndBoundSelectors(u,this.getSystem),this.getStateThunks(u),this.getFn(),this.getConfigs()),i&&this.rebuildReducer()}_getSystem(){return this.boundSystem}getRootInjects(){return Object.assign({getSystem:this.getSystem,getStore:this.getStore.bind(this),getComponents:this.getComponents.bind(this),getState:this.getStore().getState,getConfigs:this._getConfigs.bind(this),Im:tt(),React:He},this.system.rootInjects||{})}_getConfigs(){return this.system.configs}getConfigs(){return{configs:this.system.configs}}setConfigs(i){this.system.configs=i}rebuildReducer(){this.store.replaceReducer(function buildReducer(i){return function allReducers(i){let s=Object.keys(i).reduce(((s,u)=>(s[u]=function makeReducer(i){return function(){let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new et.Map,u=arguments.length>1?arguments[1]:void 0;if(!i)return s;let m=i[u.type];if(m){const i=wrapWithTryCatch(m)(s,u);return null===i?s:i}return s}}(i[u]),s)),{});if(!Object.keys(s).length)return idFn;return(0,rt.U)(s)}(objMap(i,(i=>i.reducers)))}(this.system.statePlugins))}getType(i){let s=i[0].toUpperCase()+i.slice(1);return objReduce(this.system.statePlugins,((u,m)=>{let v=u[i];if(v)return{[m+s]:v}}))}getSelectors(){return this.getType(\"selectors\")}getActions(){return objMap(this.getType(\"actions\"),(i=>objReduce(i,((i,s)=>{if(isFn(i))return{[s]:i}}))))}getWrappedAndBoundActions(i){var s=this;return objMap(this.getBoundActions(i),((i,u)=>{let m=this.system.statePlugins[u.slice(0,-7)].wrapActions;return m?objMap(i,((i,u)=>{let v=m[u];return v?(Array.isArray(v)||(v=[v]),v.reduce(((i,u)=>{let newAction=function(){return u(i,s.getSystem())(...arguments)};if(!isFn(newAction))throw new TypeError(\"wrapActions needs to return a function that returns a new function (ie the wrapped action)\");return wrapWithTryCatch(newAction)}),i||Function.prototype)):i})):i}))}getWrappedAndBoundSelectors(i,s){var u=this;return objMap(this.getBoundSelectors(i,s),((s,m)=>{let v=[m.slice(0,-9)],_=this.system.statePlugins[v].wrapSelectors;return _?objMap(s,((s,m)=>{let j=_[m];return j?(Array.isArray(j)||(j=[j]),j.reduce(((s,m)=>{let wrappedSelector=function(){for(var _=arguments.length,j=new Array(_),M=0;M<_;M++)j[M]=arguments[M];return m(s,u.getSystem())(i().getIn(v),...j)};if(!isFn(wrappedSelector))throw new TypeError(\"wrapSelector needs to return a function that returns a new function (ie the wrapped action)\");return wrappedSelector}),s||Function.prototype)):s})):s}))}getStates(i){return Object.keys(this.system.statePlugins).reduce(((s,u)=>(s[u]=i.get(u),s)),{})}getStateThunks(i){return Object.keys(this.system.statePlugins).reduce(((s,u)=>(s[u]=()=>i().get(u),s)),{})}getFn(){return{fn:this.system.fn}}getComponents(i){const s=this.system.components[i];return Array.isArray(s)?s.reduce(((i,s)=>s(i,this.getSystem()))):void 0!==i?this.system.components[i]:this.system.components}getBoundSelectors(i,s){return objMap(this.getSelectors(),((u,m)=>{let v=[m.slice(0,-9)];return objMap(u,(u=>function(){for(var m=arguments.length,_=new Array(m),j=0;j<m;j++)_[j]=arguments[j];let M=wrapWithTryCatch(u).apply(null,[i().getIn(v),..._]);return\"function\"==typeof M&&(M=wrapWithTryCatch(M)(s())),M}))}))}getBoundActions(i){i=i||this.getStore().dispatch;const s=this.getActions(),process=i=>\"function\"!=typeof i?objMap(i,(i=>process(i))):function(){var s=null;try{s=i(...arguments)}catch(i){s={type:at,error:!0,payload:(0,nt.serializeError)(i)}}finally{return s}};return objMap(s,(s=>function bindActionCreators(i,s){if(\"function\"==typeof i)return bindActionCreator(i,s);if(\"object\"!=typeof i||null===i)throw new Error(formatProdErrorMessage(16));var u={};for(var m in i){var v=i[m];\"function\"==typeof v&&(u[m]=bindActionCreator(v,s))}return u}(process(s),i)))}getMapStateToProps(){return()=>Object.assign({},this.getSystem())}getMapDispatchToProps(i){return s=>We()({},this.getWrappedAndBoundActions(s),this.getFn(),i)}}function combinePlugins(i,s,u){if(isObject(i)&&!isArray(i))return it()({},i);if(isFunc(i))return combinePlugins(i(s),s,u);if(isArray(i)){const m=\"chain\"===u.pluginLoadType?s.getComponents():{};return i.map((i=>combinePlugins(i,s,u))).reduce(systemExtend,m)}return{}}function callAfterLoad(i,s){let{hasLoaded:u}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},m=u;return isObject(i)&&!isArray(i)&&\"function\"==typeof i.afterLoad&&(m=!0,wrapWithTryCatch(i.afterLoad).call(this,s)),isFunc(i)?callAfterLoad.call(this,i(s),s,{hasLoaded:m}):isArray(i)?i.map((i=>callAfterLoad.call(this,i,s,{hasLoaded:m}))):m}function systemExtend(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!isObject(i))return{};if(!isObject(s))return i;s.wrapComponents&&(objMap(s.wrapComponents,((u,m)=>{const v=i.components&&i.components[m];v&&Array.isArray(v)?(i.components[m]=v.concat([u]),delete s.wrapComponents[m]):v&&(i.components[m]=[v,u],delete s.wrapComponents[m])})),Object.keys(s.wrapComponents).length||delete s.wrapComponents);const{statePlugins:u}=i;if(isObject(u))for(let i in u){const m=u[i];if(!isObject(m))continue;const{wrapActions:v,wrapSelectors:_}=m;if(isObject(v))for(let u in v){let m=v[u];Array.isArray(m)||(m=[m],v[u]=m),s&&s.statePlugins&&s.statePlugins[i]&&s.statePlugins[i].wrapActions&&s.statePlugins[i].wrapActions[u]&&(s.statePlugins[i].wrapActions[u]=v[u].concat(s.statePlugins[i].wrapActions[u]))}if(isObject(_))for(let u in _){let m=_[u];Array.isArray(m)||(m=[m],_[u]=m),s&&s.statePlugins&&s.statePlugins[i]&&s.statePlugins[i].wrapSelectors&&s.statePlugins[i].wrapSelectors[u]&&(s.statePlugins[i].wrapSelectors[u]=_[u].concat(s.statePlugins[i].wrapSelectors[u]))}}return We()(i,s)}function wrapWithTryCatch(i){let{logErrors:s=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return\"function\"!=typeof i?i:function(){try{for(var u=arguments.length,m=new Array(u),v=0;v<u;v++)m[v]=arguments[v];return i.call(this,...m)}catch(i){return s&&console.error(i),null}}}var Bt=__webpack_require__(84564),Lt=__webpack_require__.n(Bt);const Ft=\"show_popup\",qt=\"authorize\",$t=\"logout\",Ut=\"pre_authorize_oauth2\",zt=\"authorize_oauth2\",Vt=\"validate\",Wt=\"configure_auth\",Kt=\"restore_authorization\";function showDefinitions(i){return{type:Ft,payload:i}}function authorize(i){return{type:qt,payload:i}}const authorizeWithPersistOption=i=>s=>{let{authActions:u}=s;u.authorize(i),u.persistAuthorizationIfNeeded()};function logout(i){return{type:$t,payload:i}}const logoutWithPersistOption=i=>s=>{let{authActions:u}=s;u.logout(i),u.persistAuthorizationIfNeeded()},preAuthorizeImplicit=i=>s=>{let{authActions:u,errActions:m}=s,{auth:v,token:_,isValid:j}=i,{schema:M,name:$}=v,W=M.get(\"flow\");delete dt.swaggerUIRedirectOauth2,\"accessCode\"===W||j||m.newAuthErr({authId:$,source:\"auth\",level:\"warning\",message:\"Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server\"}),_.error?m.newAuthErr({authId:$,source:\"auth\",level:\"error\",message:JSON.stringify(_)}):u.authorizeOauth2WithPersistOption({auth:v,token:_})};function authorizeOauth2(i){return{type:zt,payload:i}}const authorizeOauth2WithPersistOption=i=>s=>{let{authActions:u}=s;u.authorizeOauth2(i),u.persistAuthorizationIfNeeded()},authorizePassword=i=>s=>{let{authActions:u}=s,{schema:m,name:v,username:_,password:j,passwordType:M,clientId:$,clientSecret:W}=i,X={grant_type:\"password\",scope:i.scopes.join(\" \"),username:_,password:j},Y={};switch(M){case\"request-body\":!function setClientIdAndSecret(i,s,u){s&&Object.assign(i,{client_id:s});u&&Object.assign(i,{client_secret:u})}(X,$,W);break;case\"basic\":Y.Authorization=\"Basic \"+utils_btoa($+\":\"+W);break;default:console.warn(`Warning: invalid passwordType ${M} was passed, not including client id and secret`)}return u.authorizeRequest({body:buildFormData(X),url:m.get(\"tokenUrl\"),name:v,headers:Y,query:{},auth:i})};const authorizeApplication=i=>s=>{let{authActions:u}=s,{schema:m,scopes:v,name:_,clientId:j,clientSecret:M}=i,$={Authorization:\"Basic \"+utils_btoa(j+\":\"+M)},W={grant_type:\"client_credentials\",scope:v.join(\" \")};return u.authorizeRequest({body:buildFormData(W),name:_,url:m.get(\"tokenUrl\"),auth:i,headers:$})},authorizeAccessCodeWithFormParams=i=>{let{auth:s,redirectUrl:u}=i;return i=>{let{authActions:m}=i,{schema:v,name:_,clientId:j,clientSecret:M,codeVerifier:$}=s,W={grant_type:\"authorization_code\",code:s.code,client_id:j,client_secret:M,redirect_uri:u,code_verifier:$};return m.authorizeRequest({body:buildFormData(W),name:_,url:v.get(\"tokenUrl\"),auth:s})}},authorizeAccessCodeWithBasicAuthentication=i=>{let{auth:s,redirectUrl:u}=i;return i=>{let{authActions:m}=i,{schema:v,name:_,clientId:j,clientSecret:M,codeVerifier:$}=s,W={Authorization:\"Basic \"+utils_btoa(j+\":\"+M)},X={grant_type:\"authorization_code\",code:s.code,client_id:j,redirect_uri:u,code_verifier:$};return m.authorizeRequest({body:buildFormData(X),name:_,url:v.get(\"tokenUrl\"),auth:s,headers:W})}},authorizeRequest=i=>s=>{let u,{fn:m,getConfigs:v,authActions:_,errActions:j,oas3Selectors:M,specSelectors:$,authSelectors:W}=s,{body:X,query:Y={},headers:Z={},name:ee,url:ie,auth:ae}=i,{additionalQueryStringParams:ce}=W.getConfigs()||{};if($.isOAS3()){let i=M.serverEffectiveValue(M.selectedServer());u=Lt()(ie,i,!0)}else u=Lt()(ie,$.url(),!0);\"object\"==typeof ce&&(u.query=Object.assign({},u.query,ce));const le=u.toString();let pe=Object.assign({Accept:\"application/json, text/plain, */*\",\"Content-Type\":\"application/x-www-form-urlencoded\",\"X-Requested-With\":\"XMLHttpRequest\"},Z);m.fetch({url:le,method:\"post\",headers:pe,query:Y,body:X,requestInterceptor:v().requestInterceptor,responseInterceptor:v().responseInterceptor}).then((function(i){let s=JSON.parse(i.data),u=s&&(s.error||\"\"),m=s&&(s.parseError||\"\");i.ok?u||m?j.newAuthErr({authId:ee,level:\"error\",source:\"auth\",message:JSON.stringify(s)}):_.authorizeOauth2WithPersistOption({auth:ae,token:s}):j.newAuthErr({authId:ee,level:\"error\",source:\"auth\",message:i.statusText})})).catch((i=>{let s=new Error(i).message;if(i.response&&i.response.data){const u=i.response.data;try{const i=\"string\"==typeof u?JSON.parse(u):u;i.error&&(s+=`, error: ${i.error}`),i.error_description&&(s+=`, description: ${i.error_description}`)}catch(i){}}j.newAuthErr({authId:ee,level:\"error\",source:\"auth\",message:s})}))};function configureAuth(i){return{type:Wt,payload:i}}function restoreAuthorization(i){return{type:Kt,payload:i}}const persistAuthorizationIfNeeded=()=>i=>{let{authSelectors:s,getConfigs:u}=i;if(!u().persistAuthorization)return;const m=s.authorized().toJS();localStorage.setItem(\"authorized\",JSON.stringify(m))},authPopup=(i,s)=>()=>{dt.swaggerUIRedirectOauth2=s,dt.open(i)},Ht={[Ft]:(i,s)=>{let{payload:u}=s;return i.set(\"showDefinitions\",u)},[qt]:(i,s)=>{let{payload:u}=s,m=(0,et.fromJS)(u),v=i.get(\"authorized\")||(0,et.Map)();return m.entrySeq().forEach((s=>{let[u,m]=s;if(!isFunc(m.getIn))return i.set(\"authorized\",v);let _=m.getIn([\"schema\",\"type\"]);if(\"apiKey\"===_||\"http\"===_)v=v.set(u,m);else if(\"basic\"===_){let i=m.getIn([\"value\",\"username\"]),s=m.getIn([\"value\",\"password\"]);v=v.setIn([u,\"value\"],{username:i,header:\"Basic \"+utils_btoa(i+\":\"+s)}),v=v.setIn([u,\"schema\"],m.get(\"schema\"))}})),i.set(\"authorized\",v)},[zt]:(i,s)=>{let u,{payload:m}=s,{auth:v,token:_}=m;v.token=Object.assign({},_),u=(0,et.fromJS)(v);let j=i.get(\"authorized\")||(0,et.Map)();return j=j.set(u.get(\"name\"),u),i.set(\"authorized\",j)},[$t]:(i,s)=>{let{payload:u}=s,m=i.get(\"authorized\").withMutations((i=>{u.forEach((s=>{i.delete(s)}))}));return i.set(\"authorized\",m)},[Wt]:(i,s)=>{let{payload:u}=s;return i.set(\"configs\",u)},[Kt]:(i,s)=>{let{payload:u}=s;return i.set(\"authorized\",(0,et.fromJS)(u.authorized))}};var Jt=\"NOT_FOUND\";var Gt=function defaultEqualityCheck(i,s){return i===s};function defaultMemoize(i,s){var u=\"object\"==typeof s?s:{equalityCheck:s},m=u.equalityCheck,v=void 0===m?Gt:m,_=u.maxSize,j=void 0===_?1:_,M=u.resultEqualityCheck,$=function createCacheKeyComparator(i){return function areArgumentsShallowlyEqual(s,u){if(null===s||null===u||s.length!==u.length)return!1;for(var m=s.length,v=0;v<m;v++)if(!i(s[v],u[v]))return!1;return!0}}(v),W=1===j?function createSingletonCache(i){var s;return{get:function get(u){return s&&i(s.key,u)?s.value:Jt},put:function put(i,u){s={key:i,value:u}},getEntries:function getEntries(){return s?[s]:[]},clear:function clear(){s=void 0}}}($):function createLruCache(i,s){var u=[];function get(i){var m=u.findIndex((function(u){return s(i,u.key)}));if(m>-1){var v=u[m];return m>0&&(u.splice(m,1),u.unshift(v)),v.value}return Jt}return{get,put:function put(s,m){get(s)===Jt&&(u.unshift({key:s,value:m}),u.length>i&&u.pop())},getEntries:function getEntries(){return u},clear:function clear(){u=[]}}}(j,$);function memoized(){var s=W.get(arguments);if(s===Jt){if(s=i.apply(null,arguments),M){var u=W.getEntries().find((function(i){return M(i.value,s)}));u&&(s=u.value)}W.put(arguments,s)}return s}return memoized.clearCache=function(){return W.clear()},memoized}function createSelectorCreator(i){for(var s=arguments.length,u=new Array(s>1?s-1:0),m=1;m<s;m++)u[m-1]=arguments[m];return function createSelector(){for(var s=arguments.length,m=new Array(s),v=0;v<s;v++)m[v]=arguments[v];var _,j=0,M={memoizeOptions:void 0},$=m.pop();if(\"object\"==typeof $&&(M=$,$=m.pop()),\"function\"!=typeof $)throw new Error(\"createSelector expects an output function after the inputs, but received: [\"+typeof $+\"]\");var W=M.memoizeOptions,X=void 0===W?u:W,Y=Array.isArray(X)?X:[X],Z=function getDependencies(i){var s=Array.isArray(i[0])?i[0]:i;if(!s.every((function(i){return\"function\"==typeof i}))){var u=s.map((function(i){return\"function\"==typeof i?\"function \"+(i.name||\"unnamed\")+\"()\":typeof i})).join(\", \");throw new Error(\"createSelector expects all input-selectors to be functions, but received the following types: [\"+u+\"]\")}return s}(m),ee=i.apply(void 0,[function recomputationWrapper(){return j++,$.apply(null,arguments)}].concat(Y)),ie=i((function dependenciesChecker(){for(var i=[],s=Z.length,u=0;u<s;u++)i.push(Z[u].apply(null,arguments));return _=ee.apply(null,i)}));return Object.assign(ie,{resultFunc:$,memoizedResultFunc:ee,dependencies:Z,lastResult:function lastResult(){return _},recomputations:function recomputations(){return j},resetRecomputations:function resetRecomputations(){return j=0}}),ie}}var Xt=createSelectorCreator(defaultMemoize);const state=i=>i,Yt=Xt(state,(i=>i.get(\"showDefinitions\"))),Qt=Xt(state,(()=>i=>{let{specSelectors:s}=i,u=s.securityDefinitions()||(0,et.Map)({}),m=(0,et.List)();return u.entrySeq().forEach((i=>{let[s,u]=i,v=(0,et.Map)();v=v.set(s,u),m=m.push(v)})),m})),getDefinitionsByNames=(i,s)=>i=>{let{specSelectors:u}=i;console.warn(\"WARNING: getDefinitionsByNames is deprecated and will be removed in the next major version.\");let m=u.securityDefinitions(),v=(0,et.List)();return s.valueSeq().forEach((i=>{let s=(0,et.Map)();i.entrySeq().forEach((i=>{let u,[v,_]=i,j=m.get(v);\"oauth2\"===j.get(\"type\")&&_.size&&(u=j.get(\"scopes\"),u.keySeq().forEach((i=>{_.contains(i)||(u=u.delete(i))})),j=j.set(\"allowedScopes\",u)),s=s.set(v,j)})),v=v.push(s)})),v},definitionsForRequirements=function(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,et.List)();return i=>{let{authSelectors:u}=i;const m=u.definitionsToAuthorize()||(0,et.List)();let v=(0,et.List)();return m.forEach((i=>{let u=s.find((s=>s.get(i.keySeq().first())));u&&(i.forEach(((s,m)=>{if(\"oauth2\"===s.get(\"type\")){const v=u.get(m);let _=s.get(\"scopes\");et.List.isList(v)&&et.Map.isMap(_)&&(_.keySeq().forEach((i=>{v.contains(i)||(_=_.delete(i))})),i=i.set(m,s.set(\"scopes\",_)))}})),v=v.push(i))})),v}},Zt=Xt(state,(i=>i.get(\"authorized\")||(0,et.Map)())),isAuthorized=(i,s)=>i=>{let{authSelectors:u}=i,m=u.authorized();return et.List.isList(s)?!!s.toJS().filter((i=>-1===Object.keys(i).map((i=>!!m.get(i))).indexOf(!1))).length:null},er=Xt(state,(i=>i.get(\"configs\")));var tr=__webpack_require__(58826),rr=__webpack_require__.n(tr);const execute=(i,s)=>{let{authSelectors:u,specSelectors:m}=s;return s=>{let{path:v,method:_,operation:j,extras:M}=s,$={authorized:u.authorized()&&u.authorized().toJS(),definitions:m.securityDefinitions()&&m.securityDefinitions().toJS(),specSecurity:m.security()&&m.security().toJS()};return i(rr()({path:v,method:_,operation:j,securities:$},M))}},loaded=(i,s)=>u=>{const{getConfigs:m,authActions:v}=s,_=m();if(i(u),_.persistAuthorization){const i=localStorage.getItem(\"authorized\");i&&v.restoreAuthorization({authorized:JSON.parse(i)})}},wrap_actions_authorize=(i,s)=>u=>{i(u);if(s.getConfigs().persistAuthorization)try{const[{schema:i,value:s}]=Object.values(u),m=\"apiKey\"===i.get(\"type\"),v=\"cookie\"===i.get(\"in\");m&&v&&(document.cookie=`${i.get(\"name\")}=${s}; SameSite=None; Secure`)}catch(i){console.error(\"Error persisting cookie based apiKey in document.cookie.\",i)}},wrap_actions_logout=(i,s)=>u=>{const m=s.getConfigs(),v=s.authSelectors.authorized();try{m.persistAuthorization&&Array.isArray(u)&&u.forEach((i=>{const s=v.get(i,{}),u=\"apiKey\"===s.getIn([\"schema\",\"type\"]),m=\"cookie\"===s.getIn([\"schema\",\"in\"]);if(u&&m){const i=s.getIn([\"schema\",\"name\"]);document.cookie=`${i}=; Max-Age=-99999999`}}))}catch(i){console.error(\"Error deleting cookie based apiKey from document.cookie.\",i)}i(u)};var nr=__webpack_require__(57557),ir=__webpack_require__.n(nr);class LockAuthIcon extends He.Component{mapStateToProps(i,s){return{state:i,ownProps:ir()(s,Object.keys(s.getSystem()))}}render(){const{getComponent:i,ownProps:s}=this.props,u=i(\"LockIcon\");return He.createElement(u,s)}}const ar=LockAuthIcon;class UnlockAuthIcon extends He.Component{mapStateToProps(i,s){return{state:i,ownProps:ir()(s,Object.keys(s.getSystem()))}}render(){const{getComponent:i,ownProps:s}=this.props,u=i(\"UnlockIcon\");return He.createElement(u,s)}}const sr=UnlockAuthIcon;function auth(){return{afterLoad(i){this.rootInjects=this.rootInjects||{},this.rootInjects.initOAuth=i.authActions.configureAuth,this.rootInjects.preauthorizeApiKey=preauthorizeApiKey.bind(null,i),this.rootInjects.preauthorizeBasic=preauthorizeBasic.bind(null,i)},components:{LockAuthIcon:ar,UnlockAuthIcon:sr,LockAuthOperationIcon:ar,UnlockAuthOperationIcon:sr},statePlugins:{auth:{reducers:Ht,actions:s,selectors:m,wrapActions:{authorize:wrap_actions_authorize,logout:wrap_actions_logout}},configs:{wrapActions:{loaded}},spec:{wrapActions:{execute}}}}}function preauthorizeBasic(i,s,u,m){const{authActions:{authorize:v},specSelectors:{specJson:_,isOAS3:j}}=i,M=j()?[\"components\",\"securitySchemes\"]:[\"securityDefinitions\"],$=_().getIn([...M,s]);return $?v({[s]:{value:{username:u,password:m},schema:$.toJS()}}):null}function preauthorizeApiKey(i,s,u){const{authActions:{authorize:m},specSelectors:{specJson:v,isOAS3:_}}=i,j=_()?[\"components\",\"securitySchemes\"]:[\"securityDefinitions\"],M=v().getIn([...j,s]);return M?m({[s]:{value:u,schema:M.toJS()}}):null}function isNothing(i){return null==i}var cr=function repeat(i,s){var u,m=\"\";for(u=0;u<s;u+=1)m+=i;return m},lr=function isNegativeZero(i){return 0===i&&Number.NEGATIVE_INFINITY===1/i},ur={isNothing,isObject:function js_yaml_isObject(i){return\"object\"==typeof i&&null!==i},toArray:function toArray(i){return Array.isArray(i)?i:isNothing(i)?[]:[i]},repeat:cr,isNegativeZero:lr,extend:function extend(i,s){var u,m,v,_;if(s)for(u=0,m=(_=Object.keys(s)).length;u<m;u+=1)i[v=_[u]]=s[v];return i}};function formatError(i,s){var u=\"\",m=i.reason||\"(unknown reason)\";return i.mark?(i.mark.name&&(u+='in \"'+i.mark.name+'\" '),u+=\"(\"+(i.mark.line+1)+\":\"+(i.mark.column+1)+\")\",!s&&i.mark.snippet&&(u+=\"\\n\\n\"+i.mark.snippet),m+\" \"+u):m}function YAMLException$1(i,s){Error.call(this),this.name=\"YAMLException\",this.reason=i,this.mark=s,this.message=formatError(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||\"\"}YAMLException$1.prototype=Object.create(Error.prototype),YAMLException$1.prototype.constructor=YAMLException$1,YAMLException$1.prototype.toString=function toString(i){return this.name+\": \"+formatError(this,i)};var pr=YAMLException$1;function getLine(i,s,u,m,v){var _=\"\",j=\"\",M=Math.floor(v/2)-1;return m-s>M&&(s=m-M+(_=\" ... \").length),u-m>M&&(u=m+M-(j=\" ...\").length),{str:_+i.slice(s,u).replace(/\\t/g,\"→\")+j,pos:m-s+_.length}}function padStart(i,s){return ur.repeat(\" \",s-i.length)+i}var dr=function makeSnippet(i,s){if(s=Object.create(s||null),!i.buffer)return null;s.maxLength||(s.maxLength=79),\"number\"!=typeof s.indent&&(s.indent=1),\"number\"!=typeof s.linesBefore&&(s.linesBefore=3),\"number\"!=typeof s.linesAfter&&(s.linesAfter=2);for(var u,m=/\\r?\\n|\\r|\\0/g,v=[0],_=[],j=-1;u=m.exec(i.buffer);)_.push(u.index),v.push(u.index+u[0].length),i.position<=u.index&&j<0&&(j=v.length-2);j<0&&(j=v.length-1);var M,$,W=\"\",X=Math.min(i.line+s.linesAfter,_.length).toString().length,Y=s.maxLength-(s.indent+X+3);for(M=1;M<=s.linesBefore&&!(j-M<0);M++)$=getLine(i.buffer,v[j-M],_[j-M],i.position-(v[j]-v[j-M]),Y),W=ur.repeat(\" \",s.indent)+padStart((i.line-M+1).toString(),X)+\" | \"+$.str+\"\\n\"+W;for($=getLine(i.buffer,v[j],_[j],i.position,Y),W+=ur.repeat(\" \",s.indent)+padStart((i.line+1).toString(),X)+\" | \"+$.str+\"\\n\",W+=ur.repeat(\"-\",s.indent+X+3+$.pos)+\"^\\n\",M=1;M<=s.linesAfter&&!(j+M>=_.length);M++)$=getLine(i.buffer,v[j+M],_[j+M],i.position-(v[j]-v[j+M]),Y),W+=ur.repeat(\" \",s.indent)+padStart((i.line+M+1).toString(),X)+\" | \"+$.str+\"\\n\";return W.replace(/\\n$/,\"\")},fr=[\"kind\",\"multi\",\"resolve\",\"construct\",\"instanceOf\",\"predicate\",\"represent\",\"representName\",\"defaultStyle\",\"styleAliases\"],mr=[\"scalar\",\"sequence\",\"mapping\"];var yr=function Type$1(i,s){if(s=s||{},Object.keys(s).forEach((function(s){if(-1===fr.indexOf(s))throw new pr('Unknown option \"'+s+'\" is met in definition of \"'+i+'\" YAML type.')})),this.options=s,this.tag=i,this.kind=s.kind||null,this.resolve=s.resolve||function(){return!0},this.construct=s.construct||function(i){return i},this.instanceOf=s.instanceOf||null,this.predicate=s.predicate||null,this.represent=s.represent||null,this.representName=s.representName||null,this.defaultStyle=s.defaultStyle||null,this.multi=s.multi||!1,this.styleAliases=function compileStyleAliases(i){var s={};return null!==i&&Object.keys(i).forEach((function(u){i[u].forEach((function(i){s[String(i)]=u}))})),s}(s.styleAliases||null),-1===mr.indexOf(this.kind))throw new pr('Unknown kind \"'+this.kind+'\" is specified for \"'+i+'\" YAML type.')};function compileList(i,s){var u=[];return i[s].forEach((function(i){var s=u.length;u.forEach((function(u,m){u.tag===i.tag&&u.kind===i.kind&&u.multi===i.multi&&(s=m)})),u[s]=i})),u}function Schema$1(i){return this.extend(i)}Schema$1.prototype.extend=function extend(i){var s=[],u=[];if(i instanceof yr)u.push(i);else if(Array.isArray(i))u=u.concat(i);else{if(!i||!Array.isArray(i.implicit)&&!Array.isArray(i.explicit))throw new pr(\"Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })\");i.implicit&&(s=s.concat(i.implicit)),i.explicit&&(u=u.concat(i.explicit))}s.forEach((function(i){if(!(i instanceof yr))throw new pr(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");if(i.loadKind&&\"scalar\"!==i.loadKind)throw new pr(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\");if(i.multi)throw new pr(\"There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.\")})),u.forEach((function(i){if(!(i instanceof yr))throw new pr(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\")}));var m=Object.create(Schema$1.prototype);return m.implicit=(this.implicit||[]).concat(s),m.explicit=(this.explicit||[]).concat(u),m.compiledImplicit=compileList(m,\"implicit\"),m.compiledExplicit=compileList(m,\"explicit\"),m.compiledTypeMap=function compileMap(){var i,s,u={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function collectType(i){i.multi?(u.multi[i.kind].push(i),u.multi.fallback.push(i)):u[i.kind][i.tag]=u.fallback[i.tag]=i}for(i=0,s=arguments.length;i<s;i+=1)arguments[i].forEach(collectType);return u}(m.compiledImplicit,m.compiledExplicit),m};var gr=Schema$1,vr=new yr(\"tag:yaml.org,2002:str\",{kind:\"scalar\",construct:function(i){return null!==i?i:\"\"}}),br=new yr(\"tag:yaml.org,2002:seq\",{kind:\"sequence\",construct:function(i){return null!==i?i:[]}}),_r=new yr(\"tag:yaml.org,2002:map\",{kind:\"mapping\",construct:function(i){return null!==i?i:{}}}),wr=new gr({explicit:[vr,br,_r]});var Er=new yr(\"tag:yaml.org,2002:null\",{kind:\"scalar\",resolve:function resolveYamlNull(i){if(null===i)return!0;var s=i.length;return 1===s&&\"~\"===i||4===s&&(\"null\"===i||\"Null\"===i||\"NULL\"===i)},construct:function constructYamlNull(){return null},predicate:function isNull(i){return null===i},represent:{canonical:function(){return\"~\"},lowercase:function(){return\"null\"},uppercase:function(){return\"NULL\"},camelcase:function(){return\"Null\"},empty:function(){return\"\"}},defaultStyle:\"lowercase\"});var Sr=new yr(\"tag:yaml.org,2002:bool\",{kind:\"scalar\",resolve:function resolveYamlBoolean(i){if(null===i)return!1;var s=i.length;return 4===s&&(\"true\"===i||\"True\"===i||\"TRUE\"===i)||5===s&&(\"false\"===i||\"False\"===i||\"FALSE\"===i)},construct:function constructYamlBoolean(i){return\"true\"===i||\"True\"===i||\"TRUE\"===i},predicate:function isBoolean(i){return\"[object Boolean]\"===Object.prototype.toString.call(i)},represent:{lowercase:function(i){return i?\"true\":\"false\"},uppercase:function(i){return i?\"TRUE\":\"FALSE\"},camelcase:function(i){return i?\"True\":\"False\"}},defaultStyle:\"lowercase\"});function isOctCode(i){return 48<=i&&i<=55}function isDecCode(i){return 48<=i&&i<=57}var xr=new yr(\"tag:yaml.org,2002:int\",{kind:\"scalar\",resolve:function resolveYamlInteger(i){if(null===i)return!1;var s,u,m=i.length,v=0,_=!1;if(!m)return!1;if(\"-\"!==(s=i[v])&&\"+\"!==s||(s=i[++v]),\"0\"===s){if(v+1===m)return!0;if(\"b\"===(s=i[++v])){for(v++;v<m;v++)if(\"_\"!==(s=i[v])){if(\"0\"!==s&&\"1\"!==s)return!1;_=!0}return _&&\"_\"!==s}if(\"x\"===s){for(v++;v<m;v++)if(\"_\"!==(s=i[v])){if(!(48<=(u=i.charCodeAt(v))&&u<=57||65<=u&&u<=70||97<=u&&u<=102))return!1;_=!0}return _&&\"_\"!==s}if(\"o\"===s){for(v++;v<m;v++)if(\"_\"!==(s=i[v])){if(!isOctCode(i.charCodeAt(v)))return!1;_=!0}return _&&\"_\"!==s}}if(\"_\"===s)return!1;for(;v<m;v++)if(\"_\"!==(s=i[v])){if(!isDecCode(i.charCodeAt(v)))return!1;_=!0}return!(!_||\"_\"===s)},construct:function constructYamlInteger(i){var s,u=i,m=1;if(-1!==u.indexOf(\"_\")&&(u=u.replace(/_/g,\"\")),\"-\"!==(s=u[0])&&\"+\"!==s||(\"-\"===s&&(m=-1),s=(u=u.slice(1))[0]),\"0\"===u)return 0;if(\"0\"===s){if(\"b\"===u[1])return m*parseInt(u.slice(2),2);if(\"x\"===u[1])return m*parseInt(u.slice(2),16);if(\"o\"===u[1])return m*parseInt(u.slice(2),8)}return m*parseInt(u,10)},predicate:function isInteger(i){return\"[object Number]\"===Object.prototype.toString.call(i)&&i%1==0&&!ur.isNegativeZero(i)},represent:{binary:function(i){return i>=0?\"0b\"+i.toString(2):\"-0b\"+i.toString(2).slice(1)},octal:function(i){return i>=0?\"0o\"+i.toString(8):\"-0o\"+i.toString(8).slice(1)},decimal:function(i){return i.toString(10)},hexadecimal:function(i){return i>=0?\"0x\"+i.toString(16).toUpperCase():\"-0x\"+i.toString(16).toUpperCase().slice(1)}},defaultStyle:\"decimal\",styleAliases:{binary:[2,\"bin\"],octal:[8,\"oct\"],decimal:[10,\"dec\"],hexadecimal:[16,\"hex\"]}}),Or=new RegExp(\"^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");var kr=/^[-+]?[0-9]+e/;var Ar=new yr(\"tag:yaml.org,2002:float\",{kind:\"scalar\",resolve:function resolveYamlFloat(i){return null!==i&&!(!Or.test(i)||\"_\"===i[i.length-1])},construct:function constructYamlFloat(i){var s,u;return u=\"-\"===(s=i.replace(/_/g,\"\").toLowerCase())[0]?-1:1,\"+-\".indexOf(s[0])>=0&&(s=s.slice(1)),\".inf\"===s?1===u?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:\".nan\"===s?NaN:u*parseFloat(s,10)},predicate:function isFloat(i){return\"[object Number]\"===Object.prototype.toString.call(i)&&(i%1!=0||ur.isNegativeZero(i))},represent:function representYamlFloat(i,s){var u;if(isNaN(i))switch(s){case\"lowercase\":return\".nan\";case\"uppercase\":return\".NAN\";case\"camelcase\":return\".NaN\"}else if(Number.POSITIVE_INFINITY===i)switch(s){case\"lowercase\":return\".inf\";case\"uppercase\":return\".INF\";case\"camelcase\":return\".Inf\"}else if(Number.NEGATIVE_INFINITY===i)switch(s){case\"lowercase\":return\"-.inf\";case\"uppercase\":return\"-.INF\";case\"camelcase\":return\"-.Inf\"}else if(ur.isNegativeZero(i))return\"-0.0\";return u=i.toString(10),kr.test(u)?u.replace(\"e\",\".e\"):u},defaultStyle:\"lowercase\"}),Cr=wr.extend({implicit:[Er,Sr,xr,Ar]}),jr=Cr,Pr=new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"),Ir=new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\\\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\\\.([0-9]*))?(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$\");var Nr=new yr(\"tag:yaml.org,2002:timestamp\",{kind:\"scalar\",resolve:function resolveYamlTimestamp(i){return null!==i&&(null!==Pr.exec(i)||null!==Ir.exec(i))},construct:function constructYamlTimestamp(i){var s,u,m,v,_,j,M,$,W=0,X=null;if(null===(s=Pr.exec(i))&&(s=Ir.exec(i)),null===s)throw new Error(\"Date resolve error\");if(u=+s[1],m=+s[2]-1,v=+s[3],!s[4])return new Date(Date.UTC(u,m,v));if(_=+s[4],j=+s[5],M=+s[6],s[7]){for(W=s[7].slice(0,3);W.length<3;)W+=\"0\";W=+W}return s[9]&&(X=6e4*(60*+s[10]+ +(s[11]||0)),\"-\"===s[9]&&(X=-X)),$=new Date(Date.UTC(u,m,v,_,j,M,W)),X&&$.setTime($.getTime()-X),$},instanceOf:Date,represent:function representYamlTimestamp(i){return i.toISOString()}});var Tr=new yr(\"tag:yaml.org,2002:merge\",{kind:\"scalar\",resolve:function resolveYamlMerge(i){return\"<<\"===i||null===i}}),Mr=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r\";var Rr=new yr(\"tag:yaml.org,2002:binary\",{kind:\"scalar\",resolve:function resolveYamlBinary(i){if(null===i)return!1;var s,u,m=0,v=i.length,_=Mr;for(u=0;u<v;u++)if(!((s=_.indexOf(i.charAt(u)))>64)){if(s<0)return!1;m+=6}return m%8==0},construct:function constructYamlBinary(i){var s,u,m=i.replace(/[\\r\\n=]/g,\"\"),v=m.length,_=Mr,j=0,M=[];for(s=0;s<v;s++)s%4==0&&s&&(M.push(j>>16&255),M.push(j>>8&255),M.push(255&j)),j=j<<6|_.indexOf(m.charAt(s));return 0===(u=v%4*6)?(M.push(j>>16&255),M.push(j>>8&255),M.push(255&j)):18===u?(M.push(j>>10&255),M.push(j>>2&255)):12===u&&M.push(j>>4&255),new Uint8Array(M)},predicate:function isBinary(i){return\"[object Uint8Array]\"===Object.prototype.toString.call(i)},represent:function representYamlBinary(i){var s,u,m=\"\",v=0,_=i.length,j=Mr;for(s=0;s<_;s++)s%3==0&&s&&(m+=j[v>>18&63],m+=j[v>>12&63],m+=j[v>>6&63],m+=j[63&v]),v=(v<<8)+i[s];return 0===(u=_%3)?(m+=j[v>>18&63],m+=j[v>>12&63],m+=j[v>>6&63],m+=j[63&v]):2===u?(m+=j[v>>10&63],m+=j[v>>4&63],m+=j[v<<2&63],m+=j[64]):1===u&&(m+=j[v>>2&63],m+=j[v<<4&63],m+=j[64],m+=j[64]),m}}),Dr=Object.prototype.hasOwnProperty,Br=Object.prototype.toString;var Lr=new yr(\"tag:yaml.org,2002:omap\",{kind:\"sequence\",resolve:function resolveYamlOmap(i){if(null===i)return!0;var s,u,m,v,_,j=[],M=i;for(s=0,u=M.length;s<u;s+=1){if(m=M[s],_=!1,\"[object Object]\"!==Br.call(m))return!1;for(v in m)if(Dr.call(m,v)){if(_)return!1;_=!0}if(!_)return!1;if(-1!==j.indexOf(v))return!1;j.push(v)}return!0},construct:function constructYamlOmap(i){return null!==i?i:[]}}),Fr=Object.prototype.toString;var qr=new yr(\"tag:yaml.org,2002:pairs\",{kind:\"sequence\",resolve:function resolveYamlPairs(i){if(null===i)return!0;var s,u,m,v,_,j=i;for(_=new Array(j.length),s=0,u=j.length;s<u;s+=1){if(m=j[s],\"[object Object]\"!==Fr.call(m))return!1;if(1!==(v=Object.keys(m)).length)return!1;_[s]=[v[0],m[v[0]]]}return!0},construct:function constructYamlPairs(i){if(null===i)return[];var s,u,m,v,_,j=i;for(_=new Array(j.length),s=0,u=j.length;s<u;s+=1)m=j[s],v=Object.keys(m),_[s]=[v[0],m[v[0]]];return _}}),$r=Object.prototype.hasOwnProperty;var Ur=new yr(\"tag:yaml.org,2002:set\",{kind:\"mapping\",resolve:function resolveYamlSet(i){if(null===i)return!0;var s,u=i;for(s in u)if($r.call(u,s)&&null!==u[s])return!1;return!0},construct:function constructYamlSet(i){return null!==i?i:{}}}),zr=jr.extend({implicit:[Nr,Tr],explicit:[Rr,Lr,qr,Ur]}),Vr=Object.prototype.hasOwnProperty,Wr=1,Kr=2,Hr=3,Jr=4,Gr=1,Xr=2,Yr=3,Qr=/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/,Zr=/[\\x85\\u2028\\u2029]/,en=/[,\\[\\]\\{\\}]/,tn=/^(?:!|!!|![a-z\\-]+!)$/i,rn=/^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;function _class(i){return Object.prototype.toString.call(i)}function is_EOL(i){return 10===i||13===i}function is_WHITE_SPACE(i){return 9===i||32===i}function is_WS_OR_EOL(i){return 9===i||32===i||10===i||13===i}function is_FLOW_INDICATOR(i){return 44===i||91===i||93===i||123===i||125===i}function fromHexCode(i){var s;return 48<=i&&i<=57?i-48:97<=(s=32|i)&&s<=102?s-97+10:-1}function simpleEscapeSequence(i){return 48===i?\"\\0\":97===i?\"\u0007\":98===i?\"\\b\":116===i||9===i?\"\\t\":110===i?\"\\n\":118===i?\"\\v\":102===i?\"\\f\":114===i?\"\\r\":101===i?\"\u001b\":32===i?\" \":34===i?'\"':47===i?\"/\":92===i?\"\\\\\":78===i?\"\":95===i?\" \":76===i?\"\\u2028\":80===i?\"\\u2029\":\"\"}function charFromCodepoint(i){return i<=65535?String.fromCharCode(i):String.fromCharCode(55296+(i-65536>>10),56320+(i-65536&1023))}for(var nn=new Array(256),on=new Array(256),an=0;an<256;an++)nn[an]=simpleEscapeSequence(an)?1:0,on[an]=simpleEscapeSequence(an);function State$1(i,s){this.input=i,this.filename=s.filename||null,this.schema=s.schema||zr,this.onWarning=s.onWarning||null,this.legacy=s.legacy||!1,this.json=s.json||!1,this.listener=s.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=i.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function generateError(i,s){var u={name:i.filename,buffer:i.input.slice(0,-1),position:i.position,line:i.line,column:i.position-i.lineStart};return u.snippet=dr(u),new pr(s,u)}function throwError(i,s){throw generateError(i,s)}function throwWarning(i,s){i.onWarning&&i.onWarning.call(null,generateError(i,s))}var sn={YAML:function handleYamlDirective(i,s,u){var m,v,_;null!==i.version&&throwError(i,\"duplication of %YAML directive\"),1!==u.length&&throwError(i,\"YAML directive accepts exactly one argument\"),null===(m=/^([0-9]+)\\.([0-9]+)$/.exec(u[0]))&&throwError(i,\"ill-formed argument of the YAML directive\"),v=parseInt(m[1],10),_=parseInt(m[2],10),1!==v&&throwError(i,\"unacceptable YAML version of the document\"),i.version=u[0],i.checkLineBreaks=_<2,1!==_&&2!==_&&throwWarning(i,\"unsupported YAML version of the document\")},TAG:function handleTagDirective(i,s,u){var m,v;2!==u.length&&throwError(i,\"TAG directive accepts exactly two arguments\"),m=u[0],v=u[1],tn.test(m)||throwError(i,\"ill-formed tag handle (first argument) of the TAG directive\"),Vr.call(i.tagMap,m)&&throwError(i,'there is a previously declared suffix for \"'+m+'\" tag handle'),rn.test(v)||throwError(i,\"ill-formed tag prefix (second argument) of the TAG directive\");try{v=decodeURIComponent(v)}catch(s){throwError(i,\"tag prefix is malformed: \"+v)}i.tagMap[m]=v}};function captureSegment(i,s,u,m){var v,_,j,M;if(s<u){if(M=i.input.slice(s,u),m)for(v=0,_=M.length;v<_;v+=1)9===(j=M.charCodeAt(v))||32<=j&&j<=1114111||throwError(i,\"expected valid JSON character\");else Qr.test(M)&&throwError(i,\"the stream contains non-printable characters\");i.result+=M}}function mergeMappings(i,s,u,m){var v,_,j,M;for(ur.isObject(u)||throwError(i,\"cannot merge mappings; the provided source object is unacceptable\"),j=0,M=(v=Object.keys(u)).length;j<M;j+=1)_=v[j],Vr.call(s,_)||(s[_]=u[_],m[_]=!0)}function storeMappingPair(i,s,u,m,v,_,j,M,$){var W,X;if(Array.isArray(v))for(W=0,X=(v=Array.prototype.slice.call(v)).length;W<X;W+=1)Array.isArray(v[W])&&throwError(i,\"nested arrays are not supported inside keys\"),\"object\"==typeof v&&\"[object Object]\"===_class(v[W])&&(v[W]=\"[object Object]\");if(\"object\"==typeof v&&\"[object Object]\"===_class(v)&&(v=\"[object Object]\"),v=String(v),null===s&&(s={}),\"tag:yaml.org,2002:merge\"===m)if(Array.isArray(_))for(W=0,X=_.length;W<X;W+=1)mergeMappings(i,s,_[W],u);else mergeMappings(i,s,_,u);else i.json||Vr.call(u,v)||!Vr.call(s,v)||(i.line=j||i.line,i.lineStart=M||i.lineStart,i.position=$||i.position,throwError(i,\"duplicated mapping key\")),\"__proto__\"===v?Object.defineProperty(s,v,{configurable:!0,enumerable:!0,writable:!0,value:_}):s[v]=_,delete u[v];return s}function readLineBreak(i){var s;10===(s=i.input.charCodeAt(i.position))?i.position++:13===s?(i.position++,10===i.input.charCodeAt(i.position)&&i.position++):throwError(i,\"a line break is expected\"),i.line+=1,i.lineStart=i.position,i.firstTabInLine=-1}function skipSeparationSpace(i,s,u){for(var m=0,v=i.input.charCodeAt(i.position);0!==v;){for(;is_WHITE_SPACE(v);)9===v&&-1===i.firstTabInLine&&(i.firstTabInLine=i.position),v=i.input.charCodeAt(++i.position);if(s&&35===v)do{v=i.input.charCodeAt(++i.position)}while(10!==v&&13!==v&&0!==v);if(!is_EOL(v))break;for(readLineBreak(i),v=i.input.charCodeAt(i.position),m++,i.lineIndent=0;32===v;)i.lineIndent++,v=i.input.charCodeAt(++i.position)}return-1!==u&&0!==m&&i.lineIndent<u&&throwWarning(i,\"deficient indentation\"),m}function testDocumentSeparator(i){var s,u=i.position;return!(45!==(s=i.input.charCodeAt(u))&&46!==s||s!==i.input.charCodeAt(u+1)||s!==i.input.charCodeAt(u+2)||(u+=3,0!==(s=i.input.charCodeAt(u))&&!is_WS_OR_EOL(s)))}function writeFoldedLines(i,s){1===s?i.result+=\" \":s>1&&(i.result+=ur.repeat(\"\\n\",s-1))}function readBlockSequence(i,s){var u,m,v=i.tag,_=i.anchor,j=[],M=!1;if(-1!==i.firstTabInLine)return!1;for(null!==i.anchor&&(i.anchorMap[i.anchor]=j),m=i.input.charCodeAt(i.position);0!==m&&(-1!==i.firstTabInLine&&(i.position=i.firstTabInLine,throwError(i,\"tab characters must not be used in indentation\")),45===m)&&is_WS_OR_EOL(i.input.charCodeAt(i.position+1));)if(M=!0,i.position++,skipSeparationSpace(i,!0,-1)&&i.lineIndent<=s)j.push(null),m=i.input.charCodeAt(i.position);else if(u=i.line,composeNode(i,s,Hr,!1,!0),j.push(i.result),skipSeparationSpace(i,!0,-1),m=i.input.charCodeAt(i.position),(i.line===u||i.lineIndent>s)&&0!==m)throwError(i,\"bad indentation of a sequence entry\");else if(i.lineIndent<s)break;return!!M&&(i.tag=v,i.anchor=_,i.kind=\"sequence\",i.result=j,!0)}function readTagProperty(i){var s,u,m,v,_=!1,j=!1;if(33!==(v=i.input.charCodeAt(i.position)))return!1;if(null!==i.tag&&throwError(i,\"duplication of a tag property\"),60===(v=i.input.charCodeAt(++i.position))?(_=!0,v=i.input.charCodeAt(++i.position)):33===v?(j=!0,u=\"!!\",v=i.input.charCodeAt(++i.position)):u=\"!\",s=i.position,_){do{v=i.input.charCodeAt(++i.position)}while(0!==v&&62!==v);i.position<i.length?(m=i.input.slice(s,i.position),v=i.input.charCodeAt(++i.position)):throwError(i,\"unexpected end of the stream within a verbatim tag\")}else{for(;0!==v&&!is_WS_OR_EOL(v);)33===v&&(j?throwError(i,\"tag suffix cannot contain exclamation marks\"):(u=i.input.slice(s-1,i.position+1),tn.test(u)||throwError(i,\"named tag handle cannot contain such characters\"),j=!0,s=i.position+1)),v=i.input.charCodeAt(++i.position);m=i.input.slice(s,i.position),en.test(m)&&throwError(i,\"tag suffix cannot contain flow indicator characters\")}m&&!rn.test(m)&&throwError(i,\"tag name cannot contain such characters: \"+m);try{m=decodeURIComponent(m)}catch(s){throwError(i,\"tag name is malformed: \"+m)}return _?i.tag=m:Vr.call(i.tagMap,u)?i.tag=i.tagMap[u]+m:\"!\"===u?i.tag=\"!\"+m:\"!!\"===u?i.tag=\"tag:yaml.org,2002:\"+m:throwError(i,'undeclared tag handle \"'+u+'\"'),!0}function readAnchorProperty(i){var s,u;if(38!==(u=i.input.charCodeAt(i.position)))return!1;for(null!==i.anchor&&throwError(i,\"duplication of an anchor property\"),u=i.input.charCodeAt(++i.position),s=i.position;0!==u&&!is_WS_OR_EOL(u)&&!is_FLOW_INDICATOR(u);)u=i.input.charCodeAt(++i.position);return i.position===s&&throwError(i,\"name of an anchor node must contain at least one character\"),i.anchor=i.input.slice(s,i.position),!0}function composeNode(i,s,u,m,v){var _,j,M,$,W,X,Y,Z,ee,ie=1,ae=!1,ce=!1;if(null!==i.listener&&i.listener(\"open\",i),i.tag=null,i.anchor=null,i.kind=null,i.result=null,_=j=M=Jr===u||Hr===u,m&&skipSeparationSpace(i,!0,-1)&&(ae=!0,i.lineIndent>s?ie=1:i.lineIndent===s?ie=0:i.lineIndent<s&&(ie=-1)),1===ie)for(;readTagProperty(i)||readAnchorProperty(i);)skipSeparationSpace(i,!0,-1)?(ae=!0,M=_,i.lineIndent>s?ie=1:i.lineIndent===s?ie=0:i.lineIndent<s&&(ie=-1)):M=!1;if(M&&(M=ae||v),1!==ie&&Jr!==u||(Z=Wr===u||Kr===u?s:s+1,ee=i.position-i.lineStart,1===ie?M&&(readBlockSequence(i,ee)||function readBlockMapping(i,s,u){var m,v,_,j,M,$,W,X=i.tag,Y=i.anchor,Z={},ee=Object.create(null),ie=null,ae=null,ce=null,le=!1,pe=!1;if(-1!==i.firstTabInLine)return!1;for(null!==i.anchor&&(i.anchorMap[i.anchor]=Z),W=i.input.charCodeAt(i.position);0!==W;){if(le||-1===i.firstTabInLine||(i.position=i.firstTabInLine,throwError(i,\"tab characters must not be used in indentation\")),m=i.input.charCodeAt(i.position+1),_=i.line,63!==W&&58!==W||!is_WS_OR_EOL(m)){if(j=i.line,M=i.lineStart,$=i.position,!composeNode(i,u,Kr,!1,!0))break;if(i.line===_){for(W=i.input.charCodeAt(i.position);is_WHITE_SPACE(W);)W=i.input.charCodeAt(++i.position);if(58===W)is_WS_OR_EOL(W=i.input.charCodeAt(++i.position))||throwError(i,\"a whitespace character is expected after the key-value separator within a block mapping\"),le&&(storeMappingPair(i,Z,ee,ie,ae,null,j,M,$),ie=ae=ce=null),pe=!0,le=!1,v=!1,ie=i.tag,ae=i.result;else{if(!pe)return i.tag=X,i.anchor=Y,!0;throwError(i,\"can not read an implicit mapping pair; a colon is missed\")}}else{if(!pe)return i.tag=X,i.anchor=Y,!0;throwError(i,\"can not read a block mapping entry; a multiline key may not be an implicit key\")}}else 63===W?(le&&(storeMappingPair(i,Z,ee,ie,ae,null,j,M,$),ie=ae=ce=null),pe=!0,le=!0,v=!0):le?(le=!1,v=!0):throwError(i,\"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\"),i.position+=1,W=m;if((i.line===_||i.lineIndent>s)&&(le&&(j=i.line,M=i.lineStart,$=i.position),composeNode(i,s,Jr,!0,v)&&(le?ae=i.result:ce=i.result),le||(storeMappingPair(i,Z,ee,ie,ae,ce,j,M,$),ie=ae=ce=null),skipSeparationSpace(i,!0,-1),W=i.input.charCodeAt(i.position)),(i.line===_||i.lineIndent>s)&&0!==W)throwError(i,\"bad indentation of a mapping entry\");else if(i.lineIndent<s)break}return le&&storeMappingPair(i,Z,ee,ie,ae,null,j,M,$),pe&&(i.tag=X,i.anchor=Y,i.kind=\"mapping\",i.result=Z),pe}(i,ee,Z))||function readFlowCollection(i,s){var u,m,v,_,j,M,$,W,X,Y,Z,ee,ie=!0,ae=i.tag,ce=i.anchor,le=Object.create(null);if(91===(ee=i.input.charCodeAt(i.position)))j=93,W=!1,_=[];else{if(123!==ee)return!1;j=125,W=!0,_={}}for(null!==i.anchor&&(i.anchorMap[i.anchor]=_),ee=i.input.charCodeAt(++i.position);0!==ee;){if(skipSeparationSpace(i,!0,s),(ee=i.input.charCodeAt(i.position))===j)return i.position++,i.tag=ae,i.anchor=ce,i.kind=W?\"mapping\":\"sequence\",i.result=_,!0;ie?44===ee&&throwError(i,\"expected the node content, but found ','\"):throwError(i,\"missed comma between flow collection entries\"),Z=null,M=$=!1,63===ee&&is_WS_OR_EOL(i.input.charCodeAt(i.position+1))&&(M=$=!0,i.position++,skipSeparationSpace(i,!0,s)),u=i.line,m=i.lineStart,v=i.position,composeNode(i,s,Wr,!1,!0),Y=i.tag,X=i.result,skipSeparationSpace(i,!0,s),ee=i.input.charCodeAt(i.position),!$&&i.line!==u||58!==ee||(M=!0,ee=i.input.charCodeAt(++i.position),skipSeparationSpace(i,!0,s),composeNode(i,s,Wr,!1,!0),Z=i.result),W?storeMappingPair(i,_,le,Y,X,Z,u,m,v):M?_.push(storeMappingPair(i,null,le,Y,X,Z,u,m,v)):_.push(X),skipSeparationSpace(i,!0,s),44===(ee=i.input.charCodeAt(i.position))?(ie=!0,ee=i.input.charCodeAt(++i.position)):ie=!1}throwError(i,\"unexpected end of the stream within a flow collection\")}(i,Z)?ce=!0:(j&&function readBlockScalar(i,s){var u,m,v,_,j,M=Gr,$=!1,W=!1,X=s,Y=0,Z=!1;if(124===(_=i.input.charCodeAt(i.position)))m=!1;else{if(62!==_)return!1;m=!0}for(i.kind=\"scalar\",i.result=\"\";0!==_;)if(43===(_=i.input.charCodeAt(++i.position))||45===_)Gr===M?M=43===_?Yr:Xr:throwError(i,\"repeat of a chomping mode identifier\");else{if(!((v=48<=(j=_)&&j<=57?j-48:-1)>=0))break;0===v?throwError(i,\"bad explicit indentation width of a block scalar; it cannot be less than one\"):W?throwError(i,\"repeat of an indentation width identifier\"):(X=s+v-1,W=!0)}if(is_WHITE_SPACE(_)){do{_=i.input.charCodeAt(++i.position)}while(is_WHITE_SPACE(_));if(35===_)do{_=i.input.charCodeAt(++i.position)}while(!is_EOL(_)&&0!==_)}for(;0!==_;){for(readLineBreak(i),i.lineIndent=0,_=i.input.charCodeAt(i.position);(!W||i.lineIndent<X)&&32===_;)i.lineIndent++,_=i.input.charCodeAt(++i.position);if(!W&&i.lineIndent>X&&(X=i.lineIndent),is_EOL(_))Y++;else{if(i.lineIndent<X){M===Yr?i.result+=ur.repeat(\"\\n\",$?1+Y:Y):M===Gr&&$&&(i.result+=\"\\n\");break}for(m?is_WHITE_SPACE(_)?(Z=!0,i.result+=ur.repeat(\"\\n\",$?1+Y:Y)):Z?(Z=!1,i.result+=ur.repeat(\"\\n\",Y+1)):0===Y?$&&(i.result+=\" \"):i.result+=ur.repeat(\"\\n\",Y):i.result+=ur.repeat(\"\\n\",$?1+Y:Y),$=!0,W=!0,Y=0,u=i.position;!is_EOL(_)&&0!==_;)_=i.input.charCodeAt(++i.position);captureSegment(i,u,i.position,!1)}}return!0}(i,Z)||function readSingleQuotedScalar(i,s){var u,m,v;if(39!==(u=i.input.charCodeAt(i.position)))return!1;for(i.kind=\"scalar\",i.result=\"\",i.position++,m=v=i.position;0!==(u=i.input.charCodeAt(i.position));)if(39===u){if(captureSegment(i,m,i.position,!0),39!==(u=i.input.charCodeAt(++i.position)))return!0;m=i.position,i.position++,v=i.position}else is_EOL(u)?(captureSegment(i,m,v,!0),writeFoldedLines(i,skipSeparationSpace(i,!1,s)),m=v=i.position):i.position===i.lineStart&&testDocumentSeparator(i)?throwError(i,\"unexpected end of the document within a single quoted scalar\"):(i.position++,v=i.position);throwError(i,\"unexpected end of the stream within a single quoted scalar\")}(i,Z)||function readDoubleQuotedScalar(i,s){var u,m,v,_,j,M,$;if(34!==(M=i.input.charCodeAt(i.position)))return!1;for(i.kind=\"scalar\",i.result=\"\",i.position++,u=m=i.position;0!==(M=i.input.charCodeAt(i.position));){if(34===M)return captureSegment(i,u,i.position,!0),i.position++,!0;if(92===M){if(captureSegment(i,u,i.position,!0),is_EOL(M=i.input.charCodeAt(++i.position)))skipSeparationSpace(i,!1,s);else if(M<256&&nn[M])i.result+=on[M],i.position++;else if((j=120===($=M)?2:117===$?4:85===$?8:0)>0){for(v=j,_=0;v>0;v--)(j=fromHexCode(M=i.input.charCodeAt(++i.position)))>=0?_=(_<<4)+j:throwError(i,\"expected hexadecimal character\");i.result+=charFromCodepoint(_),i.position++}else throwError(i,\"unknown escape sequence\");u=m=i.position}else is_EOL(M)?(captureSegment(i,u,m,!0),writeFoldedLines(i,skipSeparationSpace(i,!1,s)),u=m=i.position):i.position===i.lineStart&&testDocumentSeparator(i)?throwError(i,\"unexpected end of the document within a double quoted scalar\"):(i.position++,m=i.position)}throwError(i,\"unexpected end of the stream within a double quoted scalar\")}(i,Z)?ce=!0:!function readAlias(i){var s,u,m;if(42!==(m=i.input.charCodeAt(i.position)))return!1;for(m=i.input.charCodeAt(++i.position),s=i.position;0!==m&&!is_WS_OR_EOL(m)&&!is_FLOW_INDICATOR(m);)m=i.input.charCodeAt(++i.position);return i.position===s&&throwError(i,\"name of an alias node must contain at least one character\"),u=i.input.slice(s,i.position),Vr.call(i.anchorMap,u)||throwError(i,'unidentified alias \"'+u+'\"'),i.result=i.anchorMap[u],skipSeparationSpace(i,!0,-1),!0}(i)?function readPlainScalar(i,s,u){var m,v,_,j,M,$,W,X,Y=i.kind,Z=i.result;if(is_WS_OR_EOL(X=i.input.charCodeAt(i.position))||is_FLOW_INDICATOR(X)||35===X||38===X||42===X||33===X||124===X||62===X||39===X||34===X||37===X||64===X||96===X)return!1;if((63===X||45===X)&&(is_WS_OR_EOL(m=i.input.charCodeAt(i.position+1))||u&&is_FLOW_INDICATOR(m)))return!1;for(i.kind=\"scalar\",i.result=\"\",v=_=i.position,j=!1;0!==X;){if(58===X){if(is_WS_OR_EOL(m=i.input.charCodeAt(i.position+1))||u&&is_FLOW_INDICATOR(m))break}else if(35===X){if(is_WS_OR_EOL(i.input.charCodeAt(i.position-1)))break}else{if(i.position===i.lineStart&&testDocumentSeparator(i)||u&&is_FLOW_INDICATOR(X))break;if(is_EOL(X)){if(M=i.line,$=i.lineStart,W=i.lineIndent,skipSeparationSpace(i,!1,-1),i.lineIndent>=s){j=!0,X=i.input.charCodeAt(i.position);continue}i.position=_,i.line=M,i.lineStart=$,i.lineIndent=W;break}}j&&(captureSegment(i,v,_,!1),writeFoldedLines(i,i.line-M),v=_=i.position,j=!1),is_WHITE_SPACE(X)||(_=i.position+1),X=i.input.charCodeAt(++i.position)}return captureSegment(i,v,_,!1),!!i.result||(i.kind=Y,i.result=Z,!1)}(i,Z,Wr===u)&&(ce=!0,null===i.tag&&(i.tag=\"?\")):(ce=!0,null===i.tag&&null===i.anchor||throwError(i,\"alias node should not have any properties\")),null!==i.anchor&&(i.anchorMap[i.anchor]=i.result)):0===ie&&(ce=M&&readBlockSequence(i,ee))),null===i.tag)null!==i.anchor&&(i.anchorMap[i.anchor]=i.result);else if(\"?\"===i.tag){for(null!==i.result&&\"scalar\"!==i.kind&&throwError(i,'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"'+i.kind+'\"'),$=0,W=i.implicitTypes.length;$<W;$+=1)if((Y=i.implicitTypes[$]).resolve(i.result)){i.result=Y.construct(i.result),i.tag=Y.tag,null!==i.anchor&&(i.anchorMap[i.anchor]=i.result);break}}else if(\"!\"!==i.tag){if(Vr.call(i.typeMap[i.kind||\"fallback\"],i.tag))Y=i.typeMap[i.kind||\"fallback\"][i.tag];else for(Y=null,$=0,W=(X=i.typeMap.multi[i.kind||\"fallback\"]).length;$<W;$+=1)if(i.tag.slice(0,X[$].tag.length)===X[$].tag){Y=X[$];break}Y||throwError(i,\"unknown tag !<\"+i.tag+\">\"),null!==i.result&&Y.kind!==i.kind&&throwError(i,\"unacceptable node kind for !<\"+i.tag+'> tag; it should be \"'+Y.kind+'\", not \"'+i.kind+'\"'),Y.resolve(i.result,i.tag)?(i.result=Y.construct(i.result,i.tag),null!==i.anchor&&(i.anchorMap[i.anchor]=i.result)):throwError(i,\"cannot resolve a node with !<\"+i.tag+\"> explicit tag\")}return null!==i.listener&&i.listener(\"close\",i),null!==i.tag||null!==i.anchor||ce}function readDocument(i){var s,u,m,v,_=i.position,j=!1;for(i.version=null,i.checkLineBreaks=i.legacy,i.tagMap=Object.create(null),i.anchorMap=Object.create(null);0!==(v=i.input.charCodeAt(i.position))&&(skipSeparationSpace(i,!0,-1),v=i.input.charCodeAt(i.position),!(i.lineIndent>0||37!==v));){for(j=!0,v=i.input.charCodeAt(++i.position),s=i.position;0!==v&&!is_WS_OR_EOL(v);)v=i.input.charCodeAt(++i.position);for(m=[],(u=i.input.slice(s,i.position)).length<1&&throwError(i,\"directive name must not be less than one character in length\");0!==v;){for(;is_WHITE_SPACE(v);)v=i.input.charCodeAt(++i.position);if(35===v){do{v=i.input.charCodeAt(++i.position)}while(0!==v&&!is_EOL(v));break}if(is_EOL(v))break;for(s=i.position;0!==v&&!is_WS_OR_EOL(v);)v=i.input.charCodeAt(++i.position);m.push(i.input.slice(s,i.position))}0!==v&&readLineBreak(i),Vr.call(sn,u)?sn[u](i,u,m):throwWarning(i,'unknown document directive \"'+u+'\"')}skipSeparationSpace(i,!0,-1),0===i.lineIndent&&45===i.input.charCodeAt(i.position)&&45===i.input.charCodeAt(i.position+1)&&45===i.input.charCodeAt(i.position+2)?(i.position+=3,skipSeparationSpace(i,!0,-1)):j&&throwError(i,\"directives end mark is expected\"),composeNode(i,i.lineIndent-1,Jr,!1,!0),skipSeparationSpace(i,!0,-1),i.checkLineBreaks&&Zr.test(i.input.slice(_,i.position))&&throwWarning(i,\"non-ASCII line breaks are interpreted as content\"),i.documents.push(i.result),i.position===i.lineStart&&testDocumentSeparator(i)?46===i.input.charCodeAt(i.position)&&(i.position+=3,skipSeparationSpace(i,!0,-1)):i.position<i.length-1&&throwError(i,\"end of the stream or a document separator is expected\")}function loadDocuments(i,s){s=s||{},0!==(i=String(i)).length&&(10!==i.charCodeAt(i.length-1)&&13!==i.charCodeAt(i.length-1)&&(i+=\"\\n\"),65279===i.charCodeAt(0)&&(i=i.slice(1)));var u=new State$1(i,s),m=i.indexOf(\"\\0\");for(-1!==m&&(u.position=m,throwError(u,\"null byte is not allowed in input\")),u.input+=\"\\0\";32===u.input.charCodeAt(u.position);)u.lineIndent+=1,u.position+=1;for(;u.position<u.length-1;)readDocument(u);return u.documents}var cn=function loadAll$1(i,s,u){null!==s&&\"object\"==typeof s&&void 0===u&&(u=s,s=null);var m=loadDocuments(i,u);if(\"function\"!=typeof s)return m;for(var v=0,_=m.length;v<_;v+=1)s(m[v])},ln={loadAll:cn,load:function load$1(i,s){var u=loadDocuments(i,s);if(0!==u.length){if(1===u.length)return u[0];throw new pr(\"expected a single document in the stream, but found more\")}}},un=Object.prototype.toString,pn=Object.prototype.hasOwnProperty,hn=65279,dn=9,fn=10,mn=13,yn=32,gn=33,vn=34,bn=35,_n=37,wn=38,En=39,Sn=42,xn=44,On=45,kn=58,An=61,Cn=62,jn=63,Pn=64,In=91,Nn=93,Tn=96,Mn=123,Rn=124,Dn=125,Bn={0:\"\\\\0\",7:\"\\\\a\",8:\"\\\\b\",9:\"\\\\t\",10:\"\\\\n\",11:\"\\\\v\",12:\"\\\\f\",13:\"\\\\r\",27:\"\\\\e\",34:'\\\\\"',92:\"\\\\\\\\\",133:\"\\\\N\",160:\"\\\\_\",8232:\"\\\\L\",8233:\"\\\\P\"},Ln=[\"y\",\"Y\",\"yes\",\"Yes\",\"YES\",\"on\",\"On\",\"ON\",\"n\",\"N\",\"no\",\"No\",\"NO\",\"off\",\"Off\",\"OFF\"],Fn=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;function encodeHex(i){var s,u,m;if(s=i.toString(16).toUpperCase(),i<=255)u=\"x\",m=2;else if(i<=65535)u=\"u\",m=4;else{if(!(i<=4294967295))throw new pr(\"code point within a string may not be greater than 0xFFFFFFFF\");u=\"U\",m=8}return\"\\\\\"+u+ur.repeat(\"0\",m-s.length)+s}var qn=1,$n=2;function State(i){this.schema=i.schema||zr,this.indent=Math.max(1,i.indent||2),this.noArrayIndent=i.noArrayIndent||!1,this.skipInvalid=i.skipInvalid||!1,this.flowLevel=ur.isNothing(i.flowLevel)?-1:i.flowLevel,this.styleMap=function compileStyleMap(i,s){var u,m,v,_,j,M,$;if(null===s)return{};for(u={},v=0,_=(m=Object.keys(s)).length;v<_;v+=1)j=m[v],M=String(s[j]),\"!!\"===j.slice(0,2)&&(j=\"tag:yaml.org,2002:\"+j.slice(2)),($=i.compiledTypeMap.fallback[j])&&pn.call($.styleAliases,M)&&(M=$.styleAliases[M]),u[j]=M;return u}(this.schema,i.styles||null),this.sortKeys=i.sortKeys||!1,this.lineWidth=i.lineWidth||80,this.noRefs=i.noRefs||!1,this.noCompatMode=i.noCompatMode||!1,this.condenseFlow=i.condenseFlow||!1,this.quotingType='\"'===i.quotingType?$n:qn,this.forceQuotes=i.forceQuotes||!1,this.replacer=\"function\"==typeof i.replacer?i.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result=\"\",this.duplicates=[],this.usedDuplicates=null}function indentString(i,s){for(var u,m=ur.repeat(\" \",s),v=0,_=-1,j=\"\",M=i.length;v<M;)-1===(_=i.indexOf(\"\\n\",v))?(u=i.slice(v),v=M):(u=i.slice(v,_+1),v=_+1),u.length&&\"\\n\"!==u&&(j+=m),j+=u;return j}function generateNextLine(i,s){return\"\\n\"+ur.repeat(\" \",i.indent*s)}function isWhitespace(i){return i===yn||i===dn}function isPrintable(i){return 32<=i&&i<=126||161<=i&&i<=55295&&8232!==i&&8233!==i||57344<=i&&i<=65533&&i!==hn||65536<=i&&i<=1114111}function isNsCharOrWhitespace(i){return isPrintable(i)&&i!==hn&&i!==mn&&i!==fn}function isPlainSafe(i,s,u){var m=isNsCharOrWhitespace(i),v=m&&!isWhitespace(i);return(u?m:m&&i!==xn&&i!==In&&i!==Nn&&i!==Mn&&i!==Dn)&&i!==bn&&!(s===kn&&!v)||isNsCharOrWhitespace(s)&&!isWhitespace(s)&&i===bn||s===kn&&v}function codePointAt(i,s){var u,m=i.charCodeAt(s);return m>=55296&&m<=56319&&s+1<i.length&&(u=i.charCodeAt(s+1))>=56320&&u<=57343?1024*(m-55296)+u-56320+65536:m}function needIndentIndicator(i){return/^\\n* /.test(i)}var Un=1,zn=2,Vn=3,Wn=4,Kn=5;function chooseScalarStyle(i,s,u,m,v,_,j,M){var $,W=0,X=null,Y=!1,Z=!1,ee=-1!==m,ie=-1,ae=function isPlainSafeFirst(i){return isPrintable(i)&&i!==hn&&!isWhitespace(i)&&i!==On&&i!==jn&&i!==kn&&i!==xn&&i!==In&&i!==Nn&&i!==Mn&&i!==Dn&&i!==bn&&i!==wn&&i!==Sn&&i!==gn&&i!==Rn&&i!==An&&i!==Cn&&i!==En&&i!==vn&&i!==_n&&i!==Pn&&i!==Tn}(codePointAt(i,0))&&function isPlainSafeLast(i){return!isWhitespace(i)&&i!==kn}(codePointAt(i,i.length-1));if(s||j)for($=0;$<i.length;W>=65536?$+=2:$++){if(!isPrintable(W=codePointAt(i,$)))return Kn;ae=ae&&isPlainSafe(W,X,M),X=W}else{for($=0;$<i.length;W>=65536?$+=2:$++){if((W=codePointAt(i,$))===fn)Y=!0,ee&&(Z=Z||$-ie-1>m&&\" \"!==i[ie+1],ie=$);else if(!isPrintable(W))return Kn;ae=ae&&isPlainSafe(W,X,M),X=W}Z=Z||ee&&$-ie-1>m&&\" \"!==i[ie+1]}return Y||Z?u>9&&needIndentIndicator(i)?Kn:j?_===$n?Kn:zn:Z?Wn:Vn:!ae||j||v(i)?_===$n?Kn:zn:Un}function writeScalar(i,s,u,m,v){i.dump=function(){if(0===s.length)return i.quotingType===$n?'\"\"':\"''\";if(!i.noCompatMode&&(-1!==Ln.indexOf(s)||Fn.test(s)))return i.quotingType===$n?'\"'+s+'\"':\"'\"+s+\"'\";var _=i.indent*Math.max(1,u),j=-1===i.lineWidth?-1:Math.max(Math.min(i.lineWidth,40),i.lineWidth-_),M=m||i.flowLevel>-1&&u>=i.flowLevel;switch(chooseScalarStyle(s,M,i.indent,j,(function testAmbiguity(s){return function testImplicitResolving(i,s){var u,m;for(u=0,m=i.implicitTypes.length;u<m;u+=1)if(i.implicitTypes[u].resolve(s))return!0;return!1}(i,s)}),i.quotingType,i.forceQuotes&&!m,v)){case Un:return s;case zn:return\"'\"+s.replace(/'/g,\"''\")+\"'\";case Vn:return\"|\"+blockHeader(s,i.indent)+dropEndingNewline(indentString(s,_));case Wn:return\">\"+blockHeader(s,i.indent)+dropEndingNewline(indentString(function foldString(i,s){var u,m,v=/(\\n+)([^\\n]*)/g,_=(M=i.indexOf(\"\\n\"),M=-1!==M?M:i.length,v.lastIndex=M,foldLine(i.slice(0,M),s)),j=\"\\n\"===i[0]||\" \"===i[0];var M;for(;m=v.exec(i);){var $=m[1],W=m[2];u=\" \"===W[0],_+=$+(j||u||\"\"===W?\"\":\"\\n\")+foldLine(W,s),j=u}return _}(s,j),_));case Kn:return'\"'+function escapeString(i){for(var s,u=\"\",m=0,v=0;v<i.length;m>=65536?v+=2:v++)m=codePointAt(i,v),!(s=Bn[m])&&isPrintable(m)?(u+=i[v],m>=65536&&(u+=i[v+1])):u+=s||encodeHex(m);return u}(s)+'\"';default:throw new pr(\"impossible error: invalid scalar style\")}}()}function blockHeader(i,s){var u=needIndentIndicator(i)?String(s):\"\",m=\"\\n\"===i[i.length-1];return u+(m&&(\"\\n\"===i[i.length-2]||\"\\n\"===i)?\"+\":m?\"\":\"-\")+\"\\n\"}function dropEndingNewline(i){return\"\\n\"===i[i.length-1]?i.slice(0,-1):i}function foldLine(i,s){if(\"\"===i||\" \"===i[0])return i;for(var u,m,v=/ [^ ]/g,_=0,j=0,M=0,$=\"\";u=v.exec(i);)(M=u.index)-_>s&&(m=j>_?j:M,$+=\"\\n\"+i.slice(_,m),_=m+1),j=M;return $+=\"\\n\",i.length-_>s&&j>_?$+=i.slice(_,j)+\"\\n\"+i.slice(j+1):$+=i.slice(_),$.slice(1)}function writeBlockSequence(i,s,u,m){var v,_,j,M=\"\",$=i.tag;for(v=0,_=u.length;v<_;v+=1)j=u[v],i.replacer&&(j=i.replacer.call(u,String(v),j)),(writeNode(i,s+1,j,!0,!0,!1,!0)||void 0===j&&writeNode(i,s+1,null,!0,!0,!1,!0))&&(m&&\"\"===M||(M+=generateNextLine(i,s)),i.dump&&fn===i.dump.charCodeAt(0)?M+=\"-\":M+=\"- \",M+=i.dump);i.tag=$,i.dump=M||\"[]\"}function detectType(i,s,u){var m,v,_,j,M,$;for(_=0,j=(v=u?i.explicitTypes:i.implicitTypes).length;_<j;_+=1)if(((M=v[_]).instanceOf||M.predicate)&&(!M.instanceOf||\"object\"==typeof s&&s instanceof M.instanceOf)&&(!M.predicate||M.predicate(s))){if(u?M.multi&&M.representName?i.tag=M.representName(s):i.tag=M.tag:i.tag=\"?\",M.represent){if($=i.styleMap[M.tag]||M.defaultStyle,\"[object Function]\"===un.call(M.represent))m=M.represent(s,$);else{if(!pn.call(M.represent,$))throw new pr(\"!<\"+M.tag+'> tag resolver accepts not \"'+$+'\" style');m=M.represent[$](s,$)}i.dump=m}return!0}return!1}function writeNode(i,s,u,m,v,_,j){i.tag=null,i.dump=u,detectType(i,u,!1)||detectType(i,u,!0);var M,$=un.call(i.dump),W=m;m&&(m=i.flowLevel<0||i.flowLevel>s);var X,Y,Z=\"[object Object]\"===$||\"[object Array]\"===$;if(Z&&(Y=-1!==(X=i.duplicates.indexOf(u))),(null!==i.tag&&\"?\"!==i.tag||Y||2!==i.indent&&s>0)&&(v=!1),Y&&i.usedDuplicates[X])i.dump=\"*ref_\"+X;else{if(Z&&Y&&!i.usedDuplicates[X]&&(i.usedDuplicates[X]=!0),\"[object Object]\"===$)m&&0!==Object.keys(i.dump).length?(!function writeBlockMapping(i,s,u,m){var v,_,j,M,$,W,X=\"\",Y=i.tag,Z=Object.keys(u);if(!0===i.sortKeys)Z.sort();else if(\"function\"==typeof i.sortKeys)Z.sort(i.sortKeys);else if(i.sortKeys)throw new pr(\"sortKeys must be a boolean or a function\");for(v=0,_=Z.length;v<_;v+=1)W=\"\",m&&\"\"===X||(W+=generateNextLine(i,s)),M=u[j=Z[v]],i.replacer&&(M=i.replacer.call(u,j,M)),writeNode(i,s+1,j,!0,!0,!0)&&(($=null!==i.tag&&\"?\"!==i.tag||i.dump&&i.dump.length>1024)&&(i.dump&&fn===i.dump.charCodeAt(0)?W+=\"?\":W+=\"? \"),W+=i.dump,$&&(W+=generateNextLine(i,s)),writeNode(i,s+1,M,!0,$)&&(i.dump&&fn===i.dump.charCodeAt(0)?W+=\":\":W+=\": \",X+=W+=i.dump));i.tag=Y,i.dump=X||\"{}\"}(i,s,i.dump,v),Y&&(i.dump=\"&ref_\"+X+i.dump)):(!function writeFlowMapping(i,s,u){var m,v,_,j,M,$=\"\",W=i.tag,X=Object.keys(u);for(m=0,v=X.length;m<v;m+=1)M=\"\",\"\"!==$&&(M+=\", \"),i.condenseFlow&&(M+='\"'),j=u[_=X[m]],i.replacer&&(j=i.replacer.call(u,_,j)),writeNode(i,s,_,!1,!1)&&(i.dump.length>1024&&(M+=\"? \"),M+=i.dump+(i.condenseFlow?'\"':\"\")+\":\"+(i.condenseFlow?\"\":\" \"),writeNode(i,s,j,!1,!1)&&($+=M+=i.dump));i.tag=W,i.dump=\"{\"+$+\"}\"}(i,s,i.dump),Y&&(i.dump=\"&ref_\"+X+\" \"+i.dump));else if(\"[object Array]\"===$)m&&0!==i.dump.length?(i.noArrayIndent&&!j&&s>0?writeBlockSequence(i,s-1,i.dump,v):writeBlockSequence(i,s,i.dump,v),Y&&(i.dump=\"&ref_\"+X+i.dump)):(!function writeFlowSequence(i,s,u){var m,v,_,j=\"\",M=i.tag;for(m=0,v=u.length;m<v;m+=1)_=u[m],i.replacer&&(_=i.replacer.call(u,String(m),_)),(writeNode(i,s,_,!1,!1)||void 0===_&&writeNode(i,s,null,!1,!1))&&(\"\"!==j&&(j+=\",\"+(i.condenseFlow?\"\":\" \")),j+=i.dump);i.tag=M,i.dump=\"[\"+j+\"]\"}(i,s,i.dump),Y&&(i.dump=\"&ref_\"+X+\" \"+i.dump));else{if(\"[object String]\"!==$){if(\"[object Undefined]\"===$)return!1;if(i.skipInvalid)return!1;throw new pr(\"unacceptable kind of an object to dump \"+$)}\"?\"!==i.tag&&writeScalar(i,i.dump,s,_,W)}null!==i.tag&&\"?\"!==i.tag&&(M=encodeURI(\"!\"===i.tag[0]?i.tag.slice(1):i.tag).replace(/!/g,\"%21\"),M=\"!\"===i.tag[0]?\"!\"+M:\"tag:yaml.org,2002:\"===M.slice(0,18)?\"!!\"+M.slice(18):\"!<\"+M+\">\",i.dump=M+\" \"+i.dump)}return!0}function getDuplicateReferences(i,s){var u,m,v=[],_=[];for(inspectNode(i,v,_),u=0,m=_.length;u<m;u+=1)s.duplicates.push(v[_[u]]);s.usedDuplicates=new Array(m)}function inspectNode(i,s,u){var m,v,_;if(null!==i&&\"object\"==typeof i)if(-1!==(v=s.indexOf(i)))-1===u.indexOf(v)&&u.push(v);else if(s.push(i),Array.isArray(i))for(v=0,_=i.length;v<_;v+=1)inspectNode(i[v],s,u);else for(v=0,_=(m=Object.keys(i)).length;v<_;v+=1)inspectNode(i[m[v]],s,u)}var Hn=function dump$1(i,s){var u=new State(s=s||{});u.noRefs||getDuplicateReferences(i,u);var m=i;return u.replacer&&(m=u.replacer.call({\"\":m},\"\",m)),writeNode(u,0,m,!0,!0)?u.dump+\"\\n\":\"\"};function renamed(i,s){return function(){throw new Error(\"Function yaml.\"+i+\" is removed in js-yaml 4. Use yaml.\"+s+\" instead, which is now safe by default.\")}}var Jn=yr,Gn=gr,Xn=wr,Yn=Cr,Qn=jr,Zn=zr,eo=ln.load,to=ln.loadAll,ro={dump:Hn}.dump,no=pr,oo={binary:Rr,float:Ar,map:_r,null:Er,pairs:qr,set:Ur,timestamp:Nr,bool:Sr,int:xr,merge:Tr,omap:Lr,seq:br,str:vr},io=renamed(\"safeLoad\",\"load\"),ao=renamed(\"safeLoadAll\",\"loadAll\"),so=renamed(\"safeDump\",\"dump\");const co={Type:Jn,Schema:Gn,FAILSAFE_SCHEMA:Xn,JSON_SCHEMA:Yn,CORE_SCHEMA:Qn,DEFAULT_SCHEMA:Zn,load:eo,loadAll:to,dump:ro,YAMLException:no,types:oo,safeLoad:io,safeLoadAll:ao,safeDump:so},parseYamlConfig=(i,s)=>{try{return co.load(i)}catch(i){return s&&s.errActions.newThrownErr(new Error(i)),{}}},lo=\"configs_update\",uo=\"configs_toggle\";function actions_update(i,s){return{type:lo,payload:{[i]:s}}}function toggle(i){return{type:uo,payload:i}}const actions_loaded=()=>()=>{},downloadConfig=i=>s=>{const{fn:{fetch:u}}=s;return u(i)},getConfigByUrl=(i,s)=>u=>{let{specActions:m}=u;if(i)return m.downloadConfig(i).then(next,next);function next(u){u instanceof Error||u.status>=400?(m.updateLoadingStatus(\"failedConfig\"),m.updateLoadingStatus(\"failedConfig\"),m.updateUrl(\"\"),console.error(u.statusText+\" \"+i.url),s(null)):s(parseYamlConfig(u.text))}},get=(i,s)=>i.getIn(Array.isArray(s)?s:[s]),po={[lo]:(i,s)=>i.merge((0,et.fromJS)(s.payload)),[uo]:(i,s)=>{const u=s.payload,m=i.get(u);return i.set(u,!m)}},ho={getLocalConfig:()=>parseYamlConfig('---\\nurl: \"https://petstore.swagger.io/v2/swagger.json\"\\ndom_id: \"#swagger-ui\"\\nvalidatorUrl: \"https://validator.swagger.io/validator\"\\n')};function configsPlugin(){return{statePlugins:{spec:{actions:_,selectors:ho},configs:{reducers:po,actions:v,selectors:j}}}}const setHash=i=>i?history.pushState(null,null,`#${i}`):window.location.hash=\"\";var fo=__webpack_require__(45172),mo=__webpack_require__.n(fo);const yo=\"layout_scroll_to\",go=\"layout_clear_scroll\";const vo={fn:{getScrollParent:function getScrollParent(i,s){const u=document.documentElement;let m=getComputedStyle(i);const v=\"absolute\"===m.position,_=s?/(auto|scroll|hidden)/:/(auto|scroll)/;if(\"fixed\"===m.position)return u;for(let s=i;s=s.parentElement;)if(m=getComputedStyle(s),(!v||\"static\"!==m.position)&&_.test(m.overflow+m.overflowY+m.overflowX))return s;return u}},statePlugins:{layout:{actions:{scrollToElement:(i,s)=>u=>{try{s=s||u.fn.getScrollParent(i),mo().createScroller(s).to(i)}catch(i){console.error(i)}},scrollTo:i=>({type:yo,payload:Array.isArray(i)?i:[i]}),clearScrollTo:()=>({type:go}),readyToScroll:(i,s)=>u=>{const m=u.layoutSelectors.getScrollToKey();tt().is(m,(0,et.fromJS)(i))&&(u.layoutActions.scrollToElement(s),u.layoutActions.clearScrollTo())},parseDeepLinkHash:i=>s=>{let{layoutActions:u,layoutSelectors:m,getConfigs:v}=s;if(v().deepLinking&&i){let s=i.slice(1);\"!\"===s[0]&&(s=s.slice(1)),\"/\"===s[0]&&(s=s.slice(1));const v=s.split(\"/\").map((i=>i||\"\")),_=m.isShownKeyFromUrlHashArray(v),[j,M=\"\",$=\"\"]=_;if(\"operations\"===j){const i=m.isShownKeyFromUrlHashArray([M]);M.indexOf(\"_\")>-1&&(console.warn(\"Warning: escaping deep link whitespace with `_` will be unsupported in v4.0, use `%20` instead.\"),u.show(i.map((i=>i.replace(/_/g,\" \"))),!0)),u.show(i,!0)}(M.indexOf(\"_\")>-1||$.indexOf(\"_\")>-1)&&(console.warn(\"Warning: escaping deep link whitespace with `_` will be unsupported in v4.0, use `%20` instead.\"),u.show(_.map((i=>i.replace(/_/g,\" \"))),!0)),u.show(_,!0),u.scrollTo(_)}}},selectors:{getScrollToKey:i=>i.get(\"scrollToKey\"),isShownKeyFromUrlHashArray(i,s){const[u,m]=s;return m?[\"operations\",u,m]:u?[\"operations-tag\",u]:[]},urlHashArrayFromIsShownKey(i,s){let[u,m,v]=s;return\"operations\"==u?[m,v]:\"operations-tag\"==u?[m]:[]}},reducers:{[yo]:(i,s)=>i.set(\"scrollToKey\",tt().fromJS(s.payload)),[go]:i=>i.delete(\"scrollToKey\")},wrapActions:{show:(i,s)=>{let{getConfigs:u,layoutSelectors:m}=s;return function(){for(var s=arguments.length,v=new Array(s),_=0;_<s;_++)v[_]=arguments[_];if(i(...v),u().deepLinking)try{let[i,s]=v;i=Array.isArray(i)?i:[i];const u=m.urlHashArrayFromIsShownKey(i);if(!u.length)return;const[_,j]=u;if(!s)return setHash(\"/\");2===u.length?setHash(createDeepLinkPath(`/${encodeURIComponent(_)}/${encodeURIComponent(j)}`)):1===u.length&&setHash(createDeepLinkPath(`/${encodeURIComponent(_)}`))}catch(i){console.error(i)}}}}}}};var bo=__webpack_require__(61125),_o=__webpack_require__.n(bo),wo=__webpack_require__(23930),Eo=__webpack_require__.n(wo);const operation_wrapper=(i,s)=>class OperationWrapper extends He.Component{constructor(){super(...arguments),_o()(this,\"onLoad\",(i=>{const{operation:u}=this.props,{tag:m,operationId:v}=u.toObject();let{isShownKey:_}=u.toObject();_=_||[\"operations\",m,v],s.layoutActions.readyToScroll(_,i)}))}render(){return He.createElement(\"span\",{ref:this.onLoad},He.createElement(i,this.props))}},operation_tag_wrapper=(i,s)=>class OperationTagWrapper extends He.Component{constructor(){super(...arguments),_o()(this,\"onLoad\",(i=>{const{tag:u}=this.props,m=[\"operations-tag\",u];s.layoutActions.readyToScroll(m,i)}))}render(){return He.createElement(\"span\",{ref:this.onLoad},He.createElement(i,this.props))}};function deep_linking(){return[vo,{statePlugins:{configs:{wrapActions:{loaded:(i,s)=>function(){i(...arguments);const u=decodeURIComponent(window.location.hash);s.layoutActions.parseDeepLinkHash(u)}}}},wrapComponents:{operation:operation_wrapper,OperationTag:operation_tag_wrapper}}]}var So=__webpack_require__(54061),xo=__webpack_require__.n(So);function transform(i){return i.map((i=>{let s=\"is not of a type(s)\",u=i.get(\"message\").indexOf(s);if(u>-1){let s=i.get(\"message\").slice(u+19).split(\",\");return i.set(\"message\",i.get(\"message\").slice(0,u)+function makeNewMessage(i){return i.reduce(((i,s,u,m)=>u===m.length-1&&m.length>1?i+\"or \"+s:m[u+1]&&m.length>2?i+s+\", \":m[u+1]?i+s+\" \":i+s),\"should be a\")}(s))}return i}))}var Oo=__webpack_require__(27361),ko=__webpack_require__.n(Oo);function parameter_oneof_transform(i,s){let{jsSpec:u}=s;return i}const Ao=[M,$];function transformErrors(i){let s={jsSpec:{}},u=xo()(Ao,((i,u)=>{try{return u.transform(i,s).filter((i=>!!i))}catch(s){return console.error(\"Transformer error:\",s),i}}),i);return u.filter((i=>!!i)).map((i=>(!i.get(\"line\")&&i.get(\"path\"),i)))}let Co={line:0,level:\"error\",message:\"Unknown error\"};const jo=Xt((i=>i),(i=>i.get(\"errors\",(0,et.List)()))),Po=Xt(jo,(i=>i.last()));function err(s){return{statePlugins:{err:{reducers:{[at]:(i,s)=>{let{payload:u}=s,m=Object.assign(Co,u,{type:\"thrown\"});return i.update(\"errors\",(i=>(i||(0,et.List)()).push((0,et.fromJS)(m)))).update(\"errors\",(i=>transformErrors(i)))},[st]:(i,s)=>{let{payload:u}=s;return u=u.map((i=>(0,et.fromJS)(Object.assign(Co,i,{type:\"thrown\"})))),i.update(\"errors\",(i=>(i||(0,et.List)()).concat((0,et.fromJS)(u)))).update(\"errors\",(i=>transformErrors(i)))},[ct]:(i,s)=>{let{payload:u}=s,m=(0,et.fromJS)(u);return m=m.set(\"type\",\"spec\"),i.update(\"errors\",(i=>(i||(0,et.List)()).push((0,et.fromJS)(m)).sortBy((i=>i.get(\"line\"))))).update(\"errors\",(i=>transformErrors(i)))},[lt]:(i,s)=>{let{payload:u}=s;return u=u.map((i=>(0,et.fromJS)(Object.assign(Co,i,{type:\"spec\"})))),i.update(\"errors\",(i=>(i||(0,et.List)()).concat((0,et.fromJS)(u)))).update(\"errors\",(i=>transformErrors(i)))},[ut]:(i,s)=>{let{payload:u}=s,m=(0,et.fromJS)(Object.assign({},u));return m=m.set(\"type\",\"auth\"),i.update(\"errors\",(i=>(i||(0,et.List)()).push((0,et.fromJS)(m)))).update(\"errors\",(i=>transformErrors(i)))},[pt]:(i,s)=>{let{payload:u}=s;if(!u||!i.get(\"errors\"))return i;let m=i.get(\"errors\").filter((i=>i.keySeq().every((s=>{const m=i.get(s),v=u[s];return!v||m!==v}))));return i.merge({errors:m})},[ht]:(i,s)=>{let{payload:u}=s;if(!u||\"function\"!=typeof u)return i;let m=i.get(\"errors\").filter((i=>u(i)));return i.merge({errors:m})}},actions:i,selectors:W}}}}function opsFilter(i,s){return i.filter(((i,u)=>-1!==u.indexOf(s)))}function filter(){return{fn:{opsFilter}}}var Io=__webpack_require__(23101),No=__webpack_require__.n(Io),To=__webpack_require__(88436),Mo=__webpack_require__.n(To);const Ro=[\"className\",\"width\",\"height\"],ArrowUp=i=>{let{className:s,width:u,height:m}=i,v=Mo()(i,Ro);return He.createElement(\"svg\",No()({xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 20 20\",className:s,width:u,height:m,\"aria-hidden\":\"true\",focusable:\"false\"},v),He.createElement(\"path\",{d:\"M 17.418 14.908 C 17.69 15.176 18.127 15.176 18.397 14.908 C 18.667 14.64 18.668 14.207 18.397 13.939 L 10.489 6.109 C 10.219 5.841 9.782 5.841 9.51 6.109 L 1.602 13.939 C 1.332 14.207 1.332 14.64 1.602 14.908 C 1.873 15.176 2.311 15.176 2.581 14.908 L 10 7.767 L 17.418 14.908 Z\"}))};ArrowUp.defaultProps={className:null,width:20,height:20};const Do=ArrowUp,Bo=[\"className\",\"width\",\"height\"],ArrowDown=i=>{let{className:s,width:u,height:m}=i,v=Mo()(i,Bo);return He.createElement(\"svg\",No()({xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 20 20\",className:s,width:u,height:m,\"aria-hidden\":\"true\",focusable:\"false\"},v),He.createElement(\"path\",{d:\"M17.418 6.109c.272-.268.709-.268.979 0s.271.701 0 .969l-7.908 7.83c-.27.268-.707.268-.979 0l-7.908-7.83c-.27-.268-.27-.701 0-.969.271-.268.709-.268.979 0L10 13.25l7.418-7.141z\"}))};ArrowDown.defaultProps={className:null,width:20,height:20};const Lo=ArrowDown,Fo=[\"className\",\"width\",\"height\"],Arrow=i=>{let{className:s,width:u,height:m}=i,v=Mo()(i,Fo);return He.createElement(\"svg\",No()({xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 20 20\",className:s,width:u,height:m,\"aria-hidden\":\"true\",focusable:\"false\"},v),He.createElement(\"path\",{d:\"M13.25 10L6.109 2.58c-.268-.27-.268-.707 0-.979.268-.27.701-.27.969 0l7.83 7.908c.268.271.268.709 0 .979l-7.83 7.908c-.268.271-.701.27-.969 0-.268-.269-.268-.707 0-.979L13.25 10z\"}))};Arrow.defaultProps={className:null,width:20,height:20};const qo=Arrow,$o=[\"className\",\"width\",\"height\"],Close=i=>{let{className:s,width:u,height:m}=i,v=Mo()(i,$o);return He.createElement(\"svg\",No()({xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 20 20\",className:s,width:u,height:m,\"aria-hidden\":\"true\",focusable:\"false\"},v),He.createElement(\"path\",{d:\"M14.348 14.849c-.469.469-1.229.469-1.697 0L10 11.819l-2.651 3.029c-.469.469-1.229.469-1.697 0-.469-.469-.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-.469-.469-.469-1.228 0-1.697.469-.469 1.228-.469 1.697 0L10 8.183l2.651-3.031c.469-.469 1.228-.469 1.697 0 .469.469.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c.469.469.469 1.229 0 1.698z\"}))};Close.defaultProps={className:null,width:20,height:20};const Uo=Close,zo=[\"className\",\"width\",\"height\"],Copy=i=>{let{className:s,width:u,height:m}=i,v=Mo()(i,zo);return He.createElement(\"svg\",No()({xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 15 16\",className:s,width:u,height:m,\"aria-hidden\":\"true\",focusable:\"false\"},v),He.createElement(\"g\",{transform:\"translate(2, -1)\"},He.createElement(\"path\",{fill:\"#ffffff\",fillRule:\"evenodd\",d:\"M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z\"})))};Copy.defaultProps={className:null,width:15,height:16};const Vo=Copy,Wo=[\"className\",\"width\",\"height\"],Lock=i=>{let{className:s,width:u,height:m}=i,v=Mo()(i,Wo);return He.createElement(\"svg\",No()({xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 20 20\",className:s,width:u,height:m,\"aria-hidden\":\"true\",focusable:\"false\"},v),He.createElement(\"path\",{d:\"M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8zM12 8H8V5.199C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8z\"}))};Lock.defaultProps={className:null,width:20,height:20};const Ko=Lock,Ho=[\"className\",\"width\",\"height\"],Unlock=i=>{let{className:s,width:u,height:m}=i,v=Mo()(i,Ho);return He.createElement(\"svg\",No()({xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 20 20\",className:s,width:u,height:m,\"aria-hidden\":\"true\",focusable:\"false\"},v),He.createElement(\"path\",{d:\"M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V6h2v-.801C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8z\"}))};Unlock.defaultProps={className:null,width:20,height:20};const Jo=Unlock,icons=()=>({components:{ArrowUpIcon:Do,ArrowDownIcon:Lo,ArrowIcon:qo,CloseIcon:Uo,CopyIcon:Vo,LockIcon:Ko,UnlockIcon:Jo}}),Go=\"layout_update_layout\",Xo=\"layout_update_filter\",Yo=\"layout_update_mode\",Qo=\"layout_show\";function updateLayout(i){return{type:Go,payload:i}}function updateFilter(i){return{type:Xo,payload:i}}function actions_show(i){let s=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return i=normalizeArray(i),{type:Qo,payload:{thing:i,shown:s}}}function changeMode(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\";return i=normalizeArray(i),{type:Yo,payload:{thing:i,mode:s}}}const Zo={[Go]:(i,s)=>i.set(\"layout\",s.payload),[Xo]:(i,s)=>i.set(\"filter\",s.payload),[Qo]:(i,s)=>{const u=s.payload.shown,m=(0,et.fromJS)(s.payload.thing);return i.update(\"shown\",(0,et.fromJS)({}),(i=>i.set(m,u)))},[Yo]:(i,s)=>{let u=s.payload.thing,m=s.payload.mode;return i.setIn([\"modes\"].concat(u),(m||\"\")+\"\")}},current=i=>i.get(\"layout\"),currentFilter=i=>i.get(\"filter\"),isShown=(i,s,u)=>(s=normalizeArray(s),i.get(\"shown\",(0,et.fromJS)({})).get((0,et.fromJS)(s),u)),whatMode=function(i,s){let u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"\";return s=normalizeArray(s),i.getIn([\"modes\",...s],u)},ei=Xt((i=>i),(i=>!isShown(i,\"editor\"))),taggedOperations=(i,s)=>function(u){for(var m=arguments.length,v=new Array(m>1?m-1:0),_=1;_<m;_++)v[_-1]=arguments[_];let j=i(u,...v);const{fn:M,layoutSelectors:$,getConfigs:W}=s.getSystem(),X=W(),{maxDisplayedTags:Y}=X;let Z=$.currentFilter();return Z&&!0!==Z&&\"true\"!==Z&&\"false\"!==Z&&(j=M.opsFilter(j,Z)),Y&&!isNaN(Y)&&Y>=0&&(j=j.slice(0,Y)),j};function plugins_layout(){return{statePlugins:{layout:{reducers:Zo,actions:X,selectors:Y},spec:{wrapSelectors:Z}}}}function logs(i){let{configs:s}=i;const u={debug:0,info:1,log:2,warn:3,error:4},getLevel=i=>u[i]||-1;let{logLevel:m}=s,v=getLevel(m);function log(i){for(var s=arguments.length,u=new Array(s>1?s-1:0),m=1;m<s;m++)u[m-1]=arguments[m];getLevel(i)>=v&&console[i](...u)}return log.warn=log.bind(null,\"warn\"),log.error=log.bind(null,\"error\"),log.info=log.bind(null,\"info\"),log.debug=log.bind(null,\"debug\"),{rootInjects:{log}}}let si=!1;function on_complete(){return{statePlugins:{spec:{wrapActions:{updateSpec:i=>function(){return si=!0,i(...arguments)},updateJsonSpec:(i,s)=>function(){const u=s.getConfigs().onComplete;return si&&\"function\"==typeof u&&(setTimeout(u,0),si=!1),i(...arguments)}}}}}}const extractKey=i=>{const s=\"_**[]\";return i.indexOf(s)<0?i:i.split(s)[0].trim()},escapeShell=i=>\"-d \"===i||/^[_\\/-]/g.test(i)?i:\"'\"+i.replace(/'/g,\"'\\\\''\")+\"'\",escapeCMD=i=>\"-d \"===(i=i.replace(/\\^/g,\"^^\").replace(/\\\\\"/g,'\\\\\\\\\"').replace(/\"/g,'\"\"').replace(/\\n/g,\"^\\n\"))?i.replace(/-d /g,\"-d ^\\n\"):/^[_\\/-]/g.test(i)?i:'\"'+i+'\"',escapePowershell=i=>\"-d \"===i?i:/\\n/.test(i)?'@\"\\n'+i.replace(/\"/g,'\\\\\"').replace(/`/g,\"``\").replace(/\\$/,\"`$\")+'\\n\"@':/^[_\\/-]/g.test(i)?i:\"'\"+i.replace(/\"/g,'\"\"').replace(/'/g,\"''\")+\"'\";const curlify=function(i,s,u){let m=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"\",v=!1,_=\"\";const addWords=function(){for(var i=arguments.length,u=new Array(i),m=0;m<i;m++)u[m]=arguments[m];return _+=\" \"+u.map(s).join(\" \")},addWordsWithoutLeadingSpace=function(){for(var i=arguments.length,u=new Array(i),m=0;m<i;m++)u[m]=arguments[m];return _+=u.map(s).join(\" \")},addNewLine=()=>_+=` ${u}`,addIndent=function(){return _+=\"  \".repeat(arguments.length>0&&void 0!==arguments[0]?arguments[0]:1)};let j=i.get(\"headers\");if(_+=\"curl\"+m,i.has(\"curlOptions\")&&addWords(...i.get(\"curlOptions\")),addWords(\"-X\",i.get(\"method\")),addNewLine(),addIndent(),addWordsWithoutLeadingSpace(`${i.get(\"url\")}`),j&&j.size)for(let s of i.get(\"headers\").entries()){addNewLine(),addIndent();let[i,u]=s;addWordsWithoutLeadingSpace(\"-H\",`${i}: ${u}`),v=v||/^content-type$/i.test(i)&&/^multipart\\/form-data$/i.test(u)}const M=i.get(\"body\");if(M)if(v&&[\"POST\",\"PUT\",\"PATCH\"].includes(i.get(\"method\")))for(let[i,s]of M.entrySeq()){let u=extractKey(i);addNewLine(),addIndent(),addWordsWithoutLeadingSpace(\"-F\"),s instanceof dt.File&&\"string\"==typeof s.valueOf()?addWords(`${u}=${s.data}${s.type?`;type=${s.type}`:\"\"}`):s instanceof dt.File?addWords(`${u}=@${s.name}${s.type?`;type=${s.type}`:\"\"}`):addWords(`${u}=${s}`)}else if(M instanceof dt.File)addNewLine(),addIndent(),addWordsWithoutLeadingSpace(`--data-binary '@${M.name}'`);else{addNewLine(),addIndent(),addWordsWithoutLeadingSpace(\"-d \");let s=M;et.Map.isMap(s)?addWordsWithoutLeadingSpace(function getStringBodyOfMap(i){let s=[];for(let[u,m]of i.get(\"body\").entrySeq()){let i=extractKey(u);m instanceof dt.File?s.push(`  \"${i}\": {\\n    \"name\": \"${m.name}\"${m.type?`,\\n    \"type\": \"${m.type}\"`:\"\"}\\n  }`):s.push(`  \"${i}\": ${JSON.stringify(m,null,2).replace(/(\\r\\n|\\r|\\n)/g,\"\\n  \")}`)}return`{\\n${s.join(\",\\n\")}\\n}`}(i)):(\"string\"!=typeof s&&(s=JSON.stringify(s)),addWordsWithoutLeadingSpace(s))}else M||\"POST\"!==i.get(\"method\")||(addNewLine(),addIndent(),addWordsWithoutLeadingSpace(\"-d ''\"));return _},requestSnippetGenerator_curl_powershell=i=>curlify(i,escapePowershell,\"`\\n\",\".exe\"),requestSnippetGenerator_curl_bash=i=>curlify(i,escapeShell,\"\\\\\\n\"),requestSnippetGenerator_curl_cmd=i=>curlify(i,escapeCMD,\"^\\n\"),request_snippets_selectors_state=i=>i||(0,et.Map)(),_i=Xt(request_snippets_selectors_state,(i=>{const s=i.get(\"languages\"),u=i.get(\"generators\",(0,et.Map)());return!s||s.isEmpty()?u:u.filter(((i,u)=>s.includes(u)))})),getSnippetGenerators=i=>s=>{let{fn:u}=s;return _i(i).map(((i,s)=>{const m=(i=>u[`requestSnippetGenerator_${i}`])(s);return\"function\"!=typeof m?null:i.set(\"fn\",m)})).filter((i=>i))},Ei=Xt(request_snippets_selectors_state,(i=>i.get(\"activeLanguage\"))),Oi=Xt(request_snippets_selectors_state,(i=>i.get(\"defaultExpanded\")));var Ci=__webpack_require__(74855);function _objectWithoutPropertiesLoose(i,s){if(null==i)return{};var u,m,v={},_=Object.keys(i);for(m=0;m<_.length;m++)u=_[m],s.indexOf(u)>=0||(v[u]=i[u]);return v}function _arrayLikeToArray(i,s){(null==s||s>i.length)&&(s=i.length);for(var u=0,m=new Array(s);u<s;u++)m[u]=i[u];return m}function _toConsumableArray(i){return function _arrayWithoutHoles(i){if(Array.isArray(i))return _arrayLikeToArray(i)}(i)||function _iterableToArray(i){if(\"undefined\"!=typeof Symbol&&null!=i[Symbol.iterator]||null!=i[\"@@iterator\"])return Array.from(i)}(i)||function _unsupportedIterableToArray(i,s){if(i){if(\"string\"==typeof i)return _arrayLikeToArray(i,s);var u=Object.prototype.toString.call(i).slice(8,-1);return\"Object\"===u&&i.constructor&&(u=i.constructor.name),\"Map\"===u||\"Set\"===u?Array.from(i):\"Arguments\"===u||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(u)?_arrayLikeToArray(i,s):void 0}}(i)||function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function _extends(){return _extends=Object.assign?Object.assign.bind():function(i){for(var s=1;s<arguments.length;s++){var u=arguments[s];for(var m in u)Object.prototype.hasOwnProperty.call(u,m)&&(i[m]=u[m])}return i},_extends.apply(this,arguments)}function create_element_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function _objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?create_element_ownKeys(Object(u),!0).forEach((function(s){_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):create_element_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}var Ti={};function createStyleObject(i){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=arguments.length>2?arguments[2]:void 0;return function getClassNameCombinations(i){if(0===i.length||1===i.length)return i;var s=i.join(\".\");return Ti[s]||(Ti[s]=function powerSetPermutations(i){var s=i.length;return 0===s||1===s?i:2===s?[i[0],i[1],\"\".concat(i[0],\".\").concat(i[1]),\"\".concat(i[1],\".\").concat(i[0])]:3===s?[i[0],i[1],i[2],\"\".concat(i[0],\".\").concat(i[1]),\"\".concat(i[0],\".\").concat(i[2]),\"\".concat(i[1],\".\").concat(i[0]),\"\".concat(i[1],\".\").concat(i[2]),\"\".concat(i[2],\".\").concat(i[0]),\"\".concat(i[2],\".\").concat(i[1]),\"\".concat(i[0],\".\").concat(i[1],\".\").concat(i[2]),\"\".concat(i[0],\".\").concat(i[2],\".\").concat(i[1]),\"\".concat(i[1],\".\").concat(i[0],\".\").concat(i[2]),\"\".concat(i[1],\".\").concat(i[2],\".\").concat(i[0]),\"\".concat(i[2],\".\").concat(i[0],\".\").concat(i[1]),\"\".concat(i[2],\".\").concat(i[1],\".\").concat(i[0])]:s>=4?[i[0],i[1],i[2],i[3],\"\".concat(i[0],\".\").concat(i[1]),\"\".concat(i[0],\".\").concat(i[2]),\"\".concat(i[0],\".\").concat(i[3]),\"\".concat(i[1],\".\").concat(i[0]),\"\".concat(i[1],\".\").concat(i[2]),\"\".concat(i[1],\".\").concat(i[3]),\"\".concat(i[2],\".\").concat(i[0]),\"\".concat(i[2],\".\").concat(i[1]),\"\".concat(i[2],\".\").concat(i[3]),\"\".concat(i[3],\".\").concat(i[0]),\"\".concat(i[3],\".\").concat(i[1]),\"\".concat(i[3],\".\").concat(i[2]),\"\".concat(i[0],\".\").concat(i[1],\".\").concat(i[2]),\"\".concat(i[0],\".\").concat(i[1],\".\").concat(i[3]),\"\".concat(i[0],\".\").concat(i[2],\".\").concat(i[1]),\"\".concat(i[0],\".\").concat(i[2],\".\").concat(i[3]),\"\".concat(i[0],\".\").concat(i[3],\".\").concat(i[1]),\"\".concat(i[0],\".\").concat(i[3],\".\").concat(i[2]),\"\".concat(i[1],\".\").concat(i[0],\".\").concat(i[2]),\"\".concat(i[1],\".\").concat(i[0],\".\").concat(i[3]),\"\".concat(i[1],\".\").concat(i[2],\".\").concat(i[0]),\"\".concat(i[1],\".\").concat(i[2],\".\").concat(i[3]),\"\".concat(i[1],\".\").concat(i[3],\".\").concat(i[0]),\"\".concat(i[1],\".\").concat(i[3],\".\").concat(i[2]),\"\".concat(i[2],\".\").concat(i[0],\".\").concat(i[1]),\"\".concat(i[2],\".\").concat(i[0],\".\").concat(i[3]),\"\".concat(i[2],\".\").concat(i[1],\".\").concat(i[0]),\"\".concat(i[2],\".\").concat(i[1],\".\").concat(i[3]),\"\".concat(i[2],\".\").concat(i[3],\".\").concat(i[0]),\"\".concat(i[2],\".\").concat(i[3],\".\").concat(i[1]),\"\".concat(i[3],\".\").concat(i[0],\".\").concat(i[1]),\"\".concat(i[3],\".\").concat(i[0],\".\").concat(i[2]),\"\".concat(i[3],\".\").concat(i[1],\".\").concat(i[0]),\"\".concat(i[3],\".\").concat(i[1],\".\").concat(i[2]),\"\".concat(i[3],\".\").concat(i[2],\".\").concat(i[0]),\"\".concat(i[3],\".\").concat(i[2],\".\").concat(i[1]),\"\".concat(i[0],\".\").concat(i[1],\".\").concat(i[2],\".\").concat(i[3]),\"\".concat(i[0],\".\").concat(i[1],\".\").concat(i[3],\".\").concat(i[2]),\"\".concat(i[0],\".\").concat(i[2],\".\").concat(i[1],\".\").concat(i[3]),\"\".concat(i[0],\".\").concat(i[2],\".\").concat(i[3],\".\").concat(i[1]),\"\".concat(i[0],\".\").concat(i[3],\".\").concat(i[1],\".\").concat(i[2]),\"\".concat(i[0],\".\").concat(i[3],\".\").concat(i[2],\".\").concat(i[1]),\"\".concat(i[1],\".\").concat(i[0],\".\").concat(i[2],\".\").concat(i[3]),\"\".concat(i[1],\".\").concat(i[0],\".\").concat(i[3],\".\").concat(i[2]),\"\".concat(i[1],\".\").concat(i[2],\".\").concat(i[0],\".\").concat(i[3]),\"\".concat(i[1],\".\").concat(i[2],\".\").concat(i[3],\".\").concat(i[0]),\"\".concat(i[1],\".\").concat(i[3],\".\").concat(i[0],\".\").concat(i[2]),\"\".concat(i[1],\".\").concat(i[3],\".\").concat(i[2],\".\").concat(i[0]),\"\".concat(i[2],\".\").concat(i[0],\".\").concat(i[1],\".\").concat(i[3]),\"\".concat(i[2],\".\").concat(i[0],\".\").concat(i[3],\".\").concat(i[1]),\"\".concat(i[2],\".\").concat(i[1],\".\").concat(i[0],\".\").concat(i[3]),\"\".concat(i[2],\".\").concat(i[1],\".\").concat(i[3],\".\").concat(i[0]),\"\".concat(i[2],\".\").concat(i[3],\".\").concat(i[0],\".\").concat(i[1]),\"\".concat(i[2],\".\").concat(i[3],\".\").concat(i[1],\".\").concat(i[0]),\"\".concat(i[3],\".\").concat(i[0],\".\").concat(i[1],\".\").concat(i[2]),\"\".concat(i[3],\".\").concat(i[0],\".\").concat(i[2],\".\").concat(i[1]),\"\".concat(i[3],\".\").concat(i[1],\".\").concat(i[0],\".\").concat(i[2]),\"\".concat(i[3],\".\").concat(i[1],\".\").concat(i[2],\".\").concat(i[0]),\"\".concat(i[3],\".\").concat(i[2],\".\").concat(i[0],\".\").concat(i[1]),\"\".concat(i[3],\".\").concat(i[2],\".\").concat(i[1],\".\").concat(i[0])]:void 0}(i)),Ti[s]}(i.filter((function(i){return\"token\"!==i}))).reduce((function(i,s){return _objectSpread(_objectSpread({},i),u[s])}),s)}function createClassNameString(i){return i.join(\" \")}function createElement(i){var s=i.node,u=i.stylesheet,m=i.style,v=void 0===m?{}:m,_=i.useInlineStyles,j=i.key,M=s.properties,$=s.type,W=s.tagName,X=s.value;if(\"text\"===$)return X;if(W){var Y,Z=function createChildren(i,s){var u=0;return function(m){return u+=1,m.map((function(m,v){return createElement({node:m,stylesheet:i,useInlineStyles:s,key:\"code-segment-\".concat(u,\"-\").concat(v)})}))}}(u,_);if(_){var ee=Object.keys(u).reduce((function(i,s){return s.split(\".\").forEach((function(s){i.includes(s)||i.push(s)})),i}),[]),ie=M.className&&M.className.includes(\"token\")?[\"token\"]:[],ae=M.className&&ie.concat(M.className.filter((function(i){return!ee.includes(i)})));Y=_objectSpread(_objectSpread({},M),{},{className:createClassNameString(ae)||void 0,style:createStyleObject(M.className,Object.assign({},M.style,v),u)})}else Y=_objectSpread(_objectSpread({},M),{},{className:createClassNameString(M.className)});var ce=Z(s.children);return He.createElement(W,_extends({key:j},Y),ce)}}const checkForListedLanguage=function(i,s){return-1!==i.listLanguages().indexOf(s)};var Ri=[\"language\",\"children\",\"style\",\"customStyle\",\"codeTagProps\",\"useInlineStyles\",\"showLineNumbers\",\"showInlineLineNumbers\",\"startingLineNumber\",\"lineNumberContainerStyle\",\"lineNumberStyle\",\"wrapLines\",\"wrapLongLines\",\"lineProps\",\"renderer\",\"PreTag\",\"CodeTag\",\"code\",\"astGenerator\"];function highlight_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function highlight_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?highlight_ownKeys(Object(u),!0).forEach((function(s){_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):highlight_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}var Di=/\\n/g;function AllLineNumbers(i){var s=i.codeString,u=i.codeStyle,m=i.containerStyle,v=void 0===m?{float:\"left\",paddingRight:\"10px\"}:m,_=i.numberStyle,j=void 0===_?{}:_,M=i.startingLineNumber;return He.createElement(\"code\",{style:Object.assign({},u,v)},function getAllLineNumbers(i){var s=i.lines,u=i.startingLineNumber,m=i.style;return s.map((function(i,s){var v=s+u;return He.createElement(\"span\",{key:\"line-\".concat(s),className:\"react-syntax-highlighter-line-number\",style:\"function\"==typeof m?m(v):m},\"\".concat(v,\"\\n\"))}))}({lines:s.replace(/\\n$/,\"\").split(\"\\n\"),style:j,startingLineNumber:M}))}function getInlineLineNumber(i,s){return{type:\"element\",tagName:\"span\",properties:{key:\"line-number--\".concat(i),className:[\"comment\",\"linenumber\",\"react-syntax-highlighter-line-number\"],style:s},children:[{type:\"text\",value:i}]}}function assembleLineNumberStyles(i,s,u){var m,v={display:\"inline-block\",minWidth:(m=u,\"\".concat(m.toString().length,\".25em\")),paddingRight:\"1em\",textAlign:\"right\",userSelect:\"none\"},_=\"function\"==typeof i?i(s):i;return highlight_objectSpread(highlight_objectSpread({},v),_)}function createLineElement(i){var s=i.children,u=i.lineNumber,m=i.lineNumberStyle,v=i.largestLineNumber,_=i.showInlineLineNumbers,j=i.lineProps,M=void 0===j?{}:j,$=i.className,W=void 0===$?[]:$,X=i.showLineNumbers,Y=i.wrapLongLines,Z=\"function\"==typeof M?M(u):M;if(Z.className=W,u&&_){var ee=assembleLineNumberStyles(m,u,v);s.unshift(getInlineLineNumber(u,ee))}return Y&X&&(Z.style=highlight_objectSpread(highlight_objectSpread({},Z.style),{},{display:\"flex\"})),{type:\"element\",tagName:\"span\",properties:Z,children:s}}function flattenCodeTree(i){for(var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],m=0;m<i.length;m++){var v=i[m];if(\"text\"===v.type)u.push(createLineElement({children:[v],className:_toConsumableArray(new Set(s))}));else if(v.children){var _=s.concat(v.properties.className);flattenCodeTree(v.children,_).forEach((function(i){return u.push(i)}))}}return u}function processLines(i,s,u,m,v,_,j,M,$){var W,X=flattenCodeTree(i.value),Y=[],Z=-1,ee=0;function createLine(i,_){var W=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return s||W.length>0?function createWrappedLine(i,s){return createLineElement({children:i,lineNumber:s,lineNumberStyle:M,largestLineNumber:j,showInlineLineNumbers:v,lineProps:u,className:arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],showLineNumbers:m,wrapLongLines:$})}(i,_,W):function createUnwrappedLine(i,s){if(m&&s&&v){var u=assembleLineNumberStyles(M,s,j);i.unshift(getInlineLineNumber(s,u))}return i}(i,_)}for(var ie=function _loop(){var i=X[ee],s=i.children[0].value,u=function getNewLines(i){return i.match(Di)}(s);if(u){var v=s.split(\"\\n\");v.forEach((function(s,u){var j=m&&Y.length+_,M={type:\"text\",value:\"\".concat(s,\"\\n\")};if(0===u){var $=createLine(X.slice(Z+1,ee).concat(createLineElement({children:[M],className:i.properties.className})),j);Y.push($)}else if(u===v.length-1){var W=X[ee+1]&&X[ee+1].children&&X[ee+1].children[0],ie={type:\"text\",value:\"\".concat(s)};if(W){var ae=createLineElement({children:[ie],className:i.properties.className});X.splice(ee+1,0,ae)}else{var ce=createLine([ie],j,i.properties.className);Y.push(ce)}}else{var le=createLine([M],j,i.properties.className);Y.push(le)}})),Z=ee}ee++};ee<X.length;)ie();if(Z!==X.length-1){var ae=X.slice(Z+1,X.length);if(ae&&ae.length){var ce=createLine(ae,m&&Y.length+_);Y.push(ce)}}return s?Y:(W=[]).concat.apply(W,Y)}function defaultRenderer(i){var s=i.rows,u=i.stylesheet,m=i.useInlineStyles;return s.map((function(i,s){return createElement({node:i,stylesheet:u,useInlineStyles:m,key:\"code-segement\".concat(s)})}))}function isHighlightJs(i){return i&&void 0!==i.highlightAuto}var Bi=__webpack_require__(96470),Ui=function highlight(i,s){return function SyntaxHighlighter(u){var m=u.language,v=u.children,_=u.style,j=void 0===_?s:_,M=u.customStyle,$=void 0===M?{}:M,W=u.codeTagProps,X=void 0===W?{className:m?\"language-\".concat(m):void 0,style:highlight_objectSpread(highlight_objectSpread({},j['code[class*=\"language-\"]']),j['code[class*=\"language-'.concat(m,'\"]')])}:W,Y=u.useInlineStyles,Z=void 0===Y||Y,ee=u.showLineNumbers,ie=void 0!==ee&&ee,ae=u.showInlineLineNumbers,ce=void 0===ae||ae,le=u.startingLineNumber,pe=void 0===le?1:le,de=u.lineNumberContainerStyle,fe=u.lineNumberStyle,ye=void 0===fe?{}:fe,be=u.wrapLines,_e=u.wrapLongLines,we=void 0!==_e&&_e,Se=u.lineProps,xe=void 0===Se?{}:Se,Pe=u.renderer,Ie=u.PreTag,Te=void 0===Ie?\"pre\":Ie,Re=u.CodeTag,qe=void 0===Re?\"code\":Re,ze=u.code,Ve=void 0===ze?(Array.isArray(v)?v[0]:v)||\"\":ze,We=u.astGenerator,Xe=function _objectWithoutProperties(i,s){if(null==i)return{};var u,m,v=_objectWithoutPropertiesLoose(i,s);if(Object.getOwnPropertySymbols){var _=Object.getOwnPropertySymbols(i);for(m=0;m<_.length;m++)u=_[m],s.indexOf(u)>=0||Object.prototype.propertyIsEnumerable.call(i,u)&&(v[u]=i[u])}return v}(u,Ri);We=We||i;var Ye=ie?He.createElement(AllLineNumbers,{containerStyle:de,codeStyle:X.style||{},numberStyle:ye,startingLineNumber:pe,codeString:Ve}):null,Qe=j.hljs||j['pre[class*=\"language-\"]']||{backgroundColor:\"#fff\"},et=isHighlightJs(We)?\"hljs\":\"prismjs\",tt=Z?Object.assign({},Xe,{style:Object.assign({},Qe,$)}):Object.assign({},Xe,{className:Xe.className?\"\".concat(et,\" \").concat(Xe.className):et,style:Object.assign({},$)});if(X.style=highlight_objectSpread(highlight_objectSpread({},X.style),{},we?{whiteSpace:\"pre-wrap\"}:{whiteSpace:\"pre\"}),!We)return He.createElement(Te,tt,Ye,He.createElement(qe,X,Ve));(void 0===be&&Pe||we)&&(be=!0),Pe=Pe||defaultRenderer;var rt=[{type:\"text\",value:Ve}],nt=function getCodeTree(i){var s=i.astGenerator,u=i.language,m=i.code,v=i.defaultCodeValue;if(isHighlightJs(s)){var _=checkForListedLanguage(s,u);return\"text\"===u?{value:v,language:\"text\"}:_?s.highlight(u,m):s.highlightAuto(m)}try{return u&&\"text\"!==u?{value:s.highlight(m,u)}:{value:v}}catch(i){return{value:v}}}({astGenerator:We,language:m,code:Ve,defaultCodeValue:rt});null===nt.language&&(nt.value=rt);var ot=processLines(nt,be,xe,ie,ce,pe,nt.value.length+pe,ye,we);return He.createElement(Te,tt,He.createElement(qe,X,!ce&&Ye,Pe({rows:ot,stylesheet:j,useInlineStyles:Z})))}}(Bi,{});Ui.registerLanguage=Bi.registerLanguage;const Hi=Ui;var Ji=__webpack_require__(96344);const Qi=__webpack_require__.n(Ji)();var ta=__webpack_require__(82026);const ra=__webpack_require__.n(ta)();var oa=__webpack_require__(42157);const ia=__webpack_require__.n(oa)();var aa=__webpack_require__(61519);const sa=__webpack_require__.n(aa)();var ca=__webpack_require__(54587);const ua=__webpack_require__.n(ca)();var ha=__webpack_require__(30786);const fa=__webpack_require__.n(ha)();var ya=__webpack_require__(66336);const ga=__webpack_require__.n(ya)(),va={hljs:{display:\"block\",overflowX:\"auto\",padding:\"0.5em\",background:\"#333\",color:\"white\"},\"hljs-name\":{fontWeight:\"bold\"},\"hljs-strong\":{fontWeight:\"bold\"},\"hljs-code\":{fontStyle:\"italic\",color:\"#888\"},\"hljs-emphasis\":{fontStyle:\"italic\"},\"hljs-tag\":{color:\"#62c8f3\"},\"hljs-variable\":{color:\"#ade5fc\"},\"hljs-template-variable\":{color:\"#ade5fc\"},\"hljs-selector-id\":{color:\"#ade5fc\"},\"hljs-selector-class\":{color:\"#ade5fc\"},\"hljs-string\":{color:\"#a2fca2\"},\"hljs-bullet\":{color:\"#d36363\"},\"hljs-type\":{color:\"#ffa\"},\"hljs-title\":{color:\"#ffa\"},\"hljs-section\":{color:\"#ffa\"},\"hljs-attribute\":{color:\"#ffa\"},\"hljs-quote\":{color:\"#ffa\"},\"hljs-built_in\":{color:\"#ffa\"},\"hljs-builtin-name\":{color:\"#ffa\"},\"hljs-number\":{color:\"#d36363\"},\"hljs-symbol\":{color:\"#d36363\"},\"hljs-keyword\":{color:\"#fcc28c\"},\"hljs-selector-tag\":{color:\"#fcc28c\"},\"hljs-literal\":{color:\"#fcc28c\"},\"hljs-comment\":{color:\"#888\"},\"hljs-deletion\":{color:\"#333\",backgroundColor:\"#fc9b9b\"},\"hljs-regexp\":{color:\"#c6b4f0\"},\"hljs-link\":{color:\"#c6b4f0\"},\"hljs-meta\":{color:\"#fc9b9b\"},\"hljs-addition\":{backgroundColor:\"#a2fca2\",color:\"#333\"}};Hi.registerLanguage(\"json\",ra),Hi.registerLanguage(\"js\",Qi),Hi.registerLanguage(\"xml\",ia),Hi.registerLanguage(\"yaml\",ua),Hi.registerLanguage(\"http\",fa),Hi.registerLanguage(\"bash\",sa),Hi.registerLanguage(\"powershell\",ga),Hi.registerLanguage(\"javascript\",Qi);const ba={agate:va,arta:{hljs:{display:\"block\",overflowX:\"auto\",padding:\"0.5em\",background:\"#222\",color:\"#aaa\"},\"hljs-subst\":{color:\"#aaa\"},\"hljs-section\":{color:\"#fff\",fontWeight:\"bold\"},\"hljs-comment\":{color:\"#444\"},\"hljs-quote\":{color:\"#444\"},\"hljs-meta\":{color:\"#444\"},\"hljs-string\":{color:\"#ffcc33\"},\"hljs-symbol\":{color:\"#ffcc33\"},\"hljs-bullet\":{color:\"#ffcc33\"},\"hljs-regexp\":{color:\"#ffcc33\"},\"hljs-number\":{color:\"#00cc66\"},\"hljs-addition\":{color:\"#00cc66\"},\"hljs-built_in\":{color:\"#32aaee\"},\"hljs-builtin-name\":{color:\"#32aaee\"},\"hljs-literal\":{color:\"#32aaee\"},\"hljs-type\":{color:\"#32aaee\"},\"hljs-template-variable\":{color:\"#32aaee\"},\"hljs-attribute\":{color:\"#32aaee\"},\"hljs-link\":{color:\"#32aaee\"},\"hljs-keyword\":{color:\"#6644aa\"},\"hljs-selector-tag\":{color:\"#6644aa\"},\"hljs-name\":{color:\"#6644aa\"},\"hljs-selector-id\":{color:\"#6644aa\"},\"hljs-selector-class\":{color:\"#6644aa\"},\"hljs-title\":{color:\"#bb1166\"},\"hljs-variable\":{color:\"#bb1166\"},\"hljs-deletion\":{color:\"#bb1166\"},\"hljs-template-tag\":{color:\"#bb1166\"},\"hljs-doctag\":{fontWeight:\"bold\"},\"hljs-strong\":{fontWeight:\"bold\"},\"hljs-emphasis\":{fontStyle:\"italic\"}},monokai:{hljs:{display:\"block\",overflowX:\"auto\",padding:\"0.5em\",background:\"#272822\",color:\"#ddd\"},\"hljs-tag\":{color:\"#f92672\"},\"hljs-keyword\":{color:\"#f92672\",fontWeight:\"bold\"},\"hljs-selector-tag\":{color:\"#f92672\",fontWeight:\"bold\"},\"hljs-literal\":{color:\"#f92672\",fontWeight:\"bold\"},\"hljs-strong\":{color:\"#f92672\"},\"hljs-name\":{color:\"#f92672\"},\"hljs-code\":{color:\"#66d9ef\"},\"hljs-class .hljs-title\":{color:\"white\"},\"hljs-attribute\":{color:\"#bf79db\"},\"hljs-symbol\":{color:\"#bf79db\"},\"hljs-regexp\":{color:\"#bf79db\"},\"hljs-link\":{color:\"#bf79db\"},\"hljs-string\":{color:\"#a6e22e\"},\"hljs-bullet\":{color:\"#a6e22e\"},\"hljs-subst\":{color:\"#a6e22e\"},\"hljs-title\":{color:\"#a6e22e\",fontWeight:\"bold\"},\"hljs-section\":{color:\"#a6e22e\",fontWeight:\"bold\"},\"hljs-emphasis\":{color:\"#a6e22e\"},\"hljs-type\":{color:\"#a6e22e\",fontWeight:\"bold\"},\"hljs-built_in\":{color:\"#a6e22e\"},\"hljs-builtin-name\":{color:\"#a6e22e\"},\"hljs-selector-attr\":{color:\"#a6e22e\"},\"hljs-selector-pseudo\":{color:\"#a6e22e\"},\"hljs-addition\":{color:\"#a6e22e\"},\"hljs-variable\":{color:\"#a6e22e\"},\"hljs-template-tag\":{color:\"#a6e22e\"},\"hljs-template-variable\":{color:\"#a6e22e\"},\"hljs-comment\":{color:\"#75715e\"},\"hljs-quote\":{color:\"#75715e\"},\"hljs-deletion\":{color:\"#75715e\"},\"hljs-meta\":{color:\"#75715e\"},\"hljs-doctag\":{fontWeight:\"bold\"},\"hljs-selector-id\":{fontWeight:\"bold\"}},nord:{hljs:{display:\"block\",overflowX:\"auto\",padding:\"0.5em\",background:\"#2E3440\",color:\"#D8DEE9\"},\"hljs-subst\":{color:\"#D8DEE9\"},\"hljs-selector-tag\":{color:\"#81A1C1\"},\"hljs-selector-id\":{color:\"#8FBCBB\",fontWeight:\"bold\"},\"hljs-selector-class\":{color:\"#8FBCBB\"},\"hljs-selector-attr\":{color:\"#8FBCBB\"},\"hljs-selector-pseudo\":{color:\"#88C0D0\"},\"hljs-addition\":{backgroundColor:\"rgba(163, 190, 140, 0.5)\"},\"hljs-deletion\":{backgroundColor:\"rgba(191, 97, 106, 0.5)\"},\"hljs-built_in\":{color:\"#8FBCBB\"},\"hljs-type\":{color:\"#8FBCBB\"},\"hljs-class\":{color:\"#8FBCBB\"},\"hljs-function\":{color:\"#88C0D0\"},\"hljs-function > .hljs-title\":{color:\"#88C0D0\"},\"hljs-keyword\":{color:\"#81A1C1\"},\"hljs-literal\":{color:\"#81A1C1\"},\"hljs-symbol\":{color:\"#81A1C1\"},\"hljs-number\":{color:\"#B48EAD\"},\"hljs-regexp\":{color:\"#EBCB8B\"},\"hljs-string\":{color:\"#A3BE8C\"},\"hljs-title\":{color:\"#8FBCBB\"},\"hljs-params\":{color:\"#D8DEE9\"},\"hljs-bullet\":{color:\"#81A1C1\"},\"hljs-code\":{color:\"#8FBCBB\"},\"hljs-emphasis\":{fontStyle:\"italic\"},\"hljs-formula\":{color:\"#8FBCBB\"},\"hljs-strong\":{fontWeight:\"bold\"},\"hljs-link:hover\":{textDecoration:\"underline\"},\"hljs-quote\":{color:\"#4C566A\"},\"hljs-comment\":{color:\"#4C566A\"},\"hljs-doctag\":{color:\"#8FBCBB\"},\"hljs-meta\":{color:\"#5E81AC\"},\"hljs-meta-keyword\":{color:\"#5E81AC\"},\"hljs-meta-string\":{color:\"#A3BE8C\"},\"hljs-attr\":{color:\"#8FBCBB\"},\"hljs-attribute\":{color:\"#D8DEE9\"},\"hljs-builtin-name\":{color:\"#81A1C1\"},\"hljs-name\":{color:\"#81A1C1\"},\"hljs-section\":{color:\"#88C0D0\"},\"hljs-tag\":{color:\"#81A1C1\"},\"hljs-variable\":{color:\"#D8DEE9\"},\"hljs-template-variable\":{color:\"#D8DEE9\"},\"hljs-template-tag\":{color:\"#5E81AC\"},\"abnf .hljs-attribute\":{color:\"#88C0D0\"},\"abnf .hljs-symbol\":{color:\"#EBCB8B\"},\"apache .hljs-attribute\":{color:\"#88C0D0\"},\"apache .hljs-section\":{color:\"#81A1C1\"},\"arduino .hljs-built_in\":{color:\"#88C0D0\"},\"aspectj .hljs-meta\":{color:\"#D08770\"},\"aspectj > .hljs-title\":{color:\"#88C0D0\"},\"bnf .hljs-attribute\":{color:\"#8FBCBB\"},\"clojure .hljs-name\":{color:\"#88C0D0\"},\"clojure .hljs-symbol\":{color:\"#EBCB8B\"},\"coq .hljs-built_in\":{color:\"#88C0D0\"},\"cpp .hljs-meta-string\":{color:\"#8FBCBB\"},\"css .hljs-built_in\":{color:\"#88C0D0\"},\"css .hljs-keyword\":{color:\"#D08770\"},\"diff .hljs-meta\":{color:\"#8FBCBB\"},\"ebnf .hljs-attribute\":{color:\"#8FBCBB\"},\"glsl .hljs-built_in\":{color:\"#88C0D0\"},\"groovy .hljs-meta:not(:first-child)\":{color:\"#D08770\"},\"haxe .hljs-meta\":{color:\"#D08770\"},\"java .hljs-meta\":{color:\"#D08770\"},\"ldif .hljs-attribute\":{color:\"#8FBCBB\"},\"lisp .hljs-name\":{color:\"#88C0D0\"},\"lua .hljs-built_in\":{color:\"#88C0D0\"},\"moonscript .hljs-built_in\":{color:\"#88C0D0\"},\"nginx .hljs-attribute\":{color:\"#88C0D0\"},\"nginx .hljs-section\":{color:\"#5E81AC\"},\"pf .hljs-built_in\":{color:\"#88C0D0\"},\"processing .hljs-built_in\":{color:\"#88C0D0\"},\"scss .hljs-keyword\":{color:\"#81A1C1\"},\"stylus .hljs-keyword\":{color:\"#81A1C1\"},\"swift .hljs-meta\":{color:\"#D08770\"},\"vim .hljs-built_in\":{color:\"#88C0D0\",fontStyle:\"italic\"},\"yaml .hljs-meta\":{color:\"#D08770\"}},obsidian:{hljs:{display:\"block\",overflowX:\"auto\",padding:\"0.5em\",background:\"#282b2e\",color:\"#e0e2e4\"},\"hljs-keyword\":{color:\"#93c763\",fontWeight:\"bold\"},\"hljs-selector-tag\":{color:\"#93c763\",fontWeight:\"bold\"},\"hljs-literal\":{color:\"#93c763\",fontWeight:\"bold\"},\"hljs-selector-id\":{color:\"#93c763\"},\"hljs-number\":{color:\"#ffcd22\"},\"hljs-attribute\":{color:\"#668bb0\"},\"hljs-code\":{color:\"white\"},\"hljs-class .hljs-title\":{color:\"white\"},\"hljs-section\":{color:\"white\",fontWeight:\"bold\"},\"hljs-regexp\":{color:\"#d39745\"},\"hljs-link\":{color:\"#d39745\"},\"hljs-meta\":{color:\"#557182\"},\"hljs-tag\":{color:\"#8cbbad\"},\"hljs-name\":{color:\"#8cbbad\",fontWeight:\"bold\"},\"hljs-bullet\":{color:\"#8cbbad\"},\"hljs-subst\":{color:\"#8cbbad\"},\"hljs-emphasis\":{color:\"#8cbbad\"},\"hljs-type\":{color:\"#8cbbad\",fontWeight:\"bold\"},\"hljs-built_in\":{color:\"#8cbbad\"},\"hljs-selector-attr\":{color:\"#8cbbad\"},\"hljs-selector-pseudo\":{color:\"#8cbbad\"},\"hljs-addition\":{color:\"#8cbbad\"},\"hljs-variable\":{color:\"#8cbbad\"},\"hljs-template-tag\":{color:\"#8cbbad\"},\"hljs-template-variable\":{color:\"#8cbbad\"},\"hljs-string\":{color:\"#ec7600\"},\"hljs-symbol\":{color:\"#ec7600\"},\"hljs-comment\":{color:\"#818e96\"},\"hljs-quote\":{color:\"#818e96\"},\"hljs-deletion\":{color:\"#818e96\"},\"hljs-selector-class\":{color:\"#A082BD\"},\"hljs-doctag\":{fontWeight:\"bold\"},\"hljs-title\":{fontWeight:\"bold\"},\"hljs-strong\":{fontWeight:\"bold\"}},\"tomorrow-night\":{\"hljs-comment\":{color:\"#969896\"},\"hljs-quote\":{color:\"#969896\"},\"hljs-variable\":{color:\"#cc6666\"},\"hljs-template-variable\":{color:\"#cc6666\"},\"hljs-tag\":{color:\"#cc6666\"},\"hljs-name\":{color:\"#cc6666\"},\"hljs-selector-id\":{color:\"#cc6666\"},\"hljs-selector-class\":{color:\"#cc6666\"},\"hljs-regexp\":{color:\"#cc6666\"},\"hljs-deletion\":{color:\"#cc6666\"},\"hljs-number\":{color:\"#de935f\"},\"hljs-built_in\":{color:\"#de935f\"},\"hljs-builtin-name\":{color:\"#de935f\"},\"hljs-literal\":{color:\"#de935f\"},\"hljs-type\":{color:\"#de935f\"},\"hljs-params\":{color:\"#de935f\"},\"hljs-meta\":{color:\"#de935f\"},\"hljs-link\":{color:\"#de935f\"},\"hljs-attribute\":{color:\"#f0c674\"},\"hljs-string\":{color:\"#b5bd68\"},\"hljs-symbol\":{color:\"#b5bd68\"},\"hljs-bullet\":{color:\"#b5bd68\"},\"hljs-addition\":{color:\"#b5bd68\"},\"hljs-title\":{color:\"#81a2be\"},\"hljs-section\":{color:\"#81a2be\"},\"hljs-keyword\":{color:\"#b294bb\"},\"hljs-selector-tag\":{color:\"#b294bb\"},hljs:{display:\"block\",overflowX:\"auto\",background:\"#1d1f21\",color:\"#c5c8c6\",padding:\"0.5em\"},\"hljs-emphasis\":{fontStyle:\"italic\"},\"hljs-strong\":{fontWeight:\"bold\"}},idea:{hljs:{display:\"block\",overflowX:\"auto\",padding:\"0.5em\",color:\"#000\",background:\"#fff\"},\"hljs-subst\":{fontWeight:\"normal\",color:\"#000\"},\"hljs-title\":{fontWeight:\"normal\",color:\"#000\"},\"hljs-comment\":{color:\"#808080\",fontStyle:\"italic\"},\"hljs-quote\":{color:\"#808080\",fontStyle:\"italic\"},\"hljs-meta\":{color:\"#808000\"},\"hljs-tag\":{background:\"#efefef\"},\"hljs-section\":{fontWeight:\"bold\",color:\"#000080\"},\"hljs-name\":{fontWeight:\"bold\",color:\"#000080\"},\"hljs-literal\":{fontWeight:\"bold\",color:\"#000080\"},\"hljs-keyword\":{fontWeight:\"bold\",color:\"#000080\"},\"hljs-selector-tag\":{fontWeight:\"bold\",color:\"#000080\"},\"hljs-type\":{fontWeight:\"bold\",color:\"#000080\"},\"hljs-selector-id\":{fontWeight:\"bold\",color:\"#000080\"},\"hljs-selector-class\":{fontWeight:\"bold\",color:\"#000080\"},\"hljs-attribute\":{fontWeight:\"bold\",color:\"#0000ff\"},\"hljs-number\":{fontWeight:\"normal\",color:\"#0000ff\"},\"hljs-regexp\":{fontWeight:\"normal\",color:\"#0000ff\"},\"hljs-link\":{fontWeight:\"normal\",color:\"#0000ff\"},\"hljs-string\":{color:\"#008000\",fontWeight:\"bold\"},\"hljs-symbol\":{color:\"#000\",background:\"#d0eded\",fontStyle:\"italic\"},\"hljs-bullet\":{color:\"#000\",background:\"#d0eded\",fontStyle:\"italic\"},\"hljs-formula\":{color:\"#000\",background:\"#d0eded\",fontStyle:\"italic\"},\"hljs-doctag\":{textDecoration:\"underline\"},\"hljs-variable\":{color:\"#660e7a\"},\"hljs-template-variable\":{color:\"#660e7a\"},\"hljs-addition\":{background:\"#baeeba\"},\"hljs-deletion\":{background:\"#ffc8bd\"},\"hljs-emphasis\":{fontStyle:\"italic\"},\"hljs-strong\":{fontWeight:\"bold\"}}},_a=Object.keys(ba),getStyle=i=>_a.includes(i)?ba[i]:(console.warn(`Request style '${i}' is not available, returning default instead`),va),wa={cursor:\"pointer\",lineHeight:1,display:\"inline-flex\",backgroundColor:\"rgb(250, 250, 250)\",paddingBottom:\"0\",paddingTop:\"0\",border:\"1px solid rgb(51, 51, 51)\",borderRadius:\"4px 4px 0 0\",boxShadow:\"none\",borderBottom:\"none\"},Ea={cursor:\"pointer\",lineHeight:1,display:\"inline-flex\",backgroundColor:\"rgb(51, 51, 51)\",boxShadow:\"none\",border:\"1px solid rgb(51, 51, 51)\",paddingBottom:\"0\",paddingTop:\"0\",borderRadius:\"4px 4px 0 0\",marginTop:\"-5px\",marginRight:\"-5px\",marginLeft:\"-5px\",zIndex:\"9999\",borderBottom:\"none\"},request_snippets=i=>{var s;let{request:u,requestSnippetsSelectors:m,getConfigs:v,getComponent:_}=i;const j=Ot()(v)?v():null,M=!1!==ko()(j,\"syntaxHighlight\")&&ko()(j,\"syntaxHighlight.activated\",!0),$=(0,He.useRef)(null),W=_(\"ArrowUpIcon\"),X=_(\"ArrowDownIcon\"),[Y,Z]=(0,He.useState)(null===(s=m.getSnippetGenerators())||void 0===s?void 0:s.keySeq().first()),[ee,ie]=(0,He.useState)(null==m?void 0:m.getDefaultExpanded());(0,He.useEffect)((()=>{}),[]),(0,He.useEffect)((()=>{const i=Array.from($.current.childNodes).filter((i=>{var s;return!!i.nodeType&&(null===(s=i.classList)||void 0===s?void 0:s.contains(\"curl-command\"))}));return i.forEach((i=>i.addEventListener(\"mousewheel\",handlePreventYScrollingBeyondElement,{passive:!1}))),()=>{i.forEach((i=>i.removeEventListener(\"mousewheel\",handlePreventYScrollingBeyondElement)))}}),[u]);const ae=m.getSnippetGenerators(),ce=ae.get(Y),le=ce.get(\"fn\")(u),handleSetIsExpanded=()=>{ie(!ee)},handleGetBtnStyle=i=>i===Y?Ea:wa,handlePreventYScrollingBeyondElement=i=>{const{target:s,deltaY:u}=i,{scrollHeight:m,offsetHeight:v,scrollTop:_}=s;m>v&&(0===_&&u<0||v+_>=m&&u>0)&&i.preventDefault()},pe=M?He.createElement(Hi,{language:ce.get(\"syntax\"),className:\"curl microlight\",style:getStyle(ko()(j,\"syntaxHighlight.theme\"))},le):He.createElement(\"textarea\",{readOnly:!0,className:\"curl\",value:le});return He.createElement(\"div\",{className:\"request-snippets\",ref:$},He.createElement(\"div\",{style:{width:\"100%\",display:\"flex\",justifyContent:\"flex-start\",alignItems:\"center\",marginBottom:\"15px\"}},He.createElement(\"h4\",{onClick:()=>handleSetIsExpanded(),style:{cursor:\"pointer\"}},\"Snippets\"),He.createElement(\"button\",{onClick:()=>handleSetIsExpanded(),style:{border:\"none\",background:\"none\"},title:ee?\"Collapse operation\":\"Expand operation\"},ee?He.createElement(X,{className:\"arrow\",width:\"10\",height:\"10\"}):He.createElement(W,{className:\"arrow\",width:\"10\",height:\"10\"}))),ee&&He.createElement(\"div\",{className:\"curl-command\"},He.createElement(\"div\",{style:{paddingLeft:\"15px\",paddingRight:\"10px\",width:\"100%\",display:\"flex\"}},ae.entrySeq().map((i=>{let[s,u]=i;return He.createElement(\"div\",{style:handleGetBtnStyle(s),className:\"btn\",key:s,onClick:()=>(i=>{Y!==i&&Z(i)})(s)},He.createElement(\"h4\",{style:s===Y?{color:\"white\"}:{}},u.get(\"title\")))}))),He.createElement(\"div\",{className:\"copy-to-clipboard\"},He.createElement(Ci.CopyToClipboard,{text:le},He.createElement(\"button\",null))),He.createElement(\"div\",null,pe)))},plugins_request_snippets=()=>({components:{RequestSnippets:request_snippets},fn:ee,statePlugins:{requestSnippets:{selectors:ie}}});var xa=__webpack_require__(53479),Oa=__webpack_require__.n(xa),ka=__webpack_require__(14419),Aa=__webpack_require__.n(ka),Ca=__webpack_require__(41609),ja=__webpack_require__.n(Ca);const shallowArrayEquals=i=>s=>Array.isArray(i)&&Array.isArray(s)&&i.length===s.length&&i.every(((i,u)=>i===s[u])),list=function(){for(var i=arguments.length,s=new Array(i),u=0;u<i;u++)s[u]=arguments[u];return s};class Cache extends Map{delete(i){const s=Array.from(this.keys()).find(shallowArrayEquals(i));return super.delete(s)}get(i){const s=Array.from(this.keys()).find(shallowArrayEquals(i));return super.get(s)}has(i){return-1!==Array.from(this.keys()).findIndex(shallowArrayEquals(i))}}const utils_memoizeN=function(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:list;const{Cache:u}=gt();gt().Cache=Cache;const m=gt()(i,s);return gt().Cache=u,m},Ia={string:i=>i.pattern?(i=>{try{return new(Aa())(i).gen()}catch(i){return\"string\"}})(i.pattern):\"string\",string_email:()=>\"user@example.com\",\"string_date-time\":()=>(new Date).toISOString(),string_date:()=>(new Date).toISOString().substring(0,10),string_uuid:()=>\"3fa85f64-5717-4562-b3fc-2c963f66afa6\",string_hostname:()=>\"example.com\",string_ipv4:()=>\"198.51.100.42\",string_ipv6:()=>\"2001:0db8:5b96:0000:0000:426f:8e17:642a\",number:()=>0,number_float:()=>0,integer:()=>0,boolean:i=>\"boolean\"!=typeof i.default||i.default},primitive=i=>{i=objectify(i);let{type:s,format:u}=i,m=Ia[`${s}_${u}`]||Ia[s];return isFunc(m)?m(i):\"Unknown Type: \"+i.type},sanitizeRef=i=>deeplyStripKey(i,\"$$ref\",(i=>\"string\"==typeof i&&i.indexOf(\"#\")>-1)),Ma=[\"maxProperties\",\"minProperties\"],Da=[\"minItems\",\"maxItems\"],Ba=[\"minimum\",\"maximum\",\"exclusiveMinimum\",\"exclusiveMaximum\"],Fa=[\"minLength\",\"maxLength\"],liftSampleHelper=function(i,s){let u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if([\"example\",\"default\",\"enum\",\"xml\",\"type\",...Ma,...Da,...Ba,...Fa].forEach((u=>(u=>{void 0===s[u]&&void 0!==i[u]&&(s[u]=i[u])})(u))),void 0!==i.required&&Array.isArray(i.required)&&(void 0!==s.required&&s.required.length||(s.required=[]),i.required.forEach((i=>{s.required.includes(i)||s.required.push(i)}))),i.properties){s.properties||(s.properties={});let m=objectify(i.properties);for(let v in m)Object.prototype.hasOwnProperty.call(m,v)&&(m[v]&&m[v].deprecated||m[v]&&m[v].readOnly&&!u.includeReadOnly||m[v]&&m[v].writeOnly&&!u.includeWriteOnly||s.properties[v]||(s.properties[v]=m[v],!i.required&&Array.isArray(i.required)&&-1!==i.required.indexOf(v)&&(s.required?s.required.push(v):s.required=[v])))}return i.items&&(s.items||(s.items={}),s.items=liftSampleHelper(i.items,s.items,u)),s},sampleFromSchemaGeneric=function(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,m=arguments.length>3&&void 0!==arguments[3]&&arguments[3];i&&isFunc(i.toJS)&&(i=i.toJS());let v=void 0!==u||i&&void 0!==i.example||i&&void 0!==i.default;const _=!v&&i&&i.oneOf&&i.oneOf.length>0,j=!v&&i&&i.anyOf&&i.anyOf.length>0;if(!v&&(_||j)){const u=objectify(_?i.oneOf[0]:i.anyOf[0]);if(liftSampleHelper(u,i,s),!i.xml&&u.xml&&(i.xml=u.xml),void 0!==i.example&&void 0!==u.example)v=!0;else if(u.properties){i.properties||(i.properties={});let m=objectify(u.properties);for(let v in m)Object.prototype.hasOwnProperty.call(m,v)&&(m[v]&&m[v].deprecated||m[v]&&m[v].readOnly&&!s.includeReadOnly||m[v]&&m[v].writeOnly&&!s.includeWriteOnly||i.properties[v]||(i.properties[v]=m[v],!u.required&&Array.isArray(u.required)&&-1!==u.required.indexOf(v)&&(i.required?i.required.push(v):i.required=[v])))}}const M={};let{xml:$,type:W,example:X,properties:Y,additionalProperties:Z,items:ee}=i||{},{includeReadOnly:ie,includeWriteOnly:ae}=s;$=$||{};let ce,{name:le,prefix:pe,namespace:de}=$,fe={};if(m&&(le=le||\"notagname\",ce=(pe?pe+\":\":\"\")+le,de)){M[pe?\"xmlns:\"+pe:\"xmlns\"]=de}m&&(fe[ce]=[]);const schemaHasAny=s=>s.some((s=>Object.prototype.hasOwnProperty.call(i,s)));i&&!W&&(Y||Z||schemaHasAny(Ma)?W=\"object\":ee||schemaHasAny(Da)?W=\"array\":schemaHasAny(Ba)?(W=\"number\",i.type=\"number\"):v||i.enum||(W=\"string\",i.type=\"string\"));const handleMinMaxItems=s=>{var u,m,v,_,j;null!==(null===(u=i)||void 0===u?void 0:u.maxItems)&&void 0!==(null===(m=i)||void 0===m?void 0:m.maxItems)&&(s=s.slice(0,null===(j=i)||void 0===j?void 0:j.maxItems));if(null!==(null===(v=i)||void 0===v?void 0:v.minItems)&&void 0!==(null===(_=i)||void 0===_?void 0:_.minItems)){let u=0;for(;s.length<(null===(M=i)||void 0===M?void 0:M.minItems);){var M;s.push(s[u++%s.length])}}return s},ye=objectify(Y);let be,_e=0;const hasExceededMaxProperties=()=>i&&null!==i.maxProperties&&void 0!==i.maxProperties&&_e>=i.maxProperties,canAddProperty=s=>!i||null===i.maxProperties||void 0===i.maxProperties||!hasExceededMaxProperties()&&(!(s=>!(i&&i.required&&i.required.length&&i.required.includes(s)))(s)||i.maxProperties-_e-(()=>{if(!i||!i.required)return 0;let s=0;return m?i.required.forEach((i=>s+=void 0===fe[i]?0:1)):i.required.forEach((i=>{var u;return s+=void 0===(null===(u=fe[ce])||void 0===u?void 0:u.find((s=>void 0!==s[i])))?0:1})),i.required.length-s})()>0);if(be=m?function(u){let v=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if(i&&ye[u]){if(ye[u].xml=ye[u].xml||{},ye[u].xml.attribute){const i=Array.isArray(ye[u].enum)?ye[u].enum[0]:void 0,s=ye[u].example,m=ye[u].default;return void(M[ye[u].xml.name||u]=void 0!==s?s:void 0!==m?m:void 0!==i?i:primitive(ye[u]))}ye[u].xml.name=ye[u].xml.name||u}else ye[u]||!1===Z||(ye[u]={xml:{name:u}});let _=sampleFromSchemaGeneric(i&&ye[u]||void 0,s,v,m);canAddProperty(u)&&(_e++,Array.isArray(_)?fe[ce]=fe[ce].concat(_):fe[ce].push(_))}:(u,v)=>{if(canAddProperty(u)){if(Object.prototype.hasOwnProperty.call(i,\"discriminator\")&&i.discriminator&&Object.prototype.hasOwnProperty.call(i.discriminator,\"mapping\")&&i.discriminator.mapping&&Object.prototype.hasOwnProperty.call(i,\"$$ref\")&&i.$$ref&&i.discriminator.propertyName===u){for(let s in i.discriminator.mapping)if(-1!==i.$$ref.search(i.discriminator.mapping[s])){fe[u]=s;break}}else fe[u]=sampleFromSchemaGeneric(ye[u],s,v,m);_e++}},v){let v;if(v=sanitizeRef(void 0!==u?u:void 0!==X?X:i.default),!m){if(\"number\"==typeof v&&\"string\"===W)return`${v}`;if(\"string\"!=typeof v||\"string\"===W)return v;try{return JSON.parse(v)}catch(i){return v}}if(i||(W=Array.isArray(v)?\"array\":typeof v),\"array\"===W){if(!Array.isArray(v)){if(\"string\"==typeof v)return v;v=[v]}const u=i?i.items:void 0;u&&(u.xml=u.xml||$||{},u.xml.name=u.xml.name||$.name);let _=v.map((i=>sampleFromSchemaGeneric(u,s,i,m)));return _=handleMinMaxItems(_),$.wrapped?(fe[ce]=_,ja()(M)||fe[ce].push({_attr:M})):fe=_,fe}if(\"object\"===W){if(\"string\"==typeof v)return v;for(let s in v)Object.prototype.hasOwnProperty.call(v,s)&&(i&&ye[s]&&ye[s].readOnly&&!ie||i&&ye[s]&&ye[s].writeOnly&&!ae||(i&&ye[s]&&ye[s].xml&&ye[s].xml.attribute?M[ye[s].xml.name||s]=v[s]:be(s,v[s])));return ja()(M)||fe[ce].push({_attr:M}),fe}return fe[ce]=ja()(M)?v:[{_attr:M},v],fe}if(\"object\"===W){for(let i in ye)Object.prototype.hasOwnProperty.call(ye,i)&&(ye[i]&&ye[i].deprecated||ye[i]&&ye[i].readOnly&&!ie||ye[i]&&ye[i].writeOnly&&!ae||be(i));if(m&&M&&fe[ce].push({_attr:M}),hasExceededMaxProperties())return fe;if(!0===Z)m?fe[ce].push({additionalProp:\"Anything can be here\"}):fe.additionalProp1={},_e++;else if(Z){const u=objectify(Z),v=sampleFromSchemaGeneric(u,s,void 0,m);if(m&&u.xml&&u.xml.name&&\"notagname\"!==u.xml.name)fe[ce].push(v);else{const s=null!==i.minProperties&&void 0!==i.minProperties&&_e<i.minProperties?i.minProperties-_e:3;for(let i=1;i<=s;i++){if(hasExceededMaxProperties())return fe;if(m){const s={};s[\"additionalProp\"+i]=v.notagname,fe[ce].push(s)}else fe[\"additionalProp\"+i]=v;_e++}}}return fe}if(\"array\"===W){if(!ee)return;let u;var we;if(m)ee.xml=ee.xml||(null===(we=i)||void 0===we?void 0:we.xml)||{},ee.xml.name=ee.xml.name||$.name;if(Array.isArray(ee.anyOf))u=ee.anyOf.map((i=>sampleFromSchemaGeneric(liftSampleHelper(ee,i,s),s,void 0,m)));else if(Array.isArray(ee.oneOf))u=ee.oneOf.map((i=>sampleFromSchemaGeneric(liftSampleHelper(ee,i,s),s,void 0,m)));else{if(!(!m||m&&$.wrapped))return sampleFromSchemaGeneric(ee,s,void 0,m);u=[sampleFromSchemaGeneric(ee,s,void 0,m)]}return u=handleMinMaxItems(u),m&&$.wrapped?(fe[ce]=u,ja()(M)||fe[ce].push({_attr:M}),fe):u}let Se;if(i&&Array.isArray(i.enum))Se=normalizeArray(i.enum)[0];else{if(!i)return;if(Se=primitive(i),\"number\"==typeof Se){let s=i.minimum;null!=s&&(i.exclusiveMinimum&&s++,Se=s);let u=i.maximum;null!=u&&(i.exclusiveMaximum&&u--,Se=u)}if(\"string\"==typeof Se&&(null!==i.maxLength&&void 0!==i.maxLength&&(Se=Se.slice(0,i.maxLength)),null!==i.minLength&&void 0!==i.minLength)){let s=0;for(;Se.length<i.minLength;)Se+=Se[s++%Se.length]}}if(\"file\"!==W)return m?(fe[ce]=ja()(M)?Se:[{_attr:M},Se],fe):Se},inferSchema=i=>(i.schema&&(i=i.schema),i.properties&&(i.type=\"object\"),i),createXMLExample=(i,s,u)=>{const m=sampleFromSchemaGeneric(i,s,u,!0);if(m)return\"string\"==typeof m?m:Oa()(m,{declaration:!0,indent:\"\\t\"})},sampleFromSchema=(i,s,u)=>sampleFromSchemaGeneric(i,s,u,!1),resolver=(i,s,u)=>[i,JSON.stringify(s),JSON.stringify(u)],za=utils_memoizeN(createXMLExample,resolver),Ka=utils_memoizeN(sampleFromSchema,resolver),Ha=[{when:/json/,shouldStringifyTypes:[\"string\"]}],Ja=[\"object\"],get_json_sample_schema=i=>(s,u,m,v)=>{const{fn:_}=i(),j=_.memoizedSampleFromSchema(s,u,v),M=typeof j,$=Ha.reduce(((i,s)=>s.when.test(m)?[...i,...s.shouldStringifyTypes]:i),Ja);return wt()($,(i=>i===M))?JSON.stringify(j,null,2):j},get_yaml_sample_schema=i=>(s,u,m,v)=>{const{fn:_}=i(),j=_.getJsonSampleSchema(s,u,m,v);let M;try{M=co.dump(co.load(j),{lineWidth:-1},{schema:Yn}),\"\\n\"===M[M.length-1]&&(M=M.slice(0,M.length-1))}catch(i){return console.error(i),\"error: could not generate yaml example\"}return M.replace(/\\t/g,\"  \")},get_xml_sample_schema=i=>(s,u,m)=>{const{fn:v}=i();if(s&&!s.xml&&(s.xml={}),s&&!s.xml.name){if(!s.$$ref&&(s.type||s.items||s.properties||s.additionalProperties))return'<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n\\x3c!-- XML example cannot be generated; root element name is undefined --\\x3e';if(s.$$ref){let i=s.$$ref.match(/\\S*\\/(\\S+)$/);s.xml.name=i[1]}}return v.memoizedCreateXMLExample(s,u,m)},get_sample_schema=i=>function(s){var u,m;let v=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",_=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},j=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;const{fn:M}=i();return\"function\"==typeof(null===(u=s)||void 0===u?void 0:u.toJS)&&(s=s.toJS()),\"function\"==typeof(null===(m=j)||void 0===m?void 0:m.toJS)&&(j=j.toJS()),/xml/.test(v)?M.getXmlSampleSchema(s,_,j):/(yaml|yml)/.test(v)?M.getYamlSampleSchema(s,_,v,j):M.getJsonSampleSchema(s,_,v,j)},json_schema_5_samples=i=>{let{getSystem:s}=i;const u=get_json_sample_schema(s),m=get_yaml_sample_schema(s),v=get_xml_sample_schema(s),_=get_sample_schema(s);return{fn:{jsonSchema5:{inferSchema,sampleFromSchema,sampleFromSchemaGeneric,createXMLExample,memoizedSampleFromSchema:Ka,memoizedCreateXMLExample:za,getJsonSampleSchema:u,getYamlSampleSchema:m,getXmlSampleSchema:v,getSampleSchema:_},inferSchema,sampleFromSchema,sampleFromSchemaGeneric,createXMLExample,memoizedSampleFromSchema:Ka,memoizedCreateXMLExample:za,getJsonSampleSchema:u,getYamlSampleSchema:m,getXmlSampleSchema:v,getSampleSchema:_}}},Ga=[\"get\",\"put\",\"post\",\"delete\",\"options\",\"head\",\"patch\",\"trace\"],spec_selectors_state=i=>i||(0,et.Map)(),es=Xt(spec_selectors_state,(i=>i.get(\"lastError\"))),ts=Xt(spec_selectors_state,(i=>i.get(\"url\"))),rs=Xt(spec_selectors_state,(i=>i.get(\"spec\")||\"\")),ns=Xt(spec_selectors_state,(i=>i.get(\"specSource\")||\"not-editor\")),os=Xt(spec_selectors_state,(i=>i.get(\"json\",(0,et.Map)()))),as=Xt(os,(i=>i.toJS())),ss=Xt(spec_selectors_state,(i=>i.get(\"resolved\",(0,et.Map)()))),specResolvedSubtree=(i,s)=>i.getIn([\"resolvedSubtrees\",...s],void 0),mergerFn=(i,s)=>et.Map.isMap(i)&&et.Map.isMap(s)?s.get(\"$$ref\")?s:(0,et.OrderedMap)().mergeWith(mergerFn,i,s):s,cs=Xt(spec_selectors_state,(i=>(0,et.OrderedMap)().mergeWith(mergerFn,i.get(\"json\"),i.get(\"resolvedSubtrees\")))),spec=i=>os(i),ls=Xt(spec,(()=>!1)),us=Xt(spec,(i=>returnSelfOrNewMap(i&&i.get(\"info\")))),ps=Xt(spec,(i=>returnSelfOrNewMap(i&&i.get(\"externalDocs\")))),hs=Xt(us,(i=>i&&i.get(\"version\"))),ds=Xt(hs,(i=>/v?([0-9]*)\\.([0-9]*)\\.([0-9]*)/i.exec(i).slice(1))),fs=Xt(cs,(i=>i.get(\"paths\"))),ms=Xt((()=>[\"get\",\"put\",\"post\",\"delete\",\"options\",\"head\",\"patch\"])),ys=Xt(fs,(i=>{if(!i||i.size<1)return(0,et.List)();let s=(0,et.List)();return i&&i.forEach?(i.forEach(((i,u)=>{if(!i||!i.forEach)return{};i.forEach(((i,m)=>{Ga.indexOf(m)<0||(s=s.push((0,et.fromJS)({path:u,method:m,operation:i,id:`${m}-${u}`})))}))})),s):(0,et.List)()})),gs=Xt(spec,(i=>(0,et.Set)(i.get(\"consumes\")))),vs=Xt(spec,(i=>(0,et.Set)(i.get(\"produces\")))),bs=Xt(spec,(i=>i.get(\"security\",(0,et.List)()))),_s=Xt(spec,(i=>i.get(\"securityDefinitions\"))),findDefinition=(i,s)=>{const u=i.getIn([\"resolvedSubtrees\",\"definitions\",s],null),m=i.getIn([\"json\",\"definitions\",s],null);return u||m||null},ws=Xt(spec,(i=>{const s=i.get(\"definitions\");return et.Map.isMap(s)?s:(0,et.Map)()})),Es=Xt(spec,(i=>i.get(\"basePath\"))),Ss=Xt(spec,(i=>i.get(\"host\"))),xs=Xt(spec,(i=>i.get(\"schemes\",(0,et.Map)()))),Os=Xt(ys,gs,vs,((i,s,u)=>i.map((i=>i.update(\"operation\",(i=>{if(i){if(!et.Map.isMap(i))return;return i.withMutations((i=>(i.get(\"consumes\")||i.update(\"consumes\",(i=>(0,et.Set)(i).merge(s))),i.get(\"produces\")||i.update(\"produces\",(i=>(0,et.Set)(i).merge(u))),i)))}return(0,et.Map)()})))))),ks=Xt(spec,(i=>{const s=i.get(\"tags\",(0,et.List)());return et.List.isList(s)?s.filter((i=>et.Map.isMap(i))):(0,et.List)()})),tagDetails=(i,s)=>(ks(i)||(0,et.List)()).filter(et.Map.isMap).find((i=>i.get(\"name\")===s),(0,et.Map)()),As=Xt(Os,ks,((i,s)=>i.reduce(((i,s)=>{let u=(0,et.Set)(s.getIn([\"operation\",\"tags\"]));return u.count()<1?i.update(\"default\",(0,et.List)(),(i=>i.push(s))):u.reduce(((i,u)=>i.update(u,(0,et.List)(),(i=>i.push(s)))),i)}),s.reduce(((i,s)=>i.set(s.get(\"name\"),(0,et.List)())),(0,et.OrderedMap)())))),selectors_taggedOperations=i=>s=>{let{getConfigs:u}=s,{tagsSorter:m,operationsSorter:v}=u();return As(i).sortBy(((i,s)=>s),((i,s)=>{let u=\"function\"==typeof m?m:Dt.tagsSorter[m];return u?u(i,s):null})).map(((s,u)=>{let m=\"function\"==typeof v?v:Dt.operationsSorter[v],_=m?s.sort(m):s;return(0,et.Map)({tagDetails:tagDetails(i,u),operations:_})}))},Cs=Xt(spec_selectors_state,(i=>i.get(\"responses\",(0,et.Map)()))),js=Xt(spec_selectors_state,(i=>i.get(\"requests\",(0,et.Map)()))),Ps=Xt(spec_selectors_state,(i=>i.get(\"mutatedRequests\",(0,et.Map)()))),responseFor=(i,s,u)=>Cs(i).getIn([s,u],null),requestFor=(i,s,u)=>js(i).getIn([s,u],null),mutatedRequestFor=(i,s,u)=>Ps(i).getIn([s,u],null),allowTryItOutFor=()=>!0,parameterWithMetaByIdentity=(i,s,u)=>{const m=cs(i).getIn([\"paths\",...s,\"parameters\"],(0,et.OrderedMap)()),v=i.getIn([\"meta\",\"paths\",...s,\"parameters\"],(0,et.OrderedMap)());return m.map((i=>{const s=v.get(`${u.get(\"in\")}.${u.get(\"name\")}`),m=v.get(`${u.get(\"in\")}.${u.get(\"name\")}.hash-${u.hashCode()}`);return(0,et.OrderedMap)().merge(i,s,m)})).find((i=>i.get(\"in\")===u.get(\"in\")&&i.get(\"name\")===u.get(\"name\")),(0,et.OrderedMap)())},parameterInclusionSettingFor=(i,s,u,m)=>{const v=`${m}.${u}`;return i.getIn([\"meta\",\"paths\",...s,\"parameter_inclusions\",v],!1)},parameterWithMeta=(i,s,u,m)=>{const v=cs(i).getIn([\"paths\",...s,\"parameters\"],(0,et.OrderedMap)()).find((i=>i.get(\"in\")===m&&i.get(\"name\")===u),(0,et.OrderedMap)());return parameterWithMetaByIdentity(i,s,v)},operationWithMeta=(i,s,u)=>{const m=cs(i).getIn([\"paths\",s,u],(0,et.OrderedMap)()),v=i.getIn([\"meta\",\"paths\",s,u],(0,et.OrderedMap)()),_=m.get(\"parameters\",(0,et.List)()).map((m=>parameterWithMetaByIdentity(i,[s,u],m)));return(0,et.OrderedMap)().merge(m,v).set(\"parameters\",_)};function getParameter(i,s,u,m){return s=s||[],i.getIn([\"meta\",\"paths\",...s,\"parameters\"],(0,et.fromJS)([])).find((i=>et.Map.isMap(i)&&i.get(\"name\")===u&&i.get(\"in\")===m))||(0,et.Map)()}const Is=Xt(spec,(i=>{const s=i.get(\"host\");return\"string\"==typeof s&&s.length>0&&\"/\"!==s[0]}));function parameterValues(i,s,u){return s=s||[],operationWithMeta(i,...s).get(\"parameters\",(0,et.List)()).reduce(((i,s)=>{let m=u&&\"body\"===s.get(\"in\")?s.get(\"value_xml\"):s.get(\"value\");return i.set(paramToIdentifier(s,{allowHashes:!1}),m)}),(0,et.fromJS)({}))}function parametersIncludeIn(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\";if(et.List.isList(i))return i.some((i=>et.Map.isMap(i)&&i.get(\"in\")===s))}function parametersIncludeType(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\";if(et.List.isList(i))return i.some((i=>et.Map.isMap(i)&&i.get(\"type\")===s))}function contentTypeValues(i,s){s=s||[];let u=cs(i).getIn([\"paths\",...s],(0,et.fromJS)({})),m=i.getIn([\"meta\",\"paths\",...s],(0,et.fromJS)({})),v=currentProducesFor(i,s);const _=u.get(\"parameters\")||new et.List,j=m.get(\"consumes_value\")?m.get(\"consumes_value\"):parametersIncludeType(_,\"file\")?\"multipart/form-data\":parametersIncludeType(_,\"formData\")?\"application/x-www-form-urlencoded\":void 0;return(0,et.fromJS)({requestContentType:j,responseContentType:v})}function currentProducesFor(i,s){s=s||[];const u=cs(i).getIn([\"paths\",...s],null);if(null===u)return;const m=i.getIn([\"meta\",\"paths\",...s,\"produces_value\"],null),v=u.getIn([\"produces\",0],null);return m||v||\"application/json\"}function producesOptionsFor(i,s){s=s||[];const u=cs(i),m=u.getIn([\"paths\",...s],null);if(null===m)return;const[v]=s,_=m.get(\"produces\",null),j=u.getIn([\"paths\",v,\"produces\"],null),M=u.getIn([\"produces\"],null);return _||j||M}function consumesOptionsFor(i,s){s=s||[];const u=cs(i),m=u.getIn([\"paths\",...s],null);if(null===m)return;const[v]=s,_=m.get(\"consumes\",null),j=u.getIn([\"paths\",v,\"consumes\"],null),M=u.getIn([\"consumes\"],null);return _||j||M}const operationScheme=(i,s,u)=>{let m=i.get(\"url\").match(/^([a-z][a-z0-9+\\-.]*):/),v=Array.isArray(m)?m[1]:null;return i.getIn([\"scheme\",s,u])||i.getIn([\"scheme\",\"_defaultScheme\"])||v||\"\"},canExecuteScheme=(i,s,u)=>[\"http\",\"https\"].indexOf(operationScheme(i,s,u))>-1,validationErrors=(i,s)=>{s=s||[];let u=i.getIn([\"meta\",\"paths\",...s,\"parameters\"],(0,et.fromJS)([]));const m=[];return u.forEach((i=>{let s=i.get(\"errors\");s&&s.count()&&s.forEach((i=>m.push(i)))})),m},validateBeforeExecute=(i,s)=>0===validationErrors(i,s).length,getOAS3RequiredRequestBodyContentType=(i,s)=>{let u={requestBody:!1,requestContentType:{}},m=i.getIn([\"resolvedSubtrees\",\"paths\",...s,\"requestBody\"],(0,et.fromJS)([]));return m.size<1||(m.getIn([\"required\"])&&(u.requestBody=m.getIn([\"required\"])),m.getIn([\"content\"]).entrySeq().forEach((i=>{const s=i[0];if(i[1].getIn([\"schema\",\"required\"])){const m=i[1].getIn([\"schema\",\"required\"]).toJS();u.requestContentType[s]=m}}))),u},isMediaTypeSchemaPropertiesEqual=(i,s,u,m)=>{if((u||m)&&u===m)return!0;let v=i.getIn([\"resolvedSubtrees\",\"paths\",...s,\"requestBody\",\"content\"],(0,et.fromJS)([]));if(v.size<2||!u||!m)return!1;let _=v.getIn([u,\"schema\",\"properties\"],(0,et.fromJS)([])),j=v.getIn([m,\"schema\",\"properties\"],(0,et.fromJS)([]));return!!_.equals(j)};function returnSelfOrNewMap(i){return et.Map.isMap(i)?i:new et.Map}var Ns=__webpack_require__(47037),Ts=__webpack_require__.n(Ns),Ms=__webpack_require__(23279),Rs=__webpack_require__.n(Ms),Ds=__webpack_require__(36968),Bs=__webpack_require__.n(Ds),Ls=__webpack_require__(72700),Fs=__webpack_require__.n(Ls),qs=__webpack_require__(75703),$s=__webpack_require__.n(qs);const Us=[\"path\",\"method\"],zs=\"spec_update_spec\",Vs=\"spec_update_url\",Ws=\"spec_update_json\",Ks=\"spec_update_param\",Hs=\"spec_update_empty_param_inclusion\",Js=\"spec_validate_param\",Gs=\"spec_set_response\",Xs=\"spec_set_request\",Ys=\"spec_set_mutated_request\",Qs=\"spec_log_request\",Zs=\"spec_clear_response\",ec=\"spec_clear_request\",nc=\"spec_clear_validate_param\",oc=\"spec_update_operation_meta_value\",ic=\"spec_update_resolved\",lc=\"spec_update_resolved_subtree\",pc=\"set_scheme\",toStr=i=>Ts()(i)?i:\"\";function updateSpec(i){const s=toStr(i).replace(/\\t/g,\"  \");if(\"string\"==typeof i)return{type:zs,payload:s}}function updateResolved(i){return{type:ic,payload:i}}function updateUrl(i){return{type:Vs,payload:i}}function updateJsonSpec(i){return{type:Ws,payload:i}}const parseToJson=i=>s=>{let{specActions:u,specSelectors:m,errActions:v}=s,{specStr:_}=m,j=null;try{i=i||_(),v.clear({source:\"parser\"}),j=co.load(i,{schema:Yn})}catch(i){return console.error(i),v.newSpecErr({source:\"parser\",level:\"error\",message:i.reason,line:i.mark&&i.mark.line?i.mark.line+1:void 0})}return j&&\"object\"==typeof j?u.updateJsonSpec(j):{}};let hc=!1;const resolveSpec=(i,s)=>u=>{let{specActions:m,specSelectors:v,errActions:_,fn:{fetch:j,resolve:M,AST:$={}},getConfigs:W}=u;hc||(console.warn(\"specActions.resolveSpec is deprecated since v3.10.0 and will be removed in v4.0.0; use requestResolvedSubtree instead!\"),hc=!0);const{modelPropertyMacro:X,parameterMacro:Y,requestInterceptor:Z,responseInterceptor:ee}=W();void 0===i&&(i=v.specJson()),void 0===s&&(s=v.url());let ie=$.getLineNumberForPath?$.getLineNumberForPath:()=>{},ae=v.specStr();return M({fetch:j,spec:i,baseDoc:s,modelPropertyMacro:X,parameterMacro:Y,requestInterceptor:Z,responseInterceptor:ee}).then((i=>{let{spec:s,errors:u}=i;if(_.clear({type:\"thrown\"}),Array.isArray(u)&&u.length>0){let i=u.map((i=>(console.error(i),i.line=i.fullPath?ie(ae,i.fullPath):null,i.path=i.fullPath?i.fullPath.join(\".\"):null,i.level=\"error\",i.type=\"thrown\",i.source=\"resolver\",Object.defineProperty(i,\"message\",{enumerable:!0,value:i.message}),i)));_.newThrownErrBatch(i)}return m.updateResolved(s)}))};let fc=[];const mc=Rs()((()=>{const i=fc.reduce(((i,s)=>{let{path:u,system:m}=s;return i.has(m)||i.set(m,[]),i.get(m).push(u),i}),new Map);fc=[],i.forEach((async(i,s)=>{var u;if(!s)return void console.error(\"debResolveSubtrees: don't have a system to operate on, aborting.\");if(!s.fn.resolveSubtree)return void console.error(\"Error: Swagger-Client did not provide a `resolveSubtree` method, doing nothing.\");const{errActions:m,errSelectors:v,fn:{resolveSubtree:_,fetch:j,AST:M={}},specSelectors:$,specActions:W}=s,X=null!==(u=M.getLineNumberForPath)&&void 0!==u?u:$s()(void 0),Y=$.specStr(),{modelPropertyMacro:Z,parameterMacro:ee,requestInterceptor:ie,responseInterceptor:ae}=s.getConfigs();try{const s=await i.reduce((async(i,s)=>{let{resultMap:u,specWithCurrentSubtrees:M}=await i;const{errors:W,spec:ce}=await _(M,s,{baseDoc:$.url(),modelPropertyMacro:Z,parameterMacro:ee,requestInterceptor:ie,responseInterceptor:ae});if(v.allErrors().size&&m.clearBy((i=>\"thrown\"!==i.get(\"type\")||\"resolver\"!==i.get(\"source\")||!i.get(\"fullPath\").every(((i,u)=>i===s[u]||void 0===s[u])))),Array.isArray(W)&&W.length>0){let i=W.map((i=>(i.line=i.fullPath?X(Y,i.fullPath):null,i.path=i.fullPath?i.fullPath.join(\".\"):null,i.level=\"error\",i.type=\"thrown\",i.source=\"resolver\",Object.defineProperty(i,\"message\",{enumerable:!0,value:i.message}),i)));m.newThrownErrBatch(i)}return ce&&$.isOAS3()&&\"components\"===s[0]&&\"securitySchemes\"===s[1]&&await Promise.all(Object.values(ce).filter((i=>\"openIdConnect\"===i.type)).map((async i=>{const s={url:i.openIdConnectUrl,requestInterceptor:ie,responseInterceptor:ae};try{const u=await j(s);u instanceof Error||u.status>=400?console.error(u.statusText+\" \"+s.url):i.openIdConnectData=JSON.parse(u.text)}catch(i){console.error(i)}}))),Bs()(u,s,ce),M=Fs()(s,ce,M),{resultMap:u,specWithCurrentSubtrees:M}}),Promise.resolve({resultMap:($.specResolvedSubtree([])||(0,et.Map)()).toJS(),specWithCurrentSubtrees:$.specJS()}));W.updateResolvedSubtree([],s.resultMap)}catch(i){console.error(i)}}))}),35),requestResolvedSubtree=i=>s=>{fc.find((u=>{let{path:m,system:v}=u;return v===s&&m.toString()===i.toString()}))||(fc.push({path:i,system:s}),mc())};function changeParam(i,s,u,m,v){return{type:Ks,payload:{path:i,value:m,paramName:s,paramIn:u,isXml:v}}}function changeParamByIdentity(i,s,u,m){return{type:Ks,payload:{path:i,param:s,value:u,isXml:m}}}const updateResolvedSubtree=(i,s)=>({type:lc,payload:{path:i,value:s}}),invalidateResolvedSubtreeCache=()=>({type:lc,payload:{path:[],value:(0,et.Map)()}}),validateParams=(i,s)=>({type:Js,payload:{pathMethod:i,isOAS3:s}}),updateEmptyParamInclusion=(i,s,u,m)=>({type:Hs,payload:{pathMethod:i,paramName:s,paramIn:u,includeEmptyValue:m}});function clearValidateParams(i){return{type:nc,payload:{pathMethod:i}}}function changeConsumesValue(i,s){return{type:oc,payload:{path:i,value:s,key:\"consumes_value\"}}}function changeProducesValue(i,s){return{type:oc,payload:{path:i,value:s,key:\"produces_value\"}}}const setResponse=(i,s,u)=>({payload:{path:i,method:s,res:u},type:Gs}),setRequest=(i,s,u)=>({payload:{path:i,method:s,req:u},type:Xs}),setMutatedRequest=(i,s,u)=>({payload:{path:i,method:s,req:u},type:Ys}),logRequest=i=>({payload:i,type:Qs}),executeRequest=i=>s=>{let{fn:u,specActions:m,specSelectors:v,getConfigs:_,oas3Selectors:j}=s,{pathName:M,method:$,operation:W}=i,{requestInterceptor:X,responseInterceptor:Y}=_(),Z=W.toJS();if(W&&W.get(\"parameters\")&&W.get(\"parameters\").filter((i=>i&&!0===i.get(\"allowEmptyValue\"))).forEach((s=>{if(v.parameterInclusionSettingFor([M,$],s.get(\"name\"),s.get(\"in\"))){i.parameters=i.parameters||{};const u=paramToValue(s,i.parameters);(!u||u&&0===u.size)&&(i.parameters[s.get(\"name\")]=\"\")}})),i.contextUrl=Lt()(v.url()).toString(),Z&&Z.operationId?i.operationId=Z.operationId:Z&&M&&$&&(i.operationId=u.opId(Z,M,$)),v.isOAS3()){const s=`${M}:${$}`;i.server=j.selectedServer(s)||j.selectedServer();const u=j.serverVariables({server:i.server,namespace:s}).toJS(),m=j.serverVariables({server:i.server}).toJS();i.serverVariables=Object.keys(u).length?u:m,i.requestContentType=j.requestContentType(M,$),i.responseContentType=j.responseContentType(M,$)||\"*/*\";const v=j.requestBodyValue(M,$),_=j.requestBodyInclusionSetting(M,$);v&&v.toJS?i.requestBody=v.map((i=>et.Map.isMap(i)?i.get(\"value\"):i)).filter(((i,s)=>(Array.isArray(i)?0!==i.length:!isEmptyValue(i))||_.get(s))).toJS():i.requestBody=v}let ee=Object.assign({},i);ee=u.buildRequest(ee),m.setRequest(i.pathName,i.method,ee);i.requestInterceptor=async s=>{let u=await X.apply(void 0,[s]),v=Object.assign({},u);return m.setMutatedRequest(i.pathName,i.method,v),u},i.responseInterceptor=Y;const ie=Date.now();return u.execute(i).then((s=>{s.duration=Date.now()-ie,m.setResponse(i.pathName,i.method,s)})).catch((s=>{\"Failed to fetch\"===s.message&&(s.name=\"\",s.message='**Failed to fetch.**  \\n**Possible Reasons:** \\n  - CORS \\n  - Network Failure \\n  - URL scheme must be \"http\" or \"https\" for CORS request.'),m.setResponse(i.pathName,i.method,{error:!0,err:(0,nt.serializeError)(s)})}))},actions_execute=function(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{path:s,method:u}=i,m=Mo()(i,Us);return i=>{let{fn:{fetch:v},specSelectors:_,specActions:j}=i,M=_.specJsonWithResolvedSubtrees().toJS(),$=_.operationScheme(s,u),{requestContentType:W,responseContentType:X}=_.contentTypeValues([s,u]).toJS(),Y=/xml/i.test(W),Z=_.parameterValues([s,u],Y).toJS();return j.executeRequest(rr()(rr()({},m),{},{fetch:v,spec:M,pathName:s,method:u,parameters:Z,requestContentType:W,scheme:$,responseContentType:X}))}};function clearResponse(i,s){return{type:Zs,payload:{path:i,method:s}}}function clearRequest(i,s){return{type:ec,payload:{path:i,method:s}}}function setScheme(i,s,u){return{type:pc,payload:{scheme:i,path:s,method:u}}}const gc={[zs]:(i,s)=>\"string\"==typeof s.payload?i.set(\"spec\",s.payload):i,[Vs]:(i,s)=>i.set(\"url\",s.payload+\"\"),[Ws]:(i,s)=>i.set(\"json\",fromJSOrdered(s.payload)),[ic]:(i,s)=>i.setIn([\"resolved\"],fromJSOrdered(s.payload)),[lc]:(i,s)=>{const{value:u,path:m}=s.payload;return i.setIn([\"resolvedSubtrees\",...m],fromJSOrdered(u))},[Ks]:(i,s)=>{let{payload:u}=s,{path:m,paramName:v,paramIn:_,param:j,value:M,isXml:$}=u,W=j?paramToIdentifier(j):`${_}.${v}`;const X=$?\"value_xml\":\"value\";return i.setIn([\"meta\",\"paths\",...m,\"parameters\",W,X],M)},[Hs]:(i,s)=>{let{payload:u}=s,{pathMethod:m,paramName:v,paramIn:_,includeEmptyValue:j}=u;if(!v||!_)return console.warn(\"Warning: UPDATE_EMPTY_PARAM_INCLUSION could not generate a paramKey.\"),i;const M=`${_}.${v}`;return i.setIn([\"meta\",\"paths\",...m,\"parameter_inclusions\",M],j)},[Js]:(i,s)=>{let{payload:{pathMethod:u,isOAS3:m}}=s;const v=cs(i).getIn([\"paths\",...u]),_=parameterValues(i,u).toJS();return i.updateIn([\"meta\",\"paths\",...u,\"parameters\"],(0,et.fromJS)({}),(s=>v.get(\"parameters\",(0,et.List)()).reduce(((s,v)=>{const j=paramToValue(v,_),M=parameterInclusionSettingFor(i,u,v.get(\"name\"),v.get(\"in\")),$=function(i,s){let{isOAS3:u=!1,bypassRequiredCheck:m=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},v=i.get(\"required\"),{schema:_,parameterContentMediaType:j}=getParameterSchema(i,{isOAS3:u});return validateValueBySchema(s,_,v,m,j)}(v,j,{bypassRequiredCheck:M,isOAS3:m});return s.setIn([paramToIdentifier(v),\"errors\"],(0,et.fromJS)($))}),s)))},[nc]:(i,s)=>{let{payload:{pathMethod:u}}=s;return i.updateIn([\"meta\",\"paths\",...u,\"parameters\"],(0,et.fromJS)([]),(i=>i.map((i=>i.set(\"errors\",(0,et.fromJS)([]))))))},[Gs]:(i,s)=>{let u,{payload:{res:m,path:v,method:_}}=s;u=m.error?Object.assign({error:!0,name:m.err.name,message:m.err.message,statusCode:m.err.statusCode},m.err.response):m,u.headers=u.headers||{};let j=i.setIn([\"responses\",v,_],fromJSOrdered(u));return dt.Blob&&m.data instanceof dt.Blob&&(j=j.setIn([\"responses\",v,_,\"text\"],m.data)),j},[Xs]:(i,s)=>{let{payload:{req:u,path:m,method:v}}=s;return i.setIn([\"requests\",m,v],fromJSOrdered(u))},[Ys]:(i,s)=>{let{payload:{req:u,path:m,method:v}}=s;return i.setIn([\"mutatedRequests\",m,v],fromJSOrdered(u))},[oc]:(i,s)=>{let{payload:{path:u,value:m,key:v}}=s,_=[\"paths\",...u],j=[\"meta\",\"paths\",...u];return i.getIn([\"json\",..._])||i.getIn([\"resolved\",..._])||i.getIn([\"resolvedSubtrees\",..._])?i.setIn([...j,v],(0,et.fromJS)(m)):i},[Zs]:(i,s)=>{let{payload:{path:u,method:m}}=s;return i.deleteIn([\"responses\",u,m])},[ec]:(i,s)=>{let{payload:{path:u,method:m}}=s;return i.deleteIn([\"requests\",u,m])},[pc]:(i,s)=>{let{payload:{scheme:u,path:m,method:v}}=s;return m&&v?i.setIn([\"scheme\",m,v],u):m||v?void 0:i.setIn([\"scheme\",\"_defaultScheme\"],u)}},wrap_actions_updateSpec=(i,s)=>{let{specActions:u}=s;return function(){i(...arguments),u.parseToJson(...arguments)}},wrap_actions_updateJsonSpec=(i,s)=>{let{specActions:u}=s;return function(){for(var s=arguments.length,m=new Array(s),v=0;v<s;v++)m[v]=arguments[v];i(...m),u.invalidateResolvedSubtreeCache();const[_]=m,j=ko()(_,[\"paths\"])||{};Object.keys(j).forEach((i=>{ko()(j,[i]).$ref&&u.requestResolvedSubtree([\"paths\",i])})),u.requestResolvedSubtree([\"components\",\"securitySchemes\"])}},wrap_actions_executeRequest=(i,s)=>{let{specActions:u}=s;return s=>(u.logRequest(s),i(s))},wrap_actions_validateParams=(i,s)=>{let{specSelectors:u}=s;return s=>i(s,u.isOAS3())},plugins_spec=()=>({statePlugins:{spec:{wrapActions:rr()({},le),reducers:rr()({},gc),actions:rr()({},ce),selectors:rr()({},ae)}}});var _c=function(){var extendStatics=function(i,s){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,s){i.__proto__=s}||function(i,s){for(var u in s)s.hasOwnProperty(u)&&(i[u]=s[u])},extendStatics(i,s)};return function(i,s){function __(){this.constructor=i}extendStatics(i,s),i.prototype=null===s?Object.create(s):(__.prototype=s.prototype,new __)}}(),Ec=Object.prototype.hasOwnProperty;function module_helpers_hasOwnProperty(i,s){return Ec.call(i,s)}function _objectKeys(i){if(Array.isArray(i)){for(var s=new Array(i.length),u=0;u<s.length;u++)s[u]=\"\"+u;return s}if(Object.keys)return Object.keys(i);var m=[];for(var v in i)module_helpers_hasOwnProperty(i,v)&&m.push(v);return m}function _deepClone(i){switch(typeof i){case\"object\":return JSON.parse(JSON.stringify(i));case\"undefined\":return null;default:return i}}function helpers_isInteger(i){for(var s,u=0,m=i.length;u<m;){if(!((s=i.charCodeAt(u))>=48&&s<=57))return!1;u++}return!0}function escapePathComponent(i){return-1===i.indexOf(\"/\")&&-1===i.indexOf(\"~\")?i:i.replace(/~/g,\"~0\").replace(/\\//g,\"~1\")}function unescapePathComponent(i){return i.replace(/~1/g,\"/\").replace(/~0/g,\"~\")}function hasUndefined(i){if(void 0===i)return!0;if(i)if(Array.isArray(i)){for(var s=0,u=i.length;s<u;s++)if(hasUndefined(i[s]))return!0}else if(\"object\"==typeof i)for(var m=_objectKeys(i),v=m.length,_=0;_<v;_++)if(hasUndefined(i[m[_]]))return!0;return!1}function patchErrorMessageFormatter(i,s){var u=[i];for(var m in s){var v=\"object\"==typeof s[m]?JSON.stringify(s[m],null,2):s[m];void 0!==v&&u.push(m+\": \"+v)}return u.join(\"\\n\")}var Oc=function(i){function PatchError(s,u,m,v,_){var j=this.constructor,M=i.call(this,patchErrorMessageFormatter(s,{name:u,index:m,operation:v,tree:_}))||this;return M.name=u,M.index=m,M.operation=v,M.tree=_,Object.setPrototypeOf(M,j.prototype),M.message=patchErrorMessageFormatter(s,{name:u,index:m,operation:v,tree:_}),M}return _c(PatchError,i),PatchError}(Error),kc=Oc,jc=_deepClone,Ic={add:function(i,s,u){return i[s]=this.value,{newDocument:u}},remove:function(i,s,u){var m=i[s];return delete i[s],{newDocument:u,removed:m}},replace:function(i,s,u){var m=i[s];return i[s]=this.value,{newDocument:u,removed:m}},move:function(i,s,u){var m=getValueByPointer(u,this.path);m&&(m=_deepClone(m));var v=applyOperation(u,{op:\"remove\",path:this.from}).removed;return applyOperation(u,{op:\"add\",path:this.path,value:v}),{newDocument:u,removed:m}},copy:function(i,s,u){var m=getValueByPointer(u,this.from);return applyOperation(u,{op:\"add\",path:this.path,value:_deepClone(m)}),{newDocument:u}},test:function(i,s,u){return{newDocument:u,test:_areEquals(i[s],this.value)}},_get:function(i,s,u){return this.value=i[s],{newDocument:u}}},Nc={add:function(i,s,u){return helpers_isInteger(s)?i.splice(s,0,this.value):i[s]=this.value,{newDocument:u,index:s}},remove:function(i,s,u){return{newDocument:u,removed:i.splice(s,1)[0]}},replace:function(i,s,u){var m=i[s];return i[s]=this.value,{newDocument:u,removed:m}},move:Ic.move,copy:Ic.copy,test:Ic.test,_get:Ic._get};function getValueByPointer(i,s){if(\"\"==s)return i;var u={op:\"_get\",path:s};return applyOperation(i,u),u.value}function applyOperation(i,s,u,m,v,_){if(void 0===u&&(u=!1),void 0===m&&(m=!0),void 0===v&&(v=!0),void 0===_&&(_=0),u&&(\"function\"==typeof u?u(s,0,i,s.path):validator(s,0)),\"\"===s.path){var j={newDocument:i};if(\"add\"===s.op)return j.newDocument=s.value,j;if(\"replace\"===s.op)return j.newDocument=s.value,j.removed=i,j;if(\"move\"===s.op||\"copy\"===s.op)return j.newDocument=getValueByPointer(i,s.from),\"move\"===s.op&&(j.removed=i),j;if(\"test\"===s.op){if(j.test=_areEquals(i,s.value),!1===j.test)throw new kc(\"Test operation failed\",\"TEST_OPERATION_FAILED\",_,s,i);return j.newDocument=i,j}if(\"remove\"===s.op)return j.removed=i,j.newDocument=null,j;if(\"_get\"===s.op)return s.value=i,j;if(u)throw new kc(\"Operation `op` property is not one of operations defined in RFC-6902\",\"OPERATION_OP_INVALID\",_,s,i);return j}m||(i=_deepClone(i));var M=(s.path||\"\").split(\"/\"),$=i,W=1,X=M.length,Y=void 0,Z=void 0,ee=void 0;for(ee=\"function\"==typeof u?u:validator;;){if((Z=M[W])&&-1!=Z.indexOf(\"~\")&&(Z=unescapePathComponent(Z)),v&&(\"__proto__\"==Z||\"prototype\"==Z&&W>0&&\"constructor\"==M[W-1]))throw new TypeError(\"JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README\");if(u&&void 0===Y&&(void 0===$[Z]?Y=M.slice(0,W).join(\"/\"):W==X-1&&(Y=s.path),void 0!==Y&&ee(s,0,i,Y)),W++,Array.isArray($)){if(\"-\"===Z)Z=$.length;else{if(u&&!helpers_isInteger(Z))throw new kc(\"Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index\",\"OPERATION_PATH_ILLEGAL_ARRAY_INDEX\",_,s,i);helpers_isInteger(Z)&&(Z=~~Z)}if(W>=X){if(u&&\"add\"===s.op&&Z>$.length)throw new kc(\"The specified index MUST NOT be greater than the number of elements in the array\",\"OPERATION_VALUE_OUT_OF_BOUNDS\",_,s,i);if(!1===(j=Nc[s.op].call(s,$,Z,i)).test)throw new kc(\"Test operation failed\",\"TEST_OPERATION_FAILED\",_,s,i);return j}}else if(W>=X){if(!1===(j=Ic[s.op].call(s,$,Z,i)).test)throw new kc(\"Test operation failed\",\"TEST_OPERATION_FAILED\",_,s,i);return j}if($=$[Z],u&&W<X&&(!$||\"object\"!=typeof $))throw new kc(\"Cannot perform operation at the desired path\",\"OPERATION_PATH_UNRESOLVABLE\",_,s,i)}}function applyPatch(i,s,u,m,v){if(void 0===m&&(m=!0),void 0===v&&(v=!0),u&&!Array.isArray(s))throw new kc(\"Patch sequence must be an array\",\"SEQUENCE_NOT_AN_ARRAY\");m||(i=_deepClone(i));for(var _=new Array(s.length),j=0,M=s.length;j<M;j++)_[j]=applyOperation(i,s[j],u,!0,v,j),i=_[j].newDocument;return _.newDocument=i,_}function applyReducer(i,s,u){var m=applyOperation(i,s);if(!1===m.test)throw new kc(\"Test operation failed\",\"TEST_OPERATION_FAILED\",u,s,i);return m.newDocument}function validator(i,s,u,m){if(\"object\"!=typeof i||null===i||Array.isArray(i))throw new kc(\"Operation is not an object\",\"OPERATION_NOT_AN_OBJECT\",s,i,u);if(!Ic[i.op])throw new kc(\"Operation `op` property is not one of operations defined in RFC-6902\",\"OPERATION_OP_INVALID\",s,i,u);if(\"string\"!=typeof i.path)throw new kc(\"Operation `path` property is not a string\",\"OPERATION_PATH_INVALID\",s,i,u);if(0!==i.path.indexOf(\"/\")&&i.path.length>0)throw new kc('Operation `path` property must start with \"/\"',\"OPERATION_PATH_INVALID\",s,i,u);if((\"move\"===i.op||\"copy\"===i.op)&&\"string\"!=typeof i.from)throw new kc(\"Operation `from` property is not present (applicable in `move` and `copy` operations)\",\"OPERATION_FROM_REQUIRED\",s,i,u);if((\"add\"===i.op||\"replace\"===i.op||\"test\"===i.op)&&void 0===i.value)throw new kc(\"Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)\",\"OPERATION_VALUE_REQUIRED\",s,i,u);if((\"add\"===i.op||\"replace\"===i.op||\"test\"===i.op)&&hasUndefined(i.value))throw new kc(\"Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)\",\"OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED\",s,i,u);if(u)if(\"add\"==i.op){var v=i.path.split(\"/\").length,_=m.split(\"/\").length;if(v!==_+1&&v!==_)throw new kc(\"Cannot perform an `add` operation at the desired path\",\"OPERATION_PATH_CANNOT_ADD\",s,i,u)}else if(\"replace\"===i.op||\"remove\"===i.op||\"_get\"===i.op){if(i.path!==m)throw new kc(\"Cannot perform the operation at a path that does not exist\",\"OPERATION_PATH_UNRESOLVABLE\",s,i,u)}else if(\"move\"===i.op||\"copy\"===i.op){var j=validate([{op:\"_get\",path:i.from,value:void 0}],u);if(j&&\"OPERATION_PATH_UNRESOLVABLE\"===j.name)throw new kc(\"Cannot perform the operation from a path that does not exist\",\"OPERATION_FROM_UNRESOLVABLE\",s,i,u)}}function validate(i,s,u){try{if(!Array.isArray(i))throw new kc(\"Patch sequence must be an array\",\"SEQUENCE_NOT_AN_ARRAY\");if(s)applyPatch(_deepClone(s),_deepClone(i),u||!0);else{u=u||validator;for(var m=0;m<i.length;m++)u(i[m],m,s,void 0)}}catch(i){if(i instanceof kc)return i;throw i}}function _areEquals(i,s){if(i===s)return!0;if(i&&s&&\"object\"==typeof i&&\"object\"==typeof s){var u,m,v,_=Array.isArray(i),j=Array.isArray(s);if(_&&j){if((m=i.length)!=s.length)return!1;for(u=m;0!=u--;)if(!_areEquals(i[u],s[u]))return!1;return!0}if(_!=j)return!1;var M=Object.keys(i);if((m=M.length)!==Object.keys(s).length)return!1;for(u=m;0!=u--;)if(!s.hasOwnProperty(M[u]))return!1;for(u=m;0!=u--;)if(!_areEquals(i[v=M[u]],s[v]))return!1;return!0}return i!=i&&s!=s}var Mc=new WeakMap,Lc=function Lc(i){this.observers=new Map,this.obj=i},Fc=function Fc(i,s){this.callback=i,this.observer=s};function unobserve(i,s){s.unobserve()}function observe(i,s){var u,m=function getMirror(i){return Mc.get(i)}(i);if(m){var v=function getObserverFromMirror(i,s){return i.observers.get(s)}(m,s);u=v&&v.observer}else m=new Lc(i),Mc.set(i,m);if(u)return u;if(u={},m.value=_deepClone(i),s){u.callback=s,u.next=null;var dirtyCheck=function(){generate(u)},fastCheck=function(){clearTimeout(u.next),u.next=setTimeout(dirtyCheck)};\"undefined\"!=typeof window&&(window.addEventListener(\"mouseup\",fastCheck),window.addEventListener(\"keyup\",fastCheck),window.addEventListener(\"mousedown\",fastCheck),window.addEventListener(\"keydown\",fastCheck),window.addEventListener(\"change\",fastCheck))}return u.patches=[],u.object=i,u.unobserve=function(){generate(u),clearTimeout(u.next),function removeObserverFromMirror(i,s){i.observers.delete(s.callback)}(m,u),\"undefined\"!=typeof window&&(window.removeEventListener(\"mouseup\",fastCheck),window.removeEventListener(\"keyup\",fastCheck),window.removeEventListener(\"mousedown\",fastCheck),window.removeEventListener(\"keydown\",fastCheck),window.removeEventListener(\"change\",fastCheck))},m.observers.set(s,new Fc(s,u)),u}function generate(i,s){void 0===s&&(s=!1);var u=Mc.get(i.object);_generate(u.value,i.object,i.patches,\"\",s),i.patches.length&&applyPatch(u.value,i.patches);var m=i.patches;return m.length>0&&(i.patches=[],i.callback&&i.callback(m)),m}function _generate(i,s,u,m,v){if(s!==i){\"function\"==typeof s.toJSON&&(s=s.toJSON());for(var _=_objectKeys(s),j=_objectKeys(i),M=!1,$=j.length-1;$>=0;$--){var W=i[Y=j[$]];if(!module_helpers_hasOwnProperty(s,Y)||void 0===s[Y]&&void 0!==W&&!1===Array.isArray(s))Array.isArray(i)===Array.isArray(s)?(v&&u.push({op:\"test\",path:m+\"/\"+escapePathComponent(Y),value:_deepClone(W)}),u.push({op:\"remove\",path:m+\"/\"+escapePathComponent(Y)}),M=!0):(v&&u.push({op:\"test\",path:m,value:i}),u.push({op:\"replace\",path:m,value:s}),!0);else{var X=s[Y];\"object\"==typeof W&&null!=W&&\"object\"==typeof X&&null!=X&&Array.isArray(W)===Array.isArray(X)?_generate(W,X,u,m+\"/\"+escapePathComponent(Y),v):W!==X&&(!0,v&&u.push({op:\"test\",path:m+\"/\"+escapePathComponent(Y),value:_deepClone(W)}),u.push({op:\"replace\",path:m+\"/\"+escapePathComponent(Y),value:_deepClone(X)}))}}if(M||_.length!=j.length)for($=0;$<_.length;$++){var Y;module_helpers_hasOwnProperty(i,Y=_[$])||void 0===s[Y]||u.push({op:\"add\",path:m+\"/\"+escapePathComponent(Y),value:_deepClone(s[Y])})}}}function compare(i,s,u){void 0===u&&(u=!1);var m=[];return _generate(i,s,m,\"\",u),m}Object.assign({},pe,de,{JsonPatchError:Oc,deepClone:_deepClone,escapePathComponent,unescapePathComponent});var qc=__webpack_require__(9996),Vc=__webpack_require__.n(qc);const Kc={add:function lib_add(i,s){return{op:\"add\",path:i,value:s}},replace,remove:function lib_remove(i){return{op:\"remove\",path:i}},merge:function lib_merge(i,s){return{type:\"mutation\",op:\"merge\",path:i,value:s}},mergeDeep:function mergeDeep(i,s){return{type:\"mutation\",op:\"mergeDeep\",path:i,value:s}},context:function context(i,s){return{type:\"context\",path:i,value:s}},getIn:function getIn(i,s){return s.reduce(((i,s)=>void 0!==s&&i?i[s]:i),i)},applyPatch:function lib_applyPatch(i,s,u){if(u=u||{},\"merge\"===(s=rr()(rr()({},s),{},{path:s.path&&normalizeJSONPath(s.path)})).op){const u=getInByJsonPath(i,s.path);Object.assign(u,s.value),applyPatch(i,[replace(s.path,u)])}else if(\"mergeDeep\"===s.op){const u=getInByJsonPath(i,s.path),m=Vc()(u,s.value);i=applyPatch(i,[replace(s.path,m)]).newDocument}else if(\"add\"===s.op&&\"\"===s.path&&lib_isObject(s.value)){applyPatch(i,Object.keys(s.value).reduce(((i,u)=>(i.push({op:\"add\",path:`/${normalizeJSONPath(u)}`,value:s.value[u]}),i)),[]))}else if(\"replace\"===s.op&&\"\"===s.path){let{value:m}=s;u.allowMetaPatches&&s.meta&&isAdditiveMutation(s)&&(Array.isArray(s.value)||lib_isObject(s.value))&&(m=rr()(rr()({},m),s.meta)),i=m}else if(applyPatch(i,[s]),u.allowMetaPatches&&s.meta&&isAdditiveMutation(s)&&(Array.isArray(s.value)||lib_isObject(s.value))){const u=getInByJsonPath(i,s.path),m=rr()(rr()({},u),s.meta);applyPatch(i,[replace(s.path,m)])}return i},parentPathMatch:function parentPathMatch(i,s){if(!Array.isArray(s))return!1;for(let u=0,m=s.length;u<m;u+=1)if(s[u]!==i[u])return!1;return!0},flatten,fullyNormalizeArray:function fullyNormalizeArray(i){return cleanArray(flatten(lib_normalizeArray(i)))},normalizeArray:lib_normalizeArray,isPromise:function isPromise(i){return lib_isObject(i)&&lib_isFunction(i.then)},forEachNew:function forEachNew(i,s){try{return forEachNewPatch(i,forEach,s)}catch(i){return i}},forEachNewPrimitive:function forEachNewPrimitive(i,s){try{return forEachNewPatch(i,forEachPrimitive,s)}catch(i){return i}},isJsonPatch,isContextPatch:function isContextPatch(i){return isPatch(i)&&\"context\"===i.type},isPatch,isMutation,isAdditiveMutation,isGenerator:function isGenerator(i){return\"[object GeneratorFunction]\"===Object.prototype.toString.call(i)},isFunction:lib_isFunction,isObject:lib_isObject,isError:function lib_isError(i){return i instanceof Error}};function normalizeJSONPath(i){return Array.isArray(i)?i.length<1?\"\":`/${i.map((i=>(i+\"\").replace(/~/g,\"~0\").replace(/\\//g,\"~1\"))).join(\"/\")}`:i}function replace(i,s,u){return{op:\"replace\",path:i,value:s,meta:u}}function forEachNewPatch(i,s,u){return cleanArray(flatten(i.filter(isAdditiveMutation).map((i=>s(i.value,u,i.path)))||[]))}function forEachPrimitive(i,s,u){return u=u||[],Array.isArray(i)?i.map(((i,m)=>forEachPrimitive(i,s,u.concat(m)))):lib_isObject(i)?Object.keys(i).map((m=>forEachPrimitive(i[m],s,u.concat(m)))):s(i,u[u.length-1],u)}function forEach(i,s,u){let m=[];if((u=u||[]).length>0){const v=s(i,u[u.length-1],u);v&&(m=m.concat(v))}if(Array.isArray(i)){const v=i.map(((i,m)=>forEach(i,s,u.concat(m))));v&&(m=m.concat(v))}else if(lib_isObject(i)){const v=Object.keys(i).map((m=>forEach(i[m],s,u.concat(m))));v&&(m=m.concat(v))}return m=flatten(m),m}function lib_normalizeArray(i){return Array.isArray(i)?i:[i]}function flatten(i){return[].concat(...i.map((i=>Array.isArray(i)?flatten(i):i)))}function cleanArray(i){return i.filter((i=>void 0!==i))}function lib_isObject(i){return i&&\"object\"==typeof i}function lib_isFunction(i){return i&&\"function\"==typeof i}function isJsonPatch(i){if(isPatch(i)){const{op:s}=i;return\"add\"===s||\"remove\"===s||\"replace\"===s}return!1}function isMutation(i){return isJsonPatch(i)||isPatch(i)&&\"mutation\"===i.type}function isAdditiveMutation(i){return isMutation(i)&&(\"add\"===i.op||\"replace\"===i.op||\"merge\"===i.op||\"mergeDeep\"===i.op)}function isPatch(i){return i&&\"object\"==typeof i}function getInByJsonPath(i,s){try{return getValueByPointer(i,s)}catch(i){return console.error(i),{}}}__webpack_require__(31905);var Jc=__webpack_require__(8575);function createErrorType(i,s){function E(){Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack;for(var i=arguments.length,u=new Array(i),m=0;m<i;m++)u[m]=arguments[m];[this.message]=u,s&&s.apply(this,u)}return E.prototype=new Error,E.prototype.name=i,E.prototype.constructor=E,E}var Gc=__webpack_require__(13692),Qc=__webpack_require__.n(Gc);const el=[\"properties\"],tl=[\"properties\"],rl=[\"definitions\",\"parameters\",\"responses\",\"securityDefinitions\",\"components/schemas\",\"components/responses\",\"components/parameters\",\"components/securitySchemes\"],nl=[\"schema/example\",\"items/example\"];function isFreelyNamed(i){const s=i[i.length-1],u=i[i.length-2],m=i.join(\"/\");return el.indexOf(s)>-1&&-1===tl.indexOf(u)||rl.indexOf(m)>-1||nl.some((i=>m.indexOf(i)>-1))}function absolutifyPointer(i,s){const[u,m]=i.split(\"#\"),v=Jc.resolve(u||\"\",s||\"\");return m?`${v}#${m}`:v}const ol=\"application/json, application/yaml\",il=/^([a-z]+:\\/\\/|\\/\\/)/i,al=createErrorType(\"JSONRefError\",(function cb(i,s,u){this.originalError=u,Object.assign(this,s||{})})),sl={},cl=new WeakMap,ll=[i=>\"paths\"===i[0]&&\"responses\"===i[3]&&\"examples\"===i[5],i=>\"paths\"===i[0]&&\"responses\"===i[3]&&\"content\"===i[5]&&\"example\"===i[7],i=>\"paths\"===i[0]&&\"responses\"===i[3]&&\"content\"===i[5]&&\"examples\"===i[7]&&\"value\"===i[9],i=>\"paths\"===i[0]&&\"requestBody\"===i[3]&&\"content\"===i[4]&&\"example\"===i[6],i=>\"paths\"===i[0]&&\"requestBody\"===i[3]&&\"content\"===i[4]&&\"examples\"===i[6]&&\"value\"===i[8],i=>\"paths\"===i[0]&&\"parameters\"===i[2]&&\"example\"===i[4],i=>\"paths\"===i[0]&&\"parameters\"===i[3]&&\"example\"===i[5],i=>\"paths\"===i[0]&&\"parameters\"===i[2]&&\"examples\"===i[4]&&\"value\"===i[6],i=>\"paths\"===i[0]&&\"parameters\"===i[3]&&\"examples\"===i[5]&&\"value\"===i[7],i=>\"paths\"===i[0]&&\"parameters\"===i[2]&&\"content\"===i[4]&&\"example\"===i[6],i=>\"paths\"===i[0]&&\"parameters\"===i[2]&&\"content\"===i[4]&&\"examples\"===i[6]&&\"value\"===i[8],i=>\"paths\"===i[0]&&\"parameters\"===i[3]&&\"content\"===i[4]&&\"example\"===i[7],i=>\"paths\"===i[0]&&\"parameters\"===i[3]&&\"content\"===i[5]&&\"examples\"===i[7]&&\"value\"===i[9]],ul={key:\"$ref\",plugin:(i,s,u,m)=>{const v=m.getInstance(),_=u.slice(0,-1);if(isFreelyNamed(_)||(i=>ll.some((s=>s(i))))(_))return;const{baseDoc:j}=m.getContext(u);if(\"string\"!=typeof i)return new al(\"$ref: must be a string (JSON-Ref)\",{$ref:i,baseDoc:j,fullPath:u});const M=split(i),$=M[0],W=M[1]||\"\";let X,Y,Z;try{X=j||$?absoluteify($,j):null}catch(s){return wrapError(s,{pointer:W,$ref:i,basePath:X,fullPath:u})}if(function pointerAlreadyInPath(i,s,u,m){let v=cl.get(m);v||(v={},cl.set(m,v));const _=function arrayToJsonPointer(i){if(0===i.length)return\"\";return`/${i.map(escapeJsonPointerToken).join(\"/\")}`}(u),j=`${s||\"<specmap-base>\"}#${i}`,M=_.replace(/allOf\\/\\d+\\/?/g,\"\"),$=m.contextTree.get([]).baseDoc;if(s===$&&pointerIsAParent(M,i))return!0;let W=\"\";const X=u.some((i=>(W=`${W}/${escapeJsonPointerToken(i)}`,v[W]&&v[W].some((i=>pointerIsAParent(i,j)||pointerIsAParent(j,i))))));if(X)return!0;return void(v[M]=(v[M]||[]).concat(j))}(W,X,_,m)&&!v.useCircularStructures){const s=absolutifyPointer(i,X);return i===s?null:Kc.replace(u,s)}if(null==X?(Z=jsonPointerToArray(W),Y=m.get(Z),void 0===Y&&(Y=new al(`Could not resolve reference: ${i}`,{pointer:W,$ref:i,baseDoc:j,fullPath:u}))):(Y=extractFromDoc(X,W),Y=null!=Y.__value?Y.__value:Y.catch((s=>{throw wrapError(s,{pointer:W,$ref:i,baseDoc:j,fullPath:u})}))),Y instanceof Error)return[Kc.remove(u),Y];const ee=absolutifyPointer(i,X),ie=Kc.replace(_,Y,{$$ref:ee});if(X&&X!==j)return[ie,Kc.context(_,{baseDoc:X})];try{if(!function patchValueAlreadyInPath(i,s){const u=[i];return s.path.reduce(((i,s)=>(u.push(i[s]),i[s])),i),pointToAncestor(s.value);function pointToAncestor(i){return Kc.isObject(i)&&(u.indexOf(i)>=0||Object.keys(i).some((s=>pointToAncestor(i[s]))))}}(m.state,ie)||v.useCircularStructures)return ie}catch(i){return null}}},pl=Object.assign(ul,{docCache:sl,absoluteify,clearCache:function clearCache(i){void 0!==i?delete sl[i]:Object.keys(sl).forEach((i=>{delete sl[i]}))},JSONRefError:al,wrapError,getDoc,split,extractFromDoc,fetchJSON:function fetchJSON(i){return fetch(i,{headers:{Accept:ol},loadSpec:!0}).then((i=>i.text())).then((i=>co.load(i)))},extract,jsonPointerToArray,unescapeJsonPointerToken}),hl=pl;function absoluteify(i,s){if(!il.test(i)){if(!s)throw new al(`Tried to resolve a relative URL, without having a basePath. path: '${i}' basePath: '${s}'`);return Jc.resolve(s,i)}return i}function wrapError(i,s){let u;return u=i&&i.response&&i.response.body?`${i.response.body.code} ${i.response.body.message}`:i.message,new al(`Could not resolve reference: ${u}`,s,i)}function split(i){return(i+\"\").split(\"#\")}function extractFromDoc(i,s){const u=sl[i];if(u&&!Kc.isPromise(u))try{const i=extract(s,u);return Object.assign(Promise.resolve(i),{__value:i})}catch(i){return Promise.reject(i)}return getDoc(i).then((i=>extract(s,i)))}function getDoc(i){const s=sl[i];return s?Kc.isPromise(s)?s:Promise.resolve(s):(sl[i]=pl.fetchJSON(i).then((s=>(sl[i]=s,s))),sl[i])}function extract(i,s){const u=jsonPointerToArray(i);if(u.length<1)return s;const m=Kc.getIn(s,u);if(void 0===m)throw new al(`Could not resolve pointer: ${i} does not exist in document`,{pointer:i});return m}function jsonPointerToArray(i){if(\"string\"!=typeof i)throw new TypeError(\"Expected a string, got a \"+typeof i);return\"/\"===i[0]&&(i=i.substr(1)),\"\"===i?[]:i.split(\"/\").map(unescapeJsonPointerToken)}function unescapeJsonPointerToken(i){if(\"string\"!=typeof i)return i;return new URLSearchParams(`=${i.replace(/~1/g,\"/\").replace(/~0/g,\"~\")}`).get(\"\")}function escapeJsonPointerToken(i){return new URLSearchParams([[\"\",i.replace(/~/g,\"~0\").replace(/\\//g,\"~1\")]]).toString().slice(1)}const pointerBoundaryChar=i=>!i||\"/\"===i||\"#\"===i;function pointerIsAParent(i,s){if(pointerBoundaryChar(s))return!0;const u=i.charAt(s.length),m=s.slice(-1);return 0===i.indexOf(s)&&(!u||\"/\"===u||\"#\"===u)&&\"#\"!==m}const dl={key:\"allOf\",plugin:(i,s,u,m,v)=>{if(v.meta&&v.meta.$$ref)return;const _=u.slice(0,-1);if(isFreelyNamed(_))return;if(!Array.isArray(i)){const i=new TypeError(\"allOf must be an array\");return i.fullPath=u,i}let j=!1,M=v.value;if(_.forEach((i=>{M&&(M=M[i])})),M=rr()({},M),0===Object.keys(M).length)return;delete M.allOf;const $=[];return $.push(m.replace(_,{})),i.forEach(((i,s)=>{if(!m.isObject(i)){if(j)return null;j=!0;const i=new TypeError(\"Elements in allOf must be objects\");return i.fullPath=u,$.push(i)}$.push(m.mergeDeep(_,i));const v=function generateAbsoluteRefPatches(i,s){let{specmap:u,getBaseUrlForNodePath:m=(i=>u.getContext([...s,...i]).baseDoc),targetKeys:v=[\"$ref\",\"$$ref\"]}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const _=[];return Qc()(i).forEach((function callback(){if(v.includes(this.key)&&\"string\"==typeof this.node){const i=this.path,v=s.concat(this.path),j=absolutifyPointer(this.node,m(i));_.push(u.replace(v,j))}})),_}(i,u.slice(0,-1),{getBaseUrlForNodePath:i=>m.getContext([...u,s,...i]).baseDoc,specmap:m});$.push(...v)})),M.example&&$.push(m.remove([].concat(_,\"example\"))),$.push(m.mergeDeep(_,M)),M.$$ref||$.push(m.remove([].concat(_,\"$$ref\"))),$}},fl={key:\"parameters\",plugin:(i,s,u,m)=>{if(Array.isArray(i)&&i.length){const s=Object.assign([],i),v=u.slice(0,-1),_=rr()({},Kc.getIn(m.spec,v));for(let v=0;v<i.length;v+=1){const j=i[v];try{s[v].default=m.parameterMacro(_,j)}catch(i){const s=new Error(i);return s.fullPath=u,s}}return Kc.replace(u,s)}return Kc.replace(u,i)}},ml={key:\"properties\",plugin:(i,s,u,m)=>{const v=rr()({},i);for(const s in i)try{v[s].default=m.modelPropertyMacro(v[s])}catch(i){const s=new Error(i);return s.fullPath=u,s}return Kc.replace(u,v)}};class ContextTree{constructor(i){this.root=createNode(i||{})}set(i,s){const u=this.getParent(i,!0);if(!u)return void updateNode(this.root,s,null);const m=i[i.length-1],{children:v}=u;v[m]?updateNode(v[m],s,u):v[m]=createNode(s,u)}get(i){if((i=i||[]).length<1)return this.root.value;let s,u,m=this.root;for(let v=0;v<i.length&&(u=i[v],s=m.children,s[u]);v+=1)m=s[u];return m&&m.protoValue}getParent(i,s){return!i||i.length<1?null:i.length<2?this.root:i.slice(0,-1).reduce(((i,u)=>{if(!i)return i;const{children:m}=i;return!m[u]&&s&&(m[u]=createNode(null,i)),m[u]}),this.root)}}function createNode(i,s){return updateNode({children:{}},i,s)}function updateNode(i,s,u){return i.value=s||{},i.protoValue=u?rr()(rr()({},u.protoValue),i.value):i.value,Object.keys(i.children).forEach((s=>{const u=i.children[s];i.children[s]=updateNode(u,u.value,i)})),i}const noop=()=>{};class SpecMap{static getPluginName(i){return i.pluginName}static getPatchesOfType(i,s){return i.filter(s)}constructor(i){Object.assign(this,{spec:\"\",debugLevel:\"info\",plugins:[],pluginHistory:{},errors:[],mutations:[],promisedPatches:[],state:{},patches:[],context:{},contextTree:new ContextTree,showDebug:!1,allPatches:[],pluginProp:\"specMap\",libMethods:Object.assign(Object.create(this),Kc,{getInstance:()=>this}),allowMetaPatches:!1},i),this.get=this._get.bind(this),this.getContext=this._getContext.bind(this),this.hasRun=this._hasRun.bind(this),this.wrappedPlugins=this.plugins.map(this.wrapPlugin.bind(this)).filter(Kc.isFunction),this.patches.push(Kc.add([],this.spec)),this.patches.push(Kc.context([],this.context)),this.updatePatches(this.patches)}debug(i){if(this.debugLevel===i){for(var s=arguments.length,u=new Array(s>1?s-1:0),m=1;m<s;m++)u[m-1]=arguments[m];console.log(...u)}}verbose(i){if(\"verbose\"===this.debugLevel){for(var s=arguments.length,u=new Array(s>1?s-1:0),m=1;m<s;m++)u[m-1]=arguments[m];console.log(`[${i}]   `,...u)}}wrapPlugin(i,s){const{pathDiscriminator:u}=this;let m,v=null;return i[this.pluginProp]?(v=i,m=i[this.pluginProp]):Kc.isFunction(i)?m=i:Kc.isObject(i)&&(m=function createKeyBasedPlugin(i){const isSubPath=(i,s)=>!Array.isArray(i)||i.every(((i,u)=>i===s[u]));return function*generator(s,m){const v={};for(const i of s.filter(Kc.isAdditiveMutation))yield*traverse(i.value,i.path,i);function*traverse(s,_,j){if(Kc.isObject(s)){const M=_.length-1,$=_[M],W=_.indexOf(\"properties\"),X=\"properties\"===$&&M===W,Y=m.allowMetaPatches&&v[s.$$ref];for(const M of Object.keys(s)){const $=s[M],W=_.concat(M),Z=Kc.isObject($),ee=s.$$ref;if(Y||Z&&(m.allowMetaPatches&&ee&&(v[ee]=!0),yield*traverse($,W,j)),!X&&M===i.key){const s=isSubPath(u,_);u&&!s||(yield i.plugin($,M,W,m,j))}}}else i.key===_[_.length-1]&&(yield i.plugin(s,i.key,_,m))}}}(i)),Object.assign(m.bind(v),{pluginName:i.name||s,isGenerator:Kc.isGenerator(m)})}nextPlugin(){return this.wrappedPlugins.find((i=>this.getMutationsForPlugin(i).length>0))}nextPromisedPatch(){if(this.promisedPatches.length>0)return Promise.race(this.promisedPatches.map((i=>i.value)))}getPluginHistory(i){const s=this.constructor.getPluginName(i);return this.pluginHistory[s]||[]}getPluginRunCount(i){return this.getPluginHistory(i).length}getPluginHistoryTip(i){const s=this.getPluginHistory(i);return s&&s[s.length-1]||{}}getPluginMutationIndex(i){const s=this.getPluginHistoryTip(i).mutationIndex;return\"number\"!=typeof s?-1:s}updatePluginHistory(i,s){const u=this.constructor.getPluginName(i);this.pluginHistory[u]=this.pluginHistory[u]||[],this.pluginHistory[u].push(s)}updatePatches(i){Kc.normalizeArray(i).forEach((i=>{if(i instanceof Error)this.errors.push(i);else try{if(!Kc.isObject(i))return void this.debug(\"updatePatches\",\"Got a non-object patch\",i);if(this.showDebug&&this.allPatches.push(i),Kc.isPromise(i.value))return this.promisedPatches.push(i),void this.promisedPatchThen(i);if(Kc.isContextPatch(i))return void this.setContext(i.path,i.value);Kc.isMutation(i)&&this.updateMutations(i)}catch(i){console.error(i),this.errors.push(i)}}))}updateMutations(i){\"object\"==typeof i.value&&!Array.isArray(i.value)&&this.allowMetaPatches&&(i.value=rr()({},i.value));const s=Kc.applyPatch(this.state,i,{allowMetaPatches:this.allowMetaPatches});s&&(this.mutations.push(i),this.state=s)}removePromisedPatch(i){const s=this.promisedPatches.indexOf(i);s<0?this.debug(\"Tried to remove a promisedPatch that isn't there!\"):this.promisedPatches.splice(s,1)}promisedPatchThen(i){return i.value=i.value.then((s=>{const u=rr()(rr()({},i),{},{value:s});this.removePromisedPatch(i),this.updatePatches(u)})).catch((s=>{this.removePromisedPatch(i),this.updatePatches(s)})),i.value}getMutations(i,s){return i=i||0,\"number\"!=typeof s&&(s=this.mutations.length),this.mutations.slice(i,s)}getCurrentMutations(){return this.getMutationsForPlugin(this.getCurrentPlugin())}getMutationsForPlugin(i){const s=this.getPluginMutationIndex(i);return this.getMutations(s+1)}getCurrentPlugin(){return this.currentPlugin}getLib(){return this.libMethods}_get(i){return Kc.getIn(this.state,i)}_getContext(i){return this.contextTree.get(i)}setContext(i,s){return this.contextTree.set(i,s)}_hasRun(i){return this.getPluginRunCount(this.getCurrentPlugin())>(i||0)}dispatch(){const i=this,s=this.nextPlugin();if(!s){const i=this.nextPromisedPatch();if(i)return i.then((()=>this.dispatch())).catch((()=>this.dispatch()));const s={spec:this.state,errors:this.errors};return this.showDebug&&(s.patches=this.allPatches),Promise.resolve(s)}if(i.pluginCount=i.pluginCount||{},i.pluginCount[s]=(i.pluginCount[s]||0)+1,i.pluginCount[s]>100)return Promise.resolve({spec:i.state,errors:i.errors.concat(new Error(\"We've reached a hard limit of 100 plugin runs\"))});if(s!==this.currentPlugin&&this.promisedPatches.length){const i=this.promisedPatches.map((i=>i.value));return Promise.all(i.map((i=>i.then(noop,noop)))).then((()=>this.dispatch()))}return function executePlugin(){i.currentPlugin=s;const u=i.getCurrentMutations(),m=i.mutations.length-1;try{if(s.isGenerator)for(const m of s(u,i.getLib()))updatePatches(m);else{updatePatches(s(u,i.getLib()))}}catch(i){console.error(i),updatePatches([Object.assign(Object.create(i),{plugin:s})])}finally{i.updatePluginHistory(s,{mutationIndex:m})}return i.dispatch()}();function updatePatches(u){u&&(u=Kc.fullyNormalizeArray(u),i.updatePatches(u,s))}}}const yl={refs:hl,allOf:dl,parameters:fl,properties:ml},replace_special_chars_with_underscore=i=>i.replace(/\\W/gi,\"_\");function opId(i,s){let u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"\",{v2OperationIdCompatibilityMode:m}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(!i||\"object\"!=typeof i)return null;return(i.operationId||\"\").replace(/\\s/g,\"\").length?replace_special_chars_with_underscore(i.operationId):function idFromPathMethod(i,s){let{v2OperationIdCompatibilityMode:u}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(u){let u=`${s.toLowerCase()}_${i}`.replace(/[\\s!@#$%^&*()_+=[{\\]};:<>|./?,\\\\'\"\"-]/g,\"_\");return u=u||`${i.substring(1)}_${s}`,u.replace(/((_){2,})/g,\"_\").replace(/^(_)*/g,\"\").replace(/([_])*$/g,\"\")}return`${s.toLowerCase()}${replace_special_chars_with_underscore(i)}`}(s,u,{v2OperationIdCompatibilityMode:m})}function normalize(i){const{spec:s}=i,{paths:u}=s,m={};if(!u||s.$$normalized)return i;for(const i in u){const v=u[i];if(null==v||![\"object\",\"function\"].includes(typeof v))continue;const _=v.parameters;for(const u in v){const j=v[u];if(null==j||![\"object\",\"function\"].includes(typeof j))continue;const M=opId(j,i,u);if(M){m[M]?m[M].push(j):m[M]=[j];const i=m[M];if(i.length>1)i.forEach(((i,s)=>{i.__originalOperationId=i.__originalOperationId||i.operationId,i.operationId=`${M}${s+1}`}));else if(void 0!==j.operationId){const s=i[0];s.__originalOperationId=s.__originalOperationId||j.operationId,s.operationId=M}}if(\"parameters\"!==u){const i=[],u={};for(const m in s)\"produces\"!==m&&\"consumes\"!==m&&\"security\"!==m||(u[m]=s[m],i.push(u));if(_&&(u.parameters=_,i.push(u)),i.length)for(const s of i)for(const i in s)if(j[i]){if(\"parameters\"===i)for(const u of s[i]){j[i].some((i=>i.name&&i.name===u.name||i.$ref&&i.$ref===u.$ref||i.$$ref&&i.$$ref===u.$$ref||i===u))||j[i].push(u)}}else j[i]=s[i]}}}return s.$$normalized=!0,i}function makeFetchJSON(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{requestInterceptor:u,responseInterceptor:m}=s,v=i.withCredentials?\"include\":\"same-origin\";return s=>i({url:s,loadSpec:!0,requestInterceptor:u,responseInterceptor:m,headers:{Accept:ol},credentials:v}).then((i=>i.body))}var gl=__webpack_require__(80129),vl=__webpack_require__.n(gl);const bl=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:window,{FormData:_l,Blob:wl,File:El}=bl,isRfc3986Reserved=i=>\":/?#[]@!$&'()*+,;=\".indexOf(i)>-1,isRrc3986Unreserved=i=>/^[a-z0-9\\-._~]+$/i.test(i);function encodeDisallowedCharacters(i){let{escape:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=arguments.length>2?arguments[2]:void 0;return\"number\"==typeof i&&(i=i.toString()),\"string\"==typeof i&&i.length&&s?u?JSON.parse(i):[...i].map((i=>{if(isRrc3986Unreserved(i))return i;if(isRfc3986Reserved(i)&&\"unsafe\"===s)return i;const u=new TextEncoder;return Array.from(u.encode(i)).map((i=>`0${i.toString(16).toUpperCase()}`.slice(-2))).map((i=>`%${i}`)).join(\"\")})).join(\"\"):i}function stylize(i){const{value:s}=i;return Array.isArray(s)?function encodeArray(i){let{key:s,value:u,style:m,explode:v,escape:_}=i;const valueEncoder=i=>encodeDisallowedCharacters(i,{escape:_});if(\"simple\"===m)return u.map((i=>valueEncoder(i))).join(\",\");if(\"label\"===m)return`.${u.map((i=>valueEncoder(i))).join(\".\")}`;if(\"matrix\"===m)return u.map((i=>valueEncoder(i))).reduce(((i,u)=>!i||v?`${i||\"\"};${s}=${u}`:`${i},${u}`),\"\");if(\"form\"===m){const i=v?`&${s}=`:\",\";return u.map((i=>valueEncoder(i))).join(i)}if(\"spaceDelimited\"===m){const i=v?`${s}=`:\"\";return u.map((i=>valueEncoder(i))).join(` ${i}`)}if(\"pipeDelimited\"===m){const i=v?`${s}=`:\"\";return u.map((i=>valueEncoder(i))).join(`|${i}`)}return}(i):\"object\"==typeof s?function encodeObject(i){let{key:s,value:u,style:m,explode:v,escape:_}=i;const valueEncoder=i=>encodeDisallowedCharacters(i,{escape:_}),j=Object.keys(u);if(\"simple\"===m)return j.reduce(((i,s)=>{const m=valueEncoder(u[s]);return`${i?`${i},`:\"\"}${s}${v?\"=\":\",\"}${m}`}),\"\");if(\"label\"===m)return j.reduce(((i,s)=>{const m=valueEncoder(u[s]);return`${i?`${i}.`:\".\"}${s}${v?\"=\":\".\"}${m}`}),\"\");if(\"matrix\"===m&&v)return j.reduce(((i,s)=>`${i?`${i};`:\";\"}${s}=${valueEncoder(u[s])}`),\"\");if(\"matrix\"===m)return j.reduce(((i,m)=>{const v=valueEncoder(u[m]);return`${i?`${i},`:`;${s}=`}${m},${v}`}),\"\");if(\"form\"===m)return j.reduce(((i,s)=>{const m=valueEncoder(u[s]);return`${i?`${i}${v?\"&\":\",\"}`:\"\"}${s}${v?\"=\":\",\"}${m}`}),\"\");return}(i):function encodePrimitive(i){let{key:s,value:u,style:m,escape:v}=i;const valueEncoder=i=>encodeDisallowedCharacters(i,{escape:v});if(\"simple\"===m)return valueEncoder(u);if(\"label\"===m)return`.${valueEncoder(u)}`;if(\"matrix\"===m)return`;${s}=${valueEncoder(u)}`;if(\"form\"===m)return valueEncoder(u);if(\"deepObject\"===m)return valueEncoder(u,{},!0);return}(i)}const fold_formdata_to_request_browser=(i,s)=>{s.body=i},Sl={serializeRes,mergeInQueryOrForm};async function http_http(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"object\"==typeof i&&(s=i,i=s.url),s.headers=s.headers||{},Sl.mergeInQueryOrForm(s),s.headers&&Object.keys(s.headers).forEach((i=>{const u=s.headers[i];\"string\"==typeof u&&(s.headers[i]=u.replace(/\\n+/g,\" \"))})),s.requestInterceptor&&(s=await s.requestInterceptor(s)||s);const u=s.headers[\"content-type\"]||s.headers[\"Content-Type\"];let m;/multipart\\/form-data/i.test(u)&&s.body instanceof _l&&(delete s.headers[\"content-type\"],delete s.headers[\"Content-Type\"]);try{m=await(s.userFetch||fetch)(s.url,s),m=await Sl.serializeRes(m,i,s),s.responseInterceptor&&(m=await s.responseInterceptor(m)||m)}catch(i){if(!m)throw i;const s=new Error(m.statusText||`response status is ${m.status}`);throw s.status=m.status,s.statusCode=m.status,s.responseError=i,s}if(!m.ok){const i=new Error(m.statusText||`response status is ${m.status}`);throw i.status=m.status,i.statusCode=m.status,i.response=m,i}return m}const shouldDownloadAsText=function(){return/(json|xml|yaml|text)\\b/.test(arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\")};function serializeRes(i,s){let{loadSpec:u=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const m={ok:i.ok,url:i.url||s,status:i.status,statusText:i.statusText,headers:serializeHeaders(i.headers)},v=m.headers[\"content-type\"],_=u||shouldDownloadAsText(v);return(_?i.text:i.blob||i.buffer).call(i).then((i=>{if(m.text=i,m.data=i,_)try{const s=function parseBody(i,s){return s&&(0===s.indexOf(\"application/json\")||s.indexOf(\"+json\")>0)?JSON.parse(i):co.load(i)}(i,v);m.body=s,m.obj=s}catch(i){m.parseError=i}return m}))}function serializeHeaders(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return\"function\"!=typeof i.entries?{}:Array.from(i.entries()).reduce(((i,s)=>{let[u,m]=s;return i[u]=function serializeHeaderValue(i){return i.includes(\", \")?i.split(\", \"):i}(m),i}),{})}function isFile(i,s){return s||\"undefined\"==typeof navigator||(s=navigator),s&&\"ReactNative\"===s.product?!(!i||\"object\"!=typeof i||\"string\"!=typeof i.uri):void 0!==El&&i instanceof El||(void 0!==wl&&i instanceof wl||(!!ArrayBuffer.isView(i)||null!==i&&\"object\"==typeof i&&\"function\"==typeof i.pipe))}function isArrayOfFile(i,s){return Array.isArray(i)&&i.some((i=>isFile(i,s)))}const xl={form:\",\",spaceDelimited:\"%20\",pipeDelimited:\"|\"},Ol={csv:\",\",ssv:\"%20\",tsv:\"%09\",pipes:\"|\"};class FileWithData extends El{constructor(i){super([i],arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}),this.data=i}valueOf(){return this.data}toString(){return this.valueOf()}}function formatKeyValue(i,s){let u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const{collectionFormat:m,allowEmptyValue:v,serializationOption:_,encoding:j}=s,M=\"object\"!=typeof s||Array.isArray(s)?s:s.value,$=u?i=>i.toString():i=>encodeURIComponent(i),W=$(i);if(void 0===M&&v)return[[W,\"\"]];if(isFile(M)||isArrayOfFile(M))return[[W,M]];if(_)return formatKeyValueBySerializationOption(i,M,u,_);if(j){if([typeof j.style,typeof j.explode,typeof j.allowReserved].some((i=>\"undefined\"!==i))){const{style:s,explode:m,allowReserved:v}=j;return formatKeyValueBySerializationOption(i,M,u,{style:s,explode:m,allowReserved:v})}if(\"string\"==typeof j.contentType){if(j.contentType.startsWith(\"application/json\")){const i=$(\"string\"==typeof M?M:JSON.stringify(M));return[[W,new FileWithData(i,\"blob\",{type:j.contentType})]]}const i=$(String(M));return[[W,new FileWithData(i,\"blob\",{type:j.contentType})]]}return\"object\"!=typeof M?[[W,$(M)]]:Array.isArray(M)&&M.every((i=>\"object\"!=typeof i))?[[W,M.map($).join(\",\")]]:[[W,$(JSON.stringify(M))]]}return\"object\"!=typeof M?[[W,$(M)]]:Array.isArray(M)?\"multi\"===m?[[W,M.map($)]]:[[W,M.map($).join(Ol[m||\"csv\"])]]:[[W,\"\"]]}function formatKeyValueBySerializationOption(i,s,u,m){const v=m.style||\"form\",_=void 0===m.explode?\"form\"===v:m.explode,j=!u&&(m&&m.allowReserved?\"unsafe\":\"reserved\"),encodeFn=i=>encodeDisallowedCharacters(i,{escape:j}),M=u?i=>i:i=>encodeDisallowedCharacters(i,{escape:j});return\"object\"!=typeof s?[[M(i),encodeFn(s)]]:Array.isArray(s)?_?[[M(i),s.map(encodeFn)]]:[[M(i),s.map(encodeFn).join(xl[v])]]:\"deepObject\"===v?Object.keys(s).map((u=>[M(`${i}[${u}]`),encodeFn(s[u])])):_?Object.keys(s).map((i=>[M(i),encodeFn(s[i])])):[[M(i),Object.keys(s).map((i=>[`${M(i)},${encodeFn(s[i])}`])).join(\",\")]]}function encodeFormOrQuery(i){const s=Object.keys(i).reduce(((s,u)=>{for(const[m,v]of formatKeyValue(u,i[u]))s[m]=v instanceof FileWithData?v.valueOf():v;return s}),{});return vl().stringify(s,{encode:!1,indices:!1})||\"\"}function mergeInQueryOrForm(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{url:s=\"\",query:u,form:m}=i;if(m){const s=Object.keys(m).some((i=>{const{value:s}=m[i];return isFile(s)||isArrayOfFile(s)})),u=i.headers[\"content-type\"]||i.headers[\"Content-Type\"];if(s||/multipart\\/form-data/i.test(u)){const s=function http_buildFormData(i){return Object.entries(i).reduce(((i,s)=>{let[u,m]=s;for(const[s,v]of formatKeyValue(u,m,!0))if(Array.isArray(v))for(const u of v)if(ArrayBuffer.isView(u)){const m=new wl([u]);i.append(s,m)}else i.append(s,u);else if(ArrayBuffer.isView(v)){const u=new wl([v]);i.append(s,u)}else i.append(s,v);return i}),new _l)}(i.form);fold_formdata_to_request_browser(s,i)}else i.body=encodeFormOrQuery(m);delete i.form}if(u){const[m,v]=s.split(\"?\");let _=\"\";if(v){const i=vl().parse(v);Object.keys(u).forEach((s=>delete i[s])),_=vl().stringify(i,{encode:!0})}const j=function(){for(var i=arguments.length,s=new Array(i),u=0;u<i;u++)s[u]=arguments[u];const m=s.filter((i=>i)).join(\"&\");return m?`?${m}`:\"\"}(_,encodeFormOrQuery(u));i.url=m+j,delete i.query}return i}const options_retrievalURI=i=>{const{baseDoc:s,url:u}=i;return s||u||\"\"},options_httpClient=i=>{const{fetch:s,http:u}=i;return s||u||http_http};async function resolveGenericStrategy(i){const{spec:s,mode:u,allowMetaPatches:m=!0,pathDiscriminator:v,modelPropertyMacro:_,parameterMacro:j,requestInterceptor:M,responseInterceptor:$,skipNormalization:W,useCircularStructures:X}=i,Y=options_retrievalURI(i),Z=options_httpClient(i);return function doResolve(i){Y&&(yl.refs.docCache[Y]=i);yl.refs.fetchJSON=makeFetchJSON(Z,{requestInterceptor:M,responseInterceptor:$});const s=[yl.refs];\"function\"==typeof j&&s.push(yl.parameters);\"function\"==typeof _&&s.push(yl.properties);\"strict\"!==u&&s.push(yl.allOf);return function mapSpec(i){return new SpecMap(i).dispatch()}({spec:i,context:{baseDoc:Y},plugins:s,allowMetaPatches:m,pathDiscriminator:v,parameterMacro:j,modelPropertyMacro:_,useCircularStructures:X}).then(W?async i=>i:normalize)}(s)}const kl={name:\"generic\",match:()=>!0,normalize(i){let{spec:s}=i;const{spec:u}=normalize({spec:s});return u},resolve:async i=>resolveGenericStrategy(i)},Al=kl;const isOpenAPI30=i=>{try{const{openapi:s}=i;return\"string\"==typeof s&&/^3\\.0\\.([0123])(?:-rc[012])?$/.test(s)}catch{return!1}},isOpenAPI31=i=>{try{const{openapi:s}=i;return\"string\"==typeof s&&/^3\\.1\\.(?:[1-9]\\d*|0)$/.test(s)}catch{return!1}},isOpenAPI3=i=>isOpenAPI30(i)||isOpenAPI31(i),Cl={name:\"openapi-2\",match(i){let{spec:s}=i;return(i=>{try{const{swagger:s}=i;return\"2.0\"===s}catch{return!1}})(s)},normalize(i){let{spec:s}=i;const{spec:u}=normalize({spec:s});return u},resolve:async i=>async function resolveOpenAPI2Strategy(i){return resolveGenericStrategy(i)}(i)},jl=Cl;const Pl={name:\"openapi-3-0\",match(i){let{spec:s}=i;return isOpenAPI30(s)},normalize(i){let{spec:s}=i;const{spec:u}=normalize({spec:s});return u},resolve:async i=>async function resolveOpenAPI30Strategy(i){return resolveGenericStrategy(i)}(i)},Il=Pl;var Nl=__webpack_require__(43500);class Annotation extends Nl.RP{constructor(i,s,u){super(i,s,u),this.element=\"annotation\"}get code(){return this.attributes.get(\"code\")}set code(i){this.attributes.set(\"code\",i)}}const Tl=Annotation;class Comment extends Nl.RP{constructor(i,s,u){super(i,s,u),this.element=\"comment\"}}const Ml=Comment;const es_F=function(){return!1};const es_T=function(){return!0};function _isPlaceholder(i){return null!=i&&\"object\"==typeof i&&!0===i[\"@@functional/placeholder\"]}function _curry1_curry1(i){return function f1(s){return 0===arguments.length||_isPlaceholder(s)?f1:i.apply(this,arguments)}}function _curry2_curry2(i){return function f2(s,u){switch(arguments.length){case 0:return f2;case 1:return _isPlaceholder(s)?f2:_curry1_curry1((function(u){return i(s,u)}));default:return _isPlaceholder(s)&&_isPlaceholder(u)?f2:_isPlaceholder(s)?_curry1_curry1((function(s){return i(s,u)})):_isPlaceholder(u)?_curry1_curry1((function(u){return i(s,u)})):i(s,u)}}}const Rl=Array.isArray||function _isArray(i){return null!=i&&i.length>=0&&\"[object Array]\"===Object.prototype.toString.call(i)};function _dispatchable_dispatchable(i,s,u){return function(){if(0===arguments.length)return u();var m=arguments[arguments.length-1];if(!Rl(m)){for(var v=0;v<i.length;){if(\"function\"==typeof m[i[v]])return m[i[v]].apply(m,Array.prototype.slice.call(arguments,0,-1));v+=1}if(function _isTransformer_isTransformer(i){return null!=i&&\"function\"==typeof i[\"@@transducer/step\"]}(m))return s.apply(null,Array.prototype.slice.call(arguments,0,-1))(m)}return u.apply(this,arguments)}}function _reduced_reduced(i){return i&&i[\"@@transducer/reduced\"]?i:{\"@@transducer/value\":i,\"@@transducer/reduced\":!0}}const internal_xfBase_init=function(){return this.xf[\"@@transducer/init\"]()},internal_xfBase_result=function(i){return this.xf[\"@@transducer/result\"](i)};var Dl=function(){function XAll(i,s){this.xf=s,this.f=i,this.all=!0}return XAll.prototype[\"@@transducer/init\"]=internal_xfBase_init,XAll.prototype[\"@@transducer/result\"]=function(i){return this.all&&(i=this.xf[\"@@transducer/step\"](i,!0)),this.xf[\"@@transducer/result\"](i)},XAll.prototype[\"@@transducer/step\"]=function(i,s){return this.f(s)||(this.all=!1,i=_reduced_reduced(this.xf[\"@@transducer/step\"](i,!1))),i},XAll}();function _xall(i){return function(s){return new Dl(i,s)}}var Bl=_curry2_curry2(_dispatchable_dispatchable([\"all\"],_xall,(function all(i,s){for(var u=0;u<s.length;){if(!i(s[u]))return!1;u+=1}return!0})));const Ll=Bl;function _arity_arity(i,s){switch(i){case 0:return function(){return s.apply(this,arguments)};case 1:return function(i){return s.apply(this,arguments)};case 2:return function(i,u){return s.apply(this,arguments)};case 3:return function(i,u,m){return s.apply(this,arguments)};case 4:return function(i,u,m,v){return s.apply(this,arguments)};case 5:return function(i,u,m,v,_){return s.apply(this,arguments)};case 6:return function(i,u,m,v,_,j){return s.apply(this,arguments)};case 7:return function(i,u,m,v,_,j,M){return s.apply(this,arguments)};case 8:return function(i,u,m,v,_,j,M,$){return s.apply(this,arguments)};case 9:return function(i,u,m,v,_,j,M,$,W){return s.apply(this,arguments)};case 10:return function(i,u,m,v,_,j,M,$,W,X){return s.apply(this,arguments)};default:throw new Error(\"First argument to _arity must be a non-negative integer no greater than ten\")}}function _curryN_curryN(i,s,u){return function(){for(var m=[],v=0,_=i,j=0;j<s.length||v<arguments.length;){var M;j<s.length&&(!_isPlaceholder(s[j])||v>=arguments.length)?M=s[j]:(M=arguments[v],v+=1),m[j]=M,_isPlaceholder(M)||(_-=1),j+=1}return _<=0?u.apply(this,m):_arity_arity(_,_curryN_curryN(i,m,u))}}var Fl=_curry2_curry2((function curryN(i,s){return 1===i?_curry1_curry1(s):_arity_arity(i,_curryN_curryN(i,[],s))}));const ql=Fl;function _arrayFromIterator(i){for(var s,u=[];!(s=i.next()).done;)u.push(s.value);return u}function _includesWith(i,s,u){for(var m=0,v=u.length;m<v;){if(i(s,u[m]))return!0;m+=1}return!1}function _has_has(i,s){return Object.prototype.hasOwnProperty.call(s,i)}const $l=\"function\"==typeof Object.is?Object.is:function _objectIs(i,s){return i===s?0!==i||1/i==1/s:i!=i&&s!=s};var Ul=Object.prototype.toString;const zl=function(){return\"[object Arguments]\"===Ul.call(arguments)?function _isArguments(i){return\"[object Arguments]\"===Ul.call(i)}:function _isArguments(i){return _has_has(\"callee\",i)}}();var Vl=!{toString:null}.propertyIsEnumerable(\"toString\"),Wl=[\"constructor\",\"valueOf\",\"isPrototypeOf\",\"toString\",\"propertyIsEnumerable\",\"hasOwnProperty\",\"toLocaleString\"],Kl=function(){return arguments.propertyIsEnumerable(\"length\")}(),Hl=function contains(i,s){for(var u=0;u<i.length;){if(i[u]===s)return!0;u+=1}return!1};const Jl=\"function\"!=typeof Object.keys||Kl?_curry1_curry1((function keys(i){if(Object(i)!==i)return[];var s,u,m=[],v=Kl&&zl(i);for(s in i)!_has_has(s,i)||v&&\"length\"===s||(m[m.length]=s);if(Vl)for(u=Wl.length-1;u>=0;)_has_has(s=Wl[u],i)&&!Hl(m,s)&&(m[m.length]=s),u-=1;return m})):_curry1_curry1((function keys(i){return Object(i)!==i?[]:Object.keys(i)}));const Gl=_curry1_curry1((function type(i){return null===i?\"Null\":void 0===i?\"Undefined\":Object.prototype.toString.call(i).slice(8,-1)}));function _uniqContentEquals(i,s,u,m){var v=_arrayFromIterator(i);function eq(i,s){return _equals(i,s,u.slice(),m.slice())}return!_includesWith((function(i,s){return!_includesWith(eq,s,i)}),_arrayFromIterator(s),v)}function _equals(i,s,u,m){if($l(i,s))return!0;var v=Gl(i);if(v!==Gl(s))return!1;if(\"function\"==typeof i[\"fantasy-land/equals\"]||\"function\"==typeof s[\"fantasy-land/equals\"])return\"function\"==typeof i[\"fantasy-land/equals\"]&&i[\"fantasy-land/equals\"](s)&&\"function\"==typeof s[\"fantasy-land/equals\"]&&s[\"fantasy-land/equals\"](i);if(\"function\"==typeof i.equals||\"function\"==typeof s.equals)return\"function\"==typeof i.equals&&i.equals(s)&&\"function\"==typeof s.equals&&s.equals(i);switch(v){case\"Arguments\":case\"Array\":case\"Object\":if(\"function\"==typeof i.constructor&&\"Promise\"===function _functionName(i){var s=String(i).match(/^function (\\w*)/);return null==s?\"\":s[1]}(i.constructor))return i===s;break;case\"Boolean\":case\"Number\":case\"String\":if(typeof i!=typeof s||!$l(i.valueOf(),s.valueOf()))return!1;break;case\"Date\":if(!$l(i.valueOf(),s.valueOf()))return!1;break;case\"Error\":return i.name===s.name&&i.message===s.message;case\"RegExp\":if(i.source!==s.source||i.global!==s.global||i.ignoreCase!==s.ignoreCase||i.multiline!==s.multiline||i.sticky!==s.sticky||i.unicode!==s.unicode)return!1}for(var _=u.length-1;_>=0;){if(u[_]===i)return m[_]===s;_-=1}switch(v){case\"Map\":return i.size===s.size&&_uniqContentEquals(i.entries(),s.entries(),u.concat([i]),m.concat([s]));case\"Set\":return i.size===s.size&&_uniqContentEquals(i.values(),s.values(),u.concat([i]),m.concat([s]));case\"Arguments\":case\"Array\":case\"Object\":case\"Boolean\":case\"Number\":case\"String\":case\"Date\":case\"Error\":case\"RegExp\":case\"Int8Array\":case\"Uint8Array\":case\"Uint8ClampedArray\":case\"Int16Array\":case\"Uint16Array\":case\"Int32Array\":case\"Uint32Array\":case\"Float32Array\":case\"Float64Array\":case\"ArrayBuffer\":break;default:return!1}var j=Jl(i);if(j.length!==Jl(s).length)return!1;var M=u.concat([i]),$=m.concat([s]);for(_=j.length-1;_>=0;){var W=j[_];if(!_has_has(W,s)||!_equals(s[W],i[W],M,$))return!1;_-=1}return!0}const Xl=_curry2_curry2((function equals(i,s){return _equals(i,s,[],[])}));function _includes(i,s){return function _indexOf_indexOf(i,s,u){var m,v;if(\"function\"==typeof i.indexOf)switch(typeof s){case\"number\":if(0===s){for(m=1/s;u<i.length;){if(0===(v=i[u])&&1/v===m)return u;u+=1}return-1}if(s!=s){for(;u<i.length;){if(\"number\"==typeof(v=i[u])&&v!=v)return u;u+=1}return-1}return i.indexOf(s,u);case\"string\":case\"boolean\":case\"function\":case\"undefined\":return i.indexOf(s,u);case\"object\":if(null===s)return i.indexOf(s,u)}for(;u<i.length;){if(Xl(i[u],s))return u;u+=1}return-1}(s,i,0)>=0}function _map_map(i,s){for(var u=0,m=s.length,v=Array(m);u<m;)v[u]=i(s[u]),u+=1;return v}function _quote(i){return'\"'+i.replace(/\\\\/g,\"\\\\\\\\\").replace(/[\\b]/g,\"\\\\b\").replace(/\\f/g,\"\\\\f\").replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/\\t/g,\"\\\\t\").replace(/\\v/g,\"\\\\v\").replace(/\\0/g,\"\\\\0\").replace(/\"/g,'\\\\\"')+'\"'}var Yl=function pad(i){return(i<10?\"0\":\"\")+i};const Ql=\"function\"==typeof Date.prototype.toISOString?function _toISOString(i){return i.toISOString()}:function _toISOString(i){return i.getUTCFullYear()+\"-\"+Yl(i.getUTCMonth()+1)+\"-\"+Yl(i.getUTCDate())+\"T\"+Yl(i.getUTCHours())+\":\"+Yl(i.getUTCMinutes())+\":\"+Yl(i.getUTCSeconds())+\".\"+(i.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+\"Z\"};function _complement(i){return function(){return!i.apply(this,arguments)}}function _arrayReduce(i,s,u){for(var m=0,v=u.length;m<v;)s=i(s,u[m]),m+=1;return s}function _isObject_isObject(i){return\"[object Object]\"===Object.prototype.toString.call(i)}var Zl=function(){function XFilter(i,s){this.xf=s,this.f=i}return XFilter.prototype[\"@@transducer/init\"]=internal_xfBase_init,XFilter.prototype[\"@@transducer/result\"]=internal_xfBase_result,XFilter.prototype[\"@@transducer/step\"]=function(i,s){return this.f(s)?this.xf[\"@@transducer/step\"](i,s):i},XFilter}();function _xfilter(i){return function(s){return new Zl(i,s)}}var eu=_curry2_curry2(_dispatchable_dispatchable([\"fantasy-land/filter\",\"filter\"],_xfilter,(function(i,s){return _isObject_isObject(s)?_arrayReduce((function(u,m){return i(s[m])&&(u[m]=s[m]),u}),{},Jl(s)):function _filter_filter(i,s){for(var u=0,m=s.length,v=[];u<m;)i(s[u])&&(v[v.length]=s[u]),u+=1;return v}(i,s)})));const tu=eu;const ru=_curry2_curry2((function reject(i,s){return tu(_complement(i),s)}));function _toString_toString(i,s){var u=function recur(u){var m=s.concat([i]);return _includes(u,m)?\"<Circular>\":_toString_toString(u,m)},mapPairs=function(i,s){return _map_map((function(s){return _quote(s)+\": \"+u(i[s])}),s.slice().sort())};switch(Object.prototype.toString.call(i)){case\"[object Arguments]\":return\"(function() { return arguments; }(\"+_map_map(u,i).join(\", \")+\"))\";case\"[object Array]\":return\"[\"+_map_map(u,i).concat(mapPairs(i,ru((function(i){return/^\\d+$/.test(i)}),Jl(i)))).join(\", \")+\"]\";case\"[object Boolean]\":return\"object\"==typeof i?\"new Boolean(\"+u(i.valueOf())+\")\":i.toString();case\"[object Date]\":return\"new Date(\"+(isNaN(i.valueOf())?u(NaN):_quote(Ql(i)))+\")\";case\"[object Map]\":return\"new Map(\"+u(Array.from(i))+\")\";case\"[object Null]\":return\"null\";case\"[object Number]\":return\"object\"==typeof i?\"new Number(\"+u(i.valueOf())+\")\":1/i==-1/0?\"-0\":i.toString(10);case\"[object Set]\":return\"new Set(\"+u(Array.from(i).sort())+\")\";case\"[object String]\":return\"object\"==typeof i?\"new String(\"+u(i.valueOf())+\")\":_quote(i);case\"[object Undefined]\":return\"undefined\";default:if(\"function\"==typeof i.toString){var m=i.toString();if(\"[object Object]\"!==m)return m}return\"{\"+mapPairs(i,Jl(i)).join(\", \")+\"}\"}}const nu=_curry1_curry1((function toString(i){return _toString_toString(i,[])}));const ou=_curry2_curry2((function max(i,s){if(i===s)return s;function safeMax(i,s){if(i>s!=s>i)return s>i?s:i}var u=safeMax(i,s);if(void 0!==u)return u;var m=safeMax(typeof i,typeof s);if(void 0!==m)return m===typeof i?i:s;var v=nu(i),_=safeMax(v,nu(s));return void 0!==_&&_===v?i:s}));var iu=function(){function XMap(i,s){this.xf=s,this.f=i}return XMap.prototype[\"@@transducer/init\"]=internal_xfBase_init,XMap.prototype[\"@@transducer/result\"]=internal_xfBase_result,XMap.prototype[\"@@transducer/step\"]=function(i,s){return this.xf[\"@@transducer/step\"](i,this.f(s))},XMap}();var au=_curry2_curry2(_dispatchable_dispatchable([\"fantasy-land/map\",\"map\"],(function _xmap(i){return function(s){return new iu(i,s)}}),(function map(i,s){switch(Object.prototype.toString.call(s)){case\"[object Function]\":return ql(s.length,(function(){return i.call(this,s.apply(this,arguments))}));case\"[object Object]\":return _arrayReduce((function(u,m){return u[m]=i(s[m]),u}),{},Jl(s));default:return _map_map(i,s)}})));const su=au,cu=Number.isInteger||function _isInteger(i){return i<<0===i};function _isString_isString(i){return\"[object String]\"===Object.prototype.toString.call(i)}var lu=_curry2_curry2((function nth(i,s){var u=i<0?s.length+i:i;return _isString_isString(s)?s.charAt(u):s[u]}));const uu=lu;const pu=_curry2_curry2((function prop(i,s){if(null!=s)return cu(i)?uu(i,s):s[i]}));var hu=_curry2_curry2((function pluck(i,s){return su(pu(i),s)}));const du=hu;function _curry3_curry3(i){return function f3(s,u,m){switch(arguments.length){case 0:return f3;case 1:return _isPlaceholder(s)?f3:_curry2_curry2((function(u,m){return i(s,u,m)}));case 2:return _isPlaceholder(s)&&_isPlaceholder(u)?f3:_isPlaceholder(s)?_curry2_curry2((function(s,m){return i(s,u,m)})):_isPlaceholder(u)?_curry2_curry2((function(u,m){return i(s,u,m)})):_curry1_curry1((function(m){return i(s,u,m)}));default:return _isPlaceholder(s)&&_isPlaceholder(u)&&_isPlaceholder(m)?f3:_isPlaceholder(s)&&_isPlaceholder(u)?_curry2_curry2((function(s,u){return i(s,u,m)})):_isPlaceholder(s)&&_isPlaceholder(m)?_curry2_curry2((function(s,m){return i(s,u,m)})):_isPlaceholder(u)&&_isPlaceholder(m)?_curry2_curry2((function(u,m){return i(s,u,m)})):_isPlaceholder(s)?_curry1_curry1((function(s){return i(s,u,m)})):_isPlaceholder(u)?_curry1_curry1((function(u){return i(s,u,m)})):_isPlaceholder(m)?_curry1_curry1((function(m){return i(s,u,m)})):i(s,u,m)}}}const fu=_curry1_curry1((function isArrayLike(i){return!!Rl(i)||!!i&&(\"object\"==typeof i&&(!_isString_isString(i)&&(0===i.length||i.length>0&&(i.hasOwnProperty(0)&&i.hasOwnProperty(i.length-1)))))}));var mu=\"undefined\"!=typeof Symbol?Symbol.iterator:\"@@iterator\";function _createReduce(i,s,u){return function _reduce(m,v,_){if(fu(_))return i(m,v,_);if(null==_)return v;if(\"function\"==typeof _[\"fantasy-land/reduce\"])return s(m,v,_,\"fantasy-land/reduce\");if(null!=_[mu])return u(m,v,_[mu]());if(\"function\"==typeof _.next)return u(m,v,_);if(\"function\"==typeof _.reduce)return s(m,v,_,\"reduce\");throw new TypeError(\"reduce: list must be array or iterable\")}}function _xArrayReduce_xArrayReduce(i,s,u){for(var m=0,v=u.length;m<v;){if((s=i[\"@@transducer/step\"](s,u[m]))&&s[\"@@transducer/reduced\"]){s=s[\"@@transducer/value\"];break}m+=1}return i[\"@@transducer/result\"](s)}var yu=_curry2_curry2((function bind(i,s){return _arity_arity(i.length,(function(){return i.apply(s,arguments)}))}));const gu=yu;function _xIterableReduce(i,s,u){for(var m=u.next();!m.done;){if((s=i[\"@@transducer/step\"](s,m.value))&&s[\"@@transducer/reduced\"]){s=s[\"@@transducer/value\"];break}m=u.next()}return i[\"@@transducer/result\"](s)}function _xMethodReduce(i,s,u,m){return i[\"@@transducer/result\"](u[m](gu(i[\"@@transducer/step\"],i),s))}const vu=_createReduce(_xArrayReduce_xArrayReduce,_xMethodReduce,_xIterableReduce);var bu=function(){function XWrap(i){this.f=i}return XWrap.prototype[\"@@transducer/init\"]=function(){throw new Error(\"init not implemented on XWrap\")},XWrap.prototype[\"@@transducer/result\"]=function(i){return i},XWrap.prototype[\"@@transducer/step\"]=function(i,s){return this.f(i,s)},XWrap}();function _xwrap_xwrap(i){return new bu(i)}var _u=_curry3_curry3((function(i,s,u){return vu(\"function\"==typeof i?_xwrap_xwrap(i):i,s,u)}));const wu=_u;const Eu=_curry1_curry1((function allPass(i){return ql(wu(ou,0,du(\"length\",i)),(function(){for(var s=0,u=i.length;s<u;){if(!i[s].apply(this,arguments))return!1;s+=1}return!0}))}));const Su=_curry1_curry1((function always(i){return function(){return i}}));const xu=_curry1_curry1((function anyPass(i){return ql(wu(ou,0,du(\"length\",i)),(function(){for(var s=0,u=i.length;s<u;){if(i[s].apply(this,arguments))return!0;s+=1}return!1}))}));function _iterableReduce(i,s,u){for(var m=u.next();!m.done;)s=i(s,m.value),m=u.next();return s}function _methodReduce(i,s,u,m){return u[m](i,s)}const Ou=_createReduce(_arrayReduce,_methodReduce,_iterableReduce);const ku=_curry2_curry2((function ap(i,s){return\"function\"==typeof s[\"fantasy-land/ap\"]?s[\"fantasy-land/ap\"](i):\"function\"==typeof i.ap?i.ap(s):\"function\"==typeof i?function(u){return i(u)(s(u))}:Ou((function(i,u){return function _concat_concat(i,s){var u;s=s||[];var m=(i=i||[]).length,v=s.length,_=[];for(u=0;u<m;)_[_.length]=i[u],u+=1;for(u=0;u<v;)_[_.length]=s[u],u+=1;return _}(i,su(u,s))}),[],i)}));var Au=_curry2_curry2((function apply(i,s){return i.apply(this,s)}));const Cu=Au;var ju=_curry1_curry1((function values(i){for(var s=Jl(i),u=s.length,m=[],v=0;v<u;)m[v]=i[s[v]],v+=1;return m}));const Pu=ju;const Iu=_curry1_curry1((function isNil(i){return null==i}));const Nu=_curry3_curry3((function assocPath(i,s,u){if(0===i.length)return s;var m=i[0];if(i.length>1){var v=!Iu(u)&&_has_has(m,u)&&\"object\"==typeof u[m]?u[m]:cu(i[1])?[]:{};s=assocPath(Array.prototype.slice.call(i,1),s,v)}return function _assoc_assoc(i,s,u){if(cu(i)&&Rl(u)){var m=[].concat(u);return m[i]=s,m}var v={};for(var _ in u)v[_]=u[_];return v[i]=s,v}(m,s,u)}));function _isFunction_isFunction(i){var s=Object.prototype.toString.call(i);return\"[object Function]\"===s||\"[object AsyncFunction]\"===s||\"[object GeneratorFunction]\"===s||\"[object AsyncGeneratorFunction]\"===s}const Tu=_curry2_curry2((function and(i,s){return i&&s}));var Mu=_curry2_curry2((function liftN(i,s){var u=ql(i,s);return ql(i,(function(){return _arrayReduce(ku,su(u,arguments[0]),Array.prototype.slice.call(arguments,1))}))}));const Ru=Mu;var Du=_curry1_curry1((function lift(i){return Ru(i.length,i)}));const Bu=Du;const Lu=_curry2_curry2((function both(i,s){return _isFunction_isFunction(i)?function _both(){return i.apply(this,arguments)&&s.apply(this,arguments)}:Bu(Tu)(i,s)}));const Fu=_curry1_curry1((function comparator(i){return function(s,u){return i(s,u)?-1:i(u,s)?1:0}}));const qu=Bu(_curry1_curry1((function not(i){return!i})));function _pipe(i,s){return function(){return s.call(this,i.apply(this,arguments))}}function _checkForMethod_checkForMethod(i,s){return function(){var u=arguments.length;if(0===u)return s();var m=arguments[u-1];return Rl(m)||\"function\"!=typeof m[i]?s.apply(this,arguments):m[i].apply(m,Array.prototype.slice.call(arguments,0,u-1))}}var $u=_curry3_curry3(_checkForMethod_checkForMethod(\"slice\",(function slice(i,s,u){return Array.prototype.slice.call(u,i,s)})));const Uu=$u;const zu=_curry1_curry1(_checkForMethod_checkForMethod(\"tail\",Uu(1,1/0)));function pipe_pipe(){if(0===arguments.length)throw new Error(\"pipe requires at least one argument\");return _arity_arity(arguments[0].length,wu(_pipe,arguments[0],zu(arguments)))}var Vu=_curry2_curry2((function converge(i,s){return ql(wu(ou,0,du(\"length\",s)),(function(){var u=arguments,m=this;return i.apply(m,_map_map((function(i){return i.apply(m,u)}),s))}))}));const Wu=Vu;function _cloneRegExp(i){return new RegExp(i.source,i.flags?i.flags:(i.global?\"g\":\"\")+(i.ignoreCase?\"i\":\"\")+(i.multiline?\"m\":\"\")+(i.sticky?\"y\":\"\")+(i.unicode?\"u\":\"\")+(i.dotAll?\"s\":\"\"))}function _clone(i,s,u){if(u||(u=new Ku),function _isPrimitive(i){var s=typeof i;return null==i||\"object\"!=s&&\"function\"!=s}(i))return i;var m=function copy(m){var v=u.get(i);if(v)return v;for(var _ in u.set(i,m),i)Object.prototype.hasOwnProperty.call(i,_)&&(m[_]=s?_clone(i[_],!0,u):i[_]);return m};switch(Gl(i)){case\"Object\":return m(Object.create(Object.getPrototypeOf(i)));case\"Array\":return m([]);case\"Date\":return new Date(i.valueOf());case\"RegExp\":return _cloneRegExp(i);case\"Int8Array\":case\"Uint8Array\":case\"Uint8ClampedArray\":case\"Int16Array\":case\"Uint16Array\":case\"Int32Array\":case\"Uint32Array\":case\"Float32Array\":case\"Float64Array\":case\"BigInt64Array\":case\"BigUint64Array\":return i.slice();default:return i}}var Ku=function(){function _ObjectMap(){this.map={},this.length=0}return _ObjectMap.prototype.set=function(i,s){const u=this.hash(i);let m=this.map[u];m||(this.map[u]=m=[]),m.push([i,s]),this.length+=1},_ObjectMap.prototype.hash=function(i){let s=[];for(var u in i)s.push(Object.prototype.toString.call(i[u]));return s.join()},_ObjectMap.prototype.get=function(i){if(this.length<=180){for(const s in this.map){const u=this.map[s];for(let s=0;s<u.length;s+=1){const m=u[s];if(m[0]===i)return m[1]}}return}const s=this.hash(i),u=this.map[s];if(u)for(let s=0;s<u.length;s+=1){const m=u[s];if(m[0]===i)return m[1]}},_ObjectMap}(),Hu=function(){function XReduceBy(i,s,u,m){this.valueFn=i,this.valueAcc=s,this.keyFn=u,this.xf=m,this.inputs={}}return XReduceBy.prototype[\"@@transducer/init\"]=internal_xfBase_init,XReduceBy.prototype[\"@@transducer/result\"]=function(i){var s;for(s in this.inputs)if(_has_has(s,this.inputs)&&(i=this.xf[\"@@transducer/step\"](i,this.inputs[s]))[\"@@transducer/reduced\"]){i=i[\"@@transducer/value\"];break}return this.inputs=null,this.xf[\"@@transducer/result\"](i)},XReduceBy.prototype[\"@@transducer/step\"]=function(i,s){var u=this.keyFn(s);return this.inputs[u]=this.inputs[u]||[u,_clone(this.valueAcc,!1)],this.inputs[u][1]=this.valueFn(this.inputs[u][1],s),i},XReduceBy}();function _xreduceBy(i,s,u){return function(m){return new Hu(i,s,u,m)}}var Ju=_curryN_curryN(4,[],_dispatchable_dispatchable([],_xreduceBy,(function reduceBy(i,s,u,m){var v=_xwrap_xwrap((function(m,v){var _=u(v),j=i(_has_has(_,m)?m[_]:_clone(s,!1),v);return j&&j[\"@@transducer/reduced\"]?_reduced_reduced(m):(m[_]=j,m)}));return vu(v,{},m)})));const Gu=Ju;var Xu=_curry1_curry1((function curry(i){return ql(i.length,i)}));const Yu=Xu;const Qu=_curry2_curry2((function defaultTo(i,s){return null==s||s!=s?i:s}));function hasOrAdd(i,s,u){var m,v=typeof i;switch(v){case\"string\":case\"number\":return 0===i&&1/i==-1/0?!!u._items[\"-0\"]||(s&&(u._items[\"-0\"]=!0),!1):null!==u._nativeSet?s?(m=u._nativeSet.size,u._nativeSet.add(i),u._nativeSet.size===m):u._nativeSet.has(i):v in u._items?i in u._items[v]||(s&&(u._items[v][i]=!0),!1):(s&&(u._items[v]={},u._items[v][i]=!0),!1);case\"boolean\":if(v in u._items){var _=i?1:0;return!!u._items[v][_]||(s&&(u._items[v][_]=!0),!1)}return s&&(u._items[v]=i?[!1,!0]:[!0,!1]),!1;case\"function\":return null!==u._nativeSet?s?(m=u._nativeSet.size,u._nativeSet.add(i),u._nativeSet.size===m):u._nativeSet.has(i):v in u._items?!!_includes(i,u._items[v])||(s&&u._items[v].push(i),!1):(s&&(u._items[v]=[i]),!1);case\"undefined\":return!!u._items[v]||(s&&(u._items[v]=!0),!1);case\"object\":if(null===i)return!!u._items.null||(s&&(u._items.null=!0),!1);default:return(v=Object.prototype.toString.call(i))in u._items?!!_includes(i,u._items[v])||(s&&u._items[v].push(i),!1):(s&&(u._items[v]=[i]),!1)}}const Zu=function(){function _Set(){this._nativeSet=\"function\"==typeof Set?new Set:null,this._items={}}return _Set.prototype.add=function(i){return!hasOrAdd(i,!0,this)},_Set.prototype.has=function(i){return hasOrAdd(i,!1,this)},_Set}();var ep=_curry2_curry2((function difference(i,s){for(var u=[],m=0,v=i.length,_=s.length,j=new Zu,M=0;M<_;M+=1)j.add(s[M]);for(;m<v;)j.add(i[m])&&(u[u.length]=i[m]),m+=1;return u}));const tp=ep;var rp=function(){function XTake(i,s){this.xf=s,this.n=i,this.i=0}return XTake.prototype[\"@@transducer/init\"]=internal_xfBase_init,XTake.prototype[\"@@transducer/result\"]=internal_xfBase_result,XTake.prototype[\"@@transducer/step\"]=function(i,s){this.i+=1;var u=0===this.n?i:this.xf[\"@@transducer/step\"](i,s);return this.n>=0&&this.i>=this.n?_reduced_reduced(u):u},XTake}();function _xtake(i){return function(s){return new rp(i,s)}}const np=_curry2_curry2(_dispatchable_dispatchable([\"take\"],_xtake,(function take(i,s){return Uu(0,i<0?1/0:i,s)})));function dropLastWhile(i,s){for(var u=s.length-1;u>=0&&i(s[u]);)u-=1;return Uu(0,u+1,s)}var op=function(){function XDropLastWhile(i,s){this.f=i,this.retained=[],this.xf=s}return XDropLastWhile.prototype[\"@@transducer/init\"]=internal_xfBase_init,XDropLastWhile.prototype[\"@@transducer/result\"]=function(i){return this.retained=null,this.xf[\"@@transducer/result\"](i)},XDropLastWhile.prototype[\"@@transducer/step\"]=function(i,s){return this.f(s)?this.retain(i,s):this.flush(i,s)},XDropLastWhile.prototype.flush=function(i,s){return i=vu(this.xf,i,this.retained),this.retained=[],this.xf[\"@@transducer/step\"](i,s)},XDropLastWhile.prototype.retain=function(i,s){return this.retained.push(s),i},XDropLastWhile}();function _xdropLastWhile(i){return function(s){return new op(i,s)}}const ip=_curry2_curry2(_dispatchable_dispatchable([],_xdropLastWhile,dropLastWhile));var sp=function(){function XDropWhile(i,s){this.xf=s,this.f=i}return XDropWhile.prototype[\"@@transducer/init\"]=internal_xfBase_init,XDropWhile.prototype[\"@@transducer/result\"]=internal_xfBase_result,XDropWhile.prototype[\"@@transducer/step\"]=function(i,s){if(this.f){if(this.f(s))return i;this.f=null}return this.xf[\"@@transducer/step\"](i,s)},XDropWhile}();function _xdropWhile(i){return function(s){return new sp(i,s)}}const cp=_curry2_curry2(_dispatchable_dispatchable([\"dropWhile\"],_xdropWhile,(function dropWhile(i,s){for(var u=0,m=s.length;u<m&&i(s[u]);)u+=1;return Uu(u,1/0,s)})));const lp=_curry2_curry2((function or(i,s){return i||s}));const up=_curry2_curry2((function either(i,s){return _isFunction_isFunction(i)?function _either(){return i.apply(this,arguments)||s.apply(this,arguments)}:Bu(lp)(i,s)}));var pp=_curry1_curry1((function empty(i){return null!=i&&\"function\"==typeof i[\"fantasy-land/empty\"]?i[\"fantasy-land/empty\"]():null!=i&&null!=i.constructor&&\"function\"==typeof i.constructor[\"fantasy-land/empty\"]?i.constructor[\"fantasy-land/empty\"]():null!=i&&\"function\"==typeof i.empty?i.empty():null!=i&&null!=i.constructor&&\"function\"==typeof i.constructor.empty?i.constructor.empty():Rl(i)?[]:_isString_isString(i)?\"\":_isObject_isObject(i)?{}:zl(i)?function(){return arguments}():function _isTypedArray(i){var s=Object.prototype.toString.call(i);return\"[object Uint8ClampedArray]\"===s||\"[object Int8Array]\"===s||\"[object Uint8Array]\"===s||\"[object Int16Array]\"===s||\"[object Uint16Array]\"===s||\"[object Int32Array]\"===s||\"[object Uint32Array]\"===s||\"[object Float32Array]\"===s||\"[object Float64Array]\"===s||\"[object BigInt64Array]\"===s||\"[object BigUint64Array]\"===s}(i)?i.constructor.from(\"\"):void 0}));const hp=pp;var dp=_curry1_curry1((function flip(i){return ql(i.length,(function(s,u){var m=Array.prototype.slice.call(arguments,0);return m[0]=u,m[1]=s,i.apply(this,m)}))}));const fp=dp;const mp=_curry2_curry2(_checkForMethod_checkForMethod(\"groupBy\",Gu((function(i,s){return i.push(s),i}),[])));const yp=_curry2_curry2((function hasPath(i,s){if(0===i.length||Iu(s))return!1;for(var u=s,m=0;m<i.length;){if(Iu(u)||!_has_has(i[m],u))return!1;u=u[i[m]],m+=1}return!0}));const gp=_curry2_curry2((function has(i,s){return yp([i],s)}));const vp=_curry2_curry2((function hasIn(i,s){return!Iu(s)&&i in s}));const bp=uu(0);var identical=function(i,s){switch(arguments.length){case 0:return identical;case 1:return function unaryIdentical(s){return 0===arguments.length?unaryIdentical:$l(i,s)};default:return $l(i,s)}};const _p=identical;function _identity_identity(i){return i}const wp=_curry1_curry1(_identity_identity);const Ep=_curry3_curry3((function ifElse(i,s,u){return ql(Math.max(i.length,s.length,u.length),(function _ifElse(){return i.apply(this,arguments)?s.apply(this,arguments):u.apply(this,arguments)}))}));const Sp=_curry2_curry2(_includes);const xp=Uu(0,-1);\"function\"==typeof Object.assign&&Object.assign;const Op=_curry2_curry2((function invoker(i,s){return ql(i+1,(function(){var u=arguments[i];if(null!=u&&_isFunction_isFunction(u[s]))return u[s].apply(u,Array.prototype.slice.call(arguments,0,i));throw new TypeError(nu(u)+' does not have a method named \"'+s+'\"')}))}));const kp=_curry1_curry1((function isEmpty(i){return null!=i&&Xl(i,hp(i))}));const Ap=Op(1,\"join\");const Cp=uu(-1);const jp=_curry2_curry2((function lens(i,s){return function(u){return function(m){return su((function(i){return s(i,m)}),u(i(m)))}}}));var Pp=_curry2_curry2((function paths(i,s){return i.map((function(i){for(var u,m=s,v=0;v<i.length;){if(null==m)return;u=i[v],m=cu(u)?uu(u,m):m[u],v+=1}return m}))}));const Ip=Pp;const Np=_curry2_curry2((function path(i,s){return Ip([i],s)[0]}));var Tp=_curry2_curry2((function mapObjIndexed(i,s){return _arrayReduce((function(u,m){return u[m]=i(s[m],m,s),u}),{},Jl(s))}));const Mp=Tp;var Rp=_curry3_curry3((function mergeWithKey(i,s,u){var m,v={};for(m in u=u||{},s=s||{})_has_has(m,s)&&(v[m]=_has_has(m,u)?i(m,s[m],u[m]):s[m]);for(m in u)_has_has(m,u)&&!_has_has(m,v)&&(v[m]=u[m]);return v}));const Dp=Rp;var Bp=_curry3_curry3((function mergeDeepWithKey(i,s,u){return Dp((function(s,u,m){return _isObject_isObject(u)&&_isObject_isObject(m)?mergeDeepWithKey(i,u,m):i(s,u,m)}),s,u)}));const Lp=Bp;const Fp=_curry2_curry2((function mergeDeepRight(i,s){return Lp((function(i,s,u){return u}),i,s)}));var qp=_curry2_curry2((function none(i,s){return Ll(_complement(i),s)}));const $p=qp;var Identity=function(i){return{value:i,map:function(s){return Identity(s(i))}}};const Up=_curry3_curry3((function over(i,s,u){return i((function(i){return Identity(s(i))}))(u).value}));const zp=_curry3_curry3((function pathOr(i,s,u){return Qu(i,Np(s,u))}));const Vp=_curry3_curry3((function pathSatisfies(i,s,u){return i(Np(s,u))}));const Wp=_curry2_curry2((function pick(i,s){for(var u={},m=0;m<i.length;)i[m]in s&&(u[i[m]]=s[i[m]]),m+=1;return u}));const Kp=_curry3_curry3((function propEq(i,s,u){return Xl(i,pu(s,u))}));const Hp=_curry3_curry3((function propOr(i,s,u){return Qu(i,pu(s,u))}));const Jp=_curry3_curry3((function propSatisfies(i,s,u){return i(pu(s,u))}));function _isNumber(i){return\"[object Number]\"===Object.prototype.toString.call(i)}var Gp=_curry2_curry2((function range(i,s){if(!_isNumber(i)||!_isNumber(s))throw new TypeError(\"Both arguments to range must be numbers\");for(var u=[],m=i;m<s;)u.push(m),m+=1;return u}));const Xp=Gp;const Yp=_curry1_curry1(_reduced_reduced);var Qp=_curry3_curry3((function replace(i,s,u){return u.replace(i,s)}));const Zp=Qp;var th=_curry2_curry2((function sort(i,s){return Array.prototype.slice.call(s,0).sort(i)}));const ah=th;const lh=Op(1,\"split\");var yh=_curry2_curry2((function(i,s){return Xl(np(i.length,s),i)}));const vh=yh;var bh=_curry2_curry2((function test(i,s){if(!function _isRegExp(i){return\"[object RegExp]\"===Object.prototype.toString.call(i)}(i))throw new TypeError(\"‘test’ requires a value of type RegExp as its first argument; received \"+nu(i));return _cloneRegExp(i).test(s)}));const _h=bh;var wh=\"\\t\\n\\v\\f\\r                　\\u2028\\u2029\\ufeff\";String.prototype.trim;var Eh=function(){function XUniqWith(i,s){this.xf=s,this.pred=i,this.items=[]}return XUniqWith.prototype[\"@@transducer/init\"]=internal_xfBase_init,XUniqWith.prototype[\"@@transducer/result\"]=internal_xfBase_result,XUniqWith.prototype[\"@@transducer/step\"]=function(i,s){return _includesWith(this.pred,s,this.items)?i:(this.items.push(s),this.xf[\"@@transducer/step\"](i,s))},XUniqWith}();function _xuniqWith(i){return function(s){return new Eh(i,s)}}var xh=_curry2_curry2(_dispatchable_dispatchable([],_xuniqWith,(function(i,s){for(var u,m=0,v=s.length,_=[];m<v;)_includesWith(i,u=s[m],_)||(_[_.length]=u),m+=1;return _})));const kh=xh;const jh=_curry3_curry3((function when(i,s,u){return i(u)?s(u):u}));const Dh=Su(void 0);const Fh=Xl(Dh());class ParseResult extends Nl.ON{constructor(i,s,u){super(i,s,u),this.element=\"parseResult\"}get api(){return this.children.filter((i=>i.classes.contains(\"api\"))).first}get results(){return this.children.filter((i=>i.classes.contains(\"result\")))}get result(){return this.results.first}get annotations(){return this.children.filter((i=>\"annotation\"===i.element))}get warnings(){return this.children.filter((i=>\"annotation\"===i.element&&i.classes.contains(\"warning\")))}get errors(){return this.children.filter((i=>\"annotation\"===i.element&&i.classes.contains(\"error\")))}get isEmpty(){return this.children.reject((i=>\"annotation\"===i.element)).isEmpty}replaceResult(i){const{result:s}=this;if(Fh(s))return!1;const u=this.content.findIndex((i=>i===s));return-1!==u&&(this.content[u]=i,!0)}}const zh=ParseResult;class SourceMap extends Nl.ON{constructor(i,s,u){super(i,s,u),this.element=\"sourceMap\"}get positionStart(){return this.children.filter((i=>i.classes.contains(\"position\"))).get(0)}get positionEnd(){return this.children.filter((i=>i.classes.contains(\"position\"))).get(1)}set position(i){if(null===i)return;const s=new Nl.ON([i.start.row,i.start.column,i.start.char]),u=new Nl.ON([i.end.row,i.end.column,i.end.char]);s.classes.push(\"position\"),u.classes.push(\"position\"),this.push(s).push(u)}}const Gh=SourceMap;var ed=__webpack_require__(80621),td=__webpack_require__(52201),sd=__webpack_require__(27398);function typeof_typeof(i){return typeof_typeof=\"function\"==typeof td&&\"symbol\"==typeof sd?function(i){return typeof i}:function(i){return i&&\"function\"==typeof td&&i.constructor===td&&i!==td.prototype?\"symbol\":typeof i},typeof_typeof(i)}var cd=__webpack_require__(26189);function toPropertyKey_toPropertyKey(i){var s=function toPrimitive_toPrimitive(i,s){if(\"object\"!==typeof_typeof(i)||null===i)return i;var u=i[cd];if(void 0!==u){var m=u.call(i,s||\"default\");if(\"object\"!==typeof_typeof(m))return m;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===s?String:Number)(i)}(i,\"string\");return\"symbol\"===typeof_typeof(s)?s:String(s)}function defineProperty_defineProperty(i,s,u){return(s=toPropertyKey_toPropertyKey(s))in i?ed(i,s,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[s]=u,i}const ld=ql(1,pipe_pipe(Gl,_p(\"GeneratorFunction\")));const ud=ql(1,pipe_pipe(Gl,_p(\"AsyncFunction\")));const dd=xu([pipe_pipe(Gl,_p(\"Function\")),ld,ud]);const fd=qu(dd);const md=ql(1,dd(Array.isArray)?Array.isArray:pipe_pipe(Gl,_p(\"Array\")));const yd=Lu(md,kp);var vd=ql(3,(function(i,s,u){var m=Np(i,u),v=Np(xp(i),u);if(!fd(m)&&!yd(i)){var _=gu(m,v);return Cu(_,s)}}));const bd=vd;const _d=fp(Sp),hasMethod=(i,s)=>\"function\"==typeof(null==s?void 0:s[i]),hasBasicElementProps=i=>null!=i&&Object.prototype.hasOwnProperty.call(i,\"_storedElement\")&&Object.prototype.hasOwnProperty.call(i,\"_content\"),primitiveEq=(i,s)=>{var u;return(null==s||null===(u=s.primitive)||void 0===u?void 0:u.call(s))===i},hasClass=(i,s)=>{var u,m;return(null==s||null===(u=s.classes)||void 0===u||null===(m=u.includes)||void 0===m?void 0:m.call(u,i))||!1},isElementType=(i,s)=>(null==s?void 0:s.element)===i,helpers=i=>i({hasMethod,hasBasicElementProps,primitiveEq,isElementType,hasClass}),wd=helpers((({hasBasicElementProps:i,primitiveEq:s})=>u=>u instanceof Nl.W_||i(u)&&s(void 0,u))),Ed=helpers((({hasBasicElementProps:i,primitiveEq:s})=>u=>u instanceof Nl.RP||i(u)&&s(\"string\",u))),Sd=helpers((({hasBasicElementProps:i,primitiveEq:s})=>u=>u instanceof Nl.VL||i(u)&&s(\"number\",u))),xd=helpers((({hasBasicElementProps:i,primitiveEq:s})=>u=>u instanceof Nl.zr||i(u)&&s(\"null\",u))),Od=helpers((({hasBasicElementProps:i,primitiveEq:s})=>u=>u instanceof Nl.hh||i(u)&&s(\"boolean\",u))),kd=helpers((({hasBasicElementProps:i,primitiveEq:s,hasMethod:u})=>m=>m instanceof Nl.Sb||i(m)&&s(\"object\",m)&&u(\"keys\",m)&&u(\"values\",m)&&u(\"items\",m))),Ad=helpers((({hasBasicElementProps:i,primitiveEq:s,hasMethod:u})=>m=>m instanceof Nl.ON&&!(m instanceof Nl.Sb)||i(m)&&s(\"array\",m)&&u(\"push\",m)&&u(\"unshift\",m)&&u(\"map\",m)&&u(\"reduce\",m))),Cd=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof Nl.c6||i(m)&&s(\"member\",m)&&u(void 0,m))),Id=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof Nl.EA||i(m)&&s(\"link\",m)&&u(void 0,m))),Nd=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof Nl.tK||i(m)&&s(\"ref\",m)&&u(void 0,m))),Td=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof Tl||i(m)&&s(\"annotation\",m)&&u(\"array\",m))),Md=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof Ml||i(m)&&s(\"comment\",m)&&u(\"string\",m))),Rd=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof zh||i(m)&&s(\"parseResult\",m)&&u(\"array\",m))),Dd=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof Gh||i(m)&&s(\"sourceMap\",m)&&u(\"array\",m))),isPrimitiveElement=i=>isElementType(\"object\",i)||isElementType(\"array\",i)||isElementType(\"boolean\",i)||isElementType(\"number\",i)||isElementType(\"string\",i)||isElementType(\"null\",i)||isElementType(\"member\",i),hasElementSourceMap=i=>{var s,u;return Dd(null==i||null===(s=i.meta)||void 0===s||null===(u=s.get)||void 0===u?void 0:u.call(s,\"sourceMap\"))},includesSymbols=(i,s)=>{if(0===i.length)return!0;const u=s.attributes.get(\"symbols\");return!!Ad(u)&&Ll(_d(u.toValue()),i)},includesClasses=(i,s)=>0===i.length||Ll(_d(s.classes.toValue()),i);const Bd=Xl(null);const Ld=qu(Bd);function isOfTypeObject_typeof(i){return isOfTypeObject_typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(i){return typeof i}:function(i){return i&&\"function\"==typeof Symbol&&i.constructor===Symbol&&i!==Symbol.prototype?\"symbol\":typeof i},isOfTypeObject_typeof(i)}const Fd=function isOfTypeObject(i){return\"object\"===isOfTypeObject_typeof(i)};const $d=ql(1,Lu(Ld,Fd));var Ud=pipe_pipe(Gl,_p(\"Object\")),Vd=pipe_pipe(nu,Xl(nu(Object))),Wd=Vp(Lu(dd,Vd),[\"constructor\"]);const Kd=ql(1,(function(i){if(!$d(i)||!Ud(i))return!1;var s=Object.getPrototypeOf(i);return!!Bd(s)||Wd(s)}));class Namespace extends Nl.lS{constructor(){super(),this.register(\"annotation\",Tl),this.register(\"comment\",Ml),this.register(\"parseResult\",zh),this.register(\"sourceMap\",Gh)}}const Hd=new Namespace,createNamespace=i=>{const s=new Namespace;return Kd(i)&&s.use(i),s},Jd=Hd;function toolbox_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}const refractor_toolbox=()=>{const i=function toolbox_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?toolbox_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):toolbox_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}({},fe);return{predicates:i,namespace:Jd}};var Gd=__webpack_require__(14058),Xd=__webpack_require__(628),Yd=__webpack_require__(92093);function objectWithoutProperties_objectWithoutProperties(i,s){if(null==i)return{};var u,m,v=function objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(i,s){if(null==i)return{};var u,m,v={},_=Yd(i);for(m=0;m<_.length;m++)u=_[m],Xd(s).call(s,u)>=0||(v[u]=i[u]);return v}(i,s);if(Gd){var _=Gd(i);for(m=0;m<_.length;m++)u=_[m],Xd(s).call(s,u)>=0||Object.prototype.propertyIsEnumerable.call(i,u)&&(v[u]=i[u])}return v}var Qd=__webpack_require__(43992);const Zd=ql(1,pipe_pipe(Gl,_p(\"String\"))),getVisitFn=(i,s,u)=>{const m=i[s];if(null!=m){if(!u&&\"function\"==typeof m)return m;const i=u?m.leave:m.enter;if(\"function\"==typeof i)return i}else{const m=u?i.leave:i.enter;if(null!=m){if(\"function\"==typeof m)return m;const i=m[s];if(\"function\"==typeof i)return i}}return null},tf={},getNodeType=i=>null==i?void 0:i.type,isNode=i=>\"string\"==typeof getNodeType(i),visitor_mergeAll=(i,{visitFnGetter:s=getVisitFn,nodeTypeGetter:u=getNodeType}={})=>{const m=new Array(i.length);return{enter(v,..._){for(let j=0;j<i.length;j+=1)if(null==m[j]){const M=s(i[j],u(v),!1);if(\"function\"==typeof M){const s=M.call(i[j],v,..._);if(!1===s)m[j]=v;else if(s===tf)m[j]=tf;else if(void 0!==s)return s}}},leave(v,..._){for(let j=0;j<i.length;j+=1)if(null==m[j]){const M=s(i[j],u(v),!0);if(\"function\"==typeof M){const s=M.call(i[j],v,..._);if(s===tf)m[j]=tf;else if(void 0!==s&&!1!==s)return s}}else m[j]===v&&(m[j]=null)}}},visit=(i,s,{keyMap:u=null,state:m={},breakSymbol:v=tf,deleteNodeSymbol:_=null,skipVisitingNodeSymbol:j=!1,visitFnGetter:M=getVisitFn,nodeTypeGetter:$=getNodeType,nodePredicate:W=isNode,detectCycles:X=!0}={})=>{const Y=u||{};let Z,ee,ie=Array.isArray(i),ae=[i],ce=-1,le=[];const pe=[],de=[];let fe=i;do{ce+=1;const i=ce===ae.length;let u,ye;const be=i&&0!==le.length;if(i){if(u=0===de.length?void 0:pe.pop(),ye=ee,ee=de.pop(),be){ye=ie?ye.slice():Object.create(Object.getPrototypeOf(ye),Object.getOwnPropertyDescriptors(ye));let i=0;for(let s=0;s<le.length;s+=1){let u=le[s][0];const m=le[s][1];ie&&(u-=i),ie&&m===_?(ye.splice(u,1),i+=1):ye[u]=m}}ce=Z.index,ae=Z.keys,le=Z.edits,ie=Z.inArray,Z=Z.prev}else{if(u=ee?ie?ce:ae[ce]:void 0,ye=ee?ee[u]:fe,ye===_||void 0===ye)continue;ee&&pe.push(u)}if(de.includes(ye))continue;let _e;if(!Array.isArray(ye)){if(!W(ye))throw new Error(`Invalid AST Node:  ${JSON.stringify(ye)}`);if(X&&de.includes(ye)){pe.pop();continue}const _=M(s,$(ye),i);if(_){for(const[i,u]of Object.entries(m))s[i]=u;if(_e=_.call(s,ye,u,ee,pe,de),_e===v)break;if(_e===j){if(!i){pe.pop();continue}}else if(void 0!==_e&&(le.push([u,_e]),!i)){if(!W(_e)){pe.pop();continue}ye=_e}}}void 0===_e&&be&&le.push([u,ye]),i||(Z={inArray:ie,index:ce,keys:ae,edits:le,prev:Z},ie=Array.isArray(ye),ae=ie?ye:Y[$(ye)]||[],ce=-1,le=[],ee&&de.push(ee),ee=ye)}while(void 0!==Z);return 0!==le.length&&([,fe]=le[le.length-1]),fe};visit[Symbol.for(\"nodejs.util.promisify.custom\")]=async(i,s,{keyMap:u=null,state:m={},breakSymbol:v=tf,deleteNodeSymbol:_=null,skipVisitingNodeSymbol:j=!1,visitFnGetter:M=getVisitFn,nodeTypeGetter:$=getNodeType,nodePredicate:W=isNode,detectCycles:X=!0}={})=>{const Y=u||{};let Z,ee,ie=Array.isArray(i),ae=[i],ce=-1,le=[];const pe=[],de=[];let fe=i;do{ce+=1;const i=ce===ae.length;let u,ye;const be=i&&0!==le.length;if(i){if(u=0===de.length?void 0:pe.pop(),ye=ee,ee=de.pop(),be){ye=ie?ye.slice():Object.create(Object.getPrototypeOf(ye),Object.getOwnPropertyDescriptors(ye));let i=0;for(let s=0;s<le.length;s+=1){let u=le[s][0];const m=le[s][1];ie&&(u-=i),ie&&m===_?(ye.splice(u,1),i+=1):ye[u]=m}}ce=Z.index,ae=Z.keys,le=Z.edits,ie=Z.inArray,Z=Z.prev}else{if(u=ee?ie?ce:ae[ce]:void 0,ye=ee?ee[u]:fe,ye===_||void 0===ye)continue;ee&&pe.push(u)}let _e;if(!Array.isArray(ye)){if(!W(ye))throw new Error(`Invalid AST Node:  ${JSON.stringify(ye)}`);if(X&&de.includes(ye)){pe.pop();continue}const _=M(s,$(ye),i);if(_){for(const[i,u]of Object.entries(m))s[i]=u;if(_e=await _.call(s,ye,u,ee,pe,de),_e===v)break;if(_e===j){if(!i){pe.pop();continue}}else if(void 0!==_e&&(le.push([u,_e]),!i)){if(!W(_e)){pe.pop();continue}ye=_e}}}void 0===_e&&be&&le.push([u,ye]),i||(Z={inArray:ie,index:ce,keys:ae,edits:le,prev:Z},ie=Array.isArray(ye),ae=ie?ye:Y[$(ye)]||[],ce=-1,le=[],ee&&de.push(ee),ee=ye)}while(void 0!==Z);return 0!==le.length&&([,fe]=le[le.length-1]),fe};const of=[\"keyMap\"],lf=[\"keyMap\"];function visitor_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function visitor_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?visitor_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):visitor_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}const visitor_getNodeType=i=>kd(i)?\"ObjectElement\":Ad(i)?\"ArrayElement\":Cd(i)?\"MemberElement\":Ed(i)?\"StringElement\":Od(i)?\"BooleanElement\":Sd(i)?\"NumberElement\":xd(i)?\"NullElement\":Id(i)?\"LinkElement\":Nd(i)?\"RefElement\":void 0,pf=pipe_pipe(visitor_getNodeType,Zd),ff={ObjectElement:[\"content\"],ArrayElement:[\"content\"],MemberElement:[\"key\",\"value\"],StringElement:[],BooleanElement:[],NumberElement:[],NullElement:[],RefElement:[],LinkElement:[],Annotation:[],Comment:[],ParseResultElement:[\"content\"],SourceMap:[\"content\"]},yf=Qd({props:{result:[],predicate:es_F,returnOnTrue:void 0,returnOnFalse:void 0},init({predicate:i=this.predicate,returnOnTrue:s=this.returnOnTrue,returnOnFalse:u=this.returnOnFalse}={}){this.result=[],this.predicate=i,this.returnOnTrue=s,this.returnOnFalse=u},methods:{enter(i){return this.predicate(i)?(this.result.push(i),this.returnOnTrue):this.returnOnFalse}}}),visitor_visit=(i,s,u={})=>{let{keyMap:m=ff}=u,v=objectWithoutProperties_objectWithoutProperties(u,of);return visit(i,s,visitor_objectSpread({keyMap:m,nodeTypeGetter:visitor_getNodeType,nodePredicate:pf},v))};visitor_visit[Symbol.for(\"nodejs.util.promisify.custom\")]=async(i,s,u={})=>{let{keyMap:m=ff}=u,v=objectWithoutProperties_objectWithoutProperties(u,lf);return visit[Symbol.for(\"nodejs.util.promisify.custom\")](i,s,visitor_objectSpread({keyMap:m,nodeTypeGetter:visitor_getNodeType,nodePredicate:pf},v))};const dispatchPlugins=(i,s,u={})=>{if(0===s.length)return i;const m=Hp(refractor_toolbox,\"toolboxCreator\",u),v=Hp({},\"visitorOptions\",u),_=Hp(visitor_getNodeType,\"nodeTypeGetter\",v),j=m(),M=s.map((i=>i(j))),$=visitor_mergeAll(M.map(Hp({},\"visitor\")),{nodeTypeGetter:_});M.forEach(bd([\"pre\"],[]));const W=visitor_visit(i,$,v);return M.forEach(bd([\"post\"],[])),W};function refractor_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function refractor_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?refractor_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):refractor_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}const refract=(i,{Type:s,plugins:u=[]})=>{const m=new s(i);return dispatchPlugins(m,u,{toolboxCreator:refractor_toolbox,visitorOptions:{nodeTypeGetter:visitor_getNodeType}})},createRefractor=i=>(s,u={})=>refract(s,refractor_objectSpread(refractor_objectSpread({},u),{},{Type:i}));Nl.Sb.refract=createRefractor(Nl.Sb),Nl.ON.refract=createRefractor(Nl.ON),Nl.RP.refract=createRefractor(Nl.RP),Nl.hh.refract=createRefractor(Nl.hh),Nl.zr.refract=createRefractor(Nl.zr),Nl.VL.refract=createRefractor(Nl.VL),Nl.EA.refract=createRefractor(Nl.EA),Nl.tK.refract=createRefractor(Nl.tK),Tl.refract=createRefractor(Tl),Ml.refract=createRefractor(Ml),zh.refract=createRefractor(zh),Gh.refract=createRefractor(Gh);const computeEdges=(i,s=new WeakMap)=>(Cd(i)?(s.set(i.key,i),computeEdges(i.key,s),s.set(i.value,i),computeEdges(i.value,s)):i.children.forEach((u=>{s.set(u,i),computeEdges(u,s)})),s),vf=Qd.init((function TranscluderConstructor({element:i}){let s;this.transclude=function transclude(u,m){var v;if(u===i)return m;if(u===m)return i;s=null!==(v=s)&&void 0!==v?v:computeEdges(i);const _=s.get(u);return Fh(_)?void 0:(kd(_)?((i,s,u)=>{const m=u.get(i);kd(m)&&(m.content=m.map(((v,_,j)=>j===i?(u.delete(i),u.set(s,m),s):j)))})(u,m,s):Ad(_)?((i,s,u)=>{const m=u.get(i);Ad(m)&&(m.content=m.map((v=>v===i?(u.delete(i),u.set(s,m),s):v)))})(u,m,s):Cd(_)&&((i,s,u)=>{const m=u.get(i);Cd(m)&&(m.key===i&&(m.key=s,u.delete(i),u.set(s,m)),m.value===i&&(m.value=s,u.delete(i),u.set(s,m)))})(u,m,s),i)}})),bf=vf,_f=[\"keyMap\"],wf=[\"keyMap\"];function value_visitor_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function value_visitor_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?value_visitor_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):value_visitor_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}const nodeTypeGetter=i=>\"string\"==typeof(null==i?void 0:i.type)?i.type:visitor_getNodeType(i),Sf=value_visitor_objectSpread({EphemeralObject:[\"content\"],EphemeralArray:[\"content\"]},ff),value_visitor_visit=(i,s,u={})=>{let{keyMap:m=Sf}=u,v=objectWithoutProperties_objectWithoutProperties(u,_f);return visitor_visit(i,s,value_visitor_objectSpread({keyMap:m,nodeTypeGetter,nodePredicate:es_T,detectCycles:!1,deleteNodeSymbol:Symbol.for(\"delete-node\"),skipVisitingNodeSymbol:Symbol.for(\"skip-visiting-node\")},v))};value_visitor_visit[Symbol.for(\"nodejs.util.promisify.custom\")]=async(i,s={})=>{let{keyMap:u=Sf}=s,m=objectWithoutProperties_objectWithoutProperties(s,wf);return visitor_visit[Symbol.for(\"nodejs.util.promisify.custom\")](i,visitor,value_visitor_objectSpread({keyMap:u,nodeTypeGetter,nodePredicate:es_T,detectCycles:!1,deleteNodeSymbol:Symbol.for(\"delete-node\"),skipVisitingNodeSymbol:Symbol.for(\"skip-visiting-node\")},m))};const xf=class EphemeralArray{constructor(i){defineProperty_defineProperty(this,\"type\",\"EphemeralArray\"),defineProperty_defineProperty(this,\"content\",[]),defineProperty_defineProperty(this,\"reference\",void 0),this.content=i,this.reference=[]}toReference(){return this.reference}toArray(){return this.reference.push(...this.content),this.reference}};const Of=class EphemeralObject{constructor(i){defineProperty_defineProperty(this,\"type\",\"EphemeralObject\"),defineProperty_defineProperty(this,\"content\",[]),defineProperty_defineProperty(this,\"reference\",void 0),this.content=i,this.reference={}}toReference(){return this.reference}toObject(){return Object.assign(this.reference,Object.fromEntries(this.content))}},kf=Qd.init((function _Visitor(){const i=new WeakMap;this.BooleanElement=function _BooleanElement(i){return i.toValue()},this.NumberElement=function _NumberElement(i){return i.toValue()},this.StringElement=function _StringElement(i){return i.toValue()},this.NullElement=function _NullElement(){return null},this.ObjectElement={enter(s){if(i.has(s))return i.get(s).toReference();const u=new Of(s.content);return i.set(s,u),u}},this.EphemeralObject={leave:i=>i.toObject()},this.MemberElement={enter:i=>[i.key,i.value]},this.ArrayElement={enter(s){if(i.has(s))return i.get(s).toReference();const u=new xf(s.content);return i.set(s,u),u}},this.EphemeralArray={leave:i=>i.toArray()}})),from=(i,s=Jd)=>{if(Zd(i))try{return s.fromRefract(JSON.parse(i))}catch{}return Kd(i)&&gp(\"element\",i)?s.fromRefract(i):s.toElement(i)},toValue=i=>value_visitor_visit(i,kf());const Af=Xl(\"\");var Cf=Lu(ql(1,pipe_pipe(Gl,_p(\"Number\"))),isFinite);var Pf=ql(1,Cf);var Nf=Lu(dd(Number.isFinite)?ql(1,gu(Number.isFinite,Number)):Pf,Wu(Xl,[Math.floor,wp]));var Tf=ql(1,Nf);const Mf=dd(Number.isInteger)?ql(1,gu(Number.isInteger,Number)):Tf;var Rf=Yu((function(i,s){return pipe_pipe(lh(\"\"),cp(_d(i)),Ap(\"\"))(s)}));const Df=Rf;class InvalidJsonPointerError extends Error{constructor(i){super(`Invalid $ref pointer \"${i}\". Pointers must begin with \"/\"`),this.name=this.constructor.name,this.message=`Invalid $ref pointer \"${i}\". Pointers must begin with \"/\"`,\"function\"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(`Invalid $ref pointer \"${i}\". Pointers must begin with \"/\"`).stack}}class EvaluationJsonPointerError extends Error{constructor(i){super(i),this.name=this.constructor.name,this.message=i,\"function\"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(i).stack}}const Lf=pipe_pipe(Zp(/~/g,\"~0\"),Zp(/\\//g,\"~1\"),encodeURIComponent),$f=pipe_pipe(Zp(/~1/g,\"/\"),Zp(/~0/g,\"~\"),(i=>{try{return decodeURIComponent(i)}catch{return i}})),evaluate=(i,s)=>{const u=(i=>{if(Af(i))return[];if(!vh(\"/\",i))throw new InvalidJsonPointerError(i);const s=pipe_pipe(lh(\"/\"),su($f))(i);return zu(s)})(i);return u.reduce(((i,s)=>{if(kd(i)){if(!i.hasKey(s))throw new EvaluationJsonPointerError(`Evaluation failed on token: \"${s}\"`);return i.get(s)}if(Ad(i)){if(!(s in i.content)||!Mf(Number(s)))throw new EvaluationJsonPointerError(`Evaluation failed on token: \"${s}\"`);return i.get(Number(s))}throw new EvaluationJsonPointerError(`Evaluation failed on token: \"${s}\"`)}),s)},uriToPointer=i=>{const s=(i=>{const s=i.indexOf(\"#\");return-1!==s?i.substring(s):\"#\"})(i);return Df(\"#\",s)};class Callback extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"callback\"}}const Uf=Callback;class Components extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"components\"}get schemas(){return this.get(\"schemas\")}set schemas(i){this.set(\"schemas\",i)}get responses(){return this.get(\"responses\")}set responses(i){this.set(\"responses\",i)}get parameters(){return this.get(\"parameters\")}set parameters(i){this.set(\"parameters\",i)}get examples(){return this.get(\"examples\")}set examples(i){this.set(\"examples\",i)}get requestBodies(){return this.get(\"requestBodies\")}set requestBodies(i){this.set(\"requestBodies\",i)}get headers(){return this.get(\"headers\")}set headers(i){this.set(\"headers\",i)}get securitySchemes(){return this.get(\"securitySchemes\")}set securitySchemes(i){this.set(\"securitySchemes\",i)}get links(){return this.get(\"links\")}set links(i){this.set(\"links\",i)}get callbacks(){return this.get(\"callbacks\")}set callbacks(i){this.set(\"callbacks\",i)}}const zf=Components;class Contact extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"contact\"}get name(){return this.get(\"name\")}set name(i){this.set(\"name\",i)}get url(){return this.get(\"url\")}set url(i){this.set(\"url\",i)}get email(){return this.get(\"email\")}set email(i){this.set(\"email\",i)}}const Vf=Contact;class Discriminator extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"discriminator\"}get propertyName(){return this.get(\"propertyName\")}set propertyName(i){this.set(\"propertyName\",i)}get mapping(){return this.get(\"mapping\")}set mapping(i){this.set(\"mapping\",i)}}const Wf=Discriminator;class Encoding extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"encoding\"}get contentType(){return this.get(\"contentType\")}set contentType(i){this.set(\"contentType\",i)}get headers(){return this.get(\"headers\")}set headers(i){this.set(\"headers\",i)}get style(){return this.get(\"style\")}set style(i){this.set(\"style\",i)}get explode(){return this.get(\"explode\")}set explode(i){this.set(\"explode\",i)}get allowedReserved(){return this.get(\"allowedReserved\")}set allowedReserved(i){this.set(\"allowedReserved\",i)}}const Xf=Encoding;class Example extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"example\"}get summary(){return this.get(\"summary\")}set summary(i){this.set(\"summary\",i)}get description(){return this.get(\"description\")}set description(i){this.set(\"description\",i)}get value(){return this.get(\"value\")}set value(i){this.set(\"value\",i)}get externalValue(){return this.get(\"externalValue\")}set externalValue(i){this.set(\"externalValue\",i)}}const Yf=Example;class ExternalDocumentation extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"externalDocumentation\"}get description(){return this.get(\"description\")}set description(i){this.set(\"description\",i)}get url(){return this.get(\"url\")}set url(i){this.set(\"url\",i)}}const Qf=ExternalDocumentation;class Header extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"header\"}get required(){return this.hasKey(\"required\")?this.get(\"required\"):new Nl.hh(!1)}set required(i){this.set(\"required\",i)}get deprecated(){return this.hasKey(\"deprecated\")?this.get(\"deprecated\"):new Nl.hh(!1)}set deprecated(i){this.set(\"deprecated\",i)}get allowEmptyValue(){return this.get(\"allowEmptyValue\")}set allowEmptyValue(i){this.set(\"allowEmptyValue\",i)}get style(){return this.get(\"style\")}set style(i){this.set(\"style\",i)}get explode(){return this.get(\"explode\")}set explode(i){this.set(\"explode\",i)}get allowReserved(){return this.get(\"allowReserved\")}set allowReserved(i){this.set(\"allowReserved\",i)}get schema(){return this.get(\"schema\")}set schema(i){this.set(\"schema\",i)}get example(){return this.get(\"example\")}set example(i){this.set(\"example\",i)}get examples(){return this.get(\"examples\")}set examples(i){this.set(\"examples\",i)}get contentProp(){return this.get(\"content\")}set contentProp(i){this.set(\"content\",i)}}Object.defineProperty(Header.prototype,\"description\",{get(){return this.get(\"description\")},set(i){this.set(\"description\",i)},enumerable:!0});const Zf=Header;class Info extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"info\",this.classes.push(\"info\")}get title(){return this.get(\"title\")}set title(i){this.set(\"title\",i)}get description(){return this.get(\"description\")}set description(i){this.set(\"description\",i)}get termsOfService(){return this.get(\"termsOfService\")}set termsOfService(i){this.set(\"termsOfService\",i)}get contact(){return this.get(\"contact\")}set contact(i){this.set(\"contact\",i)}get license(){return this.get(\"license\")}set license(i){this.set(\"license\",i)}get version(){return this.get(\"version\")}set version(i){this.set(\"version\",i)}}const em=Info;class License extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"license\"}get name(){return this.get(\"name\")}set name(i){this.set(\"name\",i)}get url(){return this.get(\"url\")}set url(i){this.set(\"url\",i)}}const tm=License;class Link extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"link\"}get operationRef(){return this.get(\"operationRef\")}set operationRef(i){this.set(\"operationRef\",i)}get operationId(){return this.get(\"operationId\")}set operationId(i){this.set(\"operationId\",i)}get operation(){var i,s;return Ed(this.operationRef)?null===(i=this.operationRef)||void 0===i?void 0:i.meta.get(\"operation\"):Ed(this.operationId)?null===(s=this.operationId)||void 0===s?void 0:s.meta.get(\"operation\"):void 0}set operation(i){this.set(\"operation\",i)}get parameters(){return this.get(\"parameters\")}set parameters(i){this.set(\"parameters\",i)}get requestBody(){return this.get(\"requestBody\")}set requestBody(i){this.set(\"requestBody\",i)}get description(){return this.get(\"description\")}set description(i){this.set(\"description\",i)}get server(){return this.get(\"server\")}set server(i){this.set(\"server\",i)}}const rm=Link;class MediaType extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"mediaType\"}get schema(){return this.get(\"schema\")}set schema(i){this.set(\"schema\",i)}get example(){return this.get(\"example\")}set example(i){this.set(\"example\",i)}get examples(){return this.get(\"examples\")}set examples(i){this.set(\"examples\",i)}get encoding(){return this.get(\"encoding\")}set encoding(i){this.set(\"encoding\",i)}}const nm=MediaType;class OAuthFlow extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"oAuthFlow\"}get authorizationUrl(){return this.get(\"authorizationUrl\")}set authorizationUrl(i){this.set(\"authorizationUrl\",i)}get tokenUrl(){return this.get(\"tokenUrl\")}set tokenUrl(i){this.set(\"tokenUrl\",i)}get refreshUrl(){return this.get(\"refreshUrl\")}set refreshUrl(i){this.set(\"refreshUrl\",i)}get scopes(){return this.get(\"scopes\")}set scopes(i){this.set(\"scopes\",i)}}const om=OAuthFlow;class OAuthFlows extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"oAuthFlows\"}get implicit(){return this.get(\"implicit\")}set implicit(i){this.set(\"implicit\",i)}get password(){return this.get(\"password\")}set password(i){this.set(\"password\",i)}get clientCredentials(){return this.get(\"clientCredentials\")}set clientCredentials(i){this.set(\"clientCredentials\",i)}get authorizationCode(){return this.get(\"authorizationCode\")}set authorizationCode(i){this.set(\"authorizationCode\",i)}}const im=OAuthFlows;class Openapi extends Nl.RP{constructor(i,s,u){super(i,s,u),this.element=\"openapi\",this.classes.push(\"spec-version\"),this.classes.push(\"version\")}}const am=Openapi;class OpenApi3_0 extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"openApi3_0\",this.classes.push(\"api\")}get openapi(){return this.get(\"openapi\")}set openapi(i){this.set(\"openapi\",i)}get info(){return this.get(\"info\")}set info(i){this.set(\"info\",i)}get servers(){return this.get(\"servers\")}set servers(i){this.set(\"servers\",i)}get paths(){return this.get(\"paths\")}set paths(i){this.set(\"paths\",i)}get components(){return this.get(\"components\")}set components(i){this.set(\"components\",i)}get security(){return this.get(\"security\")}set security(i){this.set(\"security\",i)}get tags(){return this.get(\"tags\")}set tags(i){this.set(\"tags\",i)}get externalDocs(){return this.get(\"externalDocs\")}set externalDocs(i){this.set(\"externalDocs\",i)}}const sm=OpenApi3_0;class Operation extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"operation\"}get tags(){return this.get(\"tags\")}set tags(i){this.set(\"tags\",i)}get summary(){return this.get(\"summary\")}set summary(i){this.set(\"summary\",i)}get description(){return this.get(\"description\")}set description(i){this.set(\"description\",i)}set externalDocs(i){this.set(\"externalDocs\",i)}get externalDocs(){return this.get(\"externalDocs\")}get operationId(){return this.get(\"operationId\")}set operationId(i){this.set(\"operationId\",i)}get parameters(){return this.get(\"parameters\")}set parameters(i){this.set(\"parameters\",i)}get requestBody(){return this.get(\"requestBody\")}set requestBody(i){this.set(\"requestBody\",i)}get responses(){return this.get(\"responses\")}set responses(i){this.set(\"responses\",i)}get callbacks(){return this.get(\"callbacks\")}set callbacks(i){this.set(\"callbacks\",i)}get deprecated(){return this.hasKey(\"deprecated\")?this.get(\"deprecated\"):new Nl.hh(!1)}set deprecated(i){this.set(\"deprecated\",i)}get security(){return this.get(\"security\")}set security(i){this.set(\"security\",i)}get servers(){return this.get(\"severs\")}set servers(i){this.set(\"servers\",i)}}const cm=Operation;class Parameter extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"parameter\"}get name(){return this.get(\"name\")}set name(i){this.set(\"name\",i)}get in(){return this.get(\"in\")}set in(i){this.set(\"in\",i)}get required(){return this.hasKey(\"required\")?this.get(\"required\"):new Nl.hh(!1)}set required(i){this.set(\"required\",i)}get deprecated(){return this.hasKey(\"deprecated\")?this.get(\"deprecated\"):new Nl.hh(!1)}set deprecated(i){this.set(\"deprecated\",i)}get allowEmptyValue(){return this.get(\"allowEmptyValue\")}set allowEmptyValue(i){this.set(\"allowEmptyValue\",i)}get style(){return this.get(\"style\")}set style(i){this.set(\"style\",i)}get explode(){return this.get(\"explode\")}set explode(i){this.set(\"explode\",i)}get allowReserved(){return this.get(\"allowReserved\")}set allowReserved(i){this.set(\"allowReserved\",i)}get schema(){return this.get(\"schema\")}set schema(i){this.set(\"schema\",i)}get example(){return this.get(\"example\")}set example(i){this.set(\"example\",i)}get examples(){return this.get(\"examples\")}set examples(i){this.set(\"examples\",i)}get contentProp(){return this.get(\"content\")}set contentProp(i){this.set(\"content\",i)}}Object.defineProperty(Parameter.prototype,\"description\",{get(){return this.get(\"description\")},set(i){this.set(\"description\",i)},enumerable:!0});const lm=Parameter;class PathItem extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"pathItem\"}get $ref(){return this.get(\"$ref\")}set $ref(i){this.set(\"$ref\",i)}get summary(){return this.get(\"summary\")}set summary(i){this.set(\"summary\",i)}get description(){return this.get(\"description\")}set description(i){this.set(\"description\",i)}get GET(){return this.get(\"get\")}set GET(i){this.set(\"GET\",i)}get PUT(){return this.get(\"put\")}set PUT(i){this.set(\"PUT\",i)}get POST(){return this.get(\"post\")}set POST(i){this.set(\"POST\",i)}get DELETE(){return this.get(\"delete\")}set DELETE(i){this.set(\"DELETE\",i)}get OPTIONS(){return this.get(\"options\")}set OPTIONS(i){this.set(\"OPTIONS\",i)}get HEAD(){return this.get(\"head\")}set HEAD(i){this.set(\"HEAD\",i)}get PATCH(){return this.get(\"patch\")}set PATCH(i){this.set(\"PATCH\",i)}get TRACE(){return this.get(\"trace\")}set TRACE(i){this.set(\"TRACE\",i)}get servers(){return this.get(\"servers\")}set servers(i){this.set(\"servers\",i)}get parameters(){return this.get(\"parameters\")}set parameters(i){this.set(\"parameters\",i)}}const um=PathItem;class Paths extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"paths\"}}const pm=Paths;class Reference extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"reference\",this.classes.push(\"openapi-reference\")}get $ref(){return this.get(\"$ref\")}set $ref(i){this.set(\"$ref\",i)}}const hm=Reference;class RequestBody extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"requestBody\"}get description(){return this.get(\"description\")}set description(i){this.set(\"description\",i)}get contentProp(){return this.get(\"content\")}set contentProp(i){this.set(\"content\",i)}get required(){return this.hasKey(\"required\")?this.get(\"required\"):new Nl.hh(!1)}set required(i){this.set(\"required\",i)}}const dm=RequestBody;class Response_Response extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"response\"}get description(){return this.get(\"description\")}set description(i){this.set(\"description\",i)}get headers(){return this.get(\"headers\")}set headers(i){this.set(\"headers\",i)}get contentProp(){return this.get(\"content\")}set contentProp(i){this.set(\"content\",i)}get links(){return this.get(\"links\")}set links(i){this.set(\"links\",i)}}const fm=Response_Response;class Responses extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"responses\"}get default(){return this.get(\"default\")}set default(i){this.set(\"default\",i)}}const mm=Responses;class JSONSchema extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"JSONSchemaDraft4\"}get idProp(){return this.get(\"id\")}set idProp(i){this.set(\"id\",i)}get $schema(){return this.get(\"$schema\")}set $schema(i){this.set(\"idProp\",i)}get multipleOf(){return this.get(\"multipleOf\")}set multipleOf(i){this.set(\"multipleOf\",i)}get maximum(){return this.get(\"maximum\")}set maximum(i){this.set(\"maximum\",i)}get exclusiveMaximum(){return this.get(\"exclusiveMaximum\")}set exclusiveMaximum(i){this.set(\"exclusiveMaximum\",i)}get minimum(){return this.get(\"minimum\")}set minimum(i){this.set(\"minimum\",i)}get exclusiveMinimum(){return this.get(\"exclusiveMinimum\")}set exclusiveMinimum(i){this.set(\"exclusiveMinimum\",i)}get maxLength(){return this.get(\"maxLength\")}set maxLength(i){this.set(\"maxLength\",i)}get minLength(){return this.get(\"minLength\")}set minLength(i){this.set(\"minLength\",i)}get pattern(){return this.get(\"pattern\")}set pattern(i){this.set(\"pattern\",i)}get additionalItems(){return this.get(\"additionalItems\")}set additionalItems(i){this.set(\"additionalItems\",i)}get items(){return this.get(\"items\")}set items(i){this.set(\"items\",i)}get maxItems(){return this.get(\"maxItems\")}set maxItems(i){this.set(\"maxItems\",i)}get minItems(){return this.get(\"minItems\")}set minItems(i){this.set(\"minItems\",i)}get uniqueItems(){return this.get(\"uniqueItems\")}set uniqueItems(i){this.set(\"uniqueItems\",i)}get maxProperties(){return this.get(\"maxProperties\")}set maxProperties(i){this.set(\"maxProperties\",i)}get minProperties(){return this.get(\"minProperties\")}set minProperties(i){this.set(\"minProperties\",i)}get required(){return this.get(\"required\")}set required(i){this.set(\"required\",i)}get properties(){return this.get(\"properties\")}set properties(i){this.set(\"properties\",i)}get additionalProperties(){return this.get(\"additionalProperties\")}set additionalProperties(i){this.set(\"additionalProperties\",i)}get patternProperties(){return this.get(\"patternProperties\")}set patternProperties(i){this.set(\"patternProperties\",i)}get dependencies(){return this.get(\"dependencies\")}set dependencies(i){this.set(\"dependencies\",i)}get enum(){return this.get(\"enum\")}set enum(i){this.set(\"enum\",i)}get type(){return this.get(\"type\")}set type(i){this.set(\"type\",i)}get allOf(){return this.get(\"allOf\")}set allOf(i){this.set(\"allOf\",i)}get anyOf(){return this.get(\"anyOf\")}set anyOf(i){this.set(\"anyOf\",i)}get oneOf(){return this.get(\"oneOf\")}set oneOf(i){this.set(\"oneOf\",i)}get not(){return this.get(\"not\")}set not(i){this.set(\"not\",i)}get definitions(){return this.get(\"definitions\")}set definitions(i){this.set(\"definitions\",i)}get title(){return this.get(\"title\")}set title(i){this.set(\"title\",i)}get description(){return this.get(\"description\")}set description(i){this.set(\"description\",i)}get default(){return this.get(\"default\")}set default(i){this.set(\"default\",i)}get format(){return this.get(\"format\")}set format(i){this.set(\"format\",i)}get base(){return this.get(\"base\")}set base(i){this.set(\"base\",i)}get links(){return this.get(\"links\")}set links(i){this.set(\"links\",i)}get media(){return this.get(\"media\")}set media(i){this.set(\"media\",i)}get readOnly(){return this.get(\"readOnly\")}set readOnly(i){this.set(\"readOnly\",i)}}const ym=JSONSchema;class JSONReference extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"JSONReference\",this.classes.push(\"json-reference\")}get $ref(){return this.get(\"$ref\")}set $ref(i){this.set(\"$ref\",i)}}const gm=JSONReference;class Media extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"media\"}get binaryEncoding(){return this.get(\"binaryEncoding\")}set binaryEncoding(i){this.set(\"binaryEncoding\",i)}get type(){return this.get(\"type\")}set type(i){this.set(\"type\",i)}}const vm=Media;class LinkDescription extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"linkDescription\"}get href(){return this.get(\"href\")}set href(i){this.set(\"href\",i)}get rel(){return this.get(\"rel\")}set rel(i){this.set(\"rel\",i)}get title(){return this.get(\"title\")}set title(i){this.set(\"title\",i)}get targetSchema(){return this.get(\"targetSchema\")}set targetSchema(i){this.set(\"targetSchema\",i)}get mediaType(){return this.get(\"mediaType\")}set mediaType(i){this.set(\"mediaType\",i)}get method(){return this.get(\"method\")}set method(i){this.set(\"method\",i)}get encType(){return this.get(\"encType\")}set encType(i){this.set(\"encType\",i)}get schema(){return this.get(\"schema\")}set schema(i){this.set(\"schema\",i)}}const bm=LinkDescription,dereference=(i,s)=>{const u=Qu(i,s);return Mp((i=>{if(Kd(i)&&gp(\"$ref\",i)&&Jp(Zd,\"$ref\",i)){const s=Np([\"$ref\"],i),m=Df(\"#/\",s);return Np(m.split(\"/\"),u)}return Kd(i)?dereference(i,u):i}),i)},_m=Qd({props:{element:null},methods:{copyMetaAndAttributes(i,s){hasElementSourceMap(i)&&s.meta.set(\"sourceMap\",i.meta.get(\"sourceMap\"))}}}),wm=_m,Em=Qd(wm,{methods:{enter(i){return this.element=i.clone(),tf}}});const Sm=Su(Dh());function traversal_visitor_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}const traversal_visitor_getNodeType=i=>{if(wd(i))return`${i.element.charAt(0).toUpperCase()+i.element.slice(1)}Element`},xm=function traversal_visitor_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?traversal_visitor_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):traversal_visitor_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}({JSONSchemaDraft4Element:[\"content\"],JSONReferenceElement:[\"content\"],MediaElement:[\"content\"],LinkDescriptionElement:[\"content\"]},ff);function SpecificationVisitor_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function SpecificationVisitor_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?SpecificationVisitor_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):SpecificationVisitor_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}const Om=Qd(wm,{props:{specObj:null,passingOptionsNames:[\"specObj\"]},init({specObj:i=this.specObj}){this.specObj=i},methods:{retrievePassingOptions(){return Wp(this.passingOptionsNames,this)},retrieveFixedFields(i){return pipe_pipe(Np([\"visitors\",...i,\"fixedFields\"]),Jl)(this.specObj)},retrieveVisitor(i){return Vp(dd,[\"visitors\",...i],this.specObj)?Np([\"visitors\",...i],this.specObj):Np([\"visitors\",...i,\"$visitor\"],this.specObj)},retrieveVisitorInstance(i,s={}){const u=this.retrievePassingOptions();return this.retrieveVisitor(i)(SpecificationVisitor_objectSpread(SpecificationVisitor_objectSpread({},u),s))},toRefractedElement(i,s,u={}){const m=this.retrieveVisitorInstance(i,u),v=Object.getPrototypeOf(m);return Fh(this.fallbackVisitorPrototype)&&(this.fallbackVisitorPrototype=Object.getPrototypeOf(this.retrieveVisitorInstance([\"value\"]))),this.fallbackVisitorPrototype===v?s.clone():(visitor_visit(s,m,SpecificationVisitor_objectSpread({keyMap:xm,nodeTypeGetter:traversal_visitor_getNodeType},u)),m.element)}}}),km=Qd(Om,{props:{specPath:Sm,ignoredFields:[]},init({specPath:i=this.specPath,ignoredFields:s=this.ignoredFields}={}){this.specPath=i,this.ignoredFields=s},methods:{ObjectElement(i){const s=this.specPath(i),u=this.retrieveFixedFields(s);return i.forEach(((i,m,v)=>{if(Ed(m)&&u.includes(m.toValue())&&!this.ignoredFields.includes(m.toValue())){const u=this.toRefractedElement([...s,\"fixedFields\",m.toValue()],i),_=new Nl.c6(m.clone(),u);this.copyMetaAndAttributes(v,_),_.classes.push(\"fixed-field\"),this.element.content.push(_)}else this.ignoredFields.includes(m.toValue())||this.element.content.push(v.clone())})),this.copyMetaAndAttributes(i,this.element),tf}}}),Am=km,Cm=Qd(Am,Em,{props:{specPath:Su([\"document\",\"objects\",\"JSONSchema\"])},init(){this.element=new ym}}),jm=Em,Pm=Em,Im=Em,Nm=Em,Tm=Em,Mm=Em,Rm=Em,Dm=Em,Bm=Em,Lm=Em,Fm=Qd({props:{parent:null},init({parent:i=this.parent}){this.parent=i,this.passingOptionsNames=[...this.passingOptionsNames,\"parent\"]}}),isJSONReferenceLikeElement=i=>kd(i)&&i.hasKey(\"$ref\"),qm=Qd(Om,Fm,Em,{methods:{ObjectElement(i){const s=isJSONReferenceLikeElement(i)?[\"document\",\"objects\",\"JSONReference\"]:[\"document\",\"objects\",\"JSONSchema\"];return this.element=this.toRefractedElement(s,i),tf},ArrayElement(i){return this.element=new Nl.ON,this.element.classes.push(\"json-schema-items\"),i.forEach((i=>{const s=isJSONReferenceLikeElement(i)?[\"document\",\"objects\",\"JSONReference\"]:[\"document\",\"objects\",\"JSONSchema\"],u=this.toRefractedElement(s,i);this.element.push(u)})),this.copyMetaAndAttributes(i,this.element),tf}}}),$m=Em,Um=Em,zm=Em,Vm=Em,Wm=Em,Km=Qd(Em,{methods:{ArrayElement(i){return this.element=i.clone(),this.element.classes.push(\"json-schema-required\"),tf}}});const Hm=qu(ql(1,Lu(Ld,up(Fd,dd))));const Jm=qu(kp);const Gm=Eu([Zd,Hm,Jm]),Xm=Qd(Om,{props:{fieldPatternPredicate:es_F,specPath:Sm,ignoredFields:[]},init({specPath:i=this.specPath,ignoredFields:s=this.ignoredFields}={}){this.specPath=i,this.ignoredFields=s},methods:{ObjectElement(i){return i.forEach(((i,s,u)=>{if(!this.ignoredFields.includes(s.toValue())&&this.fieldPatternPredicate(s.toValue())){const m=this.specPath(i),v=this.toRefractedElement(m,i),_=new Nl.c6(s.clone(),v);this.copyMetaAndAttributes(u,_),_.classes.push(\"patterned-field\"),this.element.content.push(_)}else this.ignoredFields.includes(s.toValue())||this.element.content.push(u.clone())})),this.copyMetaAndAttributes(i,this.element),tf}}}),Ym=Qd(Xm,{props:{fieldPatternPredicate:Gm}}),Qm=Qd(Ym,Fm,Em,{props:{specPath:i=>isJSONReferenceLikeElement(i)?[\"document\",\"objects\",\"JSONReference\"]:[\"document\",\"objects\",\"JSONSchema\"]},init(){this.element=new Nl.Sb,this.element.classes.push(\"json-schema-properties\")}}),Zm=Qd(Ym,Fm,Em,{props:{specPath:i=>isJSONReferenceLikeElement(i)?[\"document\",\"objects\",\"JSONReference\"]:[\"document\",\"objects\",\"JSONSchema\"]},init(){this.element=new Nl.Sb,this.element.classes.push(\"json-schema-patternProperties\")}}),ey=Qd(Ym,Fm,Em,{props:{specPath:i=>isJSONReferenceLikeElement(i)?[\"document\",\"objects\",\"JSONReference\"]:[\"document\",\"objects\",\"JSONSchema\"]},init(){this.element=new Nl.Sb,this.element.classes.push(\"json-schema-dependencies\")}}),ty=Qd(Em,{methods:{ArrayElement(i){return this.element=i.clone(),this.element.classes.push(\"json-schema-enum\"),tf}}}),ry=Qd(Em,{methods:{StringElement(i){return this.element=i.clone(),this.element.classes.push(\"json-schema-type\"),tf},ArrayElement(i){return this.element=i.clone(),this.element.classes.push(\"json-schema-type\"),tf}}}),ny=Qd(Om,Fm,Em,{init(){this.element=new Nl.ON,this.element.classes.push(\"json-schema-allOf\")},methods:{ArrayElement(i){return i.forEach((i=>{const s=isJSONReferenceLikeElement(i)?[\"document\",\"objects\",\"JSONReference\"]:[\"document\",\"objects\",\"JSONSchema\"],u=this.toRefractedElement(s,i);this.element.push(u)})),this.copyMetaAndAttributes(i,this.element),tf}}}),oy=Qd(Om,Fm,Em,{init(){this.element=new Nl.ON,this.element.classes.push(\"json-schema-anyOf\")},methods:{ArrayElement(i){return i.forEach((i=>{const s=isJSONReferenceLikeElement(i)?[\"document\",\"objects\",\"JSONReference\"]:[\"document\",\"objects\",\"JSONSchema\"],u=this.toRefractedElement(s,i);this.element.push(u)})),this.copyMetaAndAttributes(i,this.element),tf}}}),iy=Qd(Om,Fm,Em,{init(){this.element=new Nl.ON,this.element.classes.push(\"json-schema-oneOf\")},methods:{ArrayElement(i){return i.forEach((i=>{const s=isJSONReferenceLikeElement(i)?[\"document\",\"objects\",\"JSONReference\"]:[\"document\",\"objects\",\"JSONSchema\"],u=this.toRefractedElement(s,i);this.element.push(u)})),this.copyMetaAndAttributes(i,this.element),tf}}}),ay=Qd(Ym,Fm,Em,{props:{specPath:i=>isJSONReferenceLikeElement(i)?[\"document\",\"objects\",\"JSONReference\"]:[\"document\",\"objects\",\"JSONSchema\"]},init(){this.element=new Nl.Sb,this.element.classes.push(\"json-schema-definitions\")}}),sy=Em,cy=Em,ly=Em,uy=Em,py=Em,hy=Qd(Om,Fm,Em,{init(){this.element=new Nl.ON,this.element.classes.push(\"json-schema-links\")},methods:{ArrayElement(i){return i.forEach((i=>{const s=this.toRefractedElement([\"document\",\"objects\",\"LinkDescription\"],i);this.element.push(s)})),this.copyMetaAndAttributes(i,this.element),tf}}}),dy=Em,fy=Qd(Am,Em,{props:{specPath:Su([\"document\",\"objects\",\"JSONReference\"])},init(){this.element=new gm},methods:{ObjectElement(i){const s=Am.compose.methods.ObjectElement.call(this,i);return Ed(this.element.$ref)&&this.element.classes.push(\"reference-element\"),s}}}),my=Qd(Em,{methods:{StringElement(i){return this.element=i.clone(),this.element.classes.push(\"reference-value\"),tf}}});const yy=qu(Iu);const gy=Lu(md,Jm);function dispatch_toConsumableArray(i){return function dispatch_arrayWithoutHoles(i){if(Array.isArray(i))return dispatch_arrayLikeToArray(i)}(i)||function dispatch_iterableToArray(i){if(\"undefined\"!=typeof Symbol&&null!=i[Symbol.iterator]||null!=i[\"@@iterator\"])return Array.from(i)}(i)||function dispatch_unsupportedIterableToArray(i,s){if(!i)return;if(\"string\"==typeof i)return dispatch_arrayLikeToArray(i,s);var u=Object.prototype.toString.call(i).slice(8,-1);\"Object\"===u&&i.constructor&&(u=i.constructor.name);if(\"Map\"===u||\"Set\"===u)return Array.from(i);if(\"Arguments\"===u||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(u))return dispatch_arrayLikeToArray(i,s)}(i)||function dispatch_nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function dispatch_arrayLikeToArray(i,s){(null==s||s>i.length)&&(s=i.length);for(var u=0,m=new Array(s);u<s;u++)m[u]=i[u];return m}var vy=pipe_pipe(ah(Fu((function(i,s){return i.length>s.length}))),bp,pu(\"length\")),by=Yu((function(i,s,u){var m=u.apply(void 0,dispatch_toConsumableArray(i));return yy(m)?Yp(m):s}));const _y=Ep(gy,(function dispatchImpl(i){var s=vy(i);return ql(s,(function(){for(var s=arguments.length,u=new Array(s),m=0;m<s;m++)u[m]=arguments[m];return wu(by(u),void 0,i)}))}),Dh),wy=Qd(Om,{props:{alternator:[]},methods:{enter(i){const s=this.alternator.map((({predicate:i,specPath:s})=>Ep(i,Su(s),Dh))),u=_y(s)(i);return this.element=this.toRefractedElement(u,i),tf}}}),Ey=Qd(wy,{props:{alternator:[{predicate:isJSONReferenceLikeElement,specPath:[\"document\",\"objects\",\"JSONReference\"]},{predicate:es_T,specPath:[\"document\",\"objects\",\"JSONSchema\"]}]}}),Sy={visitors:{value:Em,JSONSchemaOrJSONReferenceVisitor:Ey,document:{objects:{JSONSchema:{$visitor:Cm,fixedFields:{id:jm,$schema:Pm,multipleOf:Im,maximum:Nm,exclusiveMaximum:Tm,minimum:Mm,exclusiveMinimum:Rm,maxLength:Dm,minLength:Bm,pattern:Lm,additionalItems:Ey,items:qm,maxItems:$m,minItems:Um,uniqueItems:zm,maxProperties:Vm,minProperties:Wm,required:Km,properties:Qm,additionalProperties:Ey,patternProperties:Zm,dependencies:ey,enum:ty,type:ry,allOf:ny,anyOf:oy,oneOf:iy,not:Ey,definitions:ay,title:sy,description:cy,default:ly,format:uy,base:py,links:hy,media:{$ref:\"#/visitors/document/objects/Media\"},readOnly:dy}},JSONReference:{$visitor:fy,fixedFields:{$ref:my}},Media:{$visitor:Qd(Am,Em,{props:{specPath:Su([\"document\",\"objects\",\"Media\"])},init(){this.element=new vm}}),fixedFields:{binaryEncoding:Em,type:Em}},LinkDescription:{$visitor:Qd(Am,Em,{props:{specPath:Su([\"document\",\"objects\",\"LinkDescription\"])},init(){this.element=new bm}}),fixedFields:{href:Em,rel:Em,title:Em,targetSchema:Ey,mediaType:Em,method:Em,encType:Em,schema:Ey}}}}}},xy=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof ym||i(m)&&s(\"JSONSchemaDraft4\",m)&&u(\"object\",m))),Oy=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof gm||i(m)&&s(\"JSONReference\",m)&&u(\"object\",m))),ky=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof vm||i(m)&&s(\"media\",m)&&u(\"object\",m))),Ay=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof bm||i(m)&&s(\"linkDescription\",m)&&u(\"object\",m))),Cy={namespace:i=>{const{base:s}=i;return s.register(\"jSONSchemaDraft4\",ym),s.register(\"jSONReference\",gm),s.register(\"media\",vm),s.register(\"linkDescription\",bm),s}},jy=Cy;function refractor_toolbox_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function refractor_toolbox_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?refractor_toolbox_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):refractor_toolbox_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}const toolbox=()=>{const i=createNamespace(jy);return{predicates:refractor_toolbox_objectSpread(refractor_toolbox_objectSpread({},ye),{},{isStringElement:Ed}),namespace:i}};function es_refractor_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}const refractor_refract=(i,{specPath:s=[\"visitors\",\"document\",\"objects\",\"JSONSchema\",\"$visitor\"],plugins:u=[],specificationObj:m=Sy}={})=>{const v=(0,Nl.Qc)(i),_=dereference(m),j=bd(s,[],_);return visitor_visit(v,j,{state:{specObj:_}}),dispatchPlugins(j.element,u,{toolboxCreator:toolbox,visitorOptions:{keyMap:xm,nodeTypeGetter:traversal_visitor_getNodeType}})},refractor_createRefractor=i=>(s,u={})=>refractor_refract(s,function es_refractor_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?es_refractor_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):es_refractor_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}({specPath:i},u));ym.refract=refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"JSONSchema\",\"$visitor\"]),gm.refract=refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"JSONReference\",\"$visitor\"]),vm.refract=refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Media\",\"$visitor\"]),bm.refract=refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"LinkDescription\",\"$visitor\"]);const Py=class Schema_Schema extends ym{constructor(i,s,u){super(i,s,u),this.element=\"schema\",this.classes.push(\"json-schema-draft-4\")}get additionalItems(){return this.get(\"additionalItems\")}set additionalItems(i){this.set(\"additionalItems\",i)}get items(){return this.get(\"items\")}set items(i){this.set(\"items\",i)}get additionalProperties(){return this.get(\"additionalProperties\")}set additionalProperties(i){this.set(\"additionalProperties\",i)}get type(){return this.get(\"type\")}set type(i){this.set(\"type\",i)}get not(){return this.get(\"not\")}set not(i){this.set(\"not\",i)}get nullable(){return this.get(\"nullable\")}set nullable(i){this.set(\"nullable\",i)}get discriminator(){return this.get(\"discriminator\")}set discriminator(i){this.set(\"discriminator\",i)}get writeOnly(){return this.get(\"writeOnly\")}set writeOnly(i){this.set(\"writeOnly\",i)}get xml(){return this.get(\"xml\")}set xml(i){this.set(\"xml\",i)}get externalDocs(){return this.get(\"externalDocs\")}set externalDocs(i){this.set(\"externalDocs\",i)}get example(){return this.get(\"example\")}set example(i){this.set(\"example\",i)}get deprecated(){return this.get(\"deprecated\")}set deprecated(i){this.set(\"deprecated\",i)}};class SecurityRequirement extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"securityRequirement\"}}const Iy=SecurityRequirement;class SecurityScheme extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"securityScheme\"}get type(){return this.get(\"type\")}set type(i){this.set(\"type\",i)}get description(){return this.get(\"description\")}set description(i){this.set(\"description\",i)}get name(){return this.get(\"name\")}set name(i){this.set(\"name\",i)}get in(){return this.get(\"in\")}set in(i){this.set(\"in\",i)}get scheme(){return this.get(\"scheme\")}set scheme(i){this.set(\"scheme\",i)}get bearerFormat(){return this.get(\"bearerFormat\")}set bearerFormat(i){this.set(\"bearerFormat\",i)}get flows(){return this.get(\"flows\")}set flows(i){this.set(\"flows\",i)}get openIdConnectUrl(){return this.get(\"openIdConnectUrl\")}set openIdConnectUrl(i){this.set(\"openIdConnectUrl\",i)}}const Ny=SecurityScheme;class Server extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"server\"}get url(){return this.get(\"url\")}set url(i){this.set(\"url\",i)}get description(){return this.get(\"description\")}set description(i){this.set(\"description\",i)}get variables(){return this.get(\"variables\")}set variables(i){this.set(\"variables\",i)}}const Ty=Server;class ServerVariable extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"serverVariable\"}get enum(){return this.get(\"enum\")}set enum(i){this.set(\"enum\",i)}get default(){return this.get(\"default\")}set default(i){this.set(\"default\",i)}get description(){return this.get(\"description\")}set description(i){this.set(\"description\",i)}}const My=ServerVariable;class Tag extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"tag\"}get name(){return this.get(\"name\")}set name(i){this.set(\"name\",i)}get description(){return this.get(\"description\")}set description(i){this.set(\"description\",i)}get externalDocs(){return this.get(\"externalDocs\")}set externalDocs(i){this.set(\"externalDocs\",i)}}const Ry=Tag;class Xml extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"xml\"}get name(){return this.get(\"name\")}set name(i){this.set(\"name\",i)}get namespace(){return this.get(\"namespace\")}set namespace(i){this.set(\"namespace\",i)}get prefix(){return this.get(\"prefix\")}set prefix(i){this.set(\"prefix\",i)}get attribute(){return this.get(\"attribute\")}set attribute(i){this.set(\"attribute\",i)}get wrapped(){return this.get(\"wrapped\")}set wrapped(i){this.set(\"wrapped\",i)}}const Dy=Xml,By=Qd({props:{element:null},methods:{copyMetaAndAttributes(i,s){hasElementSourceMap(i)&&s.meta.set(\"sourceMap\",i.meta.get(\"sourceMap\"))}}}),Ly=By;function es_traversal_visitor_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}const es_traversal_visitor_getNodeType=i=>{if(wd(i))return`${i.element.charAt(0).toUpperCase()+i.element.slice(1)}Element`},Fy=function es_traversal_visitor_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?es_traversal_visitor_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):es_traversal_visitor_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}({CallbackElement:[\"content\"],ComponentsElement:[\"content\"],ContactElement:[\"content\"],DiscriminatorElement:[\"content\"],Encoding:[\"content\"],Example:[\"content\"],ExternalDocumentationElement:[\"content\"],HeaderElement:[\"content\"],InfoElement:[\"content\"],LicenseElement:[\"content\"],MediaTypeElement:[\"content\"],OAuthFlowElement:[\"content\"],OAuthFlowsElement:[\"content\"],OpenApi3_0Element:[\"content\"],OperationElement:[\"content\"],ParameterElement:[\"content\"],PathItemElement:[\"content\"],PathsElement:[\"content\"],ReferenceElement:[\"content\"],RequestBodyElement:[\"content\"],ResponseElement:[\"content\"],ResponsesElement:[\"content\"],SchemaElement:[\"content\"],SecurityRequirementElement:[\"content\"],SecuritySchemeElement:[\"content\"],ServerElement:[\"content\"],ServerVariableElement:[\"content\"],TagElement:[\"content\"]},ff);function visitors_SpecificationVisitor_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function visitors_SpecificationVisitor_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?visitors_SpecificationVisitor_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):visitors_SpecificationVisitor_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}const qy=Qd(Ly,{props:{passingOptionsNames:[\"specObj\",\"openApiGenericElement\",\"openApiSemanticElement\"],specObj:null,openApiGenericElement:null,openApiSemanticElement:null},init({specObj:i=this.specObj,openApiGenericElement:s=this.openApiGenericElement,openApiSemanticElement:u=this.openApiSemanticElement}){this.specObj=i,this.openApiGenericElement=s,this.openApiSemanticElement=u},methods:{retrievePassingOptions(){return Wp(this.passingOptionsNames,this)},retrieveFixedFields(i){return pipe_pipe(Np([\"visitors\",...i,\"fixedFields\"]),Jl)(this.specObj)},retrieveVisitor(i){return Vp(dd,[\"visitors\",...i],this.specObj)?Np([\"visitors\",...i],this.specObj):Np([\"visitors\",...i,\"$visitor\"],this.specObj)},retrieveVisitorInstance(i,s={}){const u=this.retrievePassingOptions();return this.retrieveVisitor(i)(visitors_SpecificationVisitor_objectSpread(visitors_SpecificationVisitor_objectSpread({},u),s))},toRefractedElement(i,s,u={}){const m=this.retrieveVisitorInstance(i,u),v=Object.getPrototypeOf(m);return Fh(this.fallbackVisitorPrototype)&&(this.fallbackVisitorPrototype=Object.getPrototypeOf(this.retrieveVisitorInstance([\"value\"]))),this.fallbackVisitorPrototype===v?s.clone():(visitor_visit(s,m,visitors_SpecificationVisitor_objectSpread({keyMap:Fy,nodeTypeGetter:es_traversal_visitor_getNodeType},u)),m.element)}}}),isOpenApi3_0LikeElement=i=>kd(i)&&i.hasKey(\"openapi\")&&i.hasKey(\"info\"),isParameterLikeElement=i=>kd(i)&&i.hasKey(\"name\")&&i.hasKey(\"in\"),isReferenceLikeElement=i=>kd(i)&&i.hasKey(\"$ref\"),isRequestBodyLikeElement=i=>kd(i)&&i.hasKey(\"content\"),isResponseLikeElement=i=>kd(i)&&i.hasKey(\"description\"),$y=kd,Uy=kd,isOpenApiExtension=i=>Ed(i.key)&&vh(\"x-\",i.key.toValue()),zy=Qd(qy,{props:{specPath:Sm,ignoredFields:[],canSupportSpecificationExtensions:!0,specificationExtensionPredicate:isOpenApiExtension},init({specPath:i=this.specPath,ignoredFields:s=this.ignoredFields,canSupportSpecificationExtensions:u=this.canSupportSpecificationExtensions,specificationExtensionPredicate:m=this.specificationExtensionPredicate}={}){this.specPath=i,this.ignoredFields=s,this.canSupportSpecificationExtensions=u,this.specificationExtensionPredicate=m},methods:{ObjectElement(i){const s=this.specPath(i),u=this.retrieveFixedFields(s);return i.forEach(((i,m,v)=>{if(Ed(m)&&u.includes(m.toValue())&&!this.ignoredFields.includes(m.toValue())){const u=this.toRefractedElement([...s,\"fixedFields\",m.toValue()],i),_=new Nl.c6(m.clone(),u);this.copyMetaAndAttributes(v,_),_.classes.push(\"fixed-field\"),this.element.content.push(_)}else if(this.canSupportSpecificationExtensions&&this.specificationExtensionPredicate(v)){const i=this.toRefractedElement([\"document\",\"extension\"],v);this.element.content.push(i)}else this.ignoredFields.includes(m.toValue())||this.element.content.push(v.clone())})),this.copyMetaAndAttributes(i,this.element),tf}}}),Vy=zy,Wy=Qd(Ly,{methods:{enter(i){return this.element=i.clone(),tf}}}),Ky=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"OpenApi\"]),canSupportSpecificationExtensions:!0},init(){this.element=new sm},methods:{ObjectElement(i){return this.unrefractedElement=i,Vy.compose.methods.ObjectElement.call(this,i)}}}),Hy=Qd(qy,Wy,{methods:{StringElement(i){const s=new am(i.toValue());return this.copyMetaAndAttributes(i,s),this.element=s,tf}}}),Jy=Qd(qy,{methods:{MemberElement(i){return this.element=i.clone(),this.element.classes.push(\"specification-extension\"),tf}}}),Gy=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Info\"]),canSupportSpecificationExtensions:!0},init(){this.element=new em}}),Xy=Wy,Yy=Wy,Qy=Wy,Zy=Qd(Wy,{methods:{StringElement(i){return this.element=i.clone(),this.element.classes.push(\"api-version\"),this.element.classes.push(\"version\"),tf}}}),ng=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Contact\"]),canSupportSpecificationExtensions:!0},init(){this.element=new Vf}}),og=Wy,ag=Wy,cg=Wy,ug=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"License\"]),canSupportSpecificationExtensions:!0},init(){this.element=new tm}}),pg=Wy,dg=Wy,mg=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Link\"]),canSupportSpecificationExtensions:!0},init(){this.element=new rm},methods:{ObjectElement(i){const s=Vy.compose.methods.ObjectElement.call(this,i);return(Ed(this.element.operationId)||Ed(this.element.operationRef))&&this.element.classes.push(\"reference-element\"),s}}}),bg=Qd(Wy,{methods:{StringElement(i){return this.element=i.clone(),this.element.classes.push(\"reference-value\"),tf}}}),_g=Qd(Wy,{methods:{StringElement(i){return this.element=i.clone(),this.element.classes.push(\"reference-value\"),tf}}}),wg=Qd(qy,{props:{fieldPatternPredicate:es_F,specPath:Sm,ignoredFields:[],canSupportSpecificationExtensions:!1,specificationExtensionPredicate:isOpenApiExtension},init({specPath:i=this.specPath,ignoredFields:s=this.ignoredFields,canSupportSpecificationExtensions:u=this.canSupportSpecificationExtensions,specificationExtensionPredicate:m=this.specificationExtensionPredicate}={}){this.specPath=i,this.ignoredFields=s,this.canSupportSpecificationExtensions=u,this.specificationExtensionPredicate=m},methods:{ObjectElement(i){return i.forEach(((i,s,u)=>{if(this.canSupportSpecificationExtensions&&this.specificationExtensionPredicate(u)){const i=this.toRefractedElement([\"document\",\"extension\"],u);this.element.content.push(i)}else if(!this.ignoredFields.includes(s.toValue())&&this.fieldPatternPredicate(s.toValue())){const m=this.specPath(i),v=this.toRefractedElement(m,i),_=new Nl.c6(s.clone(),v);this.copyMetaAndAttributes(u,_),_.classes.push(\"patterned-field\"),this.element.content.push(_)}else this.ignoredFields.includes(s.toValue())||this.element.content.push(u.clone())})),this.copyMetaAndAttributes(i,this.element),tf}}}),kg=wg,Pg=Qd(kg,{props:{fieldPatternPredicate:Gm}});class LinkParameters extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(LinkParameters.primaryClass)}}defineProperty_defineProperty(LinkParameters,\"primaryClass\",\"link-parameters\");const Dg=LinkParameters,Fg=Qd(Pg,Wy,{props:{specPath:Su([\"value\"])},init(){this.element=new Dg}}),$g=Wy,Kg=Wy,Yg=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Server\"]),canSupportSpecificationExtensions:!0},init(){this.element=new Ty}}),Zg=Qd(Wy,{methods:{StringElement(i){return this.element=i.clone(),this.element.classes.push(\"server-url\"),tf}}}),ev=Wy;class Servers extends Nl.ON{constructor(i,s,u){super(i,s,u),this.classes.push(Servers.primaryClass)}}defineProperty_defineProperty(Servers,\"primaryClass\",\"servers\");const tv=Servers,rv=Qd(qy,Wy,{init(){this.element=new tv},methods:{ArrayElement(i){return i.forEach((i=>{const s=$y(i)?[\"document\",\"objects\",\"Server\"]:[\"value\"],u=this.toRefractedElement(s,i);this.element.push(u)})),this.copyMetaAndAttributes(i,this.element),tf}}}),nv=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"ServerVariable\"]),canSupportSpecificationExtensions:!0},init(){this.element=new My}}),ov=Wy,iv=Wy,av=Wy;class ServerVariables extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ServerVariables.primaryClass)}}defineProperty_defineProperty(ServerVariables,\"primaryClass\",\"server-variables\");const sv=ServerVariables,cv=Qd(Pg,Wy,{props:{specPath:Su([\"document\",\"objects\",\"ServerVariable\"])},init(){this.element=new sv}}),lv=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"MediaType\"]),canSupportSpecificationExtensions:!0},init(){this.element=new nm}}),uv=Qd(qy,{props:{alternator:[]},methods:{enter(i){const s=this.alternator.map((({predicate:i,specPath:s})=>Ep(i,Su(s),Dh))),u=_y(s)(i);return this.element=this.toRefractedElement(u,i),tf}}}),pv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof Uf||i(m)&&s(\"callback\",m)&&u(\"object\",m))),hv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof zf||i(m)&&s(\"components\",m)&&u(\"object\",m))),dv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof Vf||i(m)&&s(\"contact\",m)&&u(\"object\",m))),fv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof Yf||i(m)&&s(\"example\",m)&&u(\"object\",m))),mv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof Qf||i(m)&&s(\"externalDocumentation\",m)&&u(\"object\",m))),yv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof Zf||i(m)&&s(\"header\",m)&&u(\"object\",m))),gv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof em||i(m)&&s(\"info\",m)&&u(\"object\",m))),vv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof tm||i(m)&&s(\"license\",m)&&u(\"object\",m))),bv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof rm||i(m)&&s(\"link\",m)&&u(\"object\",m))),isLinkElementExternal=i=>{if(!bv(i))return!1;if(!Ed(i.operationRef))return!1;const s=i.operationRef.toValue();return\"string\"==typeof s&&s.length>0&&!s.startsWith(\"#\")},_v=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof am||i(m)&&s(\"openapi\",m)&&u(\"string\",m))),wv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u,hasClass:m})=>v=>v instanceof sm||i(v)&&s(\"openApi3_0\",v)&&u(\"object\",v)&&m(\"api\",v))),Ev=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof cm||i(m)&&s(\"operation\",m)&&u(\"object\",m))),Sv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof lm||i(m)&&s(\"parameter\",m)&&u(\"object\",m))),xv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof um||i(m)&&s(\"pathItem\",m)&&u(\"object\",m))),isPathItemElementExternal=i=>{if(!xv(i))return!1;if(!Ed(i.$ref))return!1;const s=i.$ref.toValue();return\"string\"==typeof s&&s.length>0&&!s.startsWith(\"#\")},Ov=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof pm||i(m)&&s(\"paths\",m)&&u(\"object\",m))),kv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof hm||i(m)&&s(\"reference\",m)&&u(\"object\",m))),isReferenceElementExternal=i=>{if(!kv(i))return!1;if(!Ed(i.$ref))return!1;const s=i.$ref.toValue();return\"string\"==typeof s&&s.length>0&&!s.startsWith(\"#\")},Av=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof dm||i(m)&&s(\"requestBody\",m)&&u(\"object\",m))),Cv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof fm||i(m)&&s(\"response\",m)&&u(\"object\",m))),jv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof mm||i(m)&&s(\"responses\",m)&&u(\"object\",m))),Pv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof Py||i(m)&&s(\"schema\",m)&&u(\"object\",m))),isBooleanJsonSchemaElement=i=>Od(i)&&i.classes.includes(\"boolean-json-schema\"),Iv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof Iy||i(m)&&s(\"securityRequirement\",m)&&u(\"object\",m))),Nv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof Ty||i(m)&&s(\"server\",m)&&u(\"object\",m))),Tv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof My||i(m)&&s(\"serverVariable\",m)&&u(\"object\",m))),Mv=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof nm||i(m)&&s(\"mediaType\",m)&&u(\"object\",m))),Rv=Qd(uv,Wy,{props:{alternator:[{predicate:isReferenceLikeElement,specPath:[\"document\",\"objects\",\"Reference\"]},{predicate:es_T,specPath:[\"document\",\"objects\",\"Schema\"]}]},methods:{ObjectElement(i){const s=uv.compose.methods.enter.call(this,i);return kv(this.element)&&this.element.setMetaProperty(\"referenced-element\",\"schema\"),s}}}),Dv=Wy,Bv=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"Example\"],canSupportSpecificationExtensions:!0},init(){this.element=new Nl.Sb,this.element.classes.push(\"examples\")},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"example\")})),s}}});class MediaTypeExamples extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(MediaTypeExamples.primaryClass),this.classes.push(\"examples\")}}defineProperty_defineProperty(MediaTypeExamples,\"primaryClass\",\"media-type-examples\");const Lv=MediaTypeExamples,Fv=Qd(Bv,{init(){this.element=new Lv}});class MediaTypeEncoding extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(MediaTypeEncoding.primaryClass)}}defineProperty_defineProperty(MediaTypeEncoding,\"primaryClass\",\"media-type-encoding\");const qv=MediaTypeEncoding,$v=Qd(Pg,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Encoding\"])},init(){this.element=new qv}}),Uv=Qd(Pg,Wy,{props:{specPath:Su([\"value\"])},init(){this.element=new Iy}});class Security extends Nl.ON{constructor(i,s,u){super(i,s,u),this.classes.push(Security.primaryClass)}}defineProperty_defineProperty(Security,\"primaryClass\",\"security\");const zv=Security,Vv=Qd(qy,Wy,{init(){this.element=new zv},methods:{ArrayElement(i){return i.forEach((i=>{if(kd(i)){const s=this.toRefractedElement([\"document\",\"objects\",\"SecurityRequirement\"],i);this.element.push(s)}else this.element.push(i.clone())})),this.copyMetaAndAttributes(i,this.element),tf}}}),Wv=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Components\"]),canSupportSpecificationExtensions:!0},init(){this.element=new zf}}),Kv=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Tag\"]),canSupportSpecificationExtensions:!0},init(){this.element=new Ry}}),Hv=Wy,Jv=Wy,Gv=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Reference\"]),canSupportSpecificationExtensions:!1},init(){this.element=new hm},methods:{ObjectElement(i){const s=Vy.compose.methods.ObjectElement.call(this,i);return Ed(this.element.$ref)&&this.element.classes.push(\"reference-element\"),s}}}),Xv=Qd(Wy,{methods:{StringElement(i){return this.element=i.clone(),this.element.classes.push(\"reference-value\"),tf}}}),Yv=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Parameter\"]),canSupportSpecificationExtensions:!0},init(){this.element=new lm},methods:{ObjectElement(i){const s=Vy.compose.methods.ObjectElement.call(this,i);return kd(this.element.contentProp)&&this.element.contentProp.filter(Mv).forEach(((i,s)=>{i.setMetaProperty(\"media-type\",s.toValue())})),s}}}),Qv=Wy,Zv=Wy,rb=Wy,nb=Wy,ob=Wy,ub=Wy,yb=Wy,_b=Wy,Sb=Wy,kb=Qd(uv,Wy,{props:{alternator:[{predicate:isReferenceLikeElement,specPath:[\"document\",\"objects\",\"Reference\"]},{predicate:es_T,specPath:[\"document\",\"objects\",\"Schema\"]}]},methods:{ObjectElement(i){const s=uv.compose.methods.enter.call(this,i);return kv(this.element)&&this.element.setMetaProperty(\"referenced-element\",\"schema\"),s}}}),Ab=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Header\"]),canSupportSpecificationExtensions:!0},init(){this.element=new Zf}}),Pb=Wy,Tb=Wy,Lb=Wy,qb=Wy,Ub=Wy,zb=Wy,Vb=Wy,Wb=Qd(uv,Wy,{props:{alternator:[{predicate:isReferenceLikeElement,specPath:[\"document\",\"objects\",\"Reference\"]},{predicate:es_T,specPath:[\"document\",\"objects\",\"Schema\"]}]},methods:{ObjectElement(i){const s=uv.compose.methods.enter.call(this,i);return kv(this.element)&&this.element.setMetaProperty(\"referenced-element\",\"schema\"),s}}}),Kb=Wy;class HeaderExamples extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(HeaderExamples.primaryClass),this.classes.push(\"examples\")}}defineProperty_defineProperty(HeaderExamples,\"primaryClass\",\"header-examples\");const Jb=HeaderExamples,Qb=Qd(Bv,{init(){this.element=new Jb}}),e_=Qd(Pg,Wy,{props:{specPath:Su([\"document\",\"objects\",\"MediaType\"])},init(){this.element=new Nl.Sb,this.element.classes.push(\"content\")}});class HeaderContent extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(HeaderContent.primaryClass),this.classes.push(\"content\")}}defineProperty_defineProperty(HeaderContent,\"primaryClass\",\"header-content\");const t_=HeaderContent,r_=Qd(e_,{init(){this.element=new t_}}),n_=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Schema\"]),canSupportSpecificationExtensions:!0},init(){this.element=new Py}}),{allOf:o_}=Sy.visitors.document.objects.JSONSchema.fixedFields,i_=Qd(o_,{methods:{ArrayElement(i){const s=o_.compose.methods.ArrayElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"schema\")})),s}}}),{anyOf:a_}=Sy.visitors.document.objects.JSONSchema.fixedFields,s_=Qd(a_,{methods:{ArrayElement(i){const s=a_.compose.methods.ArrayElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"schema\")})),s}}}),{oneOf:c_}=Sy.visitors.document.objects.JSONSchema.fixedFields,l_=Qd(c_,{methods:{ArrayElement(i){const s=c_.compose.methods.ArrayElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"schema\")})),s}}}),{definitions:u_}=Sy.visitors.document.objects.JSONSchema.fixedFields,p_=Qd(u_,{methods:{ObjectElement(i){const s=u_.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"schema\")})),s}}}),{dependencies:h_}=Sy.visitors.document.objects.JSONSchema.fixedFields,d_=Qd(h_,{methods:{ObjectElement(i){const s=h_.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"schema\")})),s}}}),{items:f_}=Sy.visitors.document.objects.JSONSchema.fixedFields,m_=Qd(f_,{methods:{ObjectElement(i){const s=f_.compose.methods.ObjectElement.call(this,i);return kv(this.element)&&this.element.setMetaProperty(\"referenced-element\",\"schema\"),s},ArrayElement(i){return this.element=i.clone(),tf}}}),{properties:y_}=Sy.visitors.document.objects.JSONSchema.fixedFields,g_=Qd(y_,{methods:{ObjectElement(i){const s=y_.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"schema\")})),s}}}),{patternProperties:v_}=Sy.visitors.document.objects.JSONSchema.fixedFields,b_=Qd(v_,{methods:{ObjectElement(i){const s=v_.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"schema\")})),s}}}),{type:w_}=Sy.visitors.document.objects.JSONSchema.fixedFields,E_=Qd(w_,{methods:{ArrayElement(i){return this.element=i.clone(),tf}}}),S_=Wy,x_=Wy,O_=Wy,k_=Wy,{JSONSchemaOrJSONReferenceVisitor:A_}=Sy.visitors,C_=Qd(A_,{methods:{ObjectElement(i){const s=A_.compose.methods.enter.call(this,i);return kv(this.element)&&this.element.setMetaProperty(\"referenced-element\",\"schema\"),s}}}),j_=Object.fromEntries(Object.entries(Sy.visitors.document.objects.JSONSchema.fixedFields).map((([i,s])=>s===Sy.visitors.JSONSchemaOrJSONReferenceVisitor?[i,C_]:[i,s]))),P_=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Discriminator\"]),canSupportSpecificationExtensions:!1},init(){this.element=new Wf}}),I_=Wy;class DiscriminatorMapping extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(DiscriminatorMapping.primaryClass)}}defineProperty_defineProperty(DiscriminatorMapping,\"primaryClass\",\"discriminator-mapping\");const N_=DiscriminatorMapping,T_=Qd(Pg,Wy,{props:{specPath:Su([\"value\"])},init(){this.element=new N_}}),M_=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"XML\"]),canSupportSpecificationExtensions:!0},init(){this.element=new Dy}}),R_=Wy,D_=Wy,B_=Wy,L_=Wy,F_=Wy,q_=Wy;class ParameterExamples extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ParameterExamples.primaryClass),this.classes.push(\"examples\")}}defineProperty_defineProperty(ParameterExamples,\"primaryClass\",\"parameter-examples\");const $_=ParameterExamples,U_=Qd(Bv,{init(){this.element=new $_}});class ParameterContent extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ParameterContent.primaryClass),this.classes.push(\"content\")}}defineProperty_defineProperty(ParameterContent,\"primaryClass\",\"parameter-content\");const z_=ParameterContent,V_=Qd(e_,{init(){this.element=new z_}});class ComponentsSchemas extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ComponentsSchemas.primaryClass)}}defineProperty_defineProperty(ComponentsSchemas,\"primaryClass\",\"components-schemas\");const W_=ComponentsSchemas,K_=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"Schema\"]},init(){this.element=new W_},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"schema\")})),s}}});class ComponentsResponses extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ComponentsResponses.primaryClass)}}defineProperty_defineProperty(ComponentsResponses,\"primaryClass\",\"components-responses\");const H_=ComponentsResponses,J_=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"Response\"]},init(){this.element=new H_},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"response\")})),this.element.filter(Cv).forEach(((i,s)=>{i.setMetaProperty(\"http-status-code\",s.toValue())})),s}}}),G_=J_;class ComponentsParameters extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ComponentsParameters.primaryClass),this.classes.push(\"parameters\")}}defineProperty_defineProperty(ComponentsParameters,\"primaryClass\",\"components-parameters\");const X_=ComponentsParameters,Y_=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"Parameter\"]},init(){this.element=new X_},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"parameter\")})),s}}});class ComponentsExamples extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ComponentsExamples.primaryClass),this.classes.push(\"examples\")}}defineProperty_defineProperty(ComponentsExamples,\"primaryClass\",\"components-examples\");const Q_=ComponentsExamples,Z_=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"Example\"]},init(){this.element=new Q_},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"example\")})),s}}});class ComponentsRequestBodies extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ComponentsRequestBodies.primaryClass)}}defineProperty_defineProperty(ComponentsRequestBodies,\"primaryClass\",\"components-request-bodies\");const ew=ComponentsRequestBodies,tw=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"RequestBody\"]},init(){this.element=new ew},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"requestBody\")})),s}}});class ComponentsHeaders extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ComponentsHeaders.primaryClass)}}defineProperty_defineProperty(ComponentsHeaders,\"primaryClass\",\"components-headers\");const rw=ComponentsHeaders,nw=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"Header\"]},init(){this.element=new rw},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"header\")})),this.element.filter(yv).forEach(((i,s)=>{i.setMetaProperty(\"header-name\",s.toValue())})),s}}}),ow=nw;class ComponentsSecuritySchemes extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ComponentsSecuritySchemes.primaryClass)}}defineProperty_defineProperty(ComponentsSecuritySchemes,\"primaryClass\",\"components-security-schemes\");const iw=ComponentsSecuritySchemes,aw=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"SecurityScheme\"]},init(){this.element=new iw},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"securityScheme\")})),s}}});class ComponentsLinks extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ComponentsLinks.primaryClass)}}defineProperty_defineProperty(ComponentsLinks,\"primaryClass\",\"components-links\");const sw=ComponentsLinks,cw=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"Link\"]},init(){this.element=new sw},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"link\")})),s}}});class ComponentsCallbacks extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ComponentsCallbacks.primaryClass)}}defineProperty_defineProperty(ComponentsCallbacks,\"primaryClass\",\"components-callbacks\");const lw=ComponentsCallbacks,uw=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"Callback\"]},init(){this.element=new lw},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"callback\")})),s}}}),pw=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Example\"]),canSupportSpecificationExtensions:!0},init(){this.element=new Yf},methods:{ObjectElement(i){const s=Vy.compose.methods.ObjectElement.call(this,i);return Ed(this.element.externalValue)&&this.element.classes.push(\"reference-element\"),s}}}),hw=Wy,dw=Wy,fw=Wy,mw=Qd(Wy,{methods:{StringElement(i){return this.element=i.clone(),this.element.classes.push(\"reference-value\"),tf}}}),yw=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"ExternalDocumentation\"]),canSupportSpecificationExtensions:!0},init(){this.element=new Qf}}),gw=Wy,vw=Wy,bw=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Encoding\"]),canSupportSpecificationExtensions:!0},init(){this.element=new Xf},methods:{ObjectElement(i){const s=Vy.compose.methods.ObjectElement.call(this,i);return kd(this.element.headers)&&this.element.headers.filter(yv).forEach(((i,s)=>{i.setMetaProperty(\"header-name\",s.toValue())})),s}}}),_w=Wy;class EncodingHeaders extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(EncodingHeaders.primaryClass)}}defineProperty_defineProperty(EncodingHeaders,\"primaryClass\",\"encoding-headers\");const ww=EncodingHeaders,Ew=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"Header\"]},init(){this.element=new ww},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"header\")})),this.element.forEach(((i,s)=>{if(!yv(i))return;const u=s.toValue();i.setMetaProperty(\"headerName\",u)})),s}}}),Sw=Ew,xw=Wy,Ow=Wy,kw=Wy,Aw=Qd(kg,Wy,{props:{fieldPatternPredicate:_h(/^\\/(?<path>.*)$/),specPath:Su([\"document\",\"objects\",\"PathItem\"]),canSupportSpecificationExtensions:!0},init(){this.element=new pm},methods:{ObjectElement(i){const s=kg.compose.methods.ObjectElement.call(this,i);return this.element.filter(xv).forEach(((i,s)=>{i.setMetaProperty(\"path\",s.clone())})),s}}}),Cw=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"RequestBody\"])},init(){this.element=new dm},methods:{ObjectElement(i){const s=Vy.compose.methods.ObjectElement.call(this,i);return kd(this.element.contentProp)&&this.element.contentProp.filter(Mv).forEach(((i,s)=>{i.setMetaProperty(\"media-type\",s.toValue())})),s}}}),jw=Wy;class RequestBodyContent extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(RequestBodyContent.primaryClass),this.classes.push(\"content\")}}defineProperty_defineProperty(RequestBodyContent,\"primaryClass\",\"request-body-content\");const Pw=RequestBodyContent,Iw=Qd(e_,{init(){this.element=new Pw}}),Nw=Wy,Tw=Qd(kg,Wy,{props:{fieldPatternPredicate:_h(/{(?<expression>.*)}/),specPath:Su([\"document\",\"objects\",\"PathItem\"]),canSupportSpecificationExtensions:!0},init(){this.element=new Uf},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(xv).forEach(((i,s)=>{i.setMetaProperty(\"runtime-expression\",s.toValue())})),s}}}),Mw=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Response\"])},init(){this.element=new fm},methods:{ObjectElement(i){const s=Vy.compose.methods.ObjectElement.call(this,i);return kd(this.element.contentProp)&&this.element.contentProp.filter(Mv).forEach(((i,s)=>{i.setMetaProperty(\"media-type\",s.toValue())})),kd(this.element.headers)&&this.element.headers.filter(yv).forEach(((i,s)=>{i.setMetaProperty(\"header-name\",s.toValue())})),s}}}),Rw=Wy;class ResponseHeaders extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ResponseHeaders.primaryClass)}}defineProperty_defineProperty(ResponseHeaders,\"primaryClass\",\"response-headers\");const Dw=ResponseHeaders,Bw=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"Header\"]},init(){this.element=new Dw},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"header\")})),this.element.forEach(((i,s)=>{if(!yv(i))return;const u=s.toValue();i.setMetaProperty(\"header-name\",u)})),s}}}),Lw=Bw;class ResponseContent extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ResponseContent.primaryClass),this.classes.push(\"content\")}}defineProperty_defineProperty(ResponseContent,\"primaryClass\",\"response-content\");const Fw=ResponseContent,qw=Qd(e_,{init(){this.element=new Fw}});class ResponseLinks extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ResponseLinks.primaryClass)}}defineProperty_defineProperty(ResponseLinks,\"primaryClass\",\"response-links\");const $w=ResponseLinks,Uw=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"Link\"]},init(){this.element=new $w},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"link\")})),s}}}),zw=Qd(Vy,kg,{props:{specPathFixedFields:Sm,specPathPatternedFields:Sm},methods:{ObjectElement(i){const{specPath:s,ignoredFields:u}=this;try{this.specPath=this.specPathFixedFields;const s=this.retrieveFixedFields(this.specPath(i));this.ignoredFields=[...u,...tp(i.keys(),s)],Vy.compose.methods.ObjectElement.call(this,i),this.specPath=this.specPathPatternedFields,this.ignoredFields=s,kg.compose.methods.ObjectElement.call(this,i)}catch(i){throw this.specPath=s,i}return tf}}}),Vw=Qd(zw,Wy,{props:{specPathFixedFields:Su([\"document\",\"objects\",\"Responses\"]),specPathPatternedFields:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"Response\"],fieldPatternPredicate:_h(new RegExp(`^(1XX|2XX|3XX|4XX|5XX|${Xp(100,600).join(\"|\")})$`)),canSupportSpecificationExtensions:!0},init(){this.element=new mm},methods:{ObjectElement(i){const s=zw.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"response\")})),this.element.filter(Cv).forEach(((i,s)=>{const u=s.clone();this.fieldPatternPredicate(u.toValue())&&i.setMetaProperty(\"http-status-code\",u)})),s}}}),Ww=Vw,Kw=Qd(uv,Wy,{props:{alternator:[{predicate:isReferenceLikeElement,specPath:[\"document\",\"objects\",\"Reference\"]},{predicate:es_T,specPath:[\"document\",\"objects\",\"Response\"]}]},methods:{ObjectElement(i){const s=uv.compose.methods.enter.call(this,i);return kv(this.element)?this.element.setMetaProperty(\"referenced-element\",\"response\"):Cv(this.element)&&this.element.setMetaProperty(\"http-status-code\",\"default\"),s}}}),Hw=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Operation\"])},init(){this.element=new cm}});class OperationTags extends Nl.ON{constructor(i,s,u){super(i,s,u),this.classes.push(OperationTags.primaryClass)}}defineProperty_defineProperty(OperationTags,\"primaryClass\",\"operation-tags\");const Jw=OperationTags,Gw=Qd(Wy,{init(){this.element=new Jw},methods:{ArrayElement(i){return this.element=this.element.concat(i.clone()),tf}}}),Xw=Wy,Yw=Wy,Qw=Wy;class OperationParameters extends Nl.ON{constructor(i,s,u){super(i,s,u),this.classes.push(OperationParameters.primaryClass),this.classes.push(\"parameters\")}}defineProperty_defineProperty(OperationParameters,\"primaryClass\",\"operation-parameters\");const Zw=OperationParameters,eE=Qd(qy,Wy,{init(){this.element=new Nl.ON,this.element.classes.push(\"parameters\")},methods:{ArrayElement(i){return i.forEach((i=>{const s=isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"Parameter\"],u=this.toRefractedElement(s,i);kv(u)&&u.setMetaProperty(\"referenced-element\",\"parameter\"),this.element.push(u)})),this.copyMetaAndAttributes(i,this.element),tf}}}),tE=Qd(eE,{init(){this.element=new Zw}}),rE=Qd(uv,{props:{alternator:[{predicate:isReferenceLikeElement,specPath:[\"document\",\"objects\",\"Reference\"]},{predicate:es_T,specPath:[\"document\",\"objects\",\"RequestBody\"]}]},methods:{ObjectElement(i){const s=uv.compose.methods.enter.call(this,i);return kv(this.element)&&this.element.setMetaProperty(\"referenced-element\",\"requestBody\"),s}}});class OperationCallbacks extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(OperationCallbacks.primaryClass)}}defineProperty_defineProperty(OperationCallbacks,\"primaryClass\",\"operation-callbacks\");const nE=OperationCallbacks,oE=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"Callback\"]},init(){this.element=new nE},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(kv).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"callback\")})),s}}}),iE=Wy;class OperationSecurity extends Nl.ON{constructor(i,s,u){super(i,s,u),this.classes.push(OperationSecurity.primaryClass),this.classes.push(\"security\")}}defineProperty_defineProperty(OperationSecurity,\"primaryClass\",\"operation-security\");const aE=OperationSecurity,sE=Qd(qy,Wy,{init(){this.element=new aE},methods:{ArrayElement(i){return i.forEach((i=>{const s=kd(i)?[\"document\",\"objects\",\"SecurityRequirement\"]:[\"value\"],u=this.toRefractedElement(s,i);this.element.push(u)})),this.copyMetaAndAttributes(i,this.element),tf}}});class OperationServers extends Nl.ON{constructor(i,s,u){super(i,s,u),this.classes.push(OperationServers.primaryClass),this.classes.push(\"servers\")}}defineProperty_defineProperty(OperationServers,\"primaryClass\",\"operation-servers\");const cE=OperationServers,lE=Qd(rv,{init(){this.element=new cE}}),uE=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"PathItem\"])},init(){this.element=new um},methods:{ObjectElement(i){const s=Vy.compose.methods.ObjectElement.call(this,i);return this.element.filter(Ev).forEach(((i,s)=>{const u=s.clone();u.content=u.toValue().toUpperCase(),i.setMetaProperty(\"http-method\",u)})),Ed(this.element.$ref)&&this.element.classes.push(\"reference-element\"),s}}}),pE=Qd(Wy,{methods:{StringElement(i){return this.element=i.clone(),this.element.classes.push(\"reference-value\"),tf}}}),hE=Wy,dE=Wy;class PathItemServers extends Nl.ON{constructor(i,s,u){super(i,s,u),this.classes.push(PathItemServers.primaryClass),this.classes.push(\"servers\")}}defineProperty_defineProperty(PathItemServers,\"primaryClass\",\"path-item-servers\");const fE=PathItemServers,mE=Qd(rv,{init(){this.element=new fE}});class PathItemParameters extends Nl.ON{constructor(i,s,u){super(i,s,u),this.classes.push(PathItemParameters.primaryClass),this.classes.push(\"parameters\")}}defineProperty_defineProperty(PathItemParameters,\"primaryClass\",\"path-item-parameters\");const yE=PathItemParameters,gE=Qd(eE,{init(){this.element=new yE}}),vE=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"SecurityScheme\"]),canSupportSpecificationExtensions:!0},init(){this.element=new Ny}}),bE=Wy,_E=Wy,wE=Wy,EE=Wy,SE=Wy,xE=Wy,OE=Wy,kE=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"OAuthFlows\"]),canSupportSpecificationExtensions:!0},init(){this.element=new im}}),AE=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"OAuthFlow\"]),canSupportSpecificationExtensions:!0},init(){this.element=new om}}),CE=Wy,jE=Wy,PE=Wy;class OAuthFlowScopes extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(OAuthFlowScopes.primaryClass)}}defineProperty_defineProperty(OAuthFlowScopes,\"primaryClass\",\"oauth-flow-scopes\");const IE=OAuthFlowScopes,NE=Qd(Pg,Wy,{props:{specPath:Su([\"value\"])},init(){this.element=new IE}});class Tags extends Nl.ON{constructor(i,s,u){super(i,s,u),this.classes.push(Tags.primaryClass)}}defineProperty_defineProperty(Tags,\"primaryClass\",\"tags\");const TE=Tags,ME=Qd(qy,Wy,{init(){this.element=new TE},methods:{ArrayElement(i){return i.forEach((i=>{const s=Uy(i)?[\"document\",\"objects\",\"Tag\"]:[\"value\"],u=this.toRefractedElement(s,i);this.element.push(u)})),this.copyMetaAndAttributes(i,this.element),tf}}});function specification_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function specification_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?specification_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):specification_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}const RE={$visitor:Gv,fixedFields:{$ref:Xv}},DE={$visitor:n_,fixedFields:specification_objectSpread(specification_objectSpread({},j_),{},{allOf:i_,anyOf:s_,oneOf:l_,definitions:p_,items:m_,dependencies:d_,properties:g_,patternProperties:b_,type:E_,nullable:S_,discriminator:{$ref:\"#/visitors/document/objects/Discriminator\"},writeOnly:x_,xml:{$ref:\"#/visitors/document/objects/XML\"},externalDocs:{$ref:\"#/visitors/document/objects/ExternalDocumentation\"},example:O_,deprecated:k_})},BE={visitors:{value:Wy,document:{objects:{OpenApi:{$visitor:Ky,fixedFields:{openapi:Hy,info:{$ref:\"#/visitors/document/objects/Info\"},servers:rv,paths:{$ref:\"#/visitors/document/objects/Paths\"},components:{$ref:\"#/visitors/document/objects/Components\"},security:Vv,tags:ME,externalDocs:{$ref:\"#/visitors/document/objects/ExternalDocumentation\"}}},Info:{$visitor:Gy,fixedFields:{title:Xy,description:Yy,termsOfService:Qy,contact:{$ref:\"#/visitors/document/objects/Contact\"},license:{$ref:\"#/visitors/document/objects/License\"},version:Zy}},Contact:{$visitor:ng,fixedFields:{name:og,url:ag,email:cg}},License:{$visitor:ug,fixedFields:{name:pg,url:dg}},Server:{$visitor:Yg,fixedFields:{url:Zg,description:ev,variables:cv}},ServerVariable:{$visitor:nv,fixedFields:{enum:ov,default:iv,description:av}},Components:{$visitor:Wv,fixedFields:{schemas:K_,responses:G_,parameters:Y_,examples:Z_,requestBodies:tw,headers:ow,securitySchemes:aw,links:cw,callbacks:uw}},Paths:{$visitor:Aw},PathItem:{$visitor:uE,fixedFields:{$ref:pE,summary:hE,description:dE,get:{$ref:\"#/visitors/document/objects/Operation\"},put:{$ref:\"#/visitors/document/objects/Operation\"},post:{$ref:\"#/visitors/document/objects/Operation\"},delete:{$ref:\"#/visitors/document/objects/Operation\"},options:{$ref:\"#/visitors/document/objects/Operation\"},head:{$ref:\"#/visitors/document/objects/Operation\"},patch:{$ref:\"#/visitors/document/objects/Operation\"},trace:{$ref:\"#/visitors/document/objects/Operation\"},servers:mE,parameters:gE}},Operation:{$visitor:Hw,fixedFields:{tags:Gw,summary:Xw,description:Yw,externalDocs:{$ref:\"#/visitors/document/objects/ExternalDocumentation\"},operationId:Qw,parameters:tE,requestBody:rE,responses:{$ref:\"#/visitors/document/objects/Responses\"},callbacks:oE,deprecated:iE,security:sE,servers:lE}},ExternalDocumentation:{$visitor:yw,fixedFields:{description:gw,url:vw}},Parameter:{$visitor:Yv,fixedFields:{name:Qv,in:Zv,description:rb,required:nb,deprecated:ob,allowEmptyValue:ub,style:yb,explode:_b,allowReserved:Sb,schema:kb,example:q_,examples:U_,content:V_}},RequestBody:{$visitor:Cw,fixedFields:{description:jw,content:Iw,required:Nw}},MediaType:{$visitor:lv,fixedFields:{schema:Rv,example:Dv,examples:Fv,encoding:$v}},Encoding:{$visitor:bw,fixedFields:{contentType:_w,headers:Sw,style:xw,explode:Ow,allowReserved:kw}},Responses:{$visitor:Ww,fixedFields:{default:Kw}},Response:{$visitor:Mw,fixedFields:{description:Rw,headers:Lw,content:qw,links:Uw}},Callback:{$visitor:Tw},Example:{$visitor:pw,fixedFields:{summary:hw,description:dw,value:fw,externalValue:mw}},Link:{$visitor:mg,fixedFields:{operationRef:bg,operationId:_g,parameters:Fg,requestBody:$g,description:Kg,server:{$ref:\"#/visitors/document/objects/Server\"}}},Header:{$visitor:Ab,fixedFields:{description:Pb,required:Tb,deprecated:Lb,allowEmptyValue:qb,style:Ub,explode:zb,allowReserved:Vb,schema:Wb,example:Kb,examples:Qb,content:r_}},Tag:{$visitor:Kv,fixedFields:{name:Hv,description:Jv,externalDocs:{$ref:\"#/visitors/document/objects/ExternalDocumentation\"}}},JSONReference:RE,Reference:RE,JSONSchema:DE,Schema:DE,LinkDescription:Sy.visitors.document.objects.LinkDescription,Media:Sy.visitors.document.objects.Media,Discriminator:{$visitor:P_,fixedFields:{propertyName:I_,mapping:T_}},XML:{$visitor:M_,fixedFields:{name:R_,namespace:D_,prefix:B_,attribute:L_,wrapped:F_}},SecurityScheme:{$visitor:vE,fixedFields:{type:bE,description:_E,name:wE,in:EE,scheme:SE,bearerFormat:xE,flows:{$ref:\"#/visitors/document/objects/OAuthFlows\"},openIdConnectUrl:OE}},OAuthFlows:{$visitor:kE,fixedFields:{implicit:{$ref:\"#/visitors/document/objects/OAuthFlow\"},password:{$ref:\"#/visitors/document/objects/OAuthFlow\"},clientCredentials:{$ref:\"#/visitors/document/objects/OAuthFlow\"},authorizationCode:{$ref:\"#/visitors/document/objects/OAuthFlow\"}}},OAuthFlow:{$visitor:AE,fixedFields:{authorizationUrl:CE,tokenUrl:jE,refreshUrl:PE,scopes:NE}},SecurityRequirement:{$visitor:Uv}},extension:{$visitor:Jy}}}},LE={namespace:i=>{const{base:s}=i;return s.register(\"callback\",Uf),s.register(\"components\",zf),s.register(\"contact\",Vf),s.register(\"discriminator\",Wf),s.register(\"encoding\",Xf),s.register(\"example\",Yf),s.register(\"externalDocumentation\",Qf),s.register(\"header\",Zf),s.register(\"info\",em),s.register(\"license\",tm),s.register(\"link\",rm),s.register(\"mediaType\",nm),s.register(\"oAuthFlow\",om),s.register(\"oAuthFlows\",im),s.register(\"openapi\",am),s.register(\"openApi3_0\",sm),s.register(\"operation\",cm),s.register(\"parameter\",lm),s.register(\"pathItem\",um),s.register(\"paths\",pm),s.register(\"reference\",hm),s.register(\"requestBody\",dm),s.register(\"response\",fm),s.register(\"responses\",mm),s.register(\"schema\",Py),s.register(\"securityRequirement\",Iy),s.register(\"securityScheme\",Ny),s.register(\"server\",Ty),s.register(\"serverVariable\",My),s.register(\"tag\",Ry),s.register(\"xml\",Dy),s}},FE=LE;function es_refractor_toolbox_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function es_refractor_toolbox_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?es_refractor_toolbox_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):es_refractor_toolbox_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}const es_refractor_toolbox=()=>{const i=createNamespace(FE);return{predicates:es_refractor_toolbox_objectSpread(es_refractor_toolbox_objectSpread(es_refractor_toolbox_objectSpread({},be),_e),{},{isStringElement:Ed}),namespace:i}};function apidom_ns_openapi_3_0_es_refractor_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}const es_refractor_refract=(i,{specPath:s=[\"visitors\",\"document\",\"objects\",\"OpenApi\",\"$visitor\"],plugins:u=[]}={})=>{const m=(0,Nl.Qc)(i),v=dereference(BE),_=bd(s,[],v);return visitor_visit(m,_,{state:{specObj:v}}),dispatchPlugins(_.element,u,{toolboxCreator:es_refractor_toolbox,visitorOptions:{keyMap:Fy,nodeTypeGetter:es_traversal_visitor_getNodeType}})},es_refractor_createRefractor=i=>(s,u={})=>es_refractor_refract(s,function apidom_ns_openapi_3_0_es_refractor_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?apidom_ns_openapi_3_0_es_refractor_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):apidom_ns_openapi_3_0_es_refractor_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}({specPath:i},u));Uf.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Callback\",\"$visitor\"]),zf.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Components\",\"$visitor\"]),Vf.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Contact\",\"$visitor\"]),Yf.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Example\",\"$visitor\"]),Wf.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Discriminator\",\"$visitor\"]),Xf.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Encoding\",\"$visitor\"]),Qf.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"ExternalDocumentation\",\"$visitor\"]),Zf.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Header\",\"$visitor\"]),em.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Info\",\"$visitor\"]),tm.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"License\",\"$visitor\"]),rm.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Link\",\"$visitor\"]),nm.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"MediaType\",\"$visitor\"]),om.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"OAuthFlow\",\"$visitor\"]),im.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"OAuthFlows\",\"$visitor\"]),am.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"OpenApi\",\"fixedFields\",\"openapi\"]),sm.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"OpenApi\",\"$visitor\"]),cm.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Operation\",\"$visitor\"]),lm.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Parameter\",\"$visitor\"]),um.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"PathItem\",\"$visitor\"]),pm.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Paths\",\"$visitor\"]),hm.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Reference\",\"$visitor\"]),dm.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"RequestBody\",\"$visitor\"]),fm.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Response\",\"$visitor\"]),mm.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Responses\",\"$visitor\"]),Py.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Schema\",\"$visitor\"]),Iy.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"SecurityRequirement\",\"$visitor\"]),Ny.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"SecurityScheme\",\"$visitor\"]),Ty.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Server\",\"$visitor\"]),My.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"ServerVariable\",\"$visitor\"]),Ry.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Tag\",\"$visitor\"]),Dy.refract=es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"XML\",\"$visitor\"]);const qE=class Callback_Callback extends Uf{};const $E=class Components_Components extends zf{get pathItems(){return this.get(\"pathItems\")}set pathItems(i){this.set(\"pathItems\",i)}};const UE=class Contact_Contact extends Vf{};const zE=class Discriminator_Discriminator extends Wf{};const VE=class Encoding_Encoding extends Xf{};const WE=class Example_Example extends Yf{};const KE=class ExternalDocumentation_ExternalDocumentation extends Qf{};const HE=class Header_Header extends Zf{get schema(){return this.get(\"schema\")}set schema(i){this.set(\"schema\",i)}};const JE=class Info_Info extends em{get license(){return this.get(\"license\")}set license(i){this.set(\"license\",i)}get summary(){return this.get(\"summary\")}set summary(i){this.set(\"summary\",i)}};class JsonSchemaDialect extends Nl.RP{constructor(i,s,u){super(i,s,u),this.element=\"jsonSchemaDialect\"}}defineProperty_defineProperty(JsonSchemaDialect,\"default\",new JsonSchemaDialect(\"https://spec.openapis.org/oas/3.1/dialect/base\"));const GE=JsonSchemaDialect;const XE=class License_License extends tm{get identifier(){return this.get(\"identifier\")}set identifier(i){this.set(\"identifier\",i)}};const YE=class Link_Link extends rm{};const QE=class MediaType_MediaType extends nm{get schema(){return this.get(\"schema\")}set schema(i){this.set(\"schema\",i)}};const ZE=class OAuthFlow_OAuthFlow extends om{};const eS=class OAuthFlows_OAuthFlows extends im{};const tS=class Openapi_Openapi extends am{};class OpenApi3_1 extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"openApi3_1\",this.classes.push(\"api\")}get openapi(){return this.get(\"openapi\")}set openapi(i){this.set(\"openapi\",i)}get info(){return this.get(\"info\")}set info(i){this.set(\"info\",i)}get jsonSchemaDialect(){return this.get(\"jsonSchemaDialect\")}set jsonSchemaDialect(i){this.set(\"jsonSchemaDialect\",i)}get servers(){return this.get(\"servers\")}set servers(i){this.set(\"servers\",i)}get paths(){return this.get(\"paths\")}set paths(i){this.set(\"paths\",i)}get components(){return this.get(\"components\")}set components(i){this.set(\"components\",i)}get security(){return this.get(\"security\")}set security(i){this.set(\"security\",i)}get tags(){return this.get(\"tags\")}set tags(i){this.set(\"tags\",i)}get externalDocs(){return this.get(\"externalDocs\")}set externalDocs(i){this.set(\"externalDocs\",i)}get webhooks(){return this.get(\"webhooks\")}set webhooks(i){this.set(\"webhooks\",i)}}const rS=OpenApi3_1;const nS=class Operation_Operation extends cm{get requestBody(){return this.get(\"requestBody\")}set requestBody(i){this.set(\"requestBody\",i)}};const oS=class Parameter_Parameter extends lm{get schema(){return this.get(\"schema\")}set schema(i){this.set(\"schema\",i)}};const iS=class PathItem_PathItem extends um{get GET(){return this.get(\"get\")}set GET(i){this.set(\"GET\",i)}get PUT(){return this.get(\"put\")}set PUT(i){this.set(\"PUT\",i)}get POST(){return this.get(\"post\")}set POST(i){this.set(\"POST\",i)}get DELETE(){return this.get(\"delete\")}set DELETE(i){this.set(\"DELETE\",i)}get OPTIONS(){return this.get(\"options\")}set OPTIONS(i){this.set(\"OPTIONS\",i)}get HEAD(){return this.get(\"head\")}set HEAD(i){this.set(\"HEAD\",i)}get PATCH(){return this.get(\"patch\")}set PATCH(i){this.set(\"PATCH\",i)}get TRACE(){return this.get(\"trace\")}set TRACE(i){this.set(\"TRACE\",i)}};const aS=class Paths_Paths extends pm{};class Reference_Reference extends hm{}Object.defineProperty(Reference_Reference.prototype,\"description\",{get(){return this.get(\"description\")},set(i){this.set(\"description\",i)},enumerable:!0}),Object.defineProperty(Reference_Reference.prototype,\"summary\",{get(){return this.get(\"summary\")},set(i){this.set(\"summary\",i)},enumerable:!0});const sS=Reference_Reference;const cS=class RequestBody_RequestBody extends dm{};const lS=class elements_Response_Response extends fm{};const uS=class Responses_Responses extends mm{};class elements_Schema_Schema extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.element=\"schema\"}get $schema(){return this.get(\"$schema\")}set $schema(i){this.set(\"$schema\",i)}get $vocabulary(){return this.get(\"$vocabulary\")}set $vocabulary(i){this.set(\"$vocabulary\",i)}get $id(){return this.get(\"$id\")}set $id(i){this.set(\"$id\",i)}get $anchor(){return this.get(\"$anchor\")}set $anchor(i){this.set(\"$anchor\",i)}get $dynamicAnchor(){return this.get(\"$dynamicAnchor\")}set $dynamicAnchor(i){this.set(\"$dynamicAnchor\",i)}get $dynamicRef(){return this.get(\"$dynamicRef\")}set $dynamicRef(i){this.set(\"$dynamicRef\",i)}get $ref(){return this.get(\"$ref\")}set $ref(i){this.set(\"$ref\",i)}get $defs(){return this.get(\"$defs\")}set $defs(i){this.set(\"$defs\",i)}get $comment(){return this.get(\"$comment\")}set $comment(i){this.set(\"$comment\",i)}get allOf(){return this.get(\"allOf\")}set allOf(i){this.set(\"allOf\",i)}get anyOf(){return this.get(\"anyOf\")}set anyOf(i){this.set(\"anyOf\",i)}get oneOf(){return this.get(\"oneOf\")}set oneOf(i){this.set(\"oneOf\",i)}get not(){return this.get(\"not\")}set not(i){this.set(\"not\",i)}get if(){return this.get(\"if\")}set if(i){this.set(\"if\",i)}get then(){return this.get(\"then\")}set then(i){this.set(\"then\",i)}get else(){return this.get(\"else\")}set else(i){this.set(\"else\",i)}get dependentSchemas(){return this.get(\"dependentSchemas\")}set dependentSchemas(i){this.set(\"dependentSchemas\",i)}get prefixItems(){return this.get(\"prefixItems\")}set prefixItems(i){this.set(\"prefixItems\",i)}get items(){return this.get(\"items\")}set items(i){this.set(\"items\",i)}get containsProp(){return this.get(\"contains\")}set containsProp(i){this.set(\"contains\",i)}get properties(){return this.get(\"properties\")}set properties(i){this.set(\"properties\",i)}get patternProperties(){return this.get(\"patternProperties\")}set patternProperties(i){this.set(\"patternProperties\",i)}get additionalProperties(){return this.get(\"additionalProperties\")}set additionalProperties(i){this.set(\"additionalProperties\",i)}get propertyNames(){return this.get(\"propertyNames\")}set propertyNames(i){this.set(\"propertyNames\",i)}get unevaluatedItems(){return this.get(\"unevaluatedItems\")}set unevaluatedItems(i){this.set(\"unevaluatedItems\",i)}get unevaluatedProperties(){return this.get(\"unevaluatedProperties\")}set unevaluatedProperties(i){this.set(\"unevaluatedProperties\",i)}get type(){return this.get(\"type\")}set type(i){this.set(\"type\",i)}get enum(){return this.get(\"enum\")}set enum(i){this.set(\"enum\",i)}get const(){return this.get(\"const\")}set const(i){this.set(\"const\",i)}get multipleOf(){return this.get(\"multipleOf\")}set multipleOf(i){this.set(\"multipleOf\",i)}get maximum(){return this.get(\"maximum\")}set maximum(i){this.set(\"maximum\",i)}get exclusiveMaximum(){return this.get(\"exclusiveMaximum\")}set exclusiveMaximum(i){this.set(\"exclusiveMaximum\",i)}get minimum(){return this.get(\"minimum\")}set minimum(i){this.set(\"minimum\",i)}get exclusiveMinimum(){return this.get(\"exclusiveMinimum\")}set exclusiveMinimum(i){this.set(\"exclusiveMinimum\",i)}get maxLength(){return this.get(\"maxLength\")}set maxLength(i){this.set(\"maxLength\",i)}get minLength(){return this.get(\"minLength\")}set minLength(i){this.set(\"minLength\",i)}get pattern(){return this.get(\"pattern\")}set pattern(i){this.set(\"pattern\",i)}get maxItems(){return this.get(\"maxItems\")}set maxItems(i){this.set(\"maxItems\",i)}get minItems(){return this.get(\"minItems\")}set minItems(i){this.set(\"minItems\",i)}get uniqueItems(){return this.get(\"uniqueItems\")}set uniqueItems(i){this.set(\"uniqueItems\",i)}get maxContains(){return this.get(\"maxContains\")}set maxContains(i){this.set(\"maxContains\",i)}get minContains(){return this.get(\"minContains\")}set minContains(i){this.set(\"minContains\",i)}get maxProperties(){return this.get(\"maxProperties\")}set maxProperties(i){this.set(\"maxProperties\",i)}get minProperties(){return this.get(\"minProperties\")}set minProperties(i){this.set(\"minProperties\",i)}get required(){return this.get(\"required\")}set required(i){this.set(\"required\",i)}get dependentRequired(){return this.get(\"dependentRequired\")}set dependentRequired(i){this.set(\"dependentRequired\",i)}get title(){return this.get(\"title\")}set title(i){this.set(\"title\",i)}get description(){return this.get(\"description\")}set description(i){this.set(\"description\",i)}get default(){return this.get(\"default\")}set default(i){this.set(\"default\",i)}get deprecated(){return this.get(\"deprecated\")}set deprecated(i){this.set(\"deprecated\",i)}get readOnly(){return this.get(\"readOnly\")}set readOnly(i){this.set(\"readOnly\",i)}get writeOnly(){return this.get(\"writeOnly\")}set writeOnly(i){this.set(\"writeOnly\",i)}get examples(){return this.get(\"examples\")}set examples(i){this.set(\"examples\",i)}get format(){return this.get(\"format\")}set format(i){this.set(\"format\",i)}get contentEncoding(){return this.get(\"contentEncoding\")}set contentEncoding(i){this.set(\"contentEncoding\",i)}get contentMediaType(){return this.get(\"contentMediaType\")}set contentMediaType(i){this.set(\"contentMediaType\",i)}get contentSchema(){return this.get(\"contentSchema\")}set contentSchema(i){this.set(\"contentSchema\",i)}get discriminator(){return this.get(\"discriminator\")}set discriminator(i){this.set(\"discriminator\",i)}get xml(){return this.get(\"xml\")}set xml(i){this.set(\"xml\",i)}get externalDocs(){return this.get(\"externalDocs\")}set externalDocs(i){this.set(\"externalDocs\",i)}get example(){return this.get(\"example\")}set example(i){this.set(\"example\",i)}}const pS=elements_Schema_Schema;const hS=class SecurityRequirement_SecurityRequirement extends Iy{};const dS=class SecurityScheme_SecurityScheme extends Ny{};const fS=class Server_Server extends Ty{};const mS=class ServerVariable_ServerVariable extends My{};const yS=class Tag_Tag extends Ry{};const gS=class Xml_Xml extends Dy{},vS=Qd(Vy,Wy,{props:{specPath:Su([\"document\",\"objects\",\"OpenApi\"]),canSupportSpecificationExtensions:!0},init(){this.element=new rS,this.openApiSemanticElement=this.element},methods:{ObjectElement(i){return this.openApiGenericElement=i,Vy.compose.methods.ObjectElement.call(this,i)}}}),{visitors:{document:{objects:{Info:{$visitor:bS}}}}}=BE,_S=Qd(bS,{init(){this.element=new JE}}),wS=Wy,{visitors:{document:{objects:{Contact:{$visitor:ES}}}}}=BE,SS=Qd(ES,{init(){this.element=new UE}}),{visitors:{document:{objects:{License:{$visitor:xS}}}}}=BE,OS=Qd(xS,{init(){this.element=new XE}}),kS=Wy,{visitors:{document:{objects:{Link:{$visitor:AS}}}}}=BE,CS=Qd(AS,{init(){this.element=new YE}}),jS=Qd(qy,Wy,{methods:{StringElement(i){const s=new GE(i.toValue());return this.copyMetaAndAttributes(i,s),this.element=s,tf}}}),{visitors:{document:{objects:{Server:{$visitor:PS}}}}}=BE,IS=Qd(PS,{init(){this.element=new fS}}),{visitors:{document:{objects:{ServerVariable:{$visitor:NS}}}}}=BE,TS=Qd(NS,{init(){this.element=new mS}}),{visitors:{document:{objects:{MediaType:{$visitor:MS}}}}}=BE,RS=Qd(MS,{init(){this.element=new QE}}),{visitors:{document:{objects:{SecurityRequirement:{$visitor:DS}}}}}=BE,BS=Qd(DS,{init(){this.element=new hS}}),{visitors:{document:{objects:{Components:{$visitor:LS}}}}}=BE,FS=Qd(LS,{init(){this.element=new $E}}),{visitors:{document:{objects:{Tag:{$visitor:qS}}}}}=BE,$S=Qd(qS,{init(){this.element=new yS}}),{visitors:{document:{objects:{Reference:{$visitor:US}}}}}=BE,zS=Qd(US,{init(){this.element=new sS}}),VS=Wy,WS=Wy,{visitors:{document:{objects:{Parameter:{$visitor:KS}}}}}=BE,HS=Qd(KS,{init(){this.element=new oS}}),{visitors:{document:{objects:{Header:{$visitor:JS}}}}}=BE,GS=Qd(JS,{init(){this.element=new HE}}),XS=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof qE||i(m)&&s(\"callback\",m)&&u(\"object\",m))),YS=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof $E||i(m)&&s(\"components\",m)&&u(\"object\",m))),QS=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof UE||i(m)&&s(\"contact\",m)&&u(\"object\",m))),ZS=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof WE||i(m)&&s(\"example\",m)&&u(\"object\",m))),ex=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof KE||i(m)&&s(\"externalDocumentation\",m)&&u(\"object\",m))),tx=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof HE||i(m)&&s(\"header\",m)&&u(\"object\",m))),rx=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof JE||i(m)&&s(\"info\",m)&&u(\"object\",m))),nx=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof GE||i(m)&&s(\"jsonSchemaDialect\",m)&&u(\"string\",m))),ox=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof XE||i(m)&&s(\"license\",m)&&u(\"object\",m))),ix=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof YE||i(m)&&s(\"link\",m)&&u(\"object\",m))),predicates_isLinkElementExternal=i=>{if(!ix(i))return!1;if(!Ed(i.operationRef))return!1;const s=i.operationRef.toValue();return\"string\"==typeof s&&s.length>0&&!s.startsWith(\"#\")},ax=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof tS||i(m)&&s(\"openapi\",m)&&u(\"string\",m))),sx=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u,hasClass:m})=>v=>v instanceof rS||i(v)&&s(\"openApi3_1\",v)&&u(\"object\",v)&&m(\"api\",v))),cx=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof nS||i(m)&&s(\"operation\",m)&&u(\"object\",m))),lx=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof oS||i(m)&&s(\"parameter\",m)&&u(\"object\",m))),ux=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof iS||i(m)&&s(\"pathItem\",m)&&u(\"object\",m))),predicates_isPathItemElementExternal=i=>{if(!ux(i))return!1;if(!Ed(i.$ref))return!1;const s=i.$ref.toValue();return\"string\"==typeof s&&s.length>0&&!s.startsWith(\"#\")},px=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof aS||i(m)&&s(\"paths\",m)&&u(\"object\",m))),hx=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof sS||i(m)&&s(\"reference\",m)&&u(\"object\",m))),predicates_isReferenceElementExternal=i=>{if(!hx(i))return!1;if(!Ed(i.$ref))return!1;const s=i.$ref.toValue();return\"string\"==typeof s&&s.length>0&&!s.startsWith(\"#\")},dx=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof cS||i(m)&&s(\"requestBody\",m)&&u(\"object\",m))),fx=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof lS||i(m)&&s(\"response\",m)&&u(\"object\",m))),mx=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof uS||i(m)&&s(\"responses\",m)&&u(\"object\",m))),yx=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof pS||i(m)&&s(\"schema\",m)&&u(\"object\",m))),predicates_isBooleanJsonSchemaElement=i=>Od(i)&&i.classes.includes(\"boolean-json-schema\"),gx=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof hS||i(m)&&s(\"securityRequirement\",m)&&u(\"object\",m))),vx=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof fS||i(m)&&s(\"server\",m)&&u(\"object\",m))),bx=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof mS||i(m)&&s(\"serverVariable\",m)&&u(\"object\",m))),_x=helpers((({hasBasicElementProps:i,isElementType:s,primitiveEq:u})=>m=>m instanceof QE||i(m)&&s(\"mediaType\",m)&&u(\"object\",m))),wx=Qd({props:{parent:null},init({parent:i=this.parent}){this.parent=i,this.passingOptionsNames=[...this.passingOptionsNames,\"parent\"]}}),Ex=Qd(Vy,wx,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Schema\"]),canSupportSpecificationExtensions:!0},init(){const getJsonSchemaDialect=()=>{let i;return i=null!==this.openApiSemanticElement&&nx(this.openApiSemanticElement.jsonSchemaDialect)?this.openApiSemanticElement.jsonSchemaDialect.toValue():null!==this.openApiGenericElement&&Ed(this.openApiGenericElement.get(\"jsonSchemaDialect\"))?this.openApiGenericElement.get(\"jsonSchemaDialect\").toValue():GE.default.toValue(),i},handle$schema=i=>{if(Bd(this.parent)&&!Ed(i.get(\"$schema\")))this.element.setMetaProperty(\"inherited$schema\",getJsonSchemaDialect());else if(yx(this.parent)&&!Ed(i.get(\"$schema\"))){var s,u;const i=Qu(null===(s=this.parent.meta.get(\"inherited$schema\"))||void 0===s?void 0:s.toValue(),null===(u=this.parent.$schema)||void 0===u?void 0:u.toValue());this.element.setMetaProperty(\"inherited$schema\",i)}},handle$id=i=>{var s;const u=null!==this.parent?this.parent.getMetaProperty(\"inherited$id\",[]).clone():new Nl.ON,m=null===(s=i.get(\"$id\"))||void 0===s?void 0:s.toValue();Gm(m)&&u.push(m),this.element.setMetaProperty(\"inherited$id\",u)};this.ObjectElement=function _ObjectElement(i){this.element=new pS,handle$schema(i),handle$id(i),this.parent=this.element;const s=Vy.compose.methods.ObjectElement.call(this,i);return Ed(this.element.$ref)&&(this.element.classes.push(\"reference-element\"),this.element.setMetaProperty(\"referenced-element\",\"schema\")),s},this.BooleanElement=function _BooleanElement(i){return this.element=i.clone(),this.element.classes.push(\"boolean-json-schema\"),tf}}}),Sx=Ex,xx=Wy,Ox=Qd(Wy,{methods:{ObjectElement(i){return this.element=i.clone(),this.element.classes.push(\"json-schema-$vocabulary\"),tf}}}),kx=Wy,Ax=Wy,Cx=Wy,jx=Wy,Px=Qd(Wy,{methods:{StringElement(i){return this.element=i.clone(),this.element.classes.push(\"reference-value\"),tf}}}),Ix=Qd(Pg,wx,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Schema\"])},init(){this.element=new Nl.Sb,this.element.classes.push(\"json-schema-$defs\")}}),Nx=Wy,Tx=Qd(qy,wx,Wy,{init(){this.element=new Nl.ON,this.element.classes.push(\"json-schema-allOf\")},methods:{ArrayElement(i){return i.forEach((i=>{if(kd(i)){const s=this.toRefractedElement([\"document\",\"objects\",\"Schema\"],i);this.element.push(s)}else{const s=i.clone();this.element.push(s)}})),this.copyMetaAndAttributes(i,this.element),tf}}}),Mx=Qd(qy,wx,Wy,{init(){this.element=new Nl.ON,this.element.classes.push(\"json-schema-anyOf\")},methods:{ArrayElement(i){return i.forEach((i=>{if(kd(i)){const s=this.toRefractedElement([\"document\",\"objects\",\"Schema\"],i);this.element.push(s)}else{const s=i.clone();this.element.push(s)}})),this.copyMetaAndAttributes(i,this.element),tf}}}),Rx=Qd(qy,wx,Wy,{init(){this.element=new Nl.ON,this.element.classes.push(\"json-schema-oneOf\")},methods:{ArrayElement(i){return i.forEach((i=>{if(kd(i)){const s=this.toRefractedElement([\"document\",\"objects\",\"Schema\"],i);this.element.push(s)}else{const s=i.clone();this.element.push(s)}})),this.copyMetaAndAttributes(i,this.element),tf}}}),Dx=Qd(Pg,wx,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Schema\"])},init(){this.element=new Nl.Sb,this.element.classes.push(\"json-schema-dependentSchemas\")}}),Bx=Qd(qy,wx,Wy,{init(){this.element=new Nl.ON,this.element.classes.push(\"json-schema-prefixItems\")},methods:{ArrayElement(i){return i.forEach((i=>{if(kd(i)){const s=this.toRefractedElement([\"document\",\"objects\",\"Schema\"],i);this.element.push(s)}else{const s=i.clone();this.element.push(s)}})),this.copyMetaAndAttributes(i,this.element),tf}}}),Lx=Qd(Pg,wx,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Schema\"])},init(){this.element=new Nl.Sb,this.element.classes.push(\"json-schema-properties\")}}),Fx=Qd(Pg,wx,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Schema\"])},init(){this.element=new Nl.Sb,this.element.classes.push(\"json-schema-patternProperties\")}}),qx=Qd(Wy,{methods:{StringElement(i){return this.element=i.clone(),this.element.classes.push(\"json-schema-type\"),tf},ArrayElement(i){return this.element=i.clone(),this.element.classes.push(\"json-schema-type\"),tf}}}),$x=Qd(Wy,{methods:{ArrayElement(i){return this.element=i.clone(),this.element.classes.push(\"json-schema-enum\"),tf}}}),Ux=Wy,zx=Wy,Vx=Wy,Wx=Wy,Kx=Wy,Hx=Wy,Jx=Wy,Gx=Wy,Xx=Wy,Yx=Wy,Qx=Wy,Zx=Wy,eO=Wy,tO=Wy,rO=Wy,nO=Wy,oO=Qd(Wy,{methods:{ArrayElement(i){return this.element=i.clone(),this.element.classes.push(\"json-schema-required\"),tf}}}),iO=Qd(Wy,{methods:{ObjectElement(i){return this.element=i.clone(),this.element.classes.push(\"json-schema-dependentRequired\"),tf}}}),aO=Wy,sO=Wy,cO=Wy,lO=Wy,uO=Wy,pO=Wy,hO=Qd(Wy,{methods:{ArrayElement(i){return this.element=i.clone(),this.element.classes.push(\"json-schema-examples\"),tf}}}),dO=Wy,fO=Wy,mO=Wy,yO=Wy,{visitors:{document:{objects:{Discriminator:{$visitor:gO}}}}}=BE,vO=Qd(gO,{props:{canSupportSpecificationExtensions:!0},init(){this.element=new zE}}),{visitors:{document:{objects:{XML:{$visitor:bO}}}}}=BE,_O=Qd(bO,{init(){this.element=new gS}}),wO=Qd(Pg,Wy,{props:{specPath:Su([\"document\",\"objects\",\"Schema\"])},init(){this.element=new W_}});class ComponentsPathItems extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(ComponentsPathItems.primaryClass)}}defineProperty_defineProperty(ComponentsPathItems,\"primaryClass\",\"components-path-items\");const EO=ComponentsPathItems,SO=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"PathItem\"]},init(){this.element=new EO},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(hx).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"pathItem\")})),s}}}),{visitors:{document:{objects:{Example:{$visitor:xO}}}}}=BE,OO=Qd(xO,{init(){this.element=new WE}}),{visitors:{document:{objects:{ExternalDocumentation:{$visitor:kO}}}}}=BE,AO=Qd(kO,{init(){this.element=new KE}}),{visitors:{document:{objects:{Encoding:{$visitor:CO}}}}}=BE,jO=Qd(CO,{init(){this.element=new VE}}),{visitors:{document:{objects:{Paths:{$visitor:PO}}}}}=BE,IO=Qd(PO,{init(){this.element=new aS}}),{visitors:{document:{objects:{RequestBody:{$visitor:NO}}}}}=BE,TO=Qd(NO,{init(){this.element=new cS}}),{visitors:{document:{objects:{Callback:{$visitor:MO}}}}}=BE,RO=Qd(MO,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"PathItem\"]},init(){this.element=new qE},methods:{ObjectElement(i){const s=MO.compose.methods.ObjectElement.call(this,i);return this.element.filter(hx).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"pathItem\")})),s}}}),{visitors:{document:{objects:{Response:{$visitor:DO}}}}}=BE,BO=Qd(DO,{init(){this.element=new lS}}),{visitors:{document:{objects:{Responses:{$visitor:LO}}}}}=BE,FO=Qd(LO,{init(){this.element=new uS}}),{visitors:{document:{objects:{Operation:{$visitor:qO}}}}}=BE,$O=Qd(qO,{init(){this.element=new nS}}),{visitors:{document:{objects:{PathItem:{$visitor:UO}}}}}=BE,zO=Qd(UO,{init(){this.element=new iS}}),{visitors:{document:{objects:{SecurityScheme:{$visitor:VO}}}}}=BE,WO=Qd(VO,{init(){this.element=new dS}}),{visitors:{document:{objects:{OAuthFlows:{$visitor:KO}}}}}=BE,HO=Qd(KO,{init(){this.element=new eS}}),{visitors:{document:{objects:{OAuthFlow:{$visitor:JO}}}}}=BE,GO=Qd(JO,{init(){this.element=new ZE}});class Webhooks extends Nl.Sb{constructor(i,s,u){super(i,s,u),this.classes.push(Webhooks.primaryClass)}}defineProperty_defineProperty(Webhooks,\"primaryClass\",\"webhooks\");const XO=Webhooks,YO=Qd(Pg,Wy,{props:{specPath:i=>isReferenceLikeElement(i)?[\"document\",\"objects\",\"Reference\"]:[\"document\",\"objects\",\"PathItem\"]},init(){this.element=new XO},methods:{ObjectElement(i){const s=Pg.compose.methods.ObjectElement.call(this,i);return this.element.filter(hx).forEach((i=>{i.setMetaProperty(\"referenced-element\",\"pathItem\")})),this.element.filter(ux).forEach(((i,s)=>{i.setMetaProperty(\"webhook-name\",s.toValue())})),s}}}),QO={visitors:{value:BE.visitors.value,document:{objects:{OpenApi:{$visitor:vS,fixedFields:{openapi:BE.visitors.document.objects.OpenApi.fixedFields.openapi,info:{$ref:\"#/visitors/document/objects/Info\"},jsonSchemaDialect:jS,servers:BE.visitors.document.objects.OpenApi.fixedFields.servers,paths:{$ref:\"#/visitors/document/objects/Paths\"},webhooks:YO,components:{$ref:\"#/visitors/document/objects/Components\"},security:BE.visitors.document.objects.OpenApi.fixedFields.security,tags:BE.visitors.document.objects.OpenApi.fixedFields.tags,externalDocs:{$ref:\"#/visitors/document/objects/ExternalDocumentation\"}}},Info:{$visitor:_S,fixedFields:{title:BE.visitors.document.objects.Info.fixedFields.title,description:BE.visitors.document.objects.Info.fixedFields.description,summary:wS,termsOfService:BE.visitors.document.objects.Info.fixedFields.termsOfService,contact:{$ref:\"#/visitors/document/objects/Contact\"},license:{$ref:\"#/visitors/document/objects/License\"},version:BE.visitors.document.objects.Info.fixedFields.version}},Contact:{$visitor:SS,fixedFields:{name:BE.visitors.document.objects.Contact.fixedFields.name,url:BE.visitors.document.objects.Contact.fixedFields.url,email:BE.visitors.document.objects.Contact.fixedFields.email}},License:{$visitor:OS,fixedFields:{name:BE.visitors.document.objects.License.fixedFields.name,identifier:kS,url:BE.visitors.document.objects.License.fixedFields.url}},Server:{$visitor:IS,fixedFields:{url:BE.visitors.document.objects.Server.fixedFields.url,description:BE.visitors.document.objects.Server.fixedFields.description,variables:BE.visitors.document.objects.Server.fixedFields.variables}},ServerVariable:{$visitor:TS,fixedFields:{enum:BE.visitors.document.objects.ServerVariable.fixedFields.enum,default:BE.visitors.document.objects.ServerVariable.fixedFields.default,description:BE.visitors.document.objects.ServerVariable.fixedFields.description}},Components:{$visitor:FS,fixedFields:{schemas:wO,responses:BE.visitors.document.objects.Components.fixedFields.responses,parameters:BE.visitors.document.objects.Components.fixedFields.parameters,examples:BE.visitors.document.objects.Components.fixedFields.examples,requestBodies:BE.visitors.document.objects.Components.fixedFields.requestBodies,headers:BE.visitors.document.objects.Components.fixedFields.headers,securitySchemes:BE.visitors.document.objects.Components.fixedFields.securitySchemes,links:BE.visitors.document.objects.Components.fixedFields.links,callbacks:BE.visitors.document.objects.Components.fixedFields.callbacks,pathItems:SO}},Paths:{$visitor:IO},PathItem:{$visitor:zO,fixedFields:{$ref:BE.visitors.document.objects.PathItem.fixedFields.$ref,summary:BE.visitors.document.objects.PathItem.fixedFields.summary,description:BE.visitors.document.objects.PathItem.fixedFields.description,get:{$ref:\"#/visitors/document/objects/Operation\"},put:{$ref:\"#/visitors/document/objects/Operation\"},post:{$ref:\"#/visitors/document/objects/Operation\"},delete:{$ref:\"#/visitors/document/objects/Operation\"},options:{$ref:\"#/visitors/document/objects/Operation\"},head:{$ref:\"#/visitors/document/objects/Operation\"},patch:{$ref:\"#/visitors/document/objects/Operation\"},trace:{$ref:\"#/visitors/document/objects/Operation\"},servers:BE.visitors.document.objects.PathItem.fixedFields.servers,parameters:BE.visitors.document.objects.PathItem.fixedFields.parameters}},Operation:{$visitor:$O,fixedFields:{tags:BE.visitors.document.objects.Operation.fixedFields.tags,summary:BE.visitors.document.objects.Operation.fixedFields.summary,description:BE.visitors.document.objects.Operation.fixedFields.description,externalDocs:{$ref:\"#/visitors/document/objects/ExternalDocumentation\"},operationId:BE.visitors.document.objects.Operation.fixedFields.operationId,parameters:BE.visitors.document.objects.Operation.fixedFields.parameters,requestBody:BE.visitors.document.objects.Operation.fixedFields.requestBody,responses:{$ref:\"#/visitors/document/objects/Responses\"},callbacks:BE.visitors.document.objects.Operation.fixedFields.callbacks,deprecated:BE.visitors.document.objects.Operation.fixedFields.deprecated,security:BE.visitors.document.objects.Operation.fixedFields.security,servers:BE.visitors.document.objects.Operation.fixedFields.servers}},ExternalDocumentation:{$visitor:AO,fixedFields:{description:BE.visitors.document.objects.ExternalDocumentation.fixedFields.description,url:BE.visitors.document.objects.ExternalDocumentation.fixedFields.url}},Parameter:{$visitor:HS,fixedFields:{name:BE.visitors.document.objects.Parameter.fixedFields.name,in:BE.visitors.document.objects.Parameter.fixedFields.in,description:BE.visitors.document.objects.Parameter.fixedFields.description,required:BE.visitors.document.objects.Parameter.fixedFields.required,deprecated:BE.visitors.document.objects.Parameter.fixedFields.deprecated,allowEmptyValue:BE.visitors.document.objects.Parameter.fixedFields.allowEmptyValue,style:BE.visitors.document.objects.Parameter.fixedFields.style,explode:BE.visitors.document.objects.Parameter.fixedFields.explode,allowReserved:BE.visitors.document.objects.Parameter.fixedFields.allowReserved,schema:{$ref:\"#/visitors/document/objects/Schema\"},example:BE.visitors.document.objects.Parameter.fixedFields.example,examples:BE.visitors.document.objects.Parameter.fixedFields.examples,content:BE.visitors.document.objects.Parameter.fixedFields.content}},RequestBody:{$visitor:TO,fixedFields:{description:BE.visitors.document.objects.RequestBody.fixedFields.description,content:BE.visitors.document.objects.RequestBody.fixedFields.content,required:BE.visitors.document.objects.RequestBody.fixedFields.required}},MediaType:{$visitor:RS,fixedFields:{schema:{$ref:\"#/visitors/document/objects/Schema\"},example:BE.visitors.document.objects.MediaType.fixedFields.example,examples:BE.visitors.document.objects.MediaType.fixedFields.examples,encoding:BE.visitors.document.objects.MediaType.fixedFields.encoding}},Encoding:{$visitor:jO,fixedFields:{contentType:BE.visitors.document.objects.Encoding.fixedFields.contentType,headers:BE.visitors.document.objects.Encoding.fixedFields.headers,style:BE.visitors.document.objects.Encoding.fixedFields.style,explode:BE.visitors.document.objects.Encoding.fixedFields.explode,allowReserved:BE.visitors.document.objects.Encoding.fixedFields.allowReserved}},Responses:{$visitor:FO,fixedFields:{default:BE.visitors.document.objects.Responses.fixedFields.default}},Response:{$visitor:BO,fixedFields:{description:BE.visitors.document.objects.Response.fixedFields.description,headers:BE.visitors.document.objects.Response.fixedFields.headers,content:BE.visitors.document.objects.Response.fixedFields.content,links:BE.visitors.document.objects.Response.fixedFields.links}},Callback:{$visitor:RO},Example:{$visitor:OO,fixedFields:{summary:BE.visitors.document.objects.Example.fixedFields.summary,description:BE.visitors.document.objects.Example.fixedFields.description,value:BE.visitors.document.objects.Example.fixedFields.value,externalValue:BE.visitors.document.objects.Example.fixedFields.externalValue}},Link:{$visitor:CS,fixedFields:{operationRef:BE.visitors.document.objects.Link.fixedFields.operationRef,operationId:BE.visitors.document.objects.Link.fixedFields.operationId,parameters:BE.visitors.document.objects.Link.fixedFields.parameters,requestBody:BE.visitors.document.objects.Link.fixedFields.requestBody,description:BE.visitors.document.objects.Link.fixedFields.description,server:{$ref:\"#/visitors/document/objects/Server\"}}},Header:{$visitor:GS,fixedFields:{description:BE.visitors.document.objects.Header.fixedFields.description,required:BE.visitors.document.objects.Header.fixedFields.required,deprecated:BE.visitors.document.objects.Header.fixedFields.deprecated,allowEmptyValue:BE.visitors.document.objects.Header.fixedFields.allowEmptyValue,style:BE.visitors.document.objects.Header.fixedFields.style,explode:BE.visitors.document.objects.Header.fixedFields.explode,allowReserved:BE.visitors.document.objects.Header.fixedFields.allowReserved,schema:{$ref:\"#/visitors/document/objects/Schema\"},example:BE.visitors.document.objects.Header.fixedFields.example,examples:BE.visitors.document.objects.Header.fixedFields.examples,content:BE.visitors.document.objects.Header.fixedFields.content}},Tag:{$visitor:$S,fixedFields:{name:BE.visitors.document.objects.Tag.fixedFields.name,description:BE.visitors.document.objects.Tag.fixedFields.description,externalDocs:{$ref:\"#/visitors/document/objects/ExternalDocumentation\"}}},Reference:{$visitor:zS,fixedFields:{$ref:BE.visitors.document.objects.Reference.fixedFields.$ref,summary:VS,description:WS}},Schema:{$visitor:Sx,fixedFields:{$schema:xx,$vocabulary:Ox,$id:kx,$anchor:Ax,$dynamicAnchor:Cx,$dynamicRef:jx,$ref:Px,$defs:Ix,$comment:Nx,allOf:Tx,anyOf:Mx,oneOf:Rx,not:{$ref:\"#/visitors/document/objects/Schema\"},if:{$ref:\"#/visitors/document/objects/Schema\"},then:{$ref:\"#/visitors/document/objects/Schema\"},else:{$ref:\"#/visitors/document/objects/Schema\"},dependentSchemas:Dx,prefixItems:Bx,items:{$ref:\"#/visitors/document/objects/Schema\"},contains:{$ref:\"#/visitors/document/objects/Schema\"},properties:Lx,patternProperties:Fx,additionalProperties:{$ref:\"#/visitors/document/objects/Schema\"},propertyNames:{$ref:\"#/visitors/document/objects/Schema\"},unevaluatedItems:{$ref:\"#/visitors/document/objects/Schema\"},unevaluatedProperties:{$ref:\"#/visitors/document/objects/Schema\"},type:qx,enum:$x,const:Ux,multipleOf:zx,maximum:Vx,exclusiveMaximum:Wx,minimum:Kx,exclusiveMinimum:Hx,maxLength:Jx,minLength:Gx,pattern:Xx,maxItems:Yx,minItems:Qx,uniqueItems:Zx,maxContains:eO,minContains:tO,maxProperties:rO,minProperties:nO,required:oO,dependentRequired:iO,title:aO,description:sO,default:cO,deprecated:lO,readOnly:uO,writeOnly:pO,examples:hO,format:dO,contentEncoding:fO,contentMediaType:mO,contentSchema:{$ref:\"#/visitors/document/objects/Schema\"},discriminator:{$ref:\"#/visitors/document/objects/Discriminator\"},xml:{$ref:\"#/visitors/document/objects/XML\"},externalDocs:{$ref:\"#/visitors/document/objects/ExternalDocumentation\"},example:yO}},Discriminator:{$visitor:vO,fixedFields:{propertyName:BE.visitors.document.objects.Discriminator.fixedFields.propertyName,mapping:BE.visitors.document.objects.Discriminator.fixedFields.mapping}},XML:{$visitor:_O,fixedFields:{name:BE.visitors.document.objects.XML.fixedFields.name,namespace:BE.visitors.document.objects.XML.fixedFields.namespace,prefix:BE.visitors.document.objects.XML.fixedFields.prefix,attribute:BE.visitors.document.objects.XML.fixedFields.attribute,wrapped:BE.visitors.document.objects.XML.fixedFields.wrapped}},SecurityScheme:{$visitor:WO,fixedFields:{type:BE.visitors.document.objects.SecurityScheme.fixedFields.type,description:BE.visitors.document.objects.SecurityScheme.fixedFields.description,name:BE.visitors.document.objects.SecurityScheme.fixedFields.name,in:BE.visitors.document.objects.SecurityScheme.fixedFields.in,scheme:BE.visitors.document.objects.SecurityScheme.fixedFields.scheme,bearerFormat:BE.visitors.document.objects.SecurityScheme.fixedFields.bearerFormat,flows:{$ref:\"#/visitors/document/objects/OAuthFlows\"},openIdConnectUrl:BE.visitors.document.objects.SecurityScheme.fixedFields.openIdConnectUrl}},OAuthFlows:{$visitor:HO,fixedFields:{implicit:{$ref:\"#/visitors/document/objects/OAuthFlow\"},password:{$ref:\"#/visitors/document/objects/OAuthFlow\"},clientCredentials:{$ref:\"#/visitors/document/objects/OAuthFlow\"},authorizationCode:{$ref:\"#/visitors/document/objects/OAuthFlow\"}}},OAuthFlow:{$visitor:GO,fixedFields:{authorizationUrl:BE.visitors.document.objects.OAuthFlow.fixedFields.authorizationUrl,tokenUrl:BE.visitors.document.objects.OAuthFlow.fixedFields.tokenUrl,refreshUrl:BE.visitors.document.objects.OAuthFlow.fixedFields.refreshUrl,scopes:BE.visitors.document.objects.OAuthFlow.fixedFields.scopes}},SecurityRequirement:{$visitor:BS}},extension:{$visitor:BE.visitors.document.extension.$visitor}}}};function apidom_ns_openapi_3_1_es_traversal_visitor_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}const apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType=i=>{if(wd(i))return`${i.element.charAt(0).toUpperCase()+i.element.slice(1)}Element`},ZO=function apidom_ns_openapi_3_1_es_traversal_visitor_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?apidom_ns_openapi_3_1_es_traversal_visitor_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):apidom_ns_openapi_3_1_es_traversal_visitor_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}({CallbackElement:[\"content\"],ComponentsElement:[\"content\"],ContactElement:[\"content\"],DiscriminatorElement:[\"content\"],Encoding:[\"content\"],Example:[\"content\"],ExternalDocumentationElement:[\"content\"],HeaderElement:[\"content\"],InfoElement:[\"content\"],LicenseElement:[\"content\"],MediaTypeElement:[\"content\"],OAuthFlowElement:[\"content\"],OAuthFlowsElement:[\"content\"],OpenApi3_1Element:[\"content\"],OperationElement:[\"content\"],ParameterElement:[\"content\"],PathItemElement:[\"content\"],PathsElement:[\"content\"],ReferenceElement:[\"content\"],RequestBodyElement:[\"content\"],ResponseElement:[\"content\"],ResponsesElement:[\"content\"],SchemaElement:[\"content\"],SecurityRequirementElement:[\"content\"],SecuritySchemeElement:[\"content\"],ServerElement:[\"content\"],ServerVariableElement:[\"content\"],TagElement:[\"content\"]},ff),ck={namespace:i=>{const{base:s}=i;return s.register(\"callback\",qE),s.register(\"components\",$E),s.register(\"contact\",UE),s.register(\"discriminator\",zE),s.register(\"encoding\",VE),s.register(\"example\",WE),s.register(\"externalDocumentation\",KE),s.register(\"header\",HE),s.register(\"info\",JE),s.register(\"jsonSchemaDialect\",GE),s.register(\"license\",XE),s.register(\"link\",YE),s.register(\"mediaType\",QE),s.register(\"oAuthFlow\",ZE),s.register(\"oAuthFlows\",eS),s.register(\"openapi\",tS),s.register(\"openApi3_1\",rS),s.register(\"operation\",nS),s.register(\"parameter\",oS),s.register(\"pathItem\",iS),s.register(\"paths\",aS),s.register(\"reference\",sS),s.register(\"requestBody\",cS),s.register(\"response\",lS),s.register(\"responses\",uS),s.register(\"schema\",pS),s.register(\"securityRequirement\",hS),s.register(\"securityScheme\",dS),s.register(\"server\",fS),s.register(\"serverVariable\",mS),s.register(\"tag\",yS),s.register(\"xml\",gS),s}},yk=ck;function apidom_ns_openapi_3_1_es_refractor_toolbox_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function apidom_ns_openapi_3_1_es_refractor_toolbox_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?apidom_ns_openapi_3_1_es_refractor_toolbox_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):apidom_ns_openapi_3_1_es_refractor_toolbox_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}const apidom_ns_openapi_3_1_es_refractor_toolbox=()=>{const i=createNamespace(yk);return{predicates:apidom_ns_openapi_3_1_es_refractor_toolbox_objectSpread(apidom_ns_openapi_3_1_es_refractor_toolbox_objectSpread({},we),{},{isStringElement:Ed,isArrayElement:Ad,isObjectElement:kd,includesClasses}),namespace:i}};function apidom_ns_openapi_3_1_es_refractor_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}const apidom_ns_openapi_3_1_es_refractor_refract=(i,{specPath:s=[\"visitors\",\"document\",\"objects\",\"OpenApi\",\"$visitor\"],plugins:u=[]}={})=>{const m=(0,Nl.Qc)(i),v=dereference(QO),_=bd(s,[],v);return visitor_visit(m,_,{state:{specObj:v}}),dispatchPlugins(_.element,u,{toolboxCreator:apidom_ns_openapi_3_1_es_refractor_toolbox,visitorOptions:{keyMap:ZO,nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType}})},apidom_ns_openapi_3_1_es_refractor_createRefractor=i=>(s,u={})=>apidom_ns_openapi_3_1_es_refractor_refract(s,function apidom_ns_openapi_3_1_es_refractor_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?apidom_ns_openapi_3_1_es_refractor_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):apidom_ns_openapi_3_1_es_refractor_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}({specPath:i},u));qE.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Callback\",\"$visitor\"]),$E.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Components\",\"$visitor\"]),UE.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Contact\",\"$visitor\"]),WE.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Example\",\"$visitor\"]),zE.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Discriminator\",\"$visitor\"]),VE.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Encoding\",\"$visitor\"]),KE.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"ExternalDocumentation\",\"$visitor\"]),HE.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Header\",\"$visitor\"]),JE.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Info\",\"$visitor\"]),GE.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"OpenApi\",\"fixedFields\",\"jsonSchemaDialect\"]),XE.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"License\",\"$visitor\"]),YE.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Link\",\"$visitor\"]),QE.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"MediaType\",\"$visitor\"]),ZE.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"OAuthFlow\",\"$visitor\"]),eS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"OAuthFlows\",\"$visitor\"]),tS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"OpenApi\",\"fixedFields\",\"openapi\"]),rS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"OpenApi\",\"$visitor\"]),nS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Operation\",\"$visitor\"]),oS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Parameter\",\"$visitor\"]),iS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"PathItem\",\"$visitor\"]),aS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Paths\",\"$visitor\"]),sS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Reference\",\"$visitor\"]),cS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"RequestBody\",\"$visitor\"]),lS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Response\",\"$visitor\"]),uS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Responses\",\"$visitor\"]),pS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Schema\",\"$visitor\"]),hS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"SecurityRequirement\",\"$visitor\"]),dS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"SecurityScheme\",\"$visitor\"]),fS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Server\",\"$visitor\"]),mS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"ServerVariable\",\"$visitor\"]),yS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"Tag\",\"$visitor\"]),gS.refract=apidom_ns_openapi_3_1_es_refractor_createRefractor([\"visitors\",\"document\",\"objects\",\"XML\",\"$visitor\"]);const vk=class MediaTypes extends Array{constructor(...i){super(...i),defineProperty_defineProperty(this,\"unknownMediaType\",\"application/octet-stream\")}filterByFormat(){throw new Error(\"Not implemented!\")}findBy(){throw new Error(\"Not implemented\")}latest(){throw new Error(\"Not implemented!\")}};class OpenAPIMediaTypes extends vk{filterByFormat(i=\"generic\"){const s=\"generic\"===i?\"openapi;version\":i;return this.filter((i=>i.includes(s)))}findBy(i=\"3.1.0\",s=\"generic\"){const u=\"generic\"===s?`vnd.oai.openapi;version=${i}`:`vnd.oai.openapi+${s};version=${i}`;return this.find((i=>i.includes(u)))||this.unknownMediaType}latest(i=\"generic\"){return Cp(this.filterByFormat(i))}}const _k=new OpenAPIMediaTypes(\"application/vnd.oai.openapi;version=3.1.0\",\"application/vnd.oai.openapi+json;version=3.1.0\",\"application/vnd.oai.openapi+yaml;version=3.1.0\");var wk=__webpack_require__(34155),Ek=Yu((function(i,s){return pipe_pipe(lh(\"\"),ip(_d(i)),Ap(\"\"))(s)}));const Sk=Ek;const xk=qu(Fh);const Ok=ql(1,pipe_pipe(Gl,_p(\"RegExp\")));const Ak=jh(Zd,Zp(/[.*+?^${}()|[\\]\\\\-]/g,\"\\\\$&\"));var Ck=function checkValue(i,s){if(\"string\"!=typeof i&&!(i instanceof String))throw TypeError(\"`\".concat(s,\"` must be a string\"))};const Pk=function replaceAll(i,s,u){!function checkArguments(i,s,u){if(null==u||null==i||null==s)throw TypeError(\"Input values must not be `null` or `undefined`\")}(i,s,u),Ck(u,\"str\"),Ck(s,\"replaceValue\"),function checkSearchValue(i){if(!(\"string\"==typeof i||i instanceof String||i instanceof RegExp))throw TypeError(\"`searchValue` must be a string or an regexp\")}(i);var m=new RegExp(Ok(i)?i:Ak(i),\"g\");return Zp(m,s,u)};var Ik=ql(3,Pk),Nk=Op(2,\"replaceAll\");const Tk=dd(String.prototype.replaceAll)?Nk:Ik,isWindows=()=>Vp(_h(/^win/),[\"platform\"],wk),getProtocol=i=>{try{const s=new URL(i);return Sk(\":\",s.protocol)}catch{return}},Mk=(pipe_pipe(getProtocol,xk),i=>{if(wk.browser)return!1;const s=getProtocol(i);return Fh(s)||\"file\"===s||/^[a-zA-Z]$/.test(s)}),isHttpUrl=i=>{const s=getProtocol(i);return\"http\"===s||\"https\"===s},toFileSystemPath=(i,s)=>{const u=[/%23/g,\"#\",/%24/g,\"$\",/%26/g,\"&\",/%2C/g,\",\",/%40/g,\"@\"],m=Hp(!1,\"keepFileProtocol\",s),v=Hp(isWindows,\"isWindows\",s);let _=decodeURI(i);for(let i=0;i<u.length;i+=2)_=_.replace(u[i],u[i+1]);let j=\"file://\"===_.substr(0,7).toLowerCase();return j&&(_=\"/\"===_[7]?_.substr(8):_.substr(7),v()&&\"/\"===_[1]&&(_=`${_[0]}:${_.substr(1)}`),m?_=`file:///${_}`:(j=!1,_=v()?_:`/${_}`)),v()&&!j&&(_=Tk(\"/\",\"\\\\\",_),\":\\\\\"===_.substr(1,2)&&(_=_[0].toUpperCase()+_.substr(1))),_},url_getHash=i=>{const s=i.indexOf(\"#\");return-1!==s?i.substr(s):\"#\"},stripHash=i=>{const s=i.indexOf(\"#\");let u=i;return s>=0&&(u=i.substr(0,s)),u},url_cwd=()=>{if(wk.browser)return stripHash(globalThis.location.href);const i=wk.cwd(),s=Cp(i);return[\"/\",\"\\\\\"].includes(s)?i:i+(isWindows()?\"\\\\\":\"/\")},resolve=(i,s)=>{const u=new URL(s,new URL(i,\"resolve://\"));if(\"resolve:\"===u.protocol){const{pathname:i,search:s,hash:m}=u;return i+s+m}return u.toString()},sanitize=i=>Mk(i)?(i=>{const s=[/\\?/g,\"%3F\",/#/g,\"%23\"];let u=i;isWindows()&&(u=u.replace(/\\\\/g,\"/\")),u=encodeURI(u);for(let i=0;i<s.length;i+=2)u=u.replace(s[i],s[i+1]);return u})(toFileSystemPath(i)):encodeURI(decodeURI(i)).replace(/%5B/g,\"[\").replace(/%5D/g,\"]\"),unsanitize=i=>Mk(i)?toFileSystemPath(i):decodeURI(i),Rk=Qd({props:{uri:\"\",value:null,depth:0,refSet:null,errors:[]},init({depth:i=this.depth,refSet:s=this.refSet,uri:u=this.uri,value:m=this.value}={}){this.uri=u,this.value=m,this.depth=i,this.refSet=s,this.errors=[]}}),Dk=Rk,Bk=Qd({props:{rootRef:null,refs:[],circular:!1},init({refs:i=[]}={}){this.refs=[],i.forEach((i=>this.add(i)))},methods:{get size(){return this.refs.length},add(i){return this.has(i)||(this.refs.push(i),this.rootRef=null===this.rootRef?i:this.rootRef,i.refSet=this),this},merge(i){for(const s of i.values())this.add(s);return this},has(i){const s=Zd(i)?i:i.uri;return xk(this.find(Kp(s,\"uri\")))},find(i){return this.refs.find(i)},*values(){yield*this.refs},clean(){this.refs.forEach((i=>{i.refSet=null})),this.refs=[]}}}),Lk=Bk,Fk={parse:{mediaType:\"text/plain\",parsers:[],parserOpts:{}},resolve:{baseURI:\"\",resolvers:[],resolverOpts:{},strategies:[],external:!0,maxDepth:1/0},dereference:{strategies:[],refSet:null,maxDepth:1/0}},$k=jp(Np([\"resolve\",\"baseURI\"]),Nu([\"resolve\",\"baseURI\"])),baseURIDefault=i=>Af(i)?url_cwd():i,Uk=Qd({props:{uri:null,mediaType:\"text/plain\",data:null,parseResult:null},init({uri:i=this.uri,mediaType:s=this.mediaType,data:u=this.data,parseResult:m=this.parseResult}={}){this.uri=i,this.mediaType=s,this.data=u,this.parseResult=m},methods:{get extension(){return Zd(this.uri)?(i=>{const s=i.lastIndexOf(\".\");return s>=0?i.substr(s).toLowerCase():\"\"})(this.uri):\"\"},toString(){if(\"string\"==typeof this.data)return this.data;if(this.data instanceof ArrayBuffer||[\"ArrayBuffer\"].includes(Gl(this.data))||ArrayBuffer.isView(this.data)){return new TextDecoder(\"utf-8\").decode(this.data)}return String(this.data)}}}),zk=Uk;class CausedError extends Error{constructor(i,s){if(super(i),this.name=this.constructor.name,this.message=i,\"function\"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(i).stack,Kd(s)&&vp(\"cause\",s)&&!vp(\"cause\",this)){const{cause:i}=s;this.cause=i,vp(\"stack\",i)&&(this.stack=`${this.stack}\\nCAUSE: ${null==i?void 0:i.stack}`)}}}const Vk=CausedError;const Wk=class PluginError extends Vk{constructor(i,s){super(i,{cause:s.cause}),defineProperty_defineProperty(this,\"plugin\",void 0),this.plugin=s.plugin}},plugins_filter=async(i,s,u)=>{const m=await Promise.all(u.map(bd([i],[s])));return u.filter(((i,s)=>m[s]))},run=async(i,s,u)=>{let m;for(const v of u)try{const u=await v[i].call(v,...s);return{plugin:v,result:u}}catch(i){m=new Wk(\"Error while running plugin\",{cause:i,plugin:v})}return Promise.reject(m)};const Kk=class ParserError extends Vk{};const Hk=class UnmatchedDereferenceStrategyError extends Kk{};const Jk=class DereferenceError extends Vk{},dereferenceApiDOM=async(i,s)=>{let u=i,m=!1;if(!Rd(i)){const s=new i.constructor(i.content,i.meta.clone(),i.attributes);s.classes.push(\"result\"),u=new zh([s]),m=!0}const v=zk({uri:s.resolve.baseURI,parseResult:u,mediaType:s.parse.mediaType}),_=await plugins_filter(\"canDereference\",v,s.dereference.strategies);if(kp(_))throw new Hk(v.uri);try{const{result:i}=await run(\"dereference\",[v,s],_);return m?i.get(0):i}catch(i){throw new Jk(`Error while dereferencing file \"${v.uri}\"`,{cause:i})}},es_dereferenceApiDOM=async(i,s={})=>{const u=((i,s)=>{const u=Fp(i,s);return Up($k,baseURIDefault,u)})(Fk,s);return dereferenceApiDOM(i,u)};const Gk=class NotImplementedError extends Vk{constructor(i=\"Not Implemented\",s){super(i,s)}},Xk=Qd({props:{name:\"\",allowEmpty:!0,sourceMap:!1,fileExtensions:[],mediaTypes:[]},init({allowEmpty:i=this.allowEmpty,sourceMap:s=this.sourceMap,fileExtensions:u=this.fileExtensions,mediaTypes:m=this.mediaTypes}={}){this.allowEmpty=i,this.sourceMap=s,this.fileExtensions=u,this.mediaTypes=m},methods:{async canParse(){throw new Gk},async parse(){throw new Gk}}}),Yk=Xk,Qk=Qd(Yk,{props:{name:\"binary\"},methods:{async canParse(i){return 0===this.fileExtensions.length||this.fileExtensions.includes(i.extension)},async parse(i){try{const s=unescape(encodeURIComponent(i.toString())),u=btoa(s),m=new zh;if(0!==u.length){const i=new Nl.RP(u);i.classes.push(\"result\"),m.push(i)}return m}catch(s){throw new Kk(`Error parsing \"${i.uri}\"`,{cause:s})}}}}),Zk=Qd({props:{name:null},methods:{canResolve:()=>!1,async resolve(){throw new Gk}}});const eA=ql(1,gu(Promise.all,Promise));const tA=class ResolverError extends Vk{};const rA=class MaximumResolverDepthError extends tA{};const nA=class MaximumDereferenceDepthError extends Jk{};const oA=class UnmatchedResolverError extends tA{};function parse_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function parse_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?parse_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):parse_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}const _swagger_api_apidom_reference_es_parse=async(i,s)=>{const u=zk({uri:sanitize(stripHash(i)),mediaType:s.parse.mediaType}),m=await(async(i,s)=>{const u=s.resolve.resolvers.map((i=>{const u=Object.create(i);return Object.assign(u,s.resolve.resolverOpts)})),m=await plugins_filter(\"canRead\",i,u);if(kp(m))throw new oA(i.uri);try{const{result:s}=await run(\"read\",[i],m);return s}catch(s){throw new tA(`Error while reading file \"${i.uri}\"`,{cause:s})}})(u,s);return(async(i,s)=>{const u=s.parse.parsers.map((i=>{const u=Object.create(i);return Object.assign(u,s.parse.parserOpts)})),m=await plugins_filter(\"canParse\",i,u);if(kp(m))throw new oA(i.uri);try{const{plugin:s,result:u}=await run(\"parse\",[i],m);return!s.allowEmpty&&u.isEmpty?Promise.reject(new Kk(`Error while parsing file \"${i.uri}\". File is empty.`)):u}catch(s){throw new Kk(`Error while parsing file \"${i.uri}\"`,{cause:s})}})(zk(parse_objectSpread(parse_objectSpread({},u),{},{data:m})),s)},traversal_filter=(i,s)=>{const u=yf({predicate:i});return visitor_visit(s,u),new Nl.O4(u.result)};class EvaluationJsonSchemaUriError extends Error{constructor(i){super(i),this.name=this.constructor.name,this.message=i,\"function\"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(i).stack}}const traversal_find=(i,s)=>{const u=yf({predicate:i,returnOnTrue:tf});return visitor_visit(s,u),zp(void 0,[0],u.result)};const iA=class InvalidSelectorError extends Vk{};class InvalidJsonSchema$anchorError extends iA{constructor(i){super(`Invalid JSON Schema $anchor \"${i}\".`)}}class EvaluationJsonSchema$anchorError extends Error{constructor(i){super(i),this.name=this.constructor.name,this.message=i,\"function\"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(i).stack}}const isAnchor=i=>/^[A-Za-z_][A-Za-z_0-9.-]*$/.test(i),uriToAnchor=i=>{const s=url_getHash(i);return Df(\"#\",s)},$anchor_evaluate=(i,s)=>{const u=(i=>{if(!isAnchor(i))throw new InvalidJsonSchema$anchorError(i);return i})(i),m=traversal_find((i=>{var s;return yx(i)&&(null===(s=i.$anchor)||void 0===s?void 0:s.toValue())===u}),s);if(Fh(m))throw new EvaluationJsonSchema$anchorError(`Evaluation failed on token: \"${u}\"`);return m},resolveSchema$refField=(i,s)=>{if(void 0===s.$ref)return;const u=url_getHash(s.$ref.toValue()),m=s.meta.get(\"inherited$id\").toValue(),v=wu(((i,s)=>resolve(i,sanitize(stripHash(s)))),i,[...m,s.$ref.toValue()]);return`${v}${\"#\"===u?\"\":u}`},refractToSchemaElement=i=>{if(refractToSchemaElement.cache.has(i))return refractToSchemaElement.cache.get(i);const s=pS.refract(i);return refractToSchemaElement.cache.set(i,s),s};refractToSchemaElement.cache=new WeakMap;const maybeRefractToSchemaElement=i=>isPrimitiveElement(i)?refractToSchemaElement(i):i,uri_evaluate=(i,s)=>{const{cache:u}=uri_evaluate,m=stripHash(i),isSchemaElementWith$id=i=>yx(i)&&void 0!==i.$id;if(!u.has(s)){const i=traversal_filter(isSchemaElementWith$id,s);u.set(s,Array.from(i))}const v=u.get(s).find((i=>{const s=((i,s)=>{if(void 0===s.$id)return;const u=s.meta.get(\"inherited$id\").toValue();return wu(((i,s)=>resolve(i,sanitize(stripHash(s)))),i,[...u,s.$id.toValue()])})(m,i);return s===m}));if(Fh(v))throw new EvaluationJsonSchemaUriError(`Evaluation failed on URI: \"${i}\"`);let _,j;return isAnchor(uriToAnchor(i))?(_=$anchor_evaluate,j=uriToAnchor(i)):(_=evaluate,j=uriToPointer(i)),_(j,v)};function openapi_3_1_visitor_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function openapi_3_1_visitor_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?openapi_3_1_visitor_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):openapi_3_1_visitor_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}uri_evaluate.cache=new WeakMap;const aA=visitor_visit[Symbol.for(\"nodejs.util.promisify.custom\")],sA=Qd({props:{indirections:[],namespace:null,reference:null,crawledElements:null,crawlingMap:null,visited:null,options:null},init({reference:i,namespace:s,indirections:u=[],visited:m=new WeakSet,options:v}){this.indirections=u,this.namespace=s,this.reference=i,this.crawledElements=[],this.crawlingMap={},this.visited=m,this.options=v},methods:{toBaseURI(i){return resolve(this.reference.uri,sanitize(stripHash(i)))},async toReference(i){if(this.reference.depth>=this.options.resolve.maxDepth)throw new rA(`Maximum resolution depth of ${this.options.resolve.maxDepth} has been exceeded by file \"${this.reference.uri}\"`);const s=this.toBaseURI(i),{refSet:u}=this.reference;if(u.has(s))return u.find(Kp(s,\"uri\"));const m=await _swagger_api_apidom_reference_es_parse(unsanitize(s),openapi_3_1_visitor_objectSpread(openapi_3_1_visitor_objectSpread({},this.options),{},{parse:openapi_3_1_visitor_objectSpread(openapi_3_1_visitor_objectSpread({},this.options.parse),{},{mediaType:\"text/plain\"})})),v=Dk({uri:s,value:m,depth:this.reference.depth+1});return u.add(v),v},ReferenceElement(i){var s;if(!this.options.resolve.external&&predicates_isReferenceElementExternal(i))return!1;const u=null===(s=i.$ref)||void 0===s?void 0:s.toValue(),m=this.toBaseURI(u);gp(m,this.crawlingMap)||(this.crawlingMap[m]=this.toReference(u)),this.crawledElements.push(i)},PathItemElement(i){var s;if(!Ed(i.$ref))return;if(!this.options.resolve.external&&predicates_isPathItemElementExternal(i))return;const u=null===(s=i.$ref)||void 0===s?void 0:s.toValue(),m=this.toBaseURI(u);gp(m,this.crawlingMap)||(this.crawlingMap[m]=this.toReference(u)),this.crawledElements.push(i)},LinkElement(i){if((Ed(i.operationRef)||Ed(i.operationId))&&(this.options.resolve.external||!predicates_isLinkElementExternal(i))){if(Ed(i.operationRef)&&Ed(i.operationId))throw new Error(\"LinkElement operationRef and operationId are mutually exclusive.\");if(predicates_isLinkElementExternal(i)){var s;const u=null===(s=i.operationRef)||void 0===s?void 0:s.toValue(),m=this.toBaseURI(u);gp(m,this.crawlingMap)||(this.crawlingMap[m]=this.toReference(u))}}},ExampleElement(i){var s;if(!Ed(i.externalValue))return;if(!this.options.resolve.external&&Ed(i.externalValue))return;if(i.hasKey(\"value\")&&Ed(i.externalValue))throw new Error(\"ExampleElement value and externalValue fields are mutually exclusive.\");const u=null===(s=i.externalValue)||void 0===s?void 0:s.toValue(),m=this.toBaseURI(u);gp(m,this.crawlingMap)||(this.crawlingMap[m]=this.toReference(u))},async SchemaElement(i){if(this.visited.has(i))return!1;if(!Ed(i.$ref))return void this.visited.add(i);const s=await this.toReference(unsanitize(this.reference.uri)),{uri:u}=s,m=resolveSchema$refField(u,i),v=stripHash(m),_=zk({uri:v}),j=$p((i=>i.canRead(_)),this.options.resolve.resolvers),M=!j,$=!j&&u!==v;if(this.options.resolve.external||!$){if(!gp(v,this.crawlingMap))try{this.crawlingMap[v]=j||M?s:this.toReference(unsanitize(m))}catch(i){if(!(M&&i instanceof EvaluationJsonSchemaUriError))throw i;this.crawlingMap[v]=this.toReference(unsanitize(m))}this.crawledElements.push(i)}else this.visited.add(i)},async crawlReferenceElement(i){var s;const u=await this.toReference(i.$ref.toValue());this.indirections.push(i);const m=uriToPointer(null===(s=i.$ref)||void 0===s?void 0:s.toValue());let v=evaluate(m,u.value.result);if(isPrimitiveElement(v)){const s=i.meta.get(\"referenced-element\").toValue();if(isReferenceLikeElement(v))v=sS.refract(v),v.setMetaProperty(\"referenced-element\",s);else{v=this.namespace.getElementClass(s).refract(v)}}if(this.indirections.includes(v))throw new Error(\"Recursive Reference Object detected\");if(this.indirections.length>this.options.dereference.maxDepth)throw new nA(`Maximum dereference depth of \"${this.options.dereference.maxDepth}\" has been exceeded in file \"${this.reference.uri}\"`);const _=sA({reference:u,namespace:this.namespace,indirections:[...this.indirections],options:this.options});await aA(v,_,{keyMap:ZO,nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType}),await _.crawl(),this.indirections.pop()},async crawlPathItemElement(i){var s;const u=await this.toReference(i.$ref.toValue());this.indirections.push(i);const m=uriToPointer(null===(s=i.$ref)||void 0===s?void 0:s.toValue());let v=evaluate(m,u.value.result);if(isPrimitiveElement(v)&&(v=iS.refract(v)),this.indirections.includes(v))throw new Error(\"Recursive Path Item Object reference detected\");if(this.indirections.length>this.options.dereference.maxDepth)throw new nA(`Maximum dereference depth of \"${this.options.dereference.maxDepth}\" has been exceeded in file \"${this.reference.uri}\"`);const _=sA({reference:u,namespace:this.namespace,indirections:[...this.indirections],options:this.options});await aA(v,_,{keyMap:ZO,nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType}),await _.crawl(),this.indirections.pop()},async crawlSchemaElement(i){let s=await this.toReference(unsanitize(this.reference.uri));const{uri:u}=s,m=resolveSchema$refField(u,i),v=stripHash(m),_=zk({uri:v}),j=$p((i=>i.canRead(_)),this.options.resolve.resolvers),M=!j;let $;this.indirections.push(i);try{if(j||M){$=uri_evaluate(m,maybeRefractToSchemaElement(s.value.result))}else{s=await this.toReference(unsanitize(m));const i=uriToPointer(m);$=maybeRefractToSchemaElement(evaluate(i,s.value.result))}}catch(i){if(!(M&&i instanceof EvaluationJsonSchemaUriError))throw i;if(isAnchor(uriToAnchor(m))){s=await this.toReference(unsanitize(m));const i=uriToAnchor(m);$=$anchor_evaluate(i,maybeRefractToSchemaElement(s.value.result))}else{s=await this.toReference(unsanitize(m));const i=uriToPointer(m);$=maybeRefractToSchemaElement(evaluate(i,s.value.result))}}if(this.visited.add(i),this.indirections.includes($))throw new Error(\"Recursive Schema Object reference detected\");if(this.indirections.length>this.options.dereference.maxDepth)throw new nA(`Maximum dereference depth of \"${this.options.dereference.maxDepth}\" has been exceeded in file \"${this.reference.uri}\"`);const W=sA({reference:s,namespace:this.namespace,indirections:[...this.indirections],options:this.options,visited:this.visited});await aA($,W,{keyMap:ZO,nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType}),await W.crawl(),this.indirections.pop()},async crawl(){await pipe_pipe(Pu,eA)(this.crawlingMap),this.crawlingMap=null;for(const i of this.crawledElements)hx(i)?await this.crawlReferenceElement(i):yx(i)?await this.crawlSchemaElement(i):ux(i)&&await this.crawlPathItemElement(i)}}}),cA=sA,lA=visitor_visit[Symbol.for(\"nodejs.util.promisify.custom\")],uA=Qd(Zk,{init(){this.name=\"openapi-3-1\"},methods:{canResolve(i){var s;return\"text/plain\"!==i.mediaType?_k.includes(i.mediaType):sx(null===(s=i.parseResult)||void 0===s?void 0:s.result)},async resolve(i,s){const u=createNamespace(yk),m=Dk({uri:i.uri,value:i.parseResult}),v=cA({reference:m,namespace:u,options:s}),_=Lk();return _.add(m),await lA(_.rootRef.value,v,{keyMap:ZO,nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType}),await v.crawl(),_}}}),pA=uA,removeSpaces=i=>i.replace(/\\s/g,\"\"),normalize_operation_ids_replaceSpecialCharsWithUnderscore=i=>i.replace(/\\W/gi,\"_\"),normalizeOperationId=(i,s,u)=>{const m=removeSpaces(i);return m.length>0?normalize_operation_ids_replaceSpecialCharsWithUnderscore(m):((i,s)=>`${normalize_operation_ids_replaceSpecialCharsWithUnderscore(removeSpaces(s.toLowerCase()))}${normalize_operation_ids_replaceSpecialCharsWithUnderscore(removeSpaces(i))}`)(s,u)},normalize_operation_ids=({operationIdNormalizer:i=normalizeOperationId}={})=>({predicates:s,namespace:u})=>{const m=[],v=[],_=[];return{visitor:{OpenApi3_1Element:{leave(){const i=mp((i=>toValue(i.operationId)),v);Object.entries(i).forEach((([i,s])=>{Array.isArray(s)&&(s.length<=1||s.forEach(((s,m)=>{const v=`${i}${m+1}`;s.operationId=new u.elements.String(v)})))})),_.forEach((i=>{var s;if(void 0===i.operationId)return;const u=String(toValue(i.operationId)),m=v.find((i=>toValue(i.meta.get(\"originalOperationId\"))===u));void 0!==m&&(i.operationId=null===(s=m.operationId)||void 0===s?void 0:s.clone(),i.meta.set(\"originalOperationId\",u),i.set(\"__originalOperationId\",u))})),v.length=0,_.length=0}},PathItemElement:{enter(i){const s=Qu(\"path\",toValue(i.meta.get(\"path\")));m.push(s)},leave(){m.pop()}},OperationElement:{enter(s){if(void 0===s.operationId)return;const _=String(toValue(s.operationId)),j=Cp(m),M=Qu(\"method\",toValue(s.meta.get(\"http-method\"))),$=i(_,j,M);_!==$&&(s.operationId=new u.elements.String($),s.set(\"__originalOperationId\",_),s.meta.set(\"originalOperationId\",_),v.push(s))}},LinkElement:{leave(i){s.isLinkElement(i)&&void 0!==i.operationId&&_.push(i)}}}}},normalize_parameters=()=>({predicates:i})=>{const parameterEquals=(s,u)=>!!i.isParameterElement(s)&&(!!i.isParameterElement(u)&&(!!i.isStringElement(s.name)&&(!!i.isStringElement(s.in)&&(!!i.isStringElement(u.name)&&(!!i.isStringElement(u.in)&&(toValue(s.name)===toValue(u.name)&&toValue(s.in)===toValue(u.in))))))),s=[];return{visitor:{PathItemElement:{enter(u,m,v,_,j){if(j.some(i.isComponentsElement))return;const{parameters:M}=u;i.isArrayElement(M)?s.push([...M.content]):s.push([])},leave(){s.pop()}},OperationElement:{leave(i){const u=Cp(s);if(!Array.isArray(u)||0===u.length)return;const m=zp([],[\"parameters\",\"content\"],i),v=kh(parameterEquals,[...m,...u]);i.parameters=new Zw(v)}}}}},normalize_security_requirements=()=>({predicates:i})=>{let s;return{visitor:{OpenApi3_1Element:{enter(u){i.isArrayElement(u.security)&&(s=u.security)},leave(){s=void 0}},OperationElement:{leave(u,m,v,_,j){if(j.some(i.isComponentsElement))return;var M;void 0===u.security&&void 0!==s&&(u.security=new aE(null===(M=s)||void 0===M?void 0:M.content))}}}}},normalize_servers=()=>({predicates:i})=>{let s;const u=[];return{visitor:{OpenApi3_1Element:{enter(u){var m;i.isArrayElement(u.servers)&&(s=null===(m=u.servers)||void 0===m?void 0:m.content)},leave(){s=void 0}},PathItemElement:{enter(m,v,_,j,M){if(M.some(i.isComponentsElement))return;void 0===m.servers&&void 0!==s&&(m.servers=new fE(s));const{servers:$}=m;void 0!==$&&i.isArrayElement($)?u.push([...$.content]):u.push(void 0)},leave(){u.pop()}},OperationElement:{enter(s){const m=Cp(u);void 0!==m&&(i.isArrayElement(s.servers)||(s.servers=new cE(m)))}}}}},normalize_parameter_examples=()=>({predicates:i})=>({visitor:{ParameterElement:{leave(s,u,m,v,_){var j,M;if(!_.some(i.isComponentsElement)&&void 0!==s.schema&&i.isSchemaElement(s.schema)&&(void 0!==(null===(j=s.schema)||void 0===j?void 0:j.example)||void 0!==(null===(M=s.schema)||void 0===M?void 0:M.examples))){if(void 0!==s.examples&&i.isObjectElement(s.examples)){const i=s.examples.map((i=>{var s;return null===(s=i.value)||void 0===s?void 0:s.clone()}));return void 0!==s.schema.examples&&s.schema.set(\"examples\",i),void(void 0!==s.schema.example&&s.schema.set(\"example\",i))}void 0!==s.example&&(void 0!==s.schema.examples&&s.schema.set(\"examples\",[s.example.clone()]),void 0!==s.schema.example&&s.schema.set(\"example\",s.example.clone()))}}}}}),normalize_header_examples=()=>({predicates:i})=>({visitor:{HeaderElement:{leave(s,u,m,v,_){var j,M;if(!_.some(i.isComponentsElement)&&void 0!==s.schema&&i.isSchemaElement(s.schema)&&(void 0!==(null===(j=s.schema)||void 0===j?void 0:j.example)||void 0!==(null===(M=s.schema)||void 0===M?void 0:M.examples))){if(void 0!==s.examples&&i.isObjectElement(s.examples)){const i=s.examples.map((i=>{var s;return null===(s=i.value)||void 0===s?void 0:s.clone()}));return void 0!==s.schema.examples&&s.schema.set(\"examples\",i),void(void 0!==s.schema.example&&s.schema.set(\"example\",i))}void 0!==s.example&&(void 0!==s.schema.examples&&s.schema.set(\"examples\",[s.example.clone()]),void 0!==s.schema.example&&s.schema.set(\"example\",s.example.clone()))}}}}}),pojoAdapter=i=>s=>{if(s?.$$normalized)return s;if(pojoAdapter.cache.has(s))return s;const u=rS.refract(s),m=i(u),v=toValue(m);return pojoAdapter.cache.set(s,v),v};pojoAdapter.cache=new WeakMap;const openapi_3_1_apidom_normalize=i=>{if(!kd(i))return i;if(i.hasKey(\"$$normalized\"))return i;const s=[normalize_operation_ids({operationIdNormalizer:(i,s,u)=>opId({operationId:i},s,u,{v2OperationIdCompatibilityMode:!1})}),normalize_parameters(),normalize_security_requirements(),normalize_servers(),normalize_parameter_examples(),normalize_header_examples()],u=dispatchPlugins(i,s,{toolboxCreator:apidom_ns_openapi_3_1_es_refractor_toolbox,visitorOptions:{keyMap:ZO,nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType}});return u.set(\"$$normalized\",!0),u},hA=Qd({props:{name:null},methods:{canRead:()=>!1,async read(){throw new Gk}}}),dA=Qd(hA,{props:{timeout:5e3,redirects:5,withCredentials:!1},init({timeout:i=this.timeout,redirects:s=this.redirects,withCredentials:u=this.withCredentials}={}){this.timeout=i,this.redirects=s,this.withCredentials=u},methods:{canRead:i=>isHttpUrl(i.uri),async read(){throw new Gk},getHttpClient(){throw new Gk}}}).compose({props:{name:\"http-swagger-client\",swaggerHTTPClient:http_http,swaggerHTTPClientConfig:{}},init(){let{swaggerHTTPClient:i=this.swaggerHTTPClient}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.swaggerHTTPClient=i},methods:{getHttpClient(){return this.swaggerHTTPClient},async read(i){const s=this.getHttpClient(),u=new AbortController,{signal:m}=u,v=setTimeout((()=>{u.abort()}),this.timeout),_=this.getHttpClient().withCredentials||this.withCredentials?\"include\":\"same-origin\",j=0===this.redirects?\"error\":\"follow\",M=this.redirects>0?this.redirects:void 0;try{return(await s(rr()({url:i.uri,signal:m,userFetch:async(i,s)=>{let u=await fetch(i,s);try{u.headers.delete(\"Content-Type\")}catch{u=new Response(u.body,rr()(rr()({},u),{},{headers:new Headers(u.headers)})),u.headers.delete(\"Content-Type\")}return u},credentials:_,redirects:j,follow:M},this.swaggerHTTPClientConfig))).text.arrayBuffer()}catch(s){throw new tA(`Error downloading \"${i.uri}\"`,{cause:s})}finally{clearTimeout(v)}}}}),fA=Yk.compose({props:{name:\"json-swagger-client\",fileExtensions:[\".json\"],mediaTypes:[\"application/json\"]},methods:{async canParse(i){const s=0===this.fileExtensions.length||this.fileExtensions.includes(i.extension),u=this.mediaTypes.includes(i.mediaType);if(!s)return!1;if(u)return!0;if(!u)try{return JSON.parse(i.toString()),!0}catch(i){return!1}return!1},async parse(i){if(this.sourceMap)throw new Kk(\"json-swagger-client parser plugin doesn't support sourceMaps option\");const s=new zh,u=i.toString();if(this.allowEmpty&&\"\"===u.trim())return s;try{const i=from(JSON.parse(u));return i.classes.push(\"result\"),s.push(i),s}catch(s){throw new Kk(`Error parsing \"${i.uri}\"`,{cause:s})}}}}),mA=Yk.compose({props:{name:\"yaml-1-2-swagger-client\",fileExtensions:[\".yaml\",\".yml\"],mediaTypes:[\"text/yaml\",\"application/yaml\"]},methods:{async canParse(i){const s=0===this.fileExtensions.length||this.fileExtensions.includes(i.extension),u=this.mediaTypes.includes(i.mediaType);if(!s)return!1;if(u)return!0;if(!u)try{return co.load(i.toString(),{schema:Yn}),!0}catch(i){return!1}return!1},async parse(i){if(this.sourceMap)throw new Kk(\"yaml-1-2-swagger-client parser plugin doesn't support sourceMaps option\");const s=new zh,u=i.toString();try{const i=co.load(u,{schema:Yn});if(this.allowEmpty&&void 0===i)return s;const m=from(i);return m.classes.push(\"result\"),s.push(m),s}catch(s){throw new Kk(`Error parsing \"${i.uri}\"`,{cause:s})}}}}),yA=Yk.compose({props:{name:\"openapi-json-3-1-swagger-client\",fileExtensions:[\".json\"],mediaTypes:new OpenAPIMediaTypes(..._k.filterByFormat(\"generic\"),..._k.filterByFormat(\"json\")),detectionRegExp:/\"openapi\"\\s*:\\s*\"(?<version_json>3\\.1\\.(?:[1-9]\\d*|0))\"/},methods:{async canParse(i){const s=0===this.fileExtensions.length||this.fileExtensions.includes(i.extension),u=this.mediaTypes.includes(i.mediaType);if(!s)return!1;if(u)return!0;if(!u)try{const s=i.toString();return JSON.parse(s),this.detectionRegExp.test(s)}catch(i){return!1}return!1},async parse(i){if(this.sourceMap)throw new Kk(\"openapi-json-3-1-swagger-client parser plugin doesn't support sourceMaps option\");const s=new zh,u=i.toString();if(this.allowEmpty&&\"\"===u.trim())return s;try{const i=JSON.parse(u),m=rS.refract(i,this.refractorOpts);return m.classes.push(\"result\"),s.push(m),s}catch(s){throw new Kk(`Error parsing \"${i.uri}\"`,{cause:s})}}}}),gA=Yk.compose({props:{name:\"openapi-yaml-3-1-swagger-client\",fileExtensions:[\".yaml\",\".yml\"],mediaTypes:new OpenAPIMediaTypes(..._k.filterByFormat(\"generic\"),..._k.filterByFormat(\"yaml\")),detectionRegExp:/(?<YAML>^([\"']?)openapi\\2\\s*:\\s*([\"']?)(?<version_yaml>3\\.1\\.(?:[1-9]\\d*|0))\\3(?:\\s+|$))|(?<JSON>\"openapi\"\\s*:\\s*\"(?<version_json>3\\.1\\.(?:[1-9]\\d*|0))\")/m},methods:{async canParse(i){const s=0===this.fileExtensions.length||this.fileExtensions.includes(i.extension),u=this.mediaTypes.includes(i.mediaType);if(!s)return!1;if(u)return!0;if(!u)try{const s=i.toString();return co.load(s),this.detectionRegExp.test(s)}catch(i){return!1}return!1},async parse(i){if(this.sourceMap)throw new Kk(\"openapi-yaml-3-1-swagger-client parser plugin doesn't support sourceMaps option\");const s=new zh,u=i.toString();try{const i=co.load(u,{schema:Yn});if(this.allowEmpty&&void 0===i)return s;const m=rS.refract(i,this.refractorOpts);return m.classes.push(\"result\"),s.push(m),s}catch(s){throw new Kk(`Error parsing \"${i.uri}\"`,{cause:s})}}}}),vA=Qd({props:{name:null},methods:{canDereference:()=>!1,async dereference(){throw new Gk}}});function strategies_openapi_3_1_visitor_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function strategies_openapi_3_1_visitor_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?strategies_openapi_3_1_visitor_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):strategies_openapi_3_1_visitor_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}const bA=visitor_visit[Symbol.for(\"nodejs.util.promisify.custom\")],_A=Qd({props:{indirections:null,namespace:null,reference:null,options:null,ancestors:null},init({indirections:i=[],reference:s,namespace:u,options:m,ancestors:v=[]}){this.indirections=i,this.namespace=u,this.reference=s,this.options=m,this.ancestors=[...v]},methods:{toBaseURI(i){return resolve(this.reference.uri,sanitize(stripHash(i)))},toAncestorLineage(i){const s=new WeakSet(i.filter(wd));return[[...this.ancestors,s],s]},async toReference(i){if(this.reference.depth>=this.options.resolve.maxDepth)throw new rA(`Maximum resolution depth of ${this.options.resolve.maxDepth} has been exceeded by file \"${this.reference.uri}\"`);const s=this.toBaseURI(i),{refSet:u}=this.reference;if(u.has(s))return u.find(Kp(s,\"uri\"));const m=await _swagger_api_apidom_reference_es_parse(unsanitize(s),strategies_openapi_3_1_visitor_objectSpread(strategies_openapi_3_1_visitor_objectSpread({},this.options),{},{parse:strategies_openapi_3_1_visitor_objectSpread(strategies_openapi_3_1_visitor_objectSpread({},this.options.parse),{},{mediaType:\"text/plain\"})})),v=Dk({uri:s,value:m,depth:this.reference.depth+1});return u.add(v),v},async ReferenceElement(i,s,u,m,v){var _,j,M,$,W;const[X,Y]=this.toAncestorLineage([...v,u]);if(X.some((s=>s.has(i))))return!1;if(!this.options.resolve.external&&predicates_isReferenceElementExternal(i))return!1;const Z=await this.toReference(null===(_=i.$ref)||void 0===_?void 0:_.toValue()),{uri:ee}=Z,ie=resolve(ee,null===(j=i.$ref)||void 0===j?void 0:j.toValue());this.indirections.push(i);const ae=uriToPointer(ie);let ce=evaluate(ae,Z.value.result);if(isPrimitiveElement(ce)){const s=i.meta.get(\"referenced-element\").toValue();if(isReferenceLikeElement(ce))ce=sS.refract(ce),ce.setMetaProperty(\"referenced-element\",s);else{ce=this.namespace.getElementClass(s).refract(ce)}}if(this.indirections.includes(ce))throw new Error(\"Recursive Reference Object detected\");if(this.indirections.length>this.options.dereference.maxDepth)throw new nA(`Maximum dereference depth of \"${this.options.dereference.maxDepth}\" has been exceeded in file \"${this.reference.uri}\"`);Y.add(i);const le=_A({reference:Z,namespace:this.namespace,indirections:[...this.indirections],options:this.options,ancestors:X});ce=await bA(ce,le,{keyMap:ZO,nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType}),Y.delete(i),this.indirections.pop(),ce=ce.clone(),ce.setMetaProperty(\"ref-fields\",{$ref:null===(M=i.$ref)||void 0===M?void 0:M.toValue(),description:null===($=i.description)||void 0===$?void 0:$.toValue(),summary:null===(W=i.summary)||void 0===W?void 0:W.toValue()}),ce.setMetaProperty(\"ref-origin\",Z.uri);const pe=Vp(xk,[\"description\"],i),de=Vp(xk,[\"summary\"],i);return pe&&vp(\"description\",ce)&&(ce.description=i.description),de&&vp(\"summary\",ce)&&(ce.summary=i.summary),this.indirections.pop(),ce},async PathItemElement(i,s,u,m,v){var _,j,M;const[$,W]=this.toAncestorLineage([...v,u]);if(!Ed(i.$ref))return;if($.some((s=>s.has(i))))return!1;if(!this.options.resolve.external&&predicates_isPathItemElementExternal(i))return;const X=await this.toReference(null===(_=i.$ref)||void 0===_?void 0:_.toValue()),{uri:Y}=X,Z=resolve(Y,null===(j=i.$ref)||void 0===j?void 0:j.toValue());this.indirections.push(i);const ee=uriToPointer(Z);let ie=evaluate(ee,X.value.result);if(isPrimitiveElement(ie)&&(ie=iS.refract(ie)),this.indirections.includes(ie))throw new Error(\"Recursive Path Item Object reference detected\");if(this.indirections.length>this.options.dereference.maxDepth)throw new nA(`Maximum dereference depth of \"${this.options.dereference.maxDepth}\" has been exceeded in file \"${this.reference.uri}\"`);W.add(i);const ae=_A({reference:X,namespace:this.namespace,indirections:[...this.indirections],options:this.options,ancestors:$});ie=await bA(ie,ae,{keyMap:ZO,nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType}),W.delete(i),this.indirections.pop();const ce=new iS([...ie.content],ie.meta.clone(),ie.attributes.clone());return i.forEach(((i,s,u)=>{ce.remove(s.toValue()),ce.content.push(u)})),ce.remove(\"$ref\"),ce.setMetaProperty(\"ref-fields\",{$ref:null===(M=i.$ref)||void 0===M?void 0:M.toValue()}),ce.setMetaProperty(\"ref-origin\",X.uri),ce},async LinkElement(i){if(!Ed(i.operationRef)&&!Ed(i.operationId))return;if(!this.options.resolve.external&&predicates_isLinkElementExternal(i))return;if(Ed(i.operationRef)&&Ed(i.operationId))throw new Error(\"LinkElement operationRef and operationId fields are mutually exclusive.\");let s;if(Ed(i.operationRef)){var u,m,v;const _=uriToPointer(null===(u=i.operationRef)||void 0===u?void 0:u.toValue()),j=await this.toReference(null===(m=i.operationRef)||void 0===m?void 0:m.toValue());s=evaluate(_,j.value.result),isPrimitiveElement(s)&&(s=nS.refract(s)),s=new nS([...s.content],s.meta.clone(),s.attributes.clone()),s.setMetaProperty(\"ref-origin\",j.uri),null===(v=i.operationRef)||void 0===v||v.meta.set(\"operation\",s)}else if(Ed(i.operationId)){var _,j;const u=null===(_=i.operationId)||void 0===_?void 0:_.toValue(),m=await this.toReference(unsanitize(this.reference.uri));if(s=traversal_find((i=>cx(i)&&i.operationId.equals(u)),m.value.result),Fh(s))throw new Error(`OperationElement(operationId=${u}) not found.`);null===(j=i.operationId)||void 0===j||j.meta.set(\"operation\",s)}},async ExampleElement(i){var s;if(!Ed(i.externalValue))return;if(!this.options.resolve.external&&Ed(i.externalValue))return;if(i.hasKey(\"value\")&&Ed(i.externalValue))throw new Error(\"ExampleElement value and externalValue fields are mutually exclusive.\");const u=await this.toReference(null===(s=i.externalValue)||void 0===s?void 0:s.toValue()),m=new u.value.result.constructor(u.value.result.content,u.value.result.meta.clone(),u.value.result.attributes.clone());m.setMetaProperty(\"ref-origin\",u.uri),i.value=m},async SchemaElement(i,s,u,m,v){var _;const[j,M]=this.toAncestorLineage([...v,u]);if(!Ed(i.$ref))return;if(j.some((s=>s.has(i))))return!1;let $=await this.toReference(unsanitize(this.reference.uri)),{uri:W}=$;const X=resolveSchema$refField(W,i),Y=stripHash(X),Z=zk({uri:Y}),ee=$p((i=>i.canRead(Z)),this.options.resolve.resolvers),ie=!ee,ae=ie&&W!==Y;if(!this.options.resolve.external&&ae)return;let ce;this.indirections.push(i);try{if(ee||ie){ce=uri_evaluate(X,maybeRefractToSchemaElement($.value.result))}else{$=await this.toReference(unsanitize(X));const i=uriToPointer(X);ce=maybeRefractToSchemaElement(evaluate(i,$.value.result))}}catch(i){if(!(ie&&i instanceof EvaluationJsonSchemaUriError))throw i;if(isAnchor(uriToAnchor(X))){$=await this.toReference(unsanitize(X)),W=$.uri;const i=uriToAnchor(X);ce=$anchor_evaluate(i,maybeRefractToSchemaElement($.value.result))}else{$=await this.toReference(unsanitize(X)),W=$.uri;const i=uriToPointer(X);ce=maybeRefractToSchemaElement(evaluate(i,$.value.result))}}if(this.indirections.includes(ce))throw new Error(\"Recursive Schema Object reference detected\");if(this.indirections.length>this.options.dereference.maxDepth)throw new nA(`Maximum dereference depth of \"${this.options.dereference.maxDepth}\" has been exceeded in file \"${this.reference.uri}\"`);M.add(i);const le=_A({reference:$,namespace:this.namespace,indirections:[...this.indirections],options:this.options,ancestors:j});if(ce=await bA(ce,le,{keyMap:ZO,nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType}),M.delete(i),this.indirections.pop(),predicates_isBooleanJsonSchemaElement(ce)){var pe;const s=ce.clone();return s.setMetaProperty(\"ref-fields\",{$ref:null===(pe=i.$ref)||void 0===pe?void 0:pe.toValue()}),s.setMetaProperty(\"ref-origin\",$.uri),s}const de=new pS([...ce.content],ce.meta.clone(),ce.attributes.clone());return i.forEach(((i,s,u)=>{de.remove(s.toValue()),de.content.push(u)})),de.remove(\"$ref\"),de.setMetaProperty(\"ref-fields\",{$ref:null===(_=i.$ref)||void 0===_?void 0:_.toValue()}),de.setMetaProperty(\"ref-origin\",$.uri),de}}}),wA=_A,EA=visitor_visit[Symbol.for(\"nodejs.util.promisify.custom\")],SA=Qd(vA,{init(){this.name=\"openapi-3-1\"},methods:{canDereference(i){var s;return\"text/plain\"!==i.mediaType?_k.includes(i.mediaType):sx(null===(s=i.parseResult)||void 0===s?void 0:s.result)},async dereference(i,s){const u=createNamespace(yk),m=Qu(Lk(),s.dereference.refSet);let v;m.has(i.uri)?v=m.find(Kp(i.uri,\"uri\")):(v=Dk({uri:i.uri,value:i.parseResult}),m.add(v));const _=wA({reference:v,namespace:u,options:s}),j=await EA(m.rootRef.value,_,{keyMap:ZO,nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType});return null===s.dereference.refSet&&m.clean(),j}}}),xA=SA,to_path=i=>{const s=(i=>i.slice(2))(i);return s.reduce(((i,u,m)=>{if(Cd(u)){const s=String(u.key.toValue());i.push(s)}else if(Ad(s[m-2])){const v=s[m-2].content.indexOf(u);i.push(v)}return i}),[])},get_root_cause=i=>{if(null==i.cause)return i;let{cause:s}=i;for(;null!=s.cause;)s=s.cause;return s},OA=createErrorType(\"SchemaRefError\",(function cb(i,s,u){this.originalError=u,Object.assign(this,s||{})})),{wrapError:kA}=hl,AA=visitor_visit[Symbol.for(\"nodejs.util.promisify.custom\")],CA=wA.compose({props:{useCircularStructures:!0,allowMetaPatches:!1,basePath:null},init(i){let{allowMetaPatches:s=this.allowMetaPatches,useCircularStructures:u=this.useCircularStructures,basePath:m=this.basePath}=i;this.allowMetaPatches=s,this.useCircularStructures=u,this.basePath=m},methods:{async ReferenceElement(i,s,u,m,v){try{const[s,m]=this.toAncestorLineage([...v,u]);if(includesClasses([\"cycle\"],i.$ref))return!1;if(s.some((s=>s.has(i))))return!1;if(!this.options.resolve.external&&predicates_isReferenceElementExternal(i))return!1;const _=await this.toReference(i.$ref.toValue()),{uri:j}=_,M=resolve(j,i.$ref.toValue());this.indirections.push(i);const $=uriToPointer(M);let W=evaluate($,_.value.result);if(isPrimitiveElement(W)){const s=i.meta.get(\"referenced-element\").toValue();if(isReferenceLikeElement(W))W=sS.refract(W),W.setMetaProperty(\"referenced-element\",s);else{const i=this.namespace.getElementClass(s);W=i.refract(W)}}if(this.indirections.includes(W))throw new Error(\"Recursive JSON Pointer detected\");if(this.indirections.length>this.options.dereference.maxDepth)throw new nA(`Maximum dereference depth of \"${this.options.dereference.maxDepth}\" has been exceeded in file \"${this.reference.uri}\"`);if(!this.useCircularStructures){if(s.some((i=>i.has(W)))){if(isHttpUrl(j)||Mk(j)){const s=new sS({$ref:M},i.meta.clone(),i.attributes.clone());return s.get(\"$ref\").classes.push(\"cycle\"),s}return!1}}m.add(i);const X=CA({reference:_,namespace:this.namespace,indirections:[...this.indirections],options:this.options,ancestors:s,allowMetaPatches:this.allowMetaPatches,useCircularStructures:this.useCircularStructures,basePath:this.basePath??[...to_path([...v,u,i]),\"$ref\"]});W=await AA(W,X,{keyMap:ZO,nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType}),m.delete(i),this.indirections.pop(),W=W.clone(),W.setMetaProperty(\"ref-fields\",{$ref:i.$ref?.toValue(),description:i.description?.toValue(),summary:i.summary?.toValue()}),W.setMetaProperty(\"ref-origin\",_.uri);const Y=void 0!==i.description,Z=void 0!==i.summary;if(Y&&\"description\"in W&&(W.description=i.description),Z&&\"summary\"in W&&(W.summary=i.summary),this.allowMetaPatches&&kd(W)){const i=W;if(void 0===i.get(\"$$ref\")){const s=resolve(j,M);i.set(\"$$ref\",s)}}return W}catch(s){const m=get_root_cause(s),_=kA(m,{baseDoc:this.reference.uri,$ref:i.$ref.toValue(),pointer:uriToPointer(i.$ref.toValue()),fullPath:this.basePath??[...to_path([...v,u,i]),\"$ref\"]});return void this.options.dereference.dereferenceOpts?.errors?.push?.(_)}},async PathItemElement(i,s,u,m,v){try{const[s,m]=this.toAncestorLineage([...v,u]);if(!Ed(i.$ref))return;if(includesClasses([\"cycle\"],i.$ref))return!1;if(s.some((s=>s.has(i))))return!1;if(!this.options.resolve.external&&predicates_isPathItemElementExternal(i))return;const _=await this.toReference(i.$ref.toValue()),{uri:j}=_,M=resolve(j,i.$ref.toValue());this.indirections.push(i);const $=uriToPointer(M);let W=evaluate($,_.value.result);if(isPrimitiveElement(W)&&(W=iS.refract(W)),this.indirections.includes(W))throw new Error(\"Recursive JSON Pointer detected\");if(this.indirections.length>this.options.dereference.maxDepth)throw new nA(`Maximum dereference depth of \"${this.options.dereference.maxDepth}\" has been exceeded in file \"${this.reference.uri}\"`);if(!this.useCircularStructures){if(s.some((i=>i.has(W)))){if(isHttpUrl(j)||Mk(j)){const s=new iS({$ref:M},i.meta.clone(),i.attributes.clone());return s.get(\"$ref\").classes.push(\"cycle\"),s}return!1}}m.add(i);const X=CA({reference:_,namespace:this.namespace,indirections:[...this.indirections],options:this.options,ancestors:s,allowMetaPatches:this.allowMetaPatches,useCircularStructures:this.useCircularStructures,basePath:this.basePath??[...to_path([...v,u,i]),\"$ref\"]});W=await AA(W,X,{keyMap:ZO,nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType}),m.delete(i),this.indirections.pop();const Y=new iS([...W.content],W.meta.clone(),W.attributes.clone());if(i.forEach(((i,s,u)=>{Y.remove(s.toValue()),Y.content.push(u)})),Y.remove(\"$ref\"),Y.setMetaProperty(\"ref-fields\",{$ref:i.$ref?.toValue()}),Y.setMetaProperty(\"ref-origin\",_.uri),this.allowMetaPatches&&void 0===Y.get(\"$$ref\")){const i=resolve(j,M);Y.set(\"$$ref\",i)}return Y}catch(s){const m=get_root_cause(s),_=kA(m,{baseDoc:this.reference.uri,$ref:i.$ref.toValue(),pointer:uriToPointer(i.$ref.toValue()),fullPath:this.basePath??[...to_path([...v,u,i]),\"$ref\"]});return void this.options.dereference.dereferenceOpts?.errors?.push?.(_)}},async SchemaElement(i,s,u,m,v){try{const[s,m]=this.toAncestorLineage([...v,u]);if(!Ed(i.$ref))return;if(includesClasses([\"cycle\"],i.$ref))return!1;if(s.some((s=>s.has(i))))return!1;let _=await this.toReference(unsanitize(this.reference.uri)),{uri:j}=_;const M=resolveSchema$refField(j,i),$=stripHash(M),W=zk({uri:$}),X=!this.options.resolve.resolvers.some((i=>i.canRead(W))),Y=!X,Z=Y&&j!==$;if(!this.options.resolve.external&&Z)return;let ee;this.indirections.push(i);try{if(X||Y){ee=uri_evaluate(M,maybeRefractToSchemaElement(_.value.result))}else{_=await this.toReference(unsanitize(M)),j=_.uri;const i=uriToPointer(M);ee=maybeRefractToSchemaElement(evaluate(i,_.value.result))}}catch(i){if(!(Y&&i instanceof EvaluationJsonSchemaUriError))throw i;if(isAnchor(uriToAnchor(M))){_=await this.toReference(unsanitize(M)),j=_.uri;const i=uriToAnchor(M);ee=$anchor_evaluate(i,maybeRefractToSchemaElement(_.value.result))}else{_=await this.toReference(unsanitize(M)),j=_.uri;const i=uriToPointer(M);ee=maybeRefractToSchemaElement(evaluate(i,_.value.result))}}if(this.indirections.includes(ee))throw new Error(\"Recursive Schema Object reference detected\");if(this.indirections.length>this.options.dereference.maxDepth)throw new nA(`Maximum dereference depth of \"${this.options.dereference.maxDepth}\" has been exceeded in file \"${this.reference.uri}\"`);if(!this.useCircularStructures){if(s.some((i=>i.has(ee)))){if(isHttpUrl(j)||Mk(j)){const s=resolve(j,M),u=new pS({$ref:s},i.meta.clone(),i.attributes.clone());return u.get(\"$ref\").classes.push(\"cycle\"),u}return!1}}m.add(i);const ie=CA({reference:_,namespace:this.namespace,indirections:[...this.indirections],options:this.options,useCircularStructures:this.useCircularStructures,allowMetaPatches:this.allowMetaPatches,ancestors:s,basePath:this.basePath??[...to_path([...v,u,i]),\"$ref\"]});if(ee=await AA(ee,ie,{keyMap:ZO,nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType}),m.delete(i),this.indirections.pop(),predicates_isBooleanJsonSchemaElement(ee)){const s=ee.clone();return s.setMetaProperty(\"ref-fields\",{$ref:i.$ref?.toValue()}),s.setMetaProperty(\"ref-origin\",j),s}const ae=new pS([...ee.content],ee.meta.clone(),ee.attributes.clone());if(i.forEach(((i,s,u)=>{ae.remove(s.toValue()),ae.content.push(u)})),ae.remove(\"$ref\"),ae.setMetaProperty(\"ref-fields\",{$ref:i.$ref?.toValue()}),ae.setMetaProperty(\"ref-origin\",j),this.allowMetaPatches&&void 0===ae.get(\"$$ref\")){const i=resolve(j,M);ae.set(\"$$ref\",i)}return ae}catch(s){const m=get_root_cause(s),_=new OA(`Could not resolve reference: ${m.message}`,{baseDoc:this.reference.uri,$ref:i.$ref.toValue(),fullPath:this.basePath??[...to_path([...v,u,i]),\"$ref\"]},m);return void this.options.dereference.dereferenceOpts?.errors?.push?.(_)}},async LinkElement(){},async ExampleElement(i,s,u,m,v){try{return await wA.compose.methods.ExampleElement.call(this,i,s,u,m,v)}catch(s){const m=get_root_cause(s),_=kA(m,{baseDoc:this.reference.uri,externalValue:i.externalValue?.toValue(),fullPath:this.basePath??[...to_path([...v,u,i]),\"externalValue\"]});return void this.options.dereference.dereferenceOpts?.errors?.push?.(_)}}}}),jA=CA,PA=xA.compose.bind(),IA=PA({init(i){let{parameterMacro:s,options:u}=i;this.parameterMacro=s,this.options=u},props:{parameterMacro:null,options:null,macroOperation:null,OperationElement:{enter(i){this.macroOperation=i},leave(){this.macroOperation=null}},ParameterElement:{leave(i,s,u,m,v){const _=null===this.macroOperation?null:toValue(this.macroOperation),j=toValue(i);try{const s=this.parameterMacro(_,j);i.set(\"default\",s)}catch(i){const s=new Error(i,{cause:i});s.fullPath=to_path([...v,u]),this.options.dereference.dereferenceOpts?.errors?.push?.(s)}}}}}),NA=PA({init(i){let{modelPropertyMacro:s,options:u}=i;this.modelPropertyMacro=s,this.options=u},props:{modelPropertyMacro:null,options:null,SchemaElement:{leave(i,s,u,m,v){void 0!==i.properties&&kd(i.properties)&&i.properties.forEach((s=>{if(kd(s))try{const i=this.modelPropertyMacro(toValue(s));s.set(\"default\",i)}catch(s){const m=new Error(s,{cause:s});m.fullPath=[...to_path([...v,u,i]),\"properties\"],this.options.dereference.dereferenceOpts?.errors?.push?.(m)}}))}}}}),TA=NA;function deepmerge_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function deepmerge_objectSpread(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?deepmerge_ownKeys(Object(u),!0).forEach((function(s){defineProperty_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):deepmerge_ownKeys(Object(u)).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}const emptyElement=i=>{const s=i.meta.clone(),u=i.attributes.clone();return new i.constructor(void 0,s,u)},cloneMemberElement=i=>new Nl.c6(i.key,i.value,i.meta.clone(),i.attributes.clone()),cloneUnlessOtherwiseSpecified=(i,s)=>s.clone&&s.isMergeableElement(i)?deepmerge(emptyElement(i),i,s):i,mergeArrayElement=(i,s,u)=>i.concat(s)[\"fantasy-land/map\"]((i=>cloneUnlessOtherwiseSpecified(i,u))),mergeObjectElement=(i,s,u)=>{const m=kd(i)?emptyElement(i):emptyElement(s);return kd(i)&&i.forEach(((i,s,v)=>{const _=cloneMemberElement(v);_.value=cloneUnlessOtherwiseSpecified(i,u),m.content.push(_)})),s.forEach(((s,v,_)=>{const j=v.toValue();let M;if(kd(i)&&i.hasKey(j)&&u.isMergeableElement(s)){const m=i.get(j);M=cloneMemberElement(_),M.value=((i,s)=>{if(\"function\"!=typeof s.customMerge)return deepmerge;const u=s.customMerge(i,s);return\"function\"==typeof u?u:deepmerge})(v,u)(m,s)}else M=cloneMemberElement(_),M.value=cloneUnlessOtherwiseSpecified(s,u);m.remove(j),m.content.push(M)})),m};function deepmerge(i,s,u){var m,v,_;const j={clone:!0,isMergeableElement:i=>kd(i)||Ad(i),arrayElementMerge:mergeArrayElement,objectElementMerge:mergeObjectElement,customMerge:void 0},M=deepmerge_objectSpread(deepmerge_objectSpread({},j),u);M.isMergeableElement=null!==(m=M.isMergeableElement)&&void 0!==m?m:j.isMergeableElement,M.arrayElementMerge=null!==(v=M.arrayElementMerge)&&void 0!==v?v:j.arrayElementMerge,M.objectElementMerge=null!==(_=M.objectElementMerge)&&void 0!==_?_:j.objectElementMerge;const $=Ad(s);return $===Ad(i)?$&&\"function\"==typeof M.arrayElementMerge?M.arrayElementMerge(i,s,M):M.objectElementMerge(i,s,M):cloneUnlessOtherwiseSpecified(s,M)}deepmerge.all=(i,s)=>{if(!Array.isArray(i))throw new Error(\"first argument should be an array\");return 0===i.length?new Nl.Sb:i.reduce(((i,u)=>deepmerge(i,u,s)),emptyElement(i[0]))};const MA=PA({init(i){let{options:s}=i;this.options=s},props:{options:null,SchemaElement:{leave(i,s,u,m,v){if(void 0===i.allOf)return;if(!Ad(i.allOf)){const s=new TypeError(\"allOf must be an array\");return s.fullPath=[...to_path([...v,u,i]),\"allOf\"],void this.options.dereference.dereferenceOpts?.errors?.push?.(s)}if(i.allOf.isEmpty)return new pS(i.content.filter((i=>\"allOf\"!==i.key.toValue())),i.meta.clone(),i.attributes.clone());if(!i.allOf.content.every(yx)){const s=new TypeError(\"Elements in allOf must be objects\");return s.fullPath=[...to_path([...v,u,i]),\"allOf\"],void this.options.dereference.dereferenceOpts?.errors?.push?.(s)}const _=deepmerge.all([...i.allOf.content,i]);if(i.hasKey(\"$$ref\")||_.remove(\"$$ref\"),i.hasKey(\"example\")){_.getMember(\"example\").value=i.get(\"example\")}if(i.hasKey(\"examples\")){_.getMember(\"examples\").value=i.get(\"examples\")}return _.remove(\"allOf\"),_}}}}),RA=visitor_visit[Symbol.for(\"nodejs.util.promisify.custom\")],DA=xA.compose({props:{useCircularStructures:!0,allowMetaPatches:!1,parameterMacro:null,modelPropertyMacro:null,mode:\"non-strict\",ancestors:null},init(){let{useCircularStructures:i=this.useCircularStructures,allowMetaPatches:s=this.allowMetaPatches,parameterMacro:u=this.parameterMacro,modelPropertyMacro:m=this.modelPropertyMacro,mode:v=this.mode,ancestors:_=[]}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.name=\"openapi-3-1-swagger-client\",this.useCircularStructures=i,this.allowMetaPatches=s,this.parameterMacro=u,this.modelPropertyMacro=m,this.mode=v,this.ancestors=[..._]},methods:{async dereference(i,s){const u=[],m=createNamespace(yk),v=s.dereference.refSet??Lk();let _;v.has(i.uri)?_=v.find((s=>s.uri===i.uri)):(_=Dk({uri:i.uri,value:i.parseResult}),v.add(_));const j=jA({reference:_,namespace:m,options:s,useCircularStructures:this.useCircularStructures,allowMetaPatches:this.allowMetaPatches,ancestors:this.ancestors});if(u.push(j),\"function\"==typeof this.parameterMacro){const i=IA({parameterMacro:this.parameterMacro,options:s});u.push(i)}if(\"function\"==typeof this.modelPropertyMacro){const i=TA({modelPropertyMacro:this.modelPropertyMacro,options:s});u.push(i)}if(\"strict\"!==this.mode){const i=MA({options:s});u.push(i)}const M=visitor_mergeAll(u,{nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType}),$=await RA(v.rootRef.value,M,{keyMap:ZO,nodeTypeGetter:apidom_ns_openapi_3_1_es_traversal_visitor_getNodeType});return null===s.dereference.refSet&&v.clean(),$}}}),BA=DA,resolveOpenAPI31Strategy=async i=>{const{spec:s,timeout:u,redirects:m,requestInterceptor:v,responseInterceptor:_,pathDiscriminator:j=[],allowMetaPatches:M=!1,useCircularStructures:$=!1,skipNormalization:W=!1,parameterMacro:X=null,modelPropertyMacro:Y=null,mode:Z=\"non-strict\"}=i;try{const{cache:ie}=resolveOpenAPI31Strategy,ae=isHttpUrl(url_cwd())?url_cwd():\"https://smartbear.com/\",ce=options_retrievalURI(i),le=resolve(ae,ce);let pe;ie.has(s)?pe=ie.get(s):(pe=rS.refract(s),pe.classes.push(\"result\"),ie.set(s,pe));const de=new zh([pe]),fe=0===(ee=j).length?\"\":`/${ee.map(Lf).join(\"/\")}`,ye=\"\"===fe?\"\":`#${fe}`,be=evaluate(fe,pe),_e=Dk({uri:le,value:de}),we=Lk({refs:[_e]});\"\"!==fe&&(we.rootRef=null);const Se=[new WeakSet([be])],xe=[],Pe=((i,s,u)=>bf({element:u}).transclude(i,s))(be,await es_dereferenceApiDOM(be,{resolve:{baseURI:`${le}${ye}`,resolvers:[dA({timeout:u||1e4,redirects:m||10})],resolverOpts:{swaggerHTTPClientConfig:{requestInterceptor:v,responseInterceptor:_}},strategies:[pA()]},parse:{mediaType:_k.latest(),parsers:[yA({allowEmpty:!1,sourceMap:!1}),gA({allowEmpty:!1,sourceMap:!1}),fA({allowEmpty:!1,sourceMap:!1}),mA({allowEmpty:!1,sourceMap:!1}),Qk({allowEmpty:!1,sourceMap:!1})]},dereference:{maxDepth:100,strategies:[BA({allowMetaPatches:M,useCircularStructures:$,parameterMacro:X,modelPropertyMacro:Y,mode:Z,ancestors:Se})],refSet:we,dereferenceOpts:{errors:xe}}}),pe),Ie=W?Pe:openapi_3_1_apidom_normalize(Pe);return{spec:toValue(Ie),errors:xe}}catch(i){if(i instanceof InvalidJsonPointerError||i instanceof EvaluationJsonPointerError)return{spec:null,errors:[]};throw i}var ee};resolveOpenAPI31Strategy.cache=new WeakMap;const LA=resolveOpenAPI31Strategy,FA={name:\"openapi-3-1-apidom\",match(i){let{spec:s}=i;return isOpenAPI31(s)},normalize(i){let{spec:s}=i;return pojoAdapter(openapi_3_1_apidom_normalize)(s)},resolve:async i=>LA(i)},qA=FA,makeResolve=i=>async s=>(async i=>{const{spec:s,requestInterceptor:u,responseInterceptor:m}=i,v=options_retrievalURI(i),_=options_httpClient(i),j=s||await makeFetchJSON(_,{requestInterceptor:u,responseInterceptor:m})(v),M=rr()(rr()({},i),{},{spec:j});return i.strategies.find((i=>i.match(M))).resolve(M)})(rr()(rr()({},i),s)),$A=makeResolve({strategies:[Il,jl,Al]});var UA=__webpack_require__(76489);function is_plain_object_isObject(i){return\"[object Object]\"===Object.prototype.toString.call(i)}function is_plain_object_isPlainObject(i){var s,u;return!1!==is_plain_object_isObject(i)&&(void 0===(s=i.constructor)||!1!==is_plain_object_isObject(u=s.prototype)&&!1!==u.hasOwnProperty(\"isPrototypeOf\"))}const zA={body:function bodyBuilder(i){let{req:s,value:u}=i;s.body=u},header:function headerBuilder(i){let{req:s,parameter:u,value:m}=i;s.headers=s.headers||{},void 0!==m&&(s.headers[u.name]=m)},query:function queryBuilder(i){let{req:s,value:u,parameter:m}=i;s.query=s.query||{},!1===u&&\"boolean\"===m.type&&(u=\"false\");0===u&&[\"number\",\"integer\"].indexOf(m.type)>-1&&(u=\"0\");if(u)s.query[m.name]={collectionFormat:m.collectionFormat,value:u};else if(m.allowEmptyValue&&void 0!==u){const i=m.name;s.query[i]=s.query[i]||{},s.query[i].allowEmptyValue=!0}},path:function pathBuilder(i){let{req:s,value:u,parameter:m}=i;s.url=s.url.split(`{${m.name}}`).join(encodeURIComponent(u))},formData:function formDataBuilder(i){let{req:s,value:u,parameter:m}=i;(u||m.allowEmptyValue)&&(s.form=s.form||{},s.form[m.name]={value:u,allowEmptyValue:m.allowEmptyValue,collectionFormat:m.collectionFormat})}};function serialize(i,s){return s.includes(\"application/json\")?\"string\"==typeof i?i:JSON.stringify(i):i.toString()}function parameter_builders_path(i){let{req:s,value:u,parameter:m}=i;const{name:v,style:_,explode:j,content:M}=m;if(M){const i=Object.keys(M)[0];return void(s.url=s.url.split(`{${v}}`).join(encodeDisallowedCharacters(serialize(u,i),{escape:!0})))}const $=stylize({key:m.name,value:u,style:_||\"simple\",explode:j||!1,escape:!0});s.url=s.url.split(`{${v}}`).join($)}function query(i){let{req:s,value:u,parameter:m}=i;if(s.query=s.query||{},m.content){const i=serialize(u,Object.keys(m.content)[0]);if(i)s.query[m.name]=i;else if(m.allowEmptyValue&&void 0!==u){const i=m.name;s.query[i]=s.query[i]||{},s.query[i].allowEmptyValue=!0}}else if(!1===u&&(u=\"false\"),0===u&&(u=\"0\"),u){const{style:i,explode:v,allowReserved:_}=m;s.query[m.name]={value:u,serializationOption:{style:i,explode:v,allowReserved:_}}}else if(m.allowEmptyValue&&void 0!==u){const i=m.name;s.query[i]=s.query[i]||{},s.query[i].allowEmptyValue=!0}}const VA=[\"accept\",\"authorization\",\"content-type\"];function parameter_builders_header(i){let{req:s,parameter:u,value:m}=i;if(s.headers=s.headers||{},!(VA.indexOf(u.name.toLowerCase())>-1))if(u.content){const i=Object.keys(u.content)[0];s.headers[u.name]=serialize(m,i)}else void 0!==m&&(s.headers[u.name]=stylize({key:u.name,value:m,style:u.style||\"simple\",explode:void 0!==u.explode&&u.explode,escape:!1}))}function parameter_builders_cookie(i){let{req:s,parameter:u,value:m}=i;s.headers=s.headers||{};const v=typeof m;if(u.content){const i=Object.keys(u.content)[0];s.headers.Cookie=`${u.name}=${serialize(m,i)}`}else if(\"undefined\"!==v){const i=\"object\"===v&&!Array.isArray(m)&&u.explode?\"\":`${u.name}=`;s.headers.Cookie=i+stylize({key:u.name,value:m,escape:!1,style:u.style||\"form\",explode:void 0!==u.explode&&u.explode})}}const WA=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:window,{btoa:KA}=WA,HA=KA;function buildRequest(i,s){const{operation:u,requestBody:m,securities:v,spec:_,attachContentTypeForEmptyPayload:j}=i;let{requestContentType:M}=i;s=function applySecurities(i){let{request:s,securities:u={},operation:m={},spec:v}=i;const _=rr()({},s),{authorized:j={}}=u,M=m.security||v.security||[],$=j&&!!Object.keys(j).length,W=ko()(v,[\"components\",\"securitySchemes\"])||{};if(_.headers=_.headers||{},_.query=_.query||{},!Object.keys(u).length||!$||!M||Array.isArray(m.security)&&!m.security.length)return s;return M.forEach((i=>{Object.keys(i).forEach((i=>{const s=j[i],u=W[i];if(!s)return;const m=s.value||s,{type:v}=u;if(s)if(\"apiKey\"===v)\"query\"===u.in&&(_.query[u.name]=m),\"header\"===u.in&&(_.headers[u.name]=m),\"cookie\"===u.in&&(_.cookies[u.name]=m);else if(\"http\"===v){if(/^basic$/i.test(u.scheme)){const i=m.username||\"\",s=m.password||\"\",u=HA(`${i}:${s}`);_.headers.Authorization=`Basic ${u}`}/^bearer$/i.test(u.scheme)&&(_.headers.Authorization=`Bearer ${m}`)}else if(\"oauth2\"===v||\"openIdConnect\"===v){const i=s.token||{},m=i[u[\"x-tokenName\"]||\"access_token\"];let v=i.token_type;v&&\"bearer\"!==v.toLowerCase()||(v=\"Bearer\"),_.headers.Authorization=`${v} ${m}`}}))})),_}({request:s,securities:v,operation:u,spec:_});const $=u.requestBody||{},W=Object.keys($.content||{}),X=M&&W.indexOf(M)>-1;if(m||j){if(M&&X)s.headers[\"Content-Type\"]=M;else if(!M){const i=W[0];i&&(s.headers[\"Content-Type\"]=i,M=i)}}else M&&X&&(s.headers[\"Content-Type\"]=M);if(!i.responseContentType&&u.responses){const i=Object.entries(u.responses).filter((i=>{let[s,u]=i;const m=parseInt(s,10);return m>=200&&m<300&&is_plain_object_isPlainObject(u.content)})).reduce(((i,s)=>{let[,u]=s;return i.concat(Object.keys(u.content))}),[]);i.length>0&&(s.headers.accept=i.join(\", \"))}if(m)if(M){if(W.indexOf(M)>-1)if(\"application/x-www-form-urlencoded\"===M||\"multipart/form-data\"===M)if(\"object\"==typeof m){const i=$.content[M]?.encoding??{};s.form={},Object.keys(m).forEach((u=>{s.form[u]={value:m[u],encoding:i[u]||{}}}))}else s.form=m;else s.body=m}else s.body=m;return s}function build_request_buildRequest(i,s){const{spec:u,operation:m,securities:v,requestContentType:_,responseContentType:j,attachContentTypeForEmptyPayload:M}=i;if(s=function build_request_applySecurities(i){let{request:s,securities:u={},operation:m={},spec:v}=i;const _=rr()({},s),{authorized:j={},specSecurity:M=[]}=u,$=m.security||M,W=j&&!!Object.keys(j).length,X=v.securityDefinitions;if(_.headers=_.headers||{},_.query=_.query||{},!Object.keys(u).length||!W||!$||Array.isArray(m.security)&&!m.security.length)return s;return $.forEach((i=>{Object.keys(i).forEach((i=>{const s=j[i];if(!s)return;const{token:u}=s,m=s.value||s,v=X[i],{type:M}=v,$=v[\"x-tokenName\"]||\"access_token\",W=u&&u[$];let Y=u&&u.token_type;if(s)if(\"apiKey\"===M){const i=\"query\"===v.in?\"query\":\"headers\";_[i]=_[i]||{},_[i][v.name]=m}else if(\"basic\"===M)if(m.header)_.headers.authorization=m.header;else{const i=m.username||\"\",s=m.password||\"\";m.base64=HA(`${i}:${s}`),_.headers.authorization=`Basic ${m.base64}`}else\"oauth2\"===M&&W&&(Y=Y&&\"bearer\"!==Y.toLowerCase()?Y:\"Bearer\",_.headers.authorization=`${Y} ${W}`)}))})),_}({request:s,securities:v,operation:m,spec:u}),s.body||s.form||M)_?s.headers[\"Content-Type\"]=_:Array.isArray(m.consumes)?[s.headers[\"Content-Type\"]]=m.consumes:Array.isArray(u.consumes)?[s.headers[\"Content-Type\"]]=u.consumes:m.parameters&&m.parameters.filter((i=>\"file\"===i.type)).length?s.headers[\"Content-Type\"]=\"multipart/form-data\":m.parameters&&m.parameters.filter((i=>\"formData\"===i.in)).length&&(s.headers[\"Content-Type\"]=\"application/x-www-form-urlencoded\");else if(_){const i=m.parameters&&m.parameters.filter((i=>\"body\"===i.in)).length>0,u=m.parameters&&m.parameters.filter((i=>\"formData\"===i.in)).length>0;(i||u)&&(s.headers[\"Content-Type\"]=_)}return!j&&Array.isArray(m.produces)&&m.produces.length>0&&(s.headers.accept=m.produces.join(\", \")),s}function idFromPathMethodLegacy(i,s){return`${s.toLowerCase()}-${i}`}const JA=[\"http\",\"fetch\",\"spec\",\"operationId\",\"pathName\",\"method\",\"parameters\",\"securities\"],arrayOrEmpty=i=>Array.isArray(i)?i:[],GA=createErrorType(\"OperationNotFoundError\",(function cb(i,s,u){this.originalError=u,Object.assign(this,s||{})})),findParametersWithName=(i,s)=>s.filter((s=>s.name===i)),deduplicateParameters=i=>{const s={};i.forEach((i=>{s[i.in]||(s[i.in]={}),s[i.in][i.name]=i}));const u=[];return Object.keys(s).forEach((i=>{Object.keys(s[i]).forEach((m=>{u.push(s[i][m])}))})),u},XA={buildRequest:execute_buildRequest};function execute_execute(i){let{http:s,fetch:u,spec:m,operationId:v,pathName:_,method:j,parameters:M,securities:$}=i,W=Mo()(i,JA);const X=s||u||http_http;_&&j&&!v&&(v=idFromPathMethodLegacy(_,j));const Y=XA.buildRequest(rr()({spec:m,operationId:v,parameters:M,securities:$,http:X},W));return Y.body&&(is_plain_object_isPlainObject(Y.body)||Array.isArray(Y.body))&&(Y.body=JSON.stringify(Y.body)),X(Y)}function execute_buildRequest(i){const{spec:s,operationId:u,responseContentType:m,scheme:v,requestInterceptor:_,responseInterceptor:j,contextUrl:M,userFetch:$,server:W,serverVariables:X,http:Y,signal:Z}=i;let{parameters:ee,parameterBuilders:ie}=i;const ae=isOpenAPI3(s);ie||(ie=ae?Se:zA);let ce={url:\"\",credentials:Y&&Y.withCredentials?\"include\":\"same-origin\",headers:{},cookies:{}};Z&&(ce.signal=Z),_&&(ce.requestInterceptor=_),j&&(ce.responseInterceptor=j),$&&(ce.userFetch=$);const le=function getOperationRaw(i,s){return i&&i.paths?function findOperation(i,s){return function eachOperation(i,s,u){if(!i||\"object\"!=typeof i||!i.paths||\"object\"!=typeof i.paths)return null;const{paths:m}=i;for(const v in m)for(const _ in m[v]){if(\"PARAMETERS\"===_.toUpperCase())continue;const j=m[v][_];if(!j||\"object\"!=typeof j)continue;const M={spec:i,pathName:v,method:_.toUpperCase(),operation:j},$=s(M);if(u&&$)return M}}(i,s,!0)||null}(i,(i=>{let{pathName:u,method:m,operation:v}=i;if(!v||\"object\"!=typeof v)return!1;const _=v.operationId;return[opId(v,u,m),idFromPathMethodLegacy(u,m),_].some((i=>i&&i===s))})):null}(s,u);if(!le)throw new GA(`Operation ${u} not found`);const{operation:pe={},method:de,pathName:fe}=le;if(ce.url+=function baseUrl(i){const s=isOpenAPI3(i.spec);return s?function oas3BaseUrl(i){let{spec:s,pathName:u,method:m,server:v,contextUrl:_,serverVariables:j={}}=i;const M=ko()(s,[\"paths\",u,(m||\"\").toLowerCase(),\"servers\"])||ko()(s,[\"paths\",u,\"servers\"])||ko()(s,[\"servers\"]);let $=\"\",W=null;if(v&&M&&M.length){const i=M.map((i=>i.url));i.indexOf(v)>-1&&($=v,W=M[i.indexOf(v)])}!$&&M&&M.length&&($=M[0].url,[W]=M);if($.indexOf(\"{\")>-1){const i=function getVariableTemplateNames(i){const s=[],u=/{([^}]+)}/g;let m;for(;m=u.exec(i);)s.push(m[1]);return s}($);i.forEach((i=>{if(W.variables&&W.variables[i]){const s=W.variables[i],u=j[i]||s.default,m=new RegExp(`{${i}}`,\"g\");$=$.replace(m,u)}}))}return function buildOas3UrlWithContext(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\";const u=i&&s?Jc.parse(Jc.resolve(s,i)):Jc.parse(i),m=Jc.parse(s),v=stripNonAlpha(u.protocol)||stripNonAlpha(m.protocol)||\"\",_=u.host||m.host,j=u.pathname||\"\";let M;M=v&&_?`${v}://${_+j}`:j;return\"/\"===M[M.length-1]?M.slice(0,-1):M}($,_)}(i):function swagger2BaseUrl(i){let{spec:s,scheme:u,contextUrl:m=\"\"}=i;const v=Jc.parse(m),_=Array.isArray(s.schemes)?s.schemes[0]:null,j=u||_||stripNonAlpha(v.protocol)||\"http\",M=s.host||v.host||\"\",$=s.basePath||\"\";let W;W=j&&M?`${j}://${M+$}`:$;return\"/\"===W[W.length-1]?W.slice(0,-1):W}(i)}({spec:s,scheme:v,contextUrl:M,server:W,serverVariables:X,pathName:fe,method:de}),!u)return delete ce.cookies,ce;ce.url+=fe,ce.method=`${de}`.toUpperCase(),ee=ee||{};const ye=s.paths[fe]||{};m&&(ce.headers.accept=m);const be=deduplicateParameters([].concat(arrayOrEmpty(pe.parameters)).concat(arrayOrEmpty(ye.parameters)));be.forEach((i=>{const u=ie[i.in];let m;if(\"body\"===i.in&&i.schema&&i.schema.properties&&(m=ee),m=i&&i.name&&ee[i.name],void 0===m?m=i&&i.name&&ee[`${i.in}.${i.name}`]:findParametersWithName(i.name,be).length>1&&console.warn(`Parameter '${i.name}' is ambiguous because the defined spec has more than one parameter with the name: '${i.name}' and the passed-in parameter values did not define an 'in' value.`),null!==m){if(void 0!==i.default&&void 0===m&&(m=i.default),void 0===m&&i.required&&!i.allowEmptyValue)throw new Error(`Required parameter ${i.name} is not provided`);if(ae&&i.schema&&\"object\"===i.schema.type&&\"string\"==typeof m)try{m=JSON.parse(m)}catch(i){throw new Error(\"Could not parse object parameter value string as JSON\")}u&&u({req:ce,parameter:i,value:m,operation:pe,spec:s})}}));const _e=rr()(rr()({},i),{},{operation:pe});if(ce=ae?buildRequest(_e,ce):build_request_buildRequest(_e,ce),ce.cookies&&Object.keys(ce.cookies).length){const i=Object.keys(ce.cookies).reduce(((i,s)=>{const u=ce.cookies[s];return i+(i?\"&\":\"\")+UA.serialize(s,u)}),\"\");ce.headers.Cookie=i}return ce.cookies&&delete ce.cookies,mergeInQueryOrForm(ce),ce}const stripNonAlpha=i=>i?i.replace(/\\W/g,\"\"):null;const makeResolveSubtree=i=>async function(s,u){let m=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return async function(i,s){let u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{returnEntireTree:m,baseDoc:v,requestInterceptor:_,responseInterceptor:j,parameterMacro:M,modelPropertyMacro:$,useCircularStructures:W,strategies:X}=u,Y={spec:i,pathDiscriminator:s,baseDoc:v,requestInterceptor:_,responseInterceptor:j,parameterMacro:M,modelPropertyMacro:$,useCircularStructures:W,strategies:X},Z=X.find((i=>i.match(Y))).normalize(Y),ee=await $A(rr()(rr()({},Y),{},{spec:Z,allowMetaPatches:!0,skipNormalization:!0}));return!m&&Array.isArray(s)&&s.length&&(ee.spec=ko()(ee.spec,s)||null),ee}(s,u,rr()(rr()({},i),m))},YA=(makeResolveSubtree({strategies:[Il,jl,Al]}),(i,s)=>function(){i(...arguments);const u=s.getConfigs().withCredentials;void 0!==u&&(s.fn.fetch.withCredentials=\"string\"==typeof u?\"true\"===u:!!u)});function swagger_client(i){let{configs:s,getConfigs:u}=i;return{fn:{fetch:(m=http_http,v=s.preFetch,_=s.postFetch,_=_||(i=>i),v=v||(i=>i),i=>(\"string\"==typeof i&&(i={url:i}),Sl.mergeInQueryOrForm(i),i=v(i),_(m(i)))),buildRequest:execute_buildRequest,execute:execute_execute,resolve:makeResolve({strategies:[qA,Il,jl,Al]}),resolveSubtree:async function(i,s){let m=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const v=u(),_={modelPropertyMacro:v.modelPropertyMacro,parameterMacro:v.parameterMacro,requestInterceptor:v.requestInterceptor,responseInterceptor:v.responseInterceptor,strategies:[qA,Il,jl,Al]};return makeResolveSubtree(_)(i,s,m)},serializeRes,opId},statePlugins:{configs:{wrapActions:{loaded:YA}}}};var m,v,_}function util(){return{fn:{shallowEqualKeys}}}var QA=__webpack_require__(73935),ZA=__webpack_require__(61688),eC=__webpack_require__(52798);let tC=function defaultNoopBatch(i){i()};const getBatch=()=>tC,rC=Symbol.for(\"react-redux-context\"),nC=\"undefined\"!=typeof globalThis?globalThis:{};function getContext(){var i;if(!He.createContext)return{};const s=null!=(i=nC[rC])?i:nC[rC]=new Map;let u=s.get(He.createContext);return u||(u=He.createContext(null),s.set(He.createContext,u)),u}const oC=getContext();let iC=null;var aC=__webpack_require__(8679),sC=__webpack_require__.n(aC),cC=__webpack_require__(59864);const lC=[\"initMapStateToProps\",\"initMapDispatchToProps\",\"initMergeProps\"];function pureFinalPropsSelectorFactory(i,s,u,m,{areStatesEqual:v,areOwnPropsEqual:_,areStatePropsEqual:j}){let M,$,W,X,Y,Z=!1;function handleSubsequentCalls(Z,ee){const ie=!_(ee,$),ae=!v(Z,M,ee,$);return M=Z,$=ee,ie&&ae?function handleNewPropsAndNewState(){return W=i(M,$),s.dependsOnOwnProps&&(X=s(m,$)),Y=u(W,X,$),Y}():ie?function handleNewProps(){return i.dependsOnOwnProps&&(W=i(M,$)),s.dependsOnOwnProps&&(X=s(m,$)),Y=u(W,X,$),Y}():ae?function handleNewState(){const s=i(M,$),m=!j(s,W);return W=s,m&&(Y=u(W,X,$)),Y}():Y}return function pureFinalPropsSelector(v,_){return Z?handleSubsequentCalls(v,_):function handleFirstCall(v,_){return M=v,$=_,W=i(M,$),X=s(m,$),Y=u(W,X,$),Z=!0,Y}(v,_)}}function wrapMapToPropsConstant(i){return function initConstantSelector(s){const u=i(s);function constantSelector(){return u}return constantSelector.dependsOnOwnProps=!1,constantSelector}}function getDependsOnOwnProps(i){return i.dependsOnOwnProps?Boolean(i.dependsOnOwnProps):1!==i.length}function wrapMapToPropsFunc(i,s){return function initProxySelector(s,{displayName:u}){const m=function mapToPropsProxy(i,s){return m.dependsOnOwnProps?m.mapToProps(i,s):m.mapToProps(i,void 0)};return m.dependsOnOwnProps=!0,m.mapToProps=function detectFactoryAndVerify(s,u){m.mapToProps=i,m.dependsOnOwnProps=getDependsOnOwnProps(i);let v=m(s,u);return\"function\"==typeof v&&(m.mapToProps=v,m.dependsOnOwnProps=getDependsOnOwnProps(v),v=m(s,u)),v},m}}function createInvalidArgFactory(i,s){return(u,m)=>{throw new Error(`Invalid value of type ${typeof i} for ${s} argument when connecting component ${m.wrappedComponentName}.`)}}function defaultMergeProps(i,s,u){return _extends({},u,i,s)}const uC={notify(){},get:()=>[]};function createSubscription(i,s){let u,m=uC;function handleChangeWrapper(){v.onStateChange&&v.onStateChange()}function trySubscribe(){u||(u=s?s.addNestedSub(handleChangeWrapper):i.subscribe(handleChangeWrapper),m=function createListenerCollection(){const i=getBatch();let s=null,u=null;return{clear(){s=null,u=null},notify(){i((()=>{let i=s;for(;i;)i.callback(),i=i.next}))},get(){let i=[],u=s;for(;u;)i.push(u),u=u.next;return i},subscribe(i){let m=!0,v=u={callback:i,next:null,prev:u};return v.prev?v.prev.next=v:s=v,function unsubscribe(){m&&null!==s&&(m=!1,v.next?v.next.prev=v.prev:u=v.prev,v.prev?v.prev.next=v.next:s=v.next)}}}}())}const v={addNestedSub:function addNestedSub(i){return trySubscribe(),m.subscribe(i)},notifyNestedSubs:function notifyNestedSubs(){m.notify()},handleChangeWrapper,isSubscribed:function isSubscribed(){return Boolean(u)},trySubscribe,tryUnsubscribe:function tryUnsubscribe(){u&&(u(),u=void 0,m.clear(),m=uC)},getListeners:()=>m};return v}const pC=!(\"undefined\"==typeof window||void 0===window.document||void 0===window.document.createElement)?He.useLayoutEffect:He.useEffect;function shallowEqual_is(i,s){return i===s?0!==i||0!==s||1/i==1/s:i!=i&&s!=s}function shallowEqual(i,s){if(shallowEqual_is(i,s))return!0;if(\"object\"!=typeof i||null===i||\"object\"!=typeof s||null===s)return!1;const u=Object.keys(i),m=Object.keys(s);if(u.length!==m.length)return!1;for(let m=0;m<u.length;m++)if(!Object.prototype.hasOwnProperty.call(s,u[m])||!shallowEqual_is(i[u[m]],s[u[m]]))return!1;return!0}const hC=[\"reactReduxForwardedRef\"];let useSyncExternalStore=()=>{throw new Error(\"uSES not initialized!\")};const dC=[null,null];function captureWrapperProps(i,s,u,m,v,_){i.current=m,u.current=!1,v.current&&(v.current=null,_())}function strictEqual(i,s){return i===s}const fC=function connect(i,s,u,{pure:m,areStatesEqual:v=strictEqual,areOwnPropsEqual:_=shallowEqual,areStatePropsEqual:j=shallowEqual,areMergedPropsEqual:M=shallowEqual,forwardRef:$=!1,context:W=oC}={}){const X=W,Y=function mapStateToPropsFactory(i){return i?\"function\"==typeof i?wrapMapToPropsFunc(i):createInvalidArgFactory(i,\"mapStateToProps\"):wrapMapToPropsConstant((()=>({})))}(i),Z=function mapDispatchToPropsFactory(i){return i&&\"object\"==typeof i?wrapMapToPropsConstant((s=>function bindActionCreators_bindActionCreators(i,s){const u={};for(const m in i){const v=i[m];\"function\"==typeof v&&(u[m]=(...i)=>s(v(...i)))}return u}(i,s))):i?\"function\"==typeof i?wrapMapToPropsFunc(i):createInvalidArgFactory(i,\"mapDispatchToProps\"):wrapMapToPropsConstant((i=>({dispatch:i})))}(s),ee=function mergePropsFactory(i){return i?\"function\"==typeof i?function wrapMergePropsFunc(i){return function initMergePropsProxy(s,{displayName:u,areMergedPropsEqual:m}){let v,_=!1;return function mergePropsProxy(s,u,j){const M=i(s,u,j);return _?m(M,v)||(v=M):(_=!0,v=M),v}}}(i):createInvalidArgFactory(i,\"mergeProps\"):()=>defaultMergeProps}(u),ie=Boolean(i);return i=>{const s=i.displayName||i.name||\"Component\",u=`Connect(${s})`,m={shouldHandleStateChanges:ie,displayName:u,wrappedComponentName:s,WrappedComponent:i,initMapStateToProps:Y,initMapDispatchToProps:Z,initMergeProps:ee,areStatesEqual:v,areStatePropsEqual:j,areOwnPropsEqual:_,areMergedPropsEqual:M};function ConnectFunction(s){const[u,v,_]=He.useMemo((()=>{const{reactReduxForwardedRef:i}=s,u=_objectWithoutPropertiesLoose(s,hC);return[s.context,i,u]}),[s]),j=He.useMemo((()=>u&&u.Consumer&&(0,cC.isContextConsumer)(He.createElement(u.Consumer,null))?u:X),[u,X]),M=He.useContext(j),$=Boolean(s.store)&&Boolean(s.store.getState)&&Boolean(s.store.dispatch),W=Boolean(M)&&Boolean(M.store);const Y=$?s.store:M.store,Z=W?M.getServerState:Y.getState,ee=He.useMemo((()=>function finalPropsSelectorFactory(i,s){let{initMapStateToProps:u,initMapDispatchToProps:m,initMergeProps:v}=s,_=_objectWithoutPropertiesLoose(s,lC);return pureFinalPropsSelectorFactory(u(i,_),m(i,_),v(i,_),i,_)}(Y.dispatch,m)),[Y]),[ae,ce]=He.useMemo((()=>{if(!ie)return dC;const i=createSubscription(Y,$?void 0:M.subscription),s=i.notifyNestedSubs.bind(i);return[i,s]}),[Y,$,M]),le=He.useMemo((()=>$?M:_extends({},M,{subscription:ae})),[$,M,ae]),pe=He.useRef(),de=He.useRef(_),fe=He.useRef(),ye=He.useRef(!1),be=(He.useRef(!1),He.useRef(!1)),_e=He.useRef();pC((()=>(be.current=!0,()=>{be.current=!1})),[]);const we=He.useMemo((()=>()=>fe.current&&_===de.current?fe.current:ee(Y.getState(),_)),[Y,_]),Se=He.useMemo((()=>i=>ae?function subscribeUpdates(i,s,u,m,v,_,j,M,$,W,X){if(!i)return()=>{};let Y=!1,Z=null;const checkForUpdates=()=>{if(Y||!M.current)return;const i=s.getState();let u,ee;try{u=m(i,v.current)}catch(i){ee=i,Z=i}ee||(Z=null),u===_.current?j.current||W():(_.current=u,$.current=u,j.current=!0,X())};return u.onStateChange=checkForUpdates,u.trySubscribe(),checkForUpdates(),()=>{if(Y=!0,u.tryUnsubscribe(),u.onStateChange=null,Z)throw Z}}(ie,Y,ae,ee,de,pe,ye,be,fe,ce,i):()=>{}),[ae]);let xe;!function useIsomorphicLayoutEffectWithArgs(i,s,u){pC((()=>i(...s)),u)}(captureWrapperProps,[de,pe,ye,_,fe,ce]);try{xe=useSyncExternalStore(Se,we,Z?()=>ee(Z(),_):we)}catch(i){throw _e.current&&(i.message+=`\\nThe error may be correlated with this previous error:\\n${_e.current.stack}\\n\\n`),i}pC((()=>{_e.current=void 0,fe.current=void 0,pe.current=xe}));const Pe=He.useMemo((()=>He.createElement(i,_extends({},xe,{ref:v}))),[v,i,xe]);return He.useMemo((()=>ie?He.createElement(j.Provider,{value:le},Pe):Pe),[j,Pe,le])}const W=He.memo(ConnectFunction);if(W.WrappedComponent=i,W.displayName=ConnectFunction.displayName=u,$){const s=He.forwardRef((function forwardConnectRef(i,s){return He.createElement(W,_extends({},i,{reactReduxForwardedRef:s}))})),m=s;return m.displayName=u,m.WrappedComponent=i,sC()(m,i)}return sC()(W,i)}};const mC=function Provider({store:i,context:s,children:u,serverState:m,stabilityCheck:v=\"once\",noopCheck:_=\"once\"}){const j=He.useMemo((()=>{const s=createSubscription(i);return{store:i,subscription:s,getServerState:m?()=>m:void 0,stabilityCheck:v,noopCheck:_}}),[i,m,v,_]),M=He.useMemo((()=>i.getState()),[i]);pC((()=>{const{subscription:s}=j;return s.onStateChange=s.notifyNestedSubs,s.trySubscribe(),M!==i.getState()&&s.notifyNestedSubs(),()=>{s.tryUnsubscribe(),s.onStateChange=void 0}}),[j,M]);const $=s||oC;return He.createElement($.Provider,{value:j},u)};var yC,gC;yC=eC.useSyncExternalStoreWithSelector,iC=yC,(i=>{useSyncExternalStore=i})(ZA.useSyncExternalStore),gC=QA.unstable_batchedUpdates,tC=gC;var vC=__webpack_require__(6557),bC=__webpack_require__.n(vC);const withSystem=i=>s=>{const{fn:u}=i();class WithSystem extends He.Component{render(){return He.createElement(s,No()({},i(),this.props,this.context))}}return WithSystem.displayName=`WithSystem(${u.getDisplayName(s)})`,WithSystem},withRoot=(i,s)=>u=>{const{fn:m}=i();class WithRoot extends He.Component{render(){return He.createElement(mC,{store:s},He.createElement(u,No()({},this.props,this.context)))}}return WithRoot.displayName=`WithRoot(${m.getDisplayName(u)})`,WithRoot},withConnect=(i,s,u)=>redux_compose(u?withRoot(i,u):bC(),fC(((u,m)=>{var v;const _=rr()(rr()({},m),i()),j=(null===(v=s.prototype)||void 0===v?void 0:v.mapStateToProps)||(i=>({state:i}));return j(u,_)})),withSystem(i))(s),handleProps=(i,s,u,m)=>{for(const v in s){const _=s[v];\"function\"==typeof _&&_(u[v],m[v],i())}},withMappedContainer=(i,s,u)=>(s,m)=>{const{fn:v}=i(),_=u(s,\"root\");class WithMappedContainer extends He.Component{constructor(s,u){super(s,u),handleProps(i,m,s,{})}UNSAFE_componentWillReceiveProps(s){handleProps(i,m,s,this.props)}render(){const i=ir()(this.props,m?Object.keys(m):[]);return He.createElement(_,i)}}return WithMappedContainer.displayName=`WithMappedContainer(${v.getDisplayName(_)})`,WithMappedContainer},render=(i,s,u,m)=>v=>{const _=u(i,s,m)(\"App\",\"root\");QA.render(He.createElement(_,null),v)},getComponent=(i,s,u)=>function(m,v){let _=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(\"string\"!=typeof m)throw new TypeError(\"Need a string, to fetch a component. Was given a \"+typeof m);const j=u(m);return j?v?\"root\"===v?withConnect(i,j,s()):withConnect(i,j):j:(_.failSilently||i().log.warn(\"Could not find component:\",m),null)},getDisplayName=i=>i.displayName||i.name||\"Component\",view=i=>{let{getComponents:s,getStore:u,getSystem:m}=i;const v=(i=>Rt(i,(function(){for(var i=arguments.length,s=new Array(i),u=0;u<i;u++)s[u]=arguments[u];return JSON.stringify(s)})))(getComponent(m,u,s)),_=(i=>utils_memoizeN(i,(function(){for(var i=arguments.length,s=new Array(i),u=0;u<i;u++)s[u]=arguments[u];return s})))(withMappedContainer(m,0,v));return{rootInjects:{getComponent:v,makeMappedContainer:_,render:render(m,u,getComponent,s)},fn:{getDisplayName}}};function downloadUrlPlugin(i){let{fn:s}=i;const u={download:i=>u=>{let{errActions:m,specSelectors:v,specActions:_,getConfigs:j}=u,{fetch:M}=s;const $=j();function next(s){if(s instanceof Error||s.status>=400)return _.updateLoadingStatus(\"failed\"),m.newThrownErr(Object.assign(new Error((s.message||s.statusText)+\" \"+i),{source:\"fetch\"})),void(!s.status&&s instanceof Error&&function checkPossibleFailReasons(){try{let s;if(\"URL\"in dt?s=new URL(i):(s=document.createElement(\"a\"),s.href=i),\"https:\"!==s.protocol&&\"https:\"===dt.location.protocol){const i=Object.assign(new Error(`Possible mixed-content issue? The page was loaded over https:// but a ${s.protocol}// URL was specified. Check that you are not attempting to load mixed content.`),{source:\"fetch\"});return void m.newThrownErr(i)}if(s.origin!==dt.location.origin){const i=Object.assign(new Error(`Possible cross-origin (CORS) issue? The URL origin (${s.origin}) does not match the page (${dt.location.origin}). Check the server returns the correct 'Access-Control-Allow-*' headers.`),{source:\"fetch\"});m.newThrownErr(i)}}catch(i){return}}());_.updateLoadingStatus(\"success\"),_.updateSpec(s.text),v.url()!==i&&_.updateUrl(i)}i=i||v.url(),_.updateLoadingStatus(\"loading\"),m.clear({source:\"fetch\"}),M({url:i,loadSpec:!0,requestInterceptor:$.requestInterceptor||(i=>i),responseInterceptor:$.responseInterceptor||(i=>i),credentials:\"same-origin\",headers:{Accept:\"application/json,*/*\"}}).then(next,next)},updateLoadingStatus:i=>{let s=[null,\"loading\",\"failed\",\"success\",\"failedConfig\"];return-1===s.indexOf(i)&&console.error(`Error: ${i} is not one of ${JSON.stringify(s)}`),{type:\"spec_update_loading_status\",payload:i}}};let m={loadingStatus:Xt((i=>i||(0,et.Map)()),(i=>i.get(\"loadingStatus\")||null))};return{statePlugins:{spec:{actions:u,reducers:{spec_update_loading_status:(i,s)=>\"string\"==typeof s.payload?i.set(\"loadingStatus\",s.payload):i},selectors:m}}}}var _C=__webpack_require__(7287),wC=__webpack_require__.n(_C);const EC=console.error,withErrorBoundary=i=>s=>{const{getComponent:u,fn:m}=i(),v=u(\"ErrorBoundary\"),_=m.getDisplayName(s);class WithErrorBoundary extends He.Component{render(){return He.createElement(v,{targetName:_,getComponent:u,fn:m},He.createElement(s,No()({},this.props,this.context)))}}var j;return WithErrorBoundary.displayName=`WithErrorBoundary(${_})`,(j=s).prototype&&j.prototype.isReactComponent&&(WithErrorBoundary.prototype.mapStateToProps=s.prototype.mapStateToProps),WithErrorBoundary},fallback=i=>{let{name:s}=i;return He.createElement(\"div\",{className:\"fallback\"},\"😱 \",He.createElement(\"i\",null,\"Could not render \",\"t\"===s?\"this component\":s,\", see the console.\"))};class ErrorBoundary extends He.Component{static getDerivedStateFromError(i){return{hasError:!0,error:i}}constructor(){super(...arguments),this.state={hasError:!1,error:null}}componentDidCatch(i,s){this.props.fn.componentDidCatch(i,s)}render(){const{getComponent:i,targetName:s,children:u}=this.props;if(this.state.hasError){const u=i(\"Fallback\");return He.createElement(u,{name:s})}return u}}ErrorBoundary.defaultProps={targetName:\"this component\",getComponent:()=>fallback,fn:{componentDidCatch:EC},children:null};const SC=ErrorBoundary,safe_render=function(){let{componentList:i=[],fullOverride:s=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return u=>{let{getSystem:m}=u;const v=s?i:[\"App\",\"BaseLayout\",\"VersionPragmaFilter\",\"InfoContainer\",\"ServersContainer\",\"SchemesContainer\",\"AuthorizeBtnContainer\",\"FilterContainer\",\"Operations\",\"OperationContainer\",\"parameters\",\"responses\",\"OperationServers\",\"Models\",\"ModelWrapper\",...i],_=wC()(v,Array(v.length).fill(((i,s)=>{let{fn:u}=s;return u.withErrorBoundary(i)})));return{fn:{componentDidCatch:EC,withErrorBoundary:withErrorBoundary(m)},components:{ErrorBoundary:SC,Fallback:fallback},wrapComponents:_}}};class App extends He.Component{getLayout(){let{getComponent:i,layoutSelectors:s}=this.props;const u=s.current(),m=i(u,!0);return m||(()=>He.createElement(\"h1\",null,' No layout defined for \"',u,'\" '))}render(){const i=this.getLayout();return He.createElement(i,null)}}App.defaultProps={};class AuthorizationPopup extends He.Component{constructor(){super(...arguments),_o()(this,\"close\",(()=>{let{authActions:i}=this.props;i.showDefinitions(!1)}))}render(){let{authSelectors:i,authActions:s,getComponent:u,errSelectors:m,specSelectors:v,fn:{AST:_={}}}=this.props,j=i.shownDefinitions();const M=u(\"auths\"),$=u(\"CloseIcon\");return He.createElement(\"div\",{className:\"dialog-ux\"},He.createElement(\"div\",{className:\"backdrop-ux\"}),He.createElement(\"div\",{className:\"modal-ux\"},He.createElement(\"div\",{className:\"modal-dialog-ux\"},He.createElement(\"div\",{className:\"modal-ux-inner\"},He.createElement(\"div\",{className:\"modal-ux-header\"},He.createElement(\"h3\",null,\"Available authorizations\"),He.createElement(\"button\",{type:\"button\",className:\"close-modal\",onClick:this.close},He.createElement($,null))),He.createElement(\"div\",{className:\"modal-ux-content\"},j.valueSeq().map(((j,$)=>He.createElement(M,{key:$,AST:_,definitions:j,getComponent:u,errSelectors:m,authSelectors:i,authActions:s,specSelectors:v}))))))))}}class AuthorizeBtn extends He.Component{render(){let{isAuthorized:i,showPopup:s,onClick:u,getComponent:m}=this.props;const v=m(\"authorizationPopup\",!0),_=m(\"LockAuthIcon\",!0),j=m(\"UnlockAuthIcon\",!0);return He.createElement(\"div\",{className:\"auth-wrapper\"},He.createElement(\"button\",{className:i?\"btn authorize locked\":\"btn authorize unlocked\",onClick:u},He.createElement(\"span\",null,\"Authorize\"),i?He.createElement(_,null):He.createElement(j,null)),s&&He.createElement(v,null))}}class AuthorizeBtnContainer extends He.Component{render(){const{authActions:i,authSelectors:s,specSelectors:u,getComponent:m}=this.props,v=u.securityDefinitions(),_=s.definitionsToAuthorize(),j=m(\"authorizeBtn\");return v?He.createElement(j,{onClick:()=>i.showDefinitions(_),isAuthorized:!!s.authorized().size,showPopup:!!s.shownDefinitions(),getComponent:m}):null}}class AuthorizeOperationBtn extends He.Component{constructor(){super(...arguments),_o()(this,\"onClick\",(i=>{i.stopPropagation();let{onClick:s}=this.props;s&&s()}))}render(){let{isAuthorized:i,getComponent:s}=this.props;const u=s(\"LockAuthOperationIcon\",!0),m=s(\"UnlockAuthOperationIcon\",!0);return He.createElement(\"button\",{className:\"authorization__btn\",\"aria-label\":i?\"authorization button locked\":\"authorization button unlocked\",onClick:this.onClick},i?He.createElement(u,{className:\"locked\"}):He.createElement(m,{className:\"unlocked\"}))}}class Auths extends He.Component{constructor(i,s){super(i,s),_o()(this,\"onAuthChange\",(i=>{let{name:s}=i;this.setState({[s]:i})})),_o()(this,\"submitAuth\",(i=>{i.preventDefault();let{authActions:s}=this.props;s.authorizeWithPersistOption(this.state)})),_o()(this,\"logoutClick\",(i=>{i.preventDefault();let{authActions:s,definitions:u}=this.props,m=u.map(((i,s)=>s)).toArray();this.setState(m.reduce(((i,s)=>(i[s]=\"\",i)),{})),s.logoutWithPersistOption(m)})),_o()(this,\"close\",(i=>{i.preventDefault();let{authActions:s}=this.props;s.showDefinitions(!1)})),this.state={}}render(){let{definitions:i,getComponent:s,authSelectors:u,errSelectors:m}=this.props;const v=s(\"AuthItem\"),_=s(\"oauth2\",!0),j=s(\"Button\");let M=u.authorized(),$=i.filter(((i,s)=>!!M.get(s))),W=i.filter((i=>\"oauth2\"!==i.get(\"type\"))),X=i.filter((i=>\"oauth2\"===i.get(\"type\")));return He.createElement(\"div\",{className:\"auth-container\"},!!W.size&&He.createElement(\"form\",{onSubmit:this.submitAuth},W.map(((i,u)=>He.createElement(v,{key:u,schema:i,name:u,getComponent:s,onAuthChange:this.onAuthChange,authorized:M,errSelectors:m}))).toArray(),He.createElement(\"div\",{className:\"auth-btn-wrapper\"},W.size===$.size?He.createElement(j,{className:\"btn modal-btn auth\",onClick:this.logoutClick},\"Logout\"):He.createElement(j,{type:\"submit\",className:\"btn modal-btn auth authorize\"},\"Authorize\"),He.createElement(j,{className:\"btn modal-btn auth btn-done\",onClick:this.close},\"Close\"))),X&&X.size?He.createElement(\"div\",null,He.createElement(\"div\",{className:\"scope-def\"},He.createElement(\"p\",null,\"Scopes are used to grant an application different levels of access to data on behalf of the end user. Each API may declare one or more scopes.\"),He.createElement(\"p\",null,\"API requires the following scopes. Select which ones you want to grant to Swagger UI.\")),i.filter((i=>\"oauth2\"===i.get(\"type\"))).map(((i,s)=>He.createElement(\"div\",{key:s},He.createElement(_,{authorized:M,schema:i,name:s})))).toArray()):null)}}class auth_item_Auths extends He.Component{render(){let{schema:i,name:s,getComponent:u,onAuthChange:m,authorized:v,errSelectors:_}=this.props;const j=u(\"apiKeyAuth\"),M=u(\"basicAuth\");let $;const W=i.get(\"type\");switch(W){case\"apiKey\":$=He.createElement(j,{key:s,schema:i,name:s,errSelectors:_,authorized:v,getComponent:u,onChange:m});break;case\"basic\":$=He.createElement(M,{key:s,schema:i,name:s,errSelectors:_,authorized:v,getComponent:u,onChange:m});break;default:$=He.createElement(\"div\",{key:s},\"Unknown security definition type \",W)}return He.createElement(\"div\",{key:`${s}-jump`},$)}}class AuthError extends He.Component{render(){let{error:i}=this.props,s=i.get(\"level\"),u=i.get(\"message\"),m=i.get(\"source\");return He.createElement(\"div\",{className:\"errors\"},He.createElement(\"b\",null,m,\" \",s),He.createElement(\"span\",null,u))}}class ApiKeyAuth extends He.Component{constructor(i,s){super(i,s),_o()(this,\"onChange\",(i=>{let{onChange:s}=this.props,u=i.target.value,m=Object.assign({},this.state,{value:u});this.setState(m),s(m)}));let{name:u,schema:m}=this.props,v=this.getValue();this.state={name:u,schema:m,value:v}}getValue(){let{name:i,authorized:s}=this.props;return s&&s.getIn([i,\"value\"])}render(){let{schema:i,getComponent:s,errSelectors:u,name:m}=this.props;const v=s(\"Input\"),_=s(\"Row\"),j=s(\"Col\"),M=s(\"authError\"),$=s(\"Markdown\",!0),W=s(\"JumpToPath\",!0);let X=this.getValue(),Y=u.allErrors().filter((i=>i.get(\"authId\")===m));return He.createElement(\"div\",null,He.createElement(\"h4\",null,He.createElement(\"code\",null,m||i.get(\"name\")),\" (apiKey)\",He.createElement(W,{path:[\"securityDefinitions\",m]})),X&&He.createElement(\"h6\",null,\"Authorized\"),He.createElement(_,null,He.createElement($,{source:i.get(\"description\")})),He.createElement(_,null,He.createElement(\"p\",null,\"Name: \",He.createElement(\"code\",null,i.get(\"name\")))),He.createElement(_,null,He.createElement(\"p\",null,\"In: \",He.createElement(\"code\",null,i.get(\"in\")))),He.createElement(_,null,He.createElement(\"label\",null,\"Value:\"),X?He.createElement(\"code\",null,\" ****** \"):He.createElement(j,null,He.createElement(v,{type:\"text\",onChange:this.onChange,autoFocus:!0}))),Y.valueSeq().map(((i,s)=>He.createElement(M,{error:i,key:s}))))}}class BasicAuth extends He.Component{constructor(i,s){super(i,s),_o()(this,\"onChange\",(i=>{let{onChange:s}=this.props,{value:u,name:m}=i.target,v=this.state.value;v[m]=u,this.setState({value:v}),s(this.state)}));let{schema:u,name:m}=this.props,v=this.getValue().username;this.state={name:m,schema:u,value:v?{username:v}:{}}}getValue(){let{authorized:i,name:s}=this.props;return i&&i.getIn([s,\"value\"])||{}}render(){let{schema:i,getComponent:s,name:u,errSelectors:m}=this.props;const v=s(\"Input\"),_=s(\"Row\"),j=s(\"Col\"),M=s(\"authError\"),$=s(\"JumpToPath\",!0),W=s(\"Markdown\",!0);let X=this.getValue().username,Y=m.allErrors().filter((i=>i.get(\"authId\")===u));return He.createElement(\"div\",null,He.createElement(\"h4\",null,\"Basic authorization\",He.createElement($,{path:[\"securityDefinitions\",u]})),X&&He.createElement(\"h6\",null,\"Authorized\"),He.createElement(_,null,He.createElement(W,{source:i.get(\"description\")})),He.createElement(_,null,He.createElement(\"label\",null,\"Username:\"),X?He.createElement(\"code\",null,\" \",X,\" \"):He.createElement(j,null,He.createElement(v,{type:\"text\",required:\"required\",name:\"username\",onChange:this.onChange,autoFocus:!0}))),He.createElement(_,null,He.createElement(\"label\",null,\"Password:\"),X?He.createElement(\"code\",null,\" ****** \"):He.createElement(j,null,He.createElement(v,{autoComplete:\"new-password\",name:\"password\",type:\"password\",onChange:this.onChange}))),Y.valueSeq().map(((i,s)=>He.createElement(M,{error:i,key:s}))))}}function example_Example(i){const{example:s,showValue:u,getComponent:m,getConfigs:v}=i,_=m(\"Markdown\",!0),j=m(\"highlightCode\");return s?He.createElement(\"div\",{className:\"example\"},s.get(\"description\")?He.createElement(\"section\",{className:\"example__section\"},He.createElement(\"div\",{className:\"example__section-header\"},\"Example Description\"),He.createElement(\"p\",null,He.createElement(_,{source:s.get(\"description\")}))):null,u&&s.has(\"value\")?He.createElement(\"section\",{className:\"example__section\"},He.createElement(\"div\",{className:\"example__section-header\"},\"Example Value\"),He.createElement(j,{getConfigs:v,value:stringify(s.get(\"value\"))})):null):null}class ExamplesSelect extends He.PureComponent{constructor(){var i;super(...arguments),i=this,_o()(this,\"_onSelect\",(function(s){let{isSyntheticChange:u=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"function\"==typeof i.props.onSelect&&i.props.onSelect(s,{isSyntheticChange:u})})),_o()(this,\"_onDomSelect\",(i=>{if(\"function\"==typeof this.props.onSelect){const s=i.target.selectedOptions[0].getAttribute(\"value\");this._onSelect(s,{isSyntheticChange:!1})}})),_o()(this,\"getCurrentExample\",(()=>{const{examples:i,currentExampleKey:s}=this.props,u=i.get(s),m=i.keySeq().first(),v=i.get(m);return u||v||Map({})}))}componentDidMount(){const{onSelect:i,examples:s}=this.props;if(\"function\"==typeof i){const i=s.first(),u=s.keyOf(i);this._onSelect(u,{isSyntheticChange:!0})}}UNSAFE_componentWillReceiveProps(i){const{currentExampleKey:s,examples:u}=i;if(u!==this.props.examples&&!u.has(s)){const i=u.first(),s=u.keyOf(i);this._onSelect(s,{isSyntheticChange:!0})}}render(){const{examples:i,currentExampleKey:s,isValueModified:u,isModifiedValueAvailable:m,showLabels:v}=this.props;return He.createElement(\"div\",{className:\"examples-select\"},v?He.createElement(\"span\",{className:\"examples-select__section-label\"},\"Examples: \"):null,He.createElement(\"select\",{className:\"examples-select-element\",onChange:this._onDomSelect,value:m&&u?\"__MODIFIED__VALUE__\":s||\"\"},m?He.createElement(\"option\",{value:\"__MODIFIED__VALUE__\"},\"[Modified value]\"):null,i.map(((i,s)=>He.createElement(\"option\",{key:s,value:s},i.get(\"summary\")||s))).valueSeq()))}}_o()(ExamplesSelect,\"defaultProps\",{examples:tt().Map({}),onSelect:function(){for(var i=arguments.length,s=new Array(i),u=0;u<i;u++)s[u]=arguments[u];return console.log(\"DEBUG: ExamplesSelect was not given an onSelect callback\",...s)},currentExampleKey:null,showLabels:!0});const stringifyUnlessList=i=>et.List.isList(i)?i:stringify(i);class ExamplesSelectValueRetainer extends He.PureComponent{constructor(i){var s;super(i),s=this,_o()(this,\"_getStateForCurrentNamespace\",(()=>{const{currentNamespace:i}=this.props;return(this.state[i]||(0,et.Map)()).toObject()})),_o()(this,\"_setStateForCurrentNamespace\",(i=>{const{currentNamespace:s}=this.props;return this._setStateForNamespace(s,i)})),_o()(this,\"_setStateForNamespace\",((i,s)=>{const u=(this.state[i]||(0,et.Map)()).mergeDeep(s);return this.setState({[i]:u})})),_o()(this,\"_isCurrentUserInputSameAsExampleValue\",(()=>{const{currentUserInputValue:i}=this.props;return this._getCurrentExampleValue()===i})),_o()(this,\"_getValueForExample\",((i,s)=>{const{examples:u}=s||this.props;return stringifyUnlessList((u||(0,et.Map)({})).getIn([i,\"value\"]))})),_o()(this,\"_getCurrentExampleValue\",(i=>{const{currentKey:s}=i||this.props;return this._getValueForExample(s,i||this.props)})),_o()(this,\"_onExamplesSelect\",(function(i){let{isSyntheticChange:u}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{onSelect:m,updateValue:v,currentUserInputValue:_,userHasEditedBody:j}=s.props,{lastUserEditedValue:M}=s._getStateForCurrentNamespace(),$=s._getValueForExample(i);if(\"__MODIFIED__VALUE__\"===i)return v(stringifyUnlessList(M)),s._setStateForCurrentNamespace({isModifiedValueSelected:!0});if(\"function\"==typeof m){for(var W=arguments.length,X=new Array(W>2?W-2:0),Y=2;Y<W;Y++)X[Y-2]=arguments[Y];m(i,{isSyntheticChange:u},...X)}s._setStateForCurrentNamespace({lastDownstreamValue:$,isModifiedValueSelected:u&&j||!!_&&_!==$}),u||\"function\"==typeof v&&v(stringifyUnlessList($))}));const u=this._getCurrentExampleValue();this.state={[i.currentNamespace]:(0,et.Map)({lastUserEditedValue:this.props.currentUserInputValue,lastDownstreamValue:u,isModifiedValueSelected:this.props.userHasEditedBody||this.props.currentUserInputValue!==u})}}componentWillUnmount(){this.props.setRetainRequestBodyValueFlag(!1)}UNSAFE_componentWillReceiveProps(i){const{currentUserInputValue:s,examples:u,onSelect:m,userHasEditedBody:v}=i,{lastUserEditedValue:_,lastDownstreamValue:j}=this._getStateForCurrentNamespace(),M=this._getValueForExample(i.currentKey,i),$=u.filter((i=>i.get(\"value\")===s||stringify(i.get(\"value\"))===s));if($.size){let s;s=$.has(i.currentKey)?i.currentKey:$.keySeq().first(),m(s,{isSyntheticChange:!0})}else s!==this.props.currentUserInputValue&&s!==_&&s!==j&&(this.props.setRetainRequestBodyValueFlag(!0),this._setStateForNamespace(i.currentNamespace,{lastUserEditedValue:i.currentUserInputValue,isModifiedValueSelected:v||s!==M}))}render(){const{currentUserInputValue:i,examples:s,currentKey:u,getComponent:m,userHasEditedBody:v}=this.props,{lastDownstreamValue:_,lastUserEditedValue:j,isModifiedValueSelected:M}=this._getStateForCurrentNamespace(),$=m(\"ExamplesSelect\");return He.createElement($,{examples:s,currentExampleKey:u,onSelect:this._onExamplesSelect,isModifiedValueAvailable:!!j&&j!==_,isValueModified:void 0!==i&&M&&i!==this._getCurrentExampleValue()||v})}}function oauth2_authorize_authorize(i){let{auth:s,authActions:u,errActions:m,configs:v,authConfigs:_={},currentServer:j}=i,{schema:M,scopes:$,name:W,clientId:X}=s,Y=M.get(\"flow\"),Z=[];switch(Y){case\"password\":return void u.authorizePassword(s);case\"application\":case\"clientCredentials\":case\"client_credentials\":return void u.authorizeApplication(s);case\"accessCode\":case\"authorizationCode\":case\"authorization_code\":Z.push(\"response_type=code\");break;case\"implicit\":Z.push(\"response_type=token\")}\"string\"==typeof X&&Z.push(\"client_id=\"+encodeURIComponent(X));let ee=v.oauth2RedirectUrl;if(void 0===ee)return void m.newAuthErr({authId:W,source:\"validation\",level:\"error\",message:\"oauth2RedirectUrl configuration is not passed. Oauth2 authorization cannot be performed.\"});Z.push(\"redirect_uri=\"+encodeURIComponent(ee));let ie=[];if(Array.isArray($)?ie=$:tt().List.isList($)&&(ie=$.toArray()),ie.length>0){let i=_.scopeSeparator||\" \";Z.push(\"scope=\"+encodeURIComponent(ie.join(i)))}let ae=utils_btoa(new Date);if(Z.push(\"state=\"+encodeURIComponent(ae)),void 0!==_.realm&&Z.push(\"realm=\"+encodeURIComponent(_.realm)),(\"authorizationCode\"===Y||\"authorization_code\"===Y||\"accessCode\"===Y)&&_.usePkceWithAuthorizationCodeGrant){const i=function generateCodeVerifier(){return b64toB64UrlEncoded(jt()(32).toString(\"base64\"))}(),u=function createCodeChallenge(i){return b64toB64UrlEncoded(It()(\"sha256\").update(i).digest(\"base64\"))}(i);Z.push(\"code_challenge=\"+u),Z.push(\"code_challenge_method=S256\"),s.codeVerifier=i}let{additionalQueryStringParams:ce}=_;for(let i in ce)void 0!==ce[i]&&Z.push([i,ce[i]].map(encodeURIComponent).join(\"=\"));const le=M.get(\"authorizationUrl\");let pe;pe=j?Lt()(sanitizeUrl(le),j,!0).toString():sanitizeUrl(le);let de,fe=[pe,Z.join(\"&\")].join(-1===le.indexOf(\"?\")?\"?\":\"&\");de=\"implicit\"===Y?u.preAuthorizeImplicit:_.useBasicAuthenticationWithAccessCodeGrant?u.authorizeAccessCodeWithBasicAuthentication:u.authorizeAccessCodeWithFormParams,u.authPopup(fe,{auth:s,state:ae,redirectUrl:ee,callback:de,errCb:m.newAuthErr})}_o()(ExamplesSelectValueRetainer,\"defaultProps\",{userHasEditedBody:!1,examples:(0,et.Map)({}),currentNamespace:\"__DEFAULT__NAMESPACE__\",setRetainRequestBodyValueFlag:()=>{},onSelect:function(){for(var i=arguments.length,s=new Array(i),u=0;u<i;u++)s[u]=arguments[u];return console.log(\"ExamplesSelectValueRetainer: no `onSelect` function was provided\",...s)},updateValue:function(){for(var i=arguments.length,s=new Array(i),u=0;u<i;u++)s[u]=arguments[u];return console.log(\"ExamplesSelectValueRetainer: no `updateValue` function was provided\",...s)}});class Oauth2 extends He.Component{constructor(i,s){super(i,s),_o()(this,\"close\",(i=>{i.preventDefault();let{authActions:s}=this.props;s.showDefinitions(!1)})),_o()(this,\"authorize\",(()=>{let{authActions:i,errActions:s,getConfigs:u,authSelectors:m,oas3Selectors:v}=this.props,_=u(),j=m.getConfigs();s.clear({authId:name,type:\"auth\",source:\"auth\"}),oauth2_authorize_authorize({auth:this.state,currentServer:v.serverEffectiveValue(v.selectedServer()),authActions:i,errActions:s,configs:_,authConfigs:j})})),_o()(this,\"onScopeChange\",(i=>{let{target:s}=i,{checked:u}=s,m=s.dataset.value;if(u&&-1===this.state.scopes.indexOf(m)){let i=this.state.scopes.concat([m]);this.setState({scopes:i})}else!u&&this.state.scopes.indexOf(m)>-1&&this.setState({scopes:this.state.scopes.filter((i=>i!==m))})})),_o()(this,\"onInputChange\",(i=>{let{target:{dataset:{name:s},value:u}}=i,m={[s]:u};this.setState(m)})),_o()(this,\"selectScopes\",(i=>{i.target.dataset.all?this.setState({scopes:Array.from((this.props.schema.get(\"allowedScopes\")||this.props.schema.get(\"scopes\")).keys())}):this.setState({scopes:[]})})),_o()(this,\"logout\",(i=>{i.preventDefault();let{authActions:s,errActions:u,name:m}=this.props;u.clear({authId:m,type:\"auth\",source:\"auth\"}),s.logoutWithPersistOption([m])}));let{name:u,schema:m,authorized:v,authSelectors:_}=this.props,j=v&&v.get(u),M=_.getConfigs()||{},$=j&&j.get(\"username\")||\"\",W=j&&j.get(\"clientId\")||M.clientId||\"\",X=j&&j.get(\"clientSecret\")||M.clientSecret||\"\",Y=j&&j.get(\"passwordType\")||\"basic\",Z=j&&j.get(\"scopes\")||M.scopes||[];\"string\"==typeof Z&&(Z=Z.split(M.scopeSeparator||\" \")),this.state={appName:M.appName,name:u,schema:m,scopes:Z,clientId:W,clientSecret:X,username:$,password:\"\",passwordType:Y}}render(){let{schema:i,getComponent:s,authSelectors:u,errSelectors:m,name:v,specSelectors:_}=this.props;const j=s(\"Input\"),M=s(\"Row\"),$=s(\"Col\"),W=s(\"Button\"),X=s(\"authError\"),Y=s(\"JumpToPath\",!0),Z=s(\"Markdown\",!0),ee=s(\"InitializedInput\"),{isOAS3:ie}=_;let ae=ie()?i.get(\"openIdConnectUrl\"):null;const ce=\"implicit\",le=\"password\",pe=ie()?ae?\"authorization_code\":\"authorizationCode\":\"accessCode\",de=ie()?ae?\"client_credentials\":\"clientCredentials\":\"application\";let fe=!!(u.getConfigs()||{}).usePkceWithAuthorizationCodeGrant,ye=i.get(\"flow\"),be=ye===pe&&fe?ye+\" with PKCE\":ye,_e=i.get(\"allowedScopes\")||i.get(\"scopes\"),we=!!u.authorized().get(v),Se=m.allErrors().filter((i=>i.get(\"authId\")===v)),xe=!Se.filter((i=>\"validation\"===i.get(\"source\"))).size,Pe=i.get(\"description\");return He.createElement(\"div\",null,He.createElement(\"h4\",null,v,\" (OAuth2, \",be,\") \",He.createElement(Y,{path:[\"securityDefinitions\",v]})),this.state.appName?He.createElement(\"h5\",null,\"Application: \",this.state.appName,\" \"):null,Pe&&He.createElement(Z,{source:i.get(\"description\")}),we&&He.createElement(\"h6\",null,\"Authorized\"),ae&&He.createElement(\"p\",null,\"OpenID Connect URL: \",He.createElement(\"code\",null,ae)),(ye===ce||ye===pe)&&He.createElement(\"p\",null,\"Authorization URL: \",He.createElement(\"code\",null,i.get(\"authorizationUrl\"))),(ye===le||ye===pe||ye===de)&&He.createElement(\"p\",null,\"Token URL:\",He.createElement(\"code\",null,\" \",i.get(\"tokenUrl\"))),He.createElement(\"p\",{className:\"flow\"},\"Flow: \",He.createElement(\"code\",null,be)),ye!==le?null:He.createElement(M,null,He.createElement(M,null,He.createElement(\"label\",{htmlFor:\"oauth_username\"},\"username:\"),we?He.createElement(\"code\",null,\" \",this.state.username,\" \"):He.createElement($,{tablet:10,desktop:10},He.createElement(\"input\",{id:\"oauth_username\",type:\"text\",\"data-name\":\"username\",onChange:this.onInputChange,autoFocus:!0}))),He.createElement(M,null,He.createElement(\"label\",{htmlFor:\"oauth_password\"},\"password:\"),we?He.createElement(\"code\",null,\" ****** \"):He.createElement($,{tablet:10,desktop:10},He.createElement(\"input\",{id:\"oauth_password\",type:\"password\",\"data-name\":\"password\",onChange:this.onInputChange}))),He.createElement(M,null,He.createElement(\"label\",{htmlFor:\"password_type\"},\"Client credentials location:\"),we?He.createElement(\"code\",null,\" \",this.state.passwordType,\" \"):He.createElement($,{tablet:10,desktop:10},He.createElement(\"select\",{id:\"password_type\",\"data-name\":\"passwordType\",onChange:this.onInputChange},He.createElement(\"option\",{value:\"basic\"},\"Authorization header\"),He.createElement(\"option\",{value:\"request-body\"},\"Request body\"))))),(ye===de||ye===ce||ye===pe||ye===le)&&(!we||we&&this.state.clientId)&&He.createElement(M,null,He.createElement(\"label\",{htmlFor:\"client_id\"},\"client_id:\"),we?He.createElement(\"code\",null,\" ****** \"):He.createElement($,{tablet:10,desktop:10},He.createElement(ee,{id:\"client_id\",type:\"text\",required:ye===le,initialValue:this.state.clientId,\"data-name\":\"clientId\",onChange:this.onInputChange}))),(ye===de||ye===pe||ye===le)&&He.createElement(M,null,He.createElement(\"label\",{htmlFor:\"client_secret\"},\"client_secret:\"),we?He.createElement(\"code\",null,\" ****** \"):He.createElement($,{tablet:10,desktop:10},He.createElement(ee,{id:\"client_secret\",initialValue:this.state.clientSecret,type:\"password\",\"data-name\":\"clientSecret\",onChange:this.onInputChange}))),!we&&_e&&_e.size?He.createElement(\"div\",{className:\"scopes\"},He.createElement(\"h2\",null,\"Scopes:\",He.createElement(\"a\",{onClick:this.selectScopes,\"data-all\":!0},\"select all\"),He.createElement(\"a\",{onClick:this.selectScopes},\"select none\")),_e.map(((i,s)=>He.createElement(M,{key:s},He.createElement(\"div\",{className:\"checkbox\"},He.createElement(j,{\"data-value\":s,id:`${s}-${ye}-checkbox-${this.state.name}`,disabled:we,checked:this.state.scopes.includes(s),type:\"checkbox\",onChange:this.onScopeChange}),He.createElement(\"label\",{htmlFor:`${s}-${ye}-checkbox-${this.state.name}`},He.createElement(\"span\",{className:\"item\"}),He.createElement(\"div\",{className:\"text\"},He.createElement(\"p\",{className:\"name\"},s),He.createElement(\"p\",{className:\"description\"},i))))))).toArray()):null,Se.valueSeq().map(((i,s)=>He.createElement(X,{error:i,key:s}))),He.createElement(\"div\",{className:\"auth-btn-wrapper\"},xe&&(we?He.createElement(W,{className:\"btn modal-btn auth authorize\",onClick:this.logout},\"Logout\"):He.createElement(W,{className:\"btn modal-btn auth authorize\",onClick:this.authorize},\"Authorize\")),He.createElement(W,{className:\"btn modal-btn auth btn-done\",onClick:this.close},\"Close\")))}}class Clear extends He.Component{constructor(){super(...arguments),_o()(this,\"onClick\",(()=>{let{specActions:i,path:s,method:u}=this.props;i.clearResponse(s,u),i.clearRequest(s,u)}))}render(){return He.createElement(\"button\",{className:\"btn btn-clear opblock-control__btn\",onClick:this.onClick},\"Clear\")}}const live_response_Headers=i=>{let{headers:s}=i;return He.createElement(\"div\",null,He.createElement(\"h5\",null,\"Response headers\"),He.createElement(\"pre\",{className:\"microlight\"},s))},Duration=i=>{let{duration:s}=i;return He.createElement(\"div\",null,He.createElement(\"h5\",null,\"Request duration\"),He.createElement(\"pre\",{className:\"microlight\"},s,\" ms\"))};class LiveResponse extends He.Component{shouldComponentUpdate(i){return this.props.response!==i.response||this.props.path!==i.path||this.props.method!==i.method||this.props.displayRequestDuration!==i.displayRequestDuration}render(){const{response:i,getComponent:s,getConfigs:u,displayRequestDuration:m,specSelectors:v,path:_,method:j}=this.props,{showMutatedRequest:M,requestSnippetsEnabled:$}=u(),W=M?v.mutatedRequestFor(_,j):v.requestFor(_,j),X=i.get(\"status\"),Y=W.get(\"url\"),Z=i.get(\"headers\").toJS(),ee=i.get(\"notDocumented\"),ie=i.get(\"error\"),ae=i.get(\"text\"),ce=i.get(\"duration\"),le=Object.keys(Z),pe=Z[\"content-type\"]||Z[\"Content-Type\"],de=s(\"responseBody\"),fe=le.map((i=>{var s=Array.isArray(Z[i])?Z[i].join():Z[i];return He.createElement(\"span\",{className:\"headerline\",key:i},\" \",i,\": \",s,\" \")})),ye=0!==fe.length,be=s(\"Markdown\",!0),_e=s(\"RequestSnippets\",!0),we=s(\"curl\");return He.createElement(\"div\",null,W&&(!0===$||\"true\"===$?He.createElement(_e,{request:W}):He.createElement(we,{request:W,getConfigs:u})),Y&&He.createElement(\"div\",null,He.createElement(\"div\",{className:\"request-url\"},He.createElement(\"h4\",null,\"Request URL\"),He.createElement(\"pre\",{className:\"microlight\"},Y))),He.createElement(\"h4\",null,\"Server response\"),He.createElement(\"table\",{className:\"responses-table live-responses-table\"},He.createElement(\"thead\",null,He.createElement(\"tr\",{className:\"responses-header\"},He.createElement(\"td\",{className:\"col_header response-col_status\"},\"Code\"),He.createElement(\"td\",{className:\"col_header response-col_description\"},\"Details\"))),He.createElement(\"tbody\",null,He.createElement(\"tr\",{className:\"response\"},He.createElement(\"td\",{className:\"response-col_status\"},X,ee?He.createElement(\"div\",{className:\"response-undocumented\"},He.createElement(\"i\",null,\" Undocumented \")):null),He.createElement(\"td\",{className:\"response-col_description\"},ie?He.createElement(be,{source:`${\"\"!==i.get(\"name\")?`${i.get(\"name\")}: `:\"\"}${i.get(\"message\")}`}):null,ae?He.createElement(de,{content:ae,contentType:pe,url:Y,headers:Z,getConfigs:u,getComponent:s}):null,ye?He.createElement(live_response_Headers,{headers:fe}):null,m&&ce?He.createElement(Duration,{duration:ce}):null)))))}}class OnlineValidatorBadge extends He.Component{constructor(i,s){super(i,s),_o()(this,\"getDefinitionUrl\",(()=>{let{specSelectors:i}=this.props;return new(Lt())(i.url(),dt.location).toString()}));let{getConfigs:u}=i,{validatorUrl:m}=u();this.state={url:this.getDefinitionUrl(),validatorUrl:void 0===m?\"https://validator.swagger.io/validator\":m}}UNSAFE_componentWillReceiveProps(i){let{getConfigs:s}=i,{validatorUrl:u}=s();this.setState({url:this.getDefinitionUrl(),validatorUrl:void 0===u?\"https://validator.swagger.io/validator\":u})}render(){let{getConfigs:i}=this.props,{spec:s}=i(),u=sanitizeUrl(this.state.validatorUrl);return\"object\"==typeof s&&Object.keys(s).length?null:this.state.url&&requiresValidationURL(this.state.validatorUrl)&&requiresValidationURL(this.state.url)?He.createElement(\"span\",{className:\"float-right\"},He.createElement(\"a\",{target:\"_blank\",rel:\"noopener noreferrer\",href:`${u}/debug?url=${encodeURIComponent(this.state.url)}`},He.createElement(ValidatorImage,{src:`${u}?url=${encodeURIComponent(this.state.url)}`,alt:\"Online validator badge\"}))):null}}class ValidatorImage extends He.Component{constructor(i){super(i),this.state={loaded:!1,error:!1}}componentDidMount(){const i=new Image;i.onload=()=>{this.setState({loaded:!0})},i.onerror=()=>{this.setState({error:!0})},i.src=this.props.src}UNSAFE_componentWillReceiveProps(i){if(i.src!==this.props.src){const s=new Image;s.onload=()=>{this.setState({loaded:!0})},s.onerror=()=>{this.setState({error:!0})},s.src=i.src}}render(){return this.state.error?He.createElement(\"img\",{alt:\"Error\"}):this.state.loaded?He.createElement(\"img\",{src:this.props.src,alt:this.props.alt}):null}}class Operations extends He.Component{constructor(){super(...arguments),_o()(this,\"renderOperationTag\",((i,s)=>{const{specSelectors:u,getComponent:m,oas3Selectors:v,layoutSelectors:_,layoutActions:j,getConfigs:M}=this.props,$=u.validOperationMethods(),W=m(\"OperationContainer\",!0),X=m(\"OperationTag\"),Y=i.get(\"operations\");return He.createElement(X,{key:\"operation-\"+s,tagObj:i,tag:s,oas3Selectors:v,layoutSelectors:_,layoutActions:j,getConfigs:M,getComponent:m,specUrl:u.url()},He.createElement(\"div\",{className:\"operation-tag-content\"},Y.map((i=>{const u=i.get(\"path\"),m=i.get(\"method\"),v=tt().List([\"paths\",u,m]);return-1===$.indexOf(m)?null:He.createElement(W,{key:`${u}-${m}`,specPath:v,op:i,path:u,method:m,tag:s})})).toArray()))}))}render(){let{specSelectors:i}=this.props;const s=i.taggedOperations();return 0===s.size?He.createElement(\"h3\",null,\" No operations defined in spec!\"):He.createElement(\"div\",null,s.map(this.renderOperationTag).toArray(),s.size<1?He.createElement(\"h3\",null,\" No operations defined in spec! \"):null)}}function isAbsoluteUrl(i){return i.match(/^(?:[a-z]+:)?\\/\\//i)}function buildBaseUrl(i,s){return i?isAbsoluteUrl(i)?function addProtocol(i){return i.match(/^\\/\\//i)?`${window.location.protocol}${i}`:i}(i):new URL(i,s).href:s}function safeBuildUrl(i,s){let{selectedServer:u=\"\"}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};try{return function buildUrl(i,s){let{selectedServer:u=\"\"}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!i)return;if(isAbsoluteUrl(i))return i;const m=buildBaseUrl(u,s);return isAbsoluteUrl(m)?new URL(i,m).href:new URL(i,window.location.href).href}(i,s,{selectedServer:u})}catch{return}}class OperationTag extends He.Component{render(){const{tagObj:i,tag:s,children:u,oas3Selectors:m,layoutSelectors:v,layoutActions:_,getConfigs:j,getComponent:M,specUrl:$}=this.props;let{docExpansion:W,deepLinking:X}=j();const Y=X&&\"false\"!==X,Z=M(\"Collapse\"),ee=M(\"Markdown\",!0),ie=M(\"DeepLink\"),ae=M(\"Link\"),ce=M(\"ArrowUpIcon\"),le=M(\"ArrowDownIcon\");let pe,de=i.getIn([\"tagDetails\",\"description\"],null),fe=i.getIn([\"tagDetails\",\"externalDocs\",\"description\"]),ye=i.getIn([\"tagDetails\",\"externalDocs\",\"url\"]);pe=isFunc(m)&&isFunc(m.selectedServer)?safeBuildUrl(ye,$,{selectedServer:m.selectedServer()}):ye;let be=[\"operations-tag\",s],_e=v.isShown(be,\"full\"===W||\"list\"===W);return He.createElement(\"div\",{className:_e?\"opblock-tag-section is-open\":\"opblock-tag-section\"},He.createElement(\"h3\",{onClick:()=>_.show(be,!_e),className:de?\"opblock-tag\":\"opblock-tag no-desc\",id:be.map((i=>escapeDeepLinkPath(i))).join(\"-\"),\"data-tag\":s,\"data-is-open\":_e},He.createElement(ie,{enabled:Y,isShown:_e,path:createDeepLinkPath(s),text:s}),de?He.createElement(\"small\",null,He.createElement(ee,{source:de})):He.createElement(\"small\",null),pe?He.createElement(\"div\",{className:\"info__externaldocs\"},He.createElement(\"small\",null,He.createElement(ae,{href:sanitizeUrl(pe),onClick:i=>i.stopPropagation(),target:\"_blank\"},fe||pe))):null,He.createElement(\"button\",{\"aria-expanded\":_e,className:\"expand-operation\",title:_e?\"Collapse operation\":\"Expand operation\",onClick:()=>_.show(be,!_e)},_e?He.createElement(ce,{className:\"arrow\"}):He.createElement(le,{className:\"arrow\"}))),He.createElement(Z,{isOpened:_e},u))}}_o()(OperationTag,\"defaultProps\",{tagObj:tt().fromJS({}),tag:\"\"});const xC=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwcHgiICBoZWlnaHQ9IjIwMHB4IiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiIGNsYXNzPSJsZHMtcm9sbGluZyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsiPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIGZpbGw9Im5vbmUiIG5nLWF0dHItc3Ryb2tlPSJ7e2NvbmZpZy5jb2xvcn19IiBuZy1hdHRyLXN0cm9rZS13aWR0aD0ie3tjb25maWcud2lkdGh9fSIgbmctYXR0ci1yPSJ7e2NvbmZpZy5yYWRpdXN9fSIgbmctYXR0ci1zdHJva2UtZGFzaGFycmF5PSJ7e2NvbmZpZy5kYXNoYXJyYXl9fSIgc3Ryb2tlPSIjNTU1NTU1IiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgY2FsY01vZGU9ImxpbmVhciIgdmFsdWVzPSIwIDUwIDUwOzM2MCA1MCA1MCIga2V5VGltZXM9IjA7MSIgZHVyPSIxcyIgYmVnaW49IjBzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlVHJhbnNmb3JtPjwvY2lyY2xlPjwvc3ZnPgo=\";class operation_Operation extends He.PureComponent{render(){let{specPath:i,response:s,request:u,toggleShown:m,onTryoutClick:v,onResetClick:_,onCancelClick:j,onExecute:M,fn:$,getComponent:W,getConfigs:X,specActions:Y,specSelectors:Z,authActions:ee,authSelectors:ie,oas3Actions:ae,oas3Selectors:ce}=this.props,le=this.props.operation,{deprecated:pe,isShown:de,path:fe,method:ye,op:be,tag:_e,operationId:we,allowTryItOut:Se,displayRequestDuration:xe,tryItOutEnabled:Pe,executeInProgress:Ie}=le.toJS(),{description:Te,externalDocs:Re,schemes:qe}=be;const ze=Re?safeBuildUrl(Re.url,Z.url(),{selectedServer:ce.selectedServer()}):\"\";let Ve=le.getIn([\"op\"]),We=Ve.get(\"responses\"),Xe=function getList(i,s){if(!tt().Iterable.isIterable(i))return tt().List();let u=i.getIn(Array.isArray(s)?s:[s]);return tt().List.isList(u)?u:tt().List()}(Ve,[\"parameters\"]),Ye=Z.operationScheme(fe,ye),Qe=[\"operations\",_e,we],et=getExtensions(Ve);const rt=W(\"responses\"),nt=W(\"parameters\"),ot=W(\"execute\"),it=W(\"clear\"),at=W(\"Collapse\"),st=W(\"Markdown\",!0),ct=W(\"schemes\"),lt=W(\"OperationServers\"),ut=W(\"OperationExt\"),pt=W(\"OperationSummary\"),ht=W(\"Link\"),{showExtensions:dt}=X();if(We&&s&&s.size>0){let i=!We.get(String(s.get(\"status\")))&&!We.get(\"default\");s=s.set(\"notDocumented\",i)}let mt=[fe,ye];const yt=Z.validationErrors([fe,ye]);return He.createElement(\"div\",{className:pe?\"opblock opblock-deprecated\":de?`opblock opblock-${ye} is-open`:`opblock opblock-${ye}`,id:escapeDeepLinkPath(Qe.join(\"-\"))},He.createElement(pt,{operationProps:le,isShown:de,toggleShown:m,getComponent:W,authActions:ee,authSelectors:ie,specPath:i}),He.createElement(at,{isOpened:de},He.createElement(\"div\",{className:\"opblock-body\"},Ve&&Ve.size||null===Ve?null:He.createElement(\"img\",{height:\"32px\",width:\"32px\",src:xC,className:\"opblock-loading-animation\"}),pe&&He.createElement(\"h4\",{className:\"opblock-title_normal\"},\" Warning: Deprecated\"),Te&&He.createElement(\"div\",{className:\"opblock-description-wrapper\"},He.createElement(\"div\",{className:\"opblock-description\"},He.createElement(st,{source:Te}))),ze?He.createElement(\"div\",{className:\"opblock-external-docs-wrapper\"},He.createElement(\"h4\",{className:\"opblock-title_normal\"},\"Find more details\"),He.createElement(\"div\",{className:\"opblock-external-docs\"},Re.description&&He.createElement(\"span\",{className:\"opblock-external-docs__description\"},He.createElement(st,{source:Re.description})),He.createElement(ht,{target:\"_blank\",className:\"opblock-external-docs__link\",href:sanitizeUrl(ze)},ze))):null,Ve&&Ve.size?He.createElement(nt,{parameters:Xe,specPath:i.push(\"parameters\"),operation:Ve,onChangeKey:mt,onTryoutClick:v,onResetClick:_,onCancelClick:j,tryItOutEnabled:Pe,allowTryItOut:Se,fn:$,getComponent:W,specActions:Y,specSelectors:Z,pathMethod:[fe,ye],getConfigs:X,oas3Actions:ae,oas3Selectors:ce}):null,Pe?He.createElement(lt,{getComponent:W,path:fe,method:ye,operationServers:Ve.get(\"servers\"),pathServers:Z.paths().getIn([fe,\"servers\"]),getSelectedServer:ce.selectedServer,setSelectedServer:ae.setSelectedServer,setServerVariableValue:ae.setServerVariableValue,getServerVariable:ce.serverVariableValue,getEffectiveServerValue:ce.serverEffectiveValue}):null,Pe&&Se&&qe&&qe.size?He.createElement(\"div\",{className:\"opblock-schemes\"},He.createElement(ct,{schemes:qe,path:fe,method:ye,specActions:Y,currentScheme:Ye})):null,!Pe||!Se||yt.length<=0?null:He.createElement(\"div\",{className:\"validation-errors errors-wrapper\"},\"Please correct the following validation errors and try again.\",He.createElement(\"ul\",null,yt.map(((i,s)=>He.createElement(\"li\",{key:s},\" \",i,\" \"))))),He.createElement(\"div\",{className:Pe&&s&&Se?\"btn-group\":\"execute-wrapper\"},Pe&&Se?He.createElement(ot,{operation:Ve,specActions:Y,specSelectors:Z,oas3Selectors:ce,oas3Actions:ae,path:fe,method:ye,onExecute:M,disabled:Ie}):null,Pe&&s&&Se?He.createElement(it,{specActions:Y,path:fe,method:ye}):null),Ie?He.createElement(\"div\",{className:\"loading-container\"},He.createElement(\"div\",{className:\"loading\"})):null,We?He.createElement(rt,{responses:We,request:u,tryItOutResponse:s,getComponent:W,getConfigs:X,specSelectors:Z,oas3Actions:ae,oas3Selectors:ce,specActions:Y,produces:Z.producesOptionsFor([fe,ye]),producesValue:Z.currentProducesFor([fe,ye]),specPath:i.push(\"responses\"),path:fe,method:ye,displayRequestDuration:xe,fn:$}):null,dt&&et.size?He.createElement(ut,{extensions:et,getComponent:W}):null)))}}_o()(operation_Operation,\"defaultProps\",{operation:null,response:null,request:null,specPath:(0,et.List)(),summary:\"\"});class OperationContainer extends He.PureComponent{constructor(i,s){super(i,s),_o()(this,\"toggleShown\",(()=>{let{layoutActions:i,tag:s,operationId:u,isShown:m}=this.props;const v=this.getResolvedSubtree();m||void 0!==v||this.requestResolvedSubtree(),i.show([\"operations\",s,u],!m)})),_o()(this,\"onCancelClick\",(()=>{this.setState({tryItOutEnabled:!this.state.tryItOutEnabled})})),_o()(this,\"onTryoutClick\",(()=>{this.setState({tryItOutEnabled:!this.state.tryItOutEnabled})})),_o()(this,\"onResetClick\",(i=>{const s=this.props.oas3Selectors.selectDefaultRequestBodyValue(...i);this.props.oas3Actions.setRequestBodyValue({value:s,pathMethod:i})})),_o()(this,\"onExecute\",(()=>{this.setState({executeInProgress:!0})})),_o()(this,\"getResolvedSubtree\",(()=>{const{specSelectors:i,path:s,method:u,specPath:m}=this.props;return m?i.specResolvedSubtree(m.toJS()):i.specResolvedSubtree([\"paths\",s,u])})),_o()(this,\"requestResolvedSubtree\",(()=>{const{specActions:i,path:s,method:u,specPath:m}=this.props;return m?i.requestResolvedSubtree(m.toJS()):i.requestResolvedSubtree([\"paths\",s,u])}));const{tryItOutEnabled:u}=i.getConfigs();this.state={tryItOutEnabled:!0===u||\"true\"===u,executeInProgress:!1}}mapStateToProps(i,s){const{op:u,layoutSelectors:m,getConfigs:v}=s,{docExpansion:_,deepLinking:j,displayOperationId:M,displayRequestDuration:$,supportedSubmitMethods:W}=v(),X=m.showSummary(),Y=u.getIn([\"operation\",\"__originalOperationId\"])||u.getIn([\"operation\",\"operationId\"])||opId(u.get(\"operation\"),s.path,s.method)||u.get(\"id\"),Z=[\"operations\",s.tag,Y],ee=j&&\"false\"!==j,ie=W.indexOf(s.method)>=0&&(void 0===s.allowTryItOut?s.specSelectors.allowTryItOutFor(s.path,s.method):s.allowTryItOut),ae=u.getIn([\"operation\",\"security\"])||s.specSelectors.security();return{operationId:Y,isDeepLinkingEnabled:ee,showSummary:X,displayOperationId:M,displayRequestDuration:$,allowTryItOut:ie,security:ae,isAuthorized:s.authSelectors.isAuthorized(ae),isShown:m.isShown(Z,\"full\"===_),jumpToKey:`paths.${s.path}.${s.method}`,response:s.specSelectors.responseFor(s.path,s.method),request:s.specSelectors.requestFor(s.path,s.method)}}componentDidMount(){const{isShown:i}=this.props,s=this.getResolvedSubtree();i&&void 0===s&&this.requestResolvedSubtree()}UNSAFE_componentWillReceiveProps(i){const{response:s,isShown:u}=i,m=this.getResolvedSubtree();s!==this.props.response&&this.setState({executeInProgress:!1}),u&&void 0===m&&this.requestResolvedSubtree()}render(){let{op:i,tag:s,path:u,method:m,security:v,isAuthorized:_,operationId:j,showSummary:M,isShown:$,jumpToKey:W,allowTryItOut:X,response:Y,request:Z,displayOperationId:ee,displayRequestDuration:ie,isDeepLinkingEnabled:ae,specPath:ce,specSelectors:le,specActions:pe,getComponent:de,getConfigs:fe,layoutSelectors:ye,layoutActions:be,authActions:_e,authSelectors:we,oas3Actions:Se,oas3Selectors:xe,fn:Pe}=this.props;const Ie=de(\"operation\"),Te=this.getResolvedSubtree()||(0,et.Map)(),Re=(0,et.fromJS)({op:Te,tag:s,path:u,summary:i.getIn([\"operation\",\"summary\"])||\"\",deprecated:Te.get(\"deprecated\")||i.getIn([\"operation\",\"deprecated\"])||!1,method:m,security:v,isAuthorized:_,operationId:j,originalOperationId:Te.getIn([\"operation\",\"__originalOperationId\"]),showSummary:M,isShown:$,jumpToKey:W,allowTryItOut:X,request:Z,displayOperationId:ee,displayRequestDuration:ie,isDeepLinkingEnabled:ae,executeInProgress:this.state.executeInProgress,tryItOutEnabled:this.state.tryItOutEnabled});return He.createElement(Ie,{operation:Re,response:Y,request:Z,isShown:$,toggleShown:this.toggleShown,onTryoutClick:this.onTryoutClick,onResetClick:this.onResetClick,onCancelClick:this.onCancelClick,onExecute:this.onExecute,specPath:ce,specActions:pe,specSelectors:le,oas3Actions:Se,oas3Selectors:xe,layoutActions:be,layoutSelectors:ye,authActions:_e,authSelectors:we,getComponent:de,getConfigs:fe,fn:Pe})}}_o()(OperationContainer,\"defaultProps\",{showSummary:!0,response:null,allowTryItOut:!0,displayOperationId:!1,displayRequestDuration:!1});var OC=__webpack_require__(79833),kC=__webpack_require__.n(OC);class OperationSummary extends He.PureComponent{render(){let{isShown:i,toggleShown:s,getComponent:u,authActions:m,authSelectors:v,operationProps:_,specPath:j}=this.props,{summary:M,isAuthorized:$,method:W,op:X,showSummary:Y,path:Z,operationId:ee,originalOperationId:ie,displayOperationId:ae}=_.toJS(),{summary:ce}=X,le=_.get(\"security\");const pe=u(\"authorizeOperationBtn\",!0),de=u(\"OperationSummaryMethod\"),fe=u(\"OperationSummaryPath\"),ye=u(\"JumpToPath\",!0),be=u(\"CopyToClipboardBtn\",!0),_e=u(\"ArrowUpIcon\"),we=u(\"ArrowDownIcon\"),Se=le&&!!le.count(),xe=Se&&1===le.size&&le.first().isEmpty(),Pe=!Se||xe;return He.createElement(\"div\",{className:`opblock-summary opblock-summary-${W}`},He.createElement(\"button\",{\"aria-label\":`${W} ${Z.replace(/\\//g,\"​/\")}`,\"aria-expanded\":i,className:\"opblock-summary-control\",onClick:s},He.createElement(de,{method:W}),He.createElement(fe,{getComponent:u,operationProps:_,specPath:j}),Y?He.createElement(\"div\",{className:\"opblock-summary-description\"},kC()(ce||M)):null,ae&&(ie||ee)?He.createElement(\"span\",{className:\"opblock-summary-operation-id\"},ie||ee):null),He.createElement(be,{textToCopy:`${j.get(1)}`}),Pe?null:He.createElement(pe,{isAuthorized:$,onClick:()=>{const i=v.definitionsForRequirements(le);m.showDefinitions(i)}}),He.createElement(\"button\",{\"aria-label\":`${W} ${Z.replace(/\\//g,\"​/\")}`,className:\"opblock-control-arrow\",\"aria-expanded\":i,tabIndex:\"-1\",onClick:s},i?He.createElement(_e,{className:\"arrow\"}):He.createElement(we,{className:\"arrow\"})),He.createElement(ye,{path:j}))}}_o()(OperationSummary,\"defaultProps\",{operationProps:null,specPath:(0,et.List)(),summary:\"\"});class OperationSummaryMethod extends He.PureComponent{render(){let{method:i}=this.props;return He.createElement(\"span\",{className:\"opblock-summary-method\"},i.toUpperCase())}}_o()(OperationSummaryMethod,\"defaultProps\",{operationProps:null});class OperationSummaryPath extends He.PureComponent{render(){let{getComponent:i,operationProps:s}=this.props,{deprecated:u,isShown:m,path:v,tag:_,operationId:j,isDeepLinkingEnabled:M}=s.toJS();const $=v.split(/(?=\\/)/g);for(let i=1;i<$.length;i+=2)$.splice(i,0,He.createElement(\"wbr\",{key:i}));const W=i(\"DeepLink\");return He.createElement(\"span\",{className:u?\"opblock-summary-path__deprecated\":\"opblock-summary-path\",\"data-path\":v},He.createElement(W,{enabled:M,isShown:m,path:createDeepLinkPath(`${_}/${j}`),text:$}))}}const operation_extensions=i=>{let{extensions:s,getComponent:u}=i,m=u(\"OperationExtRow\");return He.createElement(\"div\",{className:\"opblock-section\"},He.createElement(\"div\",{className:\"opblock-section-header\"},He.createElement(\"h4\",null,\"Extensions\")),He.createElement(\"div\",{className:\"table-container\"},He.createElement(\"table\",null,He.createElement(\"thead\",null,He.createElement(\"tr\",null,He.createElement(\"td\",{className:\"col_header\"},\"Field\"),He.createElement(\"td\",{className:\"col_header\"},\"Value\"))),He.createElement(\"tbody\",null,s.entrySeq().map((i=>{let[s,u]=i;return He.createElement(m,{key:`${s}-${u}`,xKey:s,xVal:u})}))))))},operation_extension_row=i=>{let{xKey:s,xVal:u}=i;const m=u?u.toJS?u.toJS():u:null;return He.createElement(\"tr\",null,He.createElement(\"td\",null,s),He.createElement(\"td\",null,JSON.stringify(m)))};var AC=__webpack_require__(94184),CC=__webpack_require__.n(AC),jC=__webpack_require__(35823),PC=__webpack_require__.n(jC);const HighlightCode=i=>{let{value:s,fileName:u,className:m,downloadable:v,getConfigs:_,canCopy:j,language:M}=i;const $=Ot()(_)?_():null,W=!1!==ko()($,\"syntaxHighlight\")&&ko()($,\"syntaxHighlight.activated\",!0),X=(0,He.useRef)(null);(0,He.useEffect)((()=>{const i=Array.from(X.current.childNodes).filter((i=>!!i.nodeType&&i.classList.contains(\"microlight\")));return i.forEach((i=>i.addEventListener(\"mousewheel\",handlePreventYScrollingBeyondElement,{passive:!1}))),()=>{i.forEach((i=>i.removeEventListener(\"mousewheel\",handlePreventYScrollingBeyondElement)))}}),[s,m,M]);const handlePreventYScrollingBeyondElement=i=>{const{target:s,deltaY:u}=i,{scrollHeight:m,offsetHeight:v,scrollTop:_}=s;m>v&&(0===_&&u<0||v+_>=m&&u>0)&&i.preventDefault()};return He.createElement(\"div\",{className:\"highlight-code\",ref:X},j&&He.createElement(\"div\",{className:\"copy-to-clipboard\"},He.createElement(Ci.CopyToClipboard,{text:s},He.createElement(\"button\",null))),v?He.createElement(\"button\",{className:\"download-contents\",onClick:()=>{PC()(s,u)}},\"Download\"):null,W?He.createElement(Hi,{language:M,className:CC()(m,\"microlight\"),style:getStyle(ko()($,\"syntaxHighlight.theme\",\"agate\"))},s):He.createElement(\"pre\",{className:CC()(m,\"microlight\")},s))};HighlightCode.defaultProps={fileName:\"response.txt\"};const IC=HighlightCode;class responses_Responses extends He.Component{constructor(){super(...arguments),_o()(this,\"onChangeProducesWrapper\",(i=>this.props.specActions.changeProducesValue([this.props.path,this.props.method],i))),_o()(this,\"onResponseContentTypeChange\",(i=>{let{controlsAcceptHeader:s,value:u}=i;const{oas3Actions:m,path:v,method:_}=this.props;s&&m.setResponseContentType({value:u,path:v,method:_})}))}render(){let{responses:i,tryItOutResponse:s,getComponent:u,getConfigs:m,specSelectors:v,fn:_,producesValue:j,displayRequestDuration:M,specPath:$,path:W,method:X,oas3Selectors:Y,oas3Actions:Z}=this.props,ee=function defaultStatusCode(i){let s=i.keySeq();return s.contains(Mt)?Mt:s.filter((i=>\"2\"===(i+\"\")[0])).sort().first()}(i);const ie=u(\"contentType\"),ae=u(\"liveResponse\"),ce=u(\"response\");let le=this.props.produces&&this.props.produces.size?this.props.produces:responses_Responses.defaultProps.produces;const pe=v.isOAS3()?function getAcceptControllingResponse(i){if(!tt().OrderedMap.isOrderedMap(i))return null;if(!i.size)return null;const s=i.find(((i,s)=>s.startsWith(\"2\")&&Object.keys(i.get(\"content\")||{}).length>0)),u=i.get(\"default\")||tt().OrderedMap(),m=(u.get(\"content\")||tt().OrderedMap()).keySeq().toJS().length?u:null;return s||m}(i):null,de=function createHtmlReadyId(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"_\";return i.replace(/[^\\w-]/g,s)}(`${X}${W}_responses`),fe=`${de}_select`;return He.createElement(\"div\",{className:\"responses-wrapper\"},He.createElement(\"div\",{className:\"opblock-section-header\"},He.createElement(\"h4\",null,\"Responses\"),v.isOAS3()?null:He.createElement(\"label\",{htmlFor:fe},He.createElement(\"span\",null,\"Response content type\"),He.createElement(ie,{value:j,ariaControls:de,ariaLabel:\"Response content type\",className:\"execute-content-type\",contentTypes:le,controlId:fe,onChange:this.onChangeProducesWrapper}))),He.createElement(\"div\",{className:\"responses-inner\"},s?He.createElement(\"div\",null,He.createElement(ae,{response:s,getComponent:u,getConfigs:m,specSelectors:v,path:this.props.path,method:this.props.method,displayRequestDuration:M}),He.createElement(\"h4\",null,\"Responses\")):null,He.createElement(\"table\",{\"aria-live\":\"polite\",className:\"responses-table\",id:de,role:\"region\"},He.createElement(\"thead\",null,He.createElement(\"tr\",{className:\"responses-header\"},He.createElement(\"td\",{className:\"col_header response-col_status\"},\"Code\"),He.createElement(\"td\",{className:\"col_header response-col_description\"},\"Description\"),v.isOAS3()?He.createElement(\"td\",{className:\"col col_header response-col_links\"},\"Links\"):null)),He.createElement(\"tbody\",null,i.entrySeq().map((i=>{let[M,ie]=i,ae=s&&s.get(\"status\")==M?\"response_current\":\"\";return He.createElement(ce,{key:M,path:W,method:X,specPath:$.push(M),isDefault:ee===M,fn:_,className:ae,code:M,response:ie,specSelectors:v,controlsAcceptHeader:ie===pe,onContentTypeChange:this.onResponseContentTypeChange,contentType:j,getConfigs:m,activeExamplesKey:Y.activeExamplesMember(W,X,\"responses\",M),oas3Actions:Z,getComponent:u})})).toArray()))))}}function getKnownSyntaxHighlighterLanguage(i){const s=function canJsonParse(i){try{return!!JSON.parse(i)}catch(i){return null}}(i);return s?\"json\":null}_o()(responses_Responses,\"defaultProps\",{tryItOutResponse:null,produces:(0,et.fromJS)([\"application/json\"]),displayRequestDuration:!1});class response_Response extends He.Component{constructor(i,s){super(i,s),_o()(this,\"_onContentTypeChange\",(i=>{const{onContentTypeChange:s,controlsAcceptHeader:u}=this.props;this.setState({responseContentType:i}),s({value:i,controlsAcceptHeader:u})})),_o()(this,\"getTargetExamplesKey\",(()=>{const{response:i,contentType:s,activeExamplesKey:u}=this.props,m=this.state.responseContentType||s,v=i.getIn([\"content\",m],(0,et.Map)({})).get(\"examples\",null).keySeq().first();return u||v})),this.state={responseContentType:\"\"}}render(){let{path:i,method:s,code:u,response:m,className:v,specPath:_,fn:j,getComponent:M,getConfigs:$,specSelectors:W,contentType:X,controlsAcceptHeader:Y,oas3Actions:Z}=this.props,{inferSchema:ee,getSampleSchema:ie}=j,ae=W.isOAS3();const{showExtensions:ce}=$();let le=ce?getExtensions(m):null,pe=m.get(\"headers\"),de=m.get(\"links\");const fe=M(\"ResponseExtension\"),ye=M(\"headers\"),be=M(\"highlightCode\"),_e=M(\"modelExample\"),we=M(\"Markdown\",!0),Se=M(\"operationLink\"),xe=M(\"contentType\"),Pe=M(\"ExamplesSelect\"),Ie=M(\"Example\");var Te,Re;const qe=this.state.responseContentType||X,ze=m.getIn([\"content\",qe],(0,et.Map)({})),Ve=ze.get(\"examples\",null);if(ae){const i=ze.get(\"schema\");Te=i?ee(i.toJS()):null,Re=i?(0,et.List)([\"content\",this.state.responseContentType,\"schema\"]):_}else Te=m.get(\"schema\"),Re=m.has(\"schema\")?_.push(\"schema\"):_;let We,Xe,Ye=!1,Qe={includeReadOnly:!0};if(ae){var tt;if(Xe=null===(tt=ze.get(\"schema\"))||void 0===tt?void 0:tt.toJS(),Ve){const i=this.getTargetExamplesKey(),getMediaTypeExample=i=>i.get(\"value\");We=getMediaTypeExample(Ve.get(i,(0,et.Map)({}))),void 0===We&&(We=getMediaTypeExample(Ve.values().next().value)),Ye=!0}else void 0!==ze.get(\"example\")&&(We=ze.get(\"example\"),Ye=!0)}else{Xe=Te,Qe=rr()(rr()({},Qe),{},{includeWriteOnly:!0});const i=m.getIn([\"examples\",qe]);i&&(We=i,Ye=!0)}let rt=((i,s,u)=>{if(null!=i){let m=null;return getKnownSyntaxHighlighterLanguage(i)&&(m=\"json\"),He.createElement(\"div\",null,He.createElement(s,{className:\"example\",getConfigs:u,language:m,value:stringify(i)}))}return null})(ie(Xe,qe,Qe,Ye?We:void 0),be,$);return He.createElement(\"tr\",{className:\"response \"+(v||\"\"),\"data-code\":u},He.createElement(\"td\",{className:\"response-col_status\"},u),He.createElement(\"td\",{className:\"response-col_description\"},He.createElement(\"div\",{className:\"response-col_description__inner\"},He.createElement(we,{source:m.get(\"description\")})),ce&&le.size?le.entrySeq().map((i=>{let[s,u]=i;return He.createElement(fe,{key:`${s}-${u}`,xKey:s,xVal:u})})):null,ae&&m.get(\"content\")?He.createElement(\"section\",{className:\"response-controls\"},He.createElement(\"div\",{className:CC()(\"response-control-media-type\",{\"response-control-media-type--accept-controller\":Y})},He.createElement(\"small\",{className:\"response-control-media-type__title\"},\"Media type\"),He.createElement(xe,{value:this.state.responseContentType,contentTypes:m.get(\"content\")?m.get(\"content\").keySeq():(0,et.Seq)(),onChange:this._onContentTypeChange,ariaLabel:\"Media Type\"}),Y?He.createElement(\"small\",{className:\"response-control-media-type__accept-message\"},\"Controls \",He.createElement(\"code\",null,\"Accept\"),\" header.\"):null),Ve?He.createElement(\"div\",{className:\"response-control-examples\"},He.createElement(\"small\",{className:\"response-control-examples__title\"},\"Examples\"),He.createElement(Pe,{examples:Ve,currentExampleKey:this.getTargetExamplesKey(),onSelect:m=>Z.setActiveExamplesMember({name:m,pathMethod:[i,s],contextType:\"responses\",contextName:u}),showLabels:!1})):null):null,rt||Te?He.createElement(_e,{specPath:Re,getComponent:M,getConfigs:$,specSelectors:W,schema:fromJSOrdered(Te),example:rt,includeReadOnly:!0}):null,ae&&Ve?He.createElement(Ie,{example:Ve.get(this.getTargetExamplesKey(),(0,et.Map)({})),getComponent:M,getConfigs:$,omitValue:!0}):null,pe?He.createElement(ye,{headers:pe,getComponent:M}):null),ae?He.createElement(\"td\",{className:\"response-col_links\"},de?de.toSeq().entrySeq().map((i=>{let[s,u]=i;return He.createElement(Se,{key:s,name:s,link:u,getComponent:M})})):He.createElement(\"i\",null,\"No links\")):null)}}_o()(response_Response,\"defaultProps\",{response:(0,et.fromJS)({}),onContentTypeChange:()=>{}});const response_extension=i=>{let{xKey:s,xVal:u}=i;return He.createElement(\"div\",{className:\"response__extension\"},s,\": \",String(u))};var NC=__webpack_require__(3131),TC=__webpack_require__.n(NC),MC=__webpack_require__(7334),RC=__webpack_require__.n(MC);class ResponseBody extends He.PureComponent{constructor(){super(...arguments),_o()(this,\"state\",{parsedContent:null}),_o()(this,\"updateParsedContent\",(i=>{const{content:s}=this.props;if(i!==s)if(s&&s instanceof Blob){var u=new FileReader;u.onload=()=>{this.setState({parsedContent:u.result})},u.readAsText(s)}else this.setState({parsedContent:s.toString()})}))}componentDidMount(){this.updateParsedContent(null)}componentDidUpdate(i){this.updateParsedContent(i.content)}render(){let{content:i,contentType:s,url:u,headers:m={},getConfigs:v,getComponent:_}=this.props;const{parsedContent:j}=this.state,M=_(\"highlightCode\"),$=\"response_\"+(new Date).getTime();let W,X;if(u=u||\"\",(/^application\\/octet-stream/i.test(s)||m[\"Content-Disposition\"]&&/attachment/i.test(m[\"Content-Disposition\"])||m[\"content-disposition\"]&&/attachment/i.test(m[\"content-disposition\"])||m[\"Content-Description\"]&&/File Transfer/i.test(m[\"Content-Description\"])||m[\"content-description\"]&&/File Transfer/i.test(m[\"content-description\"]))&&i.size>0)if(\"Blob\"in window){let v=s||\"text/html\",_=i instanceof Blob?i:new Blob([i],{type:v}),j=window.URL.createObjectURL(_),M=[v,u.substr(u.lastIndexOf(\"/\")+1),j].join(\":\"),$=m[\"content-disposition\"]||m[\"Content-Disposition\"];if(void 0!==$){let i=function extractFileNameFromContentDispositionHeader(i){let s;if([/filename\\*=[^']+'\\w*'\"([^\"]+)\";?/i,/filename\\*=[^']+'\\w*'([^;]+);?/i,/filename=\"([^;]*);?\"/i,/filename=([^;]*);?/i].some((u=>(s=u.exec(i),null!==s))),null!==s&&s.length>1)try{return decodeURIComponent(s[1])}catch(i){console.error(i)}return null}($);null!==i&&(M=i)}X=dt.navigator&&dt.navigator.msSaveOrOpenBlob?He.createElement(\"div\",null,He.createElement(\"a\",{href:j,onClick:()=>dt.navigator.msSaveOrOpenBlob(_,M)},\"Download file\")):He.createElement(\"div\",null,He.createElement(\"a\",{href:j,download:M},\"Download file\"))}else X=He.createElement(\"pre\",{className:\"microlight\"},\"Download headers detected but your browser does not support downloading binary via XHR (Blob).\");else if(/json/i.test(s)){let s=null;getKnownSyntaxHighlighterLanguage(i)&&(s=\"json\");try{W=JSON.stringify(JSON.parse(i),null,\"  \")}catch(s){W=\"can't parse JSON.  Raw result:\\n\\n\"+i}X=He.createElement(M,{language:s,downloadable:!0,fileName:`${$}.json`,value:W,getConfigs:v,canCopy:!0})}else/xml/i.test(s)?(W=TC()(i,{textNodesOnSameLine:!0,indentor:\"  \"}),X=He.createElement(M,{downloadable:!0,fileName:`${$}.xml`,value:W,getConfigs:v,canCopy:!0})):X=\"text/html\"===RC()(s)||/text\\/plain/.test(s)?He.createElement(M,{downloadable:!0,fileName:`${$}.html`,value:i,getConfigs:v,canCopy:!0}):\"text/csv\"===RC()(s)||/text\\/csv/.test(s)?He.createElement(M,{downloadable:!0,fileName:`${$}.csv`,value:i,getConfigs:v,canCopy:!0}):/^image\\//i.test(s)?s.includes(\"svg\")?He.createElement(\"div\",null,\" \",i,\" \"):He.createElement(\"img\",{src:window.URL.createObjectURL(i)}):/^audio\\//i.test(s)?He.createElement(\"pre\",{className:\"microlight\"},He.createElement(\"audio\",{controls:!0,key:u},He.createElement(\"source\",{src:u,type:s}))):\"string\"==typeof i?He.createElement(M,{downloadable:!0,fileName:`${$}.txt`,value:i,getConfigs:v,canCopy:!0}):i.size>0?j?He.createElement(\"div\",null,He.createElement(\"p\",{className:\"i\"},\"Unrecognized response type; displaying content as text.\"),He.createElement(M,{downloadable:!0,fileName:`${$}.txt`,value:j,getConfigs:v,canCopy:!0})):He.createElement(\"p\",{className:\"i\"},\"Unrecognized response type; unable to display.\"):null;return X?He.createElement(\"div\",null,He.createElement(\"h5\",null,\"Response body\"),X):null}}class Parameters extends He.Component{constructor(i){super(i),_o()(this,\"onChange\",((i,s,u)=>{let{specActions:{changeParamByIdentity:m},onChangeKey:v}=this.props;m(v,i,s,u)})),_o()(this,\"onChangeConsumesWrapper\",(i=>{let{specActions:{changeConsumesValue:s},onChangeKey:u}=this.props;s(u,i)})),_o()(this,\"toggleTab\",(i=>\"parameters\"===i?this.setState({parametersVisible:!0,callbackVisible:!1}):\"callbacks\"===i?this.setState({callbackVisible:!0,parametersVisible:!1}):void 0)),_o()(this,\"onChangeMediaType\",(i=>{let{value:s,pathMethod:u}=i,{specActions:m,oas3Selectors:v,oas3Actions:_}=this.props;const j=v.hasUserEditedBody(...u),M=v.shouldRetainRequestBodyValue(...u);_.setRequestContentType({value:s,pathMethod:u}),_.initRequestBodyValidateError({pathMethod:u}),j||(M||_.setRequestBodyValue({value:void 0,pathMethod:u}),m.clearResponse(...u),m.clearRequest(...u),m.clearValidateParams(u))})),this.state={callbackVisible:!1,parametersVisible:!0}}render(){let{onTryoutClick:i,onResetClick:s,parameters:u,allowTryItOut:m,tryItOutEnabled:v,specPath:_,fn:j,getComponent:M,getConfigs:$,specSelectors:W,specActions:X,pathMethod:Y,oas3Actions:Z,oas3Selectors:ee,operation:ie}=this.props;const ae=M(\"parameterRow\"),ce=M(\"TryItOutButton\"),le=M(\"contentType\"),pe=M(\"Callbacks\",!0),de=M(\"RequestBody\",!0),fe=v&&m,ye=W.isOAS3(),be=ie.get(\"requestBody\"),_e=Object.values(u.reduce(((i,s)=>{var u;const m=s.get(\"in\");return null!==(u=i[m])&&void 0!==u||(i[m]=[]),i[m].push(s),i}),{})).reduce(((i,s)=>i.concat(s)),[]);return He.createElement(\"div\",{className:\"opblock-section\"},He.createElement(\"div\",{className:\"opblock-section-header\"},ye?He.createElement(\"div\",{className:\"tab-header\"},He.createElement(\"div\",{onClick:()=>this.toggleTab(\"parameters\"),className:`tab-item ${this.state.parametersVisible&&\"active\"}`},He.createElement(\"h4\",{className:\"opblock-title\"},He.createElement(\"span\",null,\"Parameters\"))),ie.get(\"callbacks\")?He.createElement(\"div\",{onClick:()=>this.toggleTab(\"callbacks\"),className:`tab-item ${this.state.callbackVisible&&\"active\"}`},He.createElement(\"h4\",{className:\"opblock-title\"},He.createElement(\"span\",null,\"Callbacks\"))):null):He.createElement(\"div\",{className:\"tab-header\"},He.createElement(\"h4\",{className:\"opblock-title\"},\"Parameters\")),m?He.createElement(ce,{isOAS3:W.isOAS3(),hasUserEditedBody:ee.hasUserEditedBody(...Y),enabled:v,onCancelClick:this.props.onCancelClick,onTryoutClick:i,onResetClick:()=>s(Y)}):null),this.state.parametersVisible?He.createElement(\"div\",{className:\"parameters-container\"},_e.length?He.createElement(\"div\",{className:\"table-container\"},He.createElement(\"table\",{className:\"parameters\"},He.createElement(\"thead\",null,He.createElement(\"tr\",null,He.createElement(\"th\",{className:\"col_header parameters-col_name\"},\"Name\"),He.createElement(\"th\",{className:\"col_header parameters-col_description\"},\"Description\"))),He.createElement(\"tbody\",null,_e.map(((i,s)=>He.createElement(ae,{fn:j,specPath:_.push(s.toString()),getComponent:M,getConfigs:$,rawParam:i,param:W.parameterWithMetaByIdentity(Y,i),key:`${i.get(\"in\")}.${i.get(\"name\")}`,onChange:this.onChange,onChangeConsumes:this.onChangeConsumesWrapper,specSelectors:W,specActions:X,oas3Actions:Z,oas3Selectors:ee,pathMethod:Y,isExecute:fe})))))):He.createElement(\"div\",{className:\"opblock-description-wrapper\"},He.createElement(\"p\",null,\"No parameters\"))):null,this.state.callbackVisible?He.createElement(\"div\",{className:\"callbacks-container opblock-description-wrapper\"},He.createElement(pe,{callbacks:(0,et.Map)(ie.get(\"callbacks\")),specPath:_.slice(0,-1).push(\"callbacks\")})):null,ye&&be&&this.state.parametersVisible&&He.createElement(\"div\",{className:\"opblock-section opblock-section-request-body\"},He.createElement(\"div\",{className:\"opblock-section-header\"},He.createElement(\"h4\",{className:`opblock-title parameter__name ${be.get(\"required\")&&\"required\"}`},\"Request body\"),He.createElement(\"label\",null,He.createElement(le,{value:ee.requestContentType(...Y),contentTypes:be.get(\"content\",(0,et.List)()).keySeq(),onChange:i=>{this.onChangeMediaType({value:i,pathMethod:Y})},className:\"body-param-content-type\",ariaLabel:\"Request content type\"}))),He.createElement(\"div\",{className:\"opblock-description-wrapper\"},He.createElement(de,{setRetainRequestBodyValueFlag:i=>Z.setRetainRequestBodyValueFlag({value:i,pathMethod:Y}),userHasEditedBody:ee.hasUserEditedBody(...Y),specPath:_.slice(0,-1).push(\"requestBody\"),requestBody:be,requestBodyValue:ee.requestBodyValue(...Y),requestBodyInclusionSetting:ee.requestBodyInclusionSetting(...Y),requestBodyErrors:ee.requestBodyErrors(...Y),isExecute:fe,getConfigs:$,activeExamplesKey:ee.activeExamplesMember(...Y,\"requestBody\",\"requestBody\"),updateActiveExamplesKey:i=>{this.props.oas3Actions.setActiveExamplesMember({name:i,pathMethod:this.props.pathMethod,contextType:\"requestBody\",contextName:\"requestBody\"})},onChange:(i,s)=>{if(s){const u=ee.requestBodyValue(...Y),m=et.Map.isMap(u)?u:(0,et.Map)();return Z.setRequestBodyValue({pathMethod:Y,value:m.setIn(s,i)})}Z.setRequestBodyValue({value:i,pathMethod:Y})},onChangeIncludeEmpty:(i,s)=>{Z.setRequestBodyInclusion({pathMethod:Y,value:s,name:i})},contentType:ee.requestContentType(...Y)}))))}}_o()(Parameters,\"defaultProps\",{onTryoutClick:Function.prototype,onCancelClick:Function.prototype,tryItOutEnabled:!1,allowTryItOut:!0,onChangeKey:[],specPath:[]});const parameter_extension=i=>{let{xKey:s,xVal:u}=i;return He.createElement(\"div\",{className:\"parameter__extension\"},s,\": \",String(u))},DC={onChange:()=>{},isIncludedOptions:{}};class ParameterIncludeEmpty extends He.Component{constructor(){super(...arguments),_o()(this,\"onCheckboxChange\",(i=>{const{onChange:s}=this.props;s(i.target.checked)}))}componentDidMount(){const{isIncludedOptions:i,onChange:s}=this.props,{shouldDispatchInit:u,defaultValue:m}=i;u&&s(m)}render(){let{isIncluded:i,isDisabled:s}=this.props;return He.createElement(\"div\",null,He.createElement(\"label\",{className:CC()(\"parameter__empty_value_toggle\",{disabled:s})},He.createElement(\"input\",{type:\"checkbox\",disabled:s,checked:!s&&i,onChange:this.onCheckboxChange}),\"Send empty value\"))}}_o()(ParameterIncludeEmpty,\"defaultProps\",DC);class ParameterRow extends He.Component{constructor(i,s){var u;super(i,s),u=this,_o()(this,\"onChangeWrapper\",(function(i){let s,m=arguments.length>1&&void 0!==arguments[1]&&arguments[1],{onChange:v,rawParam:_}=u.props;return s=\"\"===i||i&&0===i.size?null:i,v(_,s,m)})),_o()(this,\"_onExampleSelect\",(i=>{this.props.oas3Actions.setActiveExamplesMember({name:i,pathMethod:this.props.pathMethod,contextType:\"parameters\",contextName:this.getParamKey()})})),_o()(this,\"onChangeIncludeEmpty\",(i=>{let{specActions:s,param:u,pathMethod:m}=this.props;const v=u.get(\"name\"),_=u.get(\"in\");return s.updateEmptyParamInclusion(m,v,_,i)})),_o()(this,\"setDefaultValue\",(()=>{let{specSelectors:i,pathMethod:s,rawParam:u,oas3Selectors:m,fn:v}=this.props;const _=i.parameterWithMetaByIdentity(s,u)||(0,et.Map)(),{schema:j}=getParameterSchema(_,{isOAS3:i.isOAS3()}),M=_.get(\"content\",(0,et.Map)()).keySeq().first(),$=j?v.getSampleSchema(j.toJS(),M,{includeWriteOnly:!0}):null;if(_&&void 0===_.get(\"value\")&&\"body\"!==_.get(\"in\")){let u;if(i.isSwagger2())u=void 0!==_.get(\"x-example\")?_.get(\"x-example\"):void 0!==_.getIn([\"schema\",\"example\"])?_.getIn([\"schema\",\"example\"]):j&&j.getIn([\"default\"]);else if(i.isOAS3()){const i=m.activeExamplesMember(...s,\"parameters\",this.getParamKey());u=void 0!==_.getIn([\"examples\",i,\"value\"])?_.getIn([\"examples\",i,\"value\"]):void 0!==_.getIn([\"content\",M,\"example\"])?_.getIn([\"content\",M,\"example\"]):void 0!==_.get(\"example\")?_.get(\"example\"):void 0!==(j&&j.get(\"example\"))?j&&j.get(\"example\"):void 0!==(j&&j.get(\"default\"))?j&&j.get(\"default\"):_.get(\"default\")}void 0===u||et.List.isList(u)||(u=stringify(u)),void 0!==u?this.onChangeWrapper(u):j&&\"object\"===j.get(\"type\")&&$&&!_.get(\"examples\")&&this.onChangeWrapper(et.List.isList($)?$:stringify($))}})),this.setDefaultValue()}UNSAFE_componentWillReceiveProps(i){let s,{specSelectors:u,pathMethod:m,rawParam:v}=i,_=u.isOAS3(),j=u.parameterWithMetaByIdentity(m,v)||new et.Map;if(j=j.isEmpty()?v:j,_){let{schema:i}=getParameterSchema(j,{isOAS3:_});s=i?i.get(\"enum\"):void 0}else s=j?j.get(\"enum\"):void 0;let M,$=j?j.get(\"value\"):void 0;void 0!==$?M=$:v.get(\"required\")&&s&&s.size&&(M=s.first()),void 0!==M&&M!==$&&this.onChangeWrapper(function numberToString(i){return\"number\"==typeof i?i.toString():i}(M)),this.setDefaultValue()}getParamKey(){const{param:i}=this.props;return i?`${i.get(\"name\")}-${i.get(\"in\")}`:null}render(){let{param:i,rawParam:s,getComponent:u,getConfigs:m,isExecute:v,fn:_,onChangeConsumes:j,specSelectors:M,pathMethod:$,specPath:W,oas3Selectors:X}=this.props,Y=M.isOAS3();const{showExtensions:Z,showCommonExtensions:ee}=m();if(i||(i=s),!s)return null;const ie=u(\"JsonSchemaForm\"),ae=u(\"ParamBody\");let ce=i.get(\"in\"),le=\"body\"!==ce?null:He.createElement(ae,{getComponent:u,getConfigs:m,fn:_,param:i,consumes:M.consumesOptionsFor($),consumesValue:M.contentTypeValues($).get(\"requestContentType\"),onChange:this.onChangeWrapper,onChangeConsumes:j,isExecute:v,specSelectors:M,pathMethod:$});const pe=u(\"modelExample\"),de=u(\"Markdown\",!0),fe=u(\"ParameterExt\"),ye=u(\"ParameterIncludeEmpty\"),be=u(\"ExamplesSelectValueRetainer\"),_e=u(\"Example\");let we,Se,xe,Pe,{schema:Ie}=getParameterSchema(i,{isOAS3:Y}),Te=M.parameterWithMetaByIdentity($,s)||(0,et.Map)(),Re=Ie?Ie.get(\"format\"):null,qe=Ie?Ie.get(\"type\"):null,ze=Ie?Ie.getIn([\"items\",\"type\"]):null,Ve=\"formData\"===ce,We=\"FormData\"in dt,Xe=i.get(\"required\"),Ye=Te?Te.get(\"value\"):\"\",Qe=ee?getCommonExtensions(Ie):null,tt=Z?getExtensions(i):null,rt=!1;return void 0!==i&&Ie&&(we=Ie.get(\"items\")),void 0!==we?(Se=we.get(\"enum\"),xe=we.get(\"default\")):Ie&&(Se=Ie.get(\"enum\")),Se&&Se.size&&Se.size>0&&(rt=!0),void 0!==i&&(Ie&&(xe=Ie.get(\"default\")),void 0===xe&&(xe=i.get(\"default\")),Pe=i.get(\"example\"),void 0===Pe&&(Pe=i.get(\"x-example\"))),He.createElement(\"tr\",{\"data-param-name\":i.get(\"name\"),\"data-param-in\":i.get(\"in\")},He.createElement(\"td\",{className:\"parameters-col_name\"},He.createElement(\"div\",{className:Xe?\"parameter__name required\":\"parameter__name\"},i.get(\"name\"),Xe?He.createElement(\"span\",null,\" *\"):null),He.createElement(\"div\",{className:\"parameter__type\"},qe,ze&&`[${ze}]`,Re&&He.createElement(\"span\",{className:\"prop-format\"},\"($\",Re,\")\")),He.createElement(\"div\",{className:\"parameter__deprecated\"},Y&&i.get(\"deprecated\")?\"deprecated\":null),He.createElement(\"div\",{className:\"parameter__in\"},\"(\",i.get(\"in\"),\")\"),ee&&Qe.size?Qe.entrySeq().map((i=>{let[s,u]=i;return He.createElement(fe,{key:`${s}-${u}`,xKey:s,xVal:u})})):null,Z&&tt.size?tt.entrySeq().map((i=>{let[s,u]=i;return He.createElement(fe,{key:`${s}-${u}`,xKey:s,xVal:u})})):null),He.createElement(\"td\",{className:\"parameters-col_description\"},i.get(\"description\")?He.createElement(de,{source:i.get(\"description\")}):null,!le&&v||!rt?null:He.createElement(de,{className:\"parameter__enum\",source:\"<i>Available values</i> : \"+Se.map((function(i){return i})).toArray().join(\", \")}),!le&&v||void 0===xe?null:He.createElement(de,{className:\"parameter__default\",source:\"<i>Default value</i> : \"+xe}),!le&&v||void 0===Pe?null:He.createElement(de,{source:\"<i>Example</i> : \"+Pe}),Ve&&!We&&He.createElement(\"div\",null,\"Error: your browser does not support FormData\"),Y&&i.get(\"examples\")?He.createElement(\"section\",{className:\"parameter-controls\"},He.createElement(be,{examples:i.get(\"examples\"),onSelect:this._onExampleSelect,updateValue:this.onChangeWrapper,getComponent:u,defaultToFirstExample:!0,currentKey:X.activeExamplesMember(...$,\"parameters\",this.getParamKey()),currentUserInputValue:Ye})):null,le?null:He.createElement(ie,{fn:_,getComponent:u,value:Ye,required:Xe,disabled:!v,description:i.get(\"name\"),onChange:this.onChangeWrapper,errors:Te.get(\"errors\"),schema:Ie}),le&&Ie?He.createElement(pe,{getComponent:u,specPath:W.push(\"schema\"),getConfigs:m,isExecute:v,specSelectors:M,schema:Ie,example:le,includeWriteOnly:!0}):null,!le&&v&&i.get(\"allowEmptyValue\")?He.createElement(ye,{onChange:this.onChangeIncludeEmpty,isIncluded:M.parameterInclusionSettingFor($,i.get(\"name\"),i.get(\"in\")),isDisabled:!isEmptyValue(Ye)}):null,Y&&i.get(\"examples\")?He.createElement(_e,{example:i.getIn([\"examples\",X.activeExamplesMember(...$,\"parameters\",this.getParamKey())]),getComponent:u,getConfigs:m}):null))}}class Execute extends He.Component{constructor(){super(...arguments),_o()(this,\"handleValidateParameters\",(()=>{let{specSelectors:i,specActions:s,path:u,method:m}=this.props;return s.validateParams([u,m]),i.validateBeforeExecute([u,m])})),_o()(this,\"handleValidateRequestBody\",(()=>{let{path:i,method:s,specSelectors:u,oas3Selectors:m,oas3Actions:v}=this.props,_={missingBodyValue:!1,missingRequiredKeys:[]};v.clearRequestBodyValidateError({path:i,method:s});let j=u.getOAS3RequiredRequestBodyContentType([i,s]),M=m.requestBodyValue(i,s),$=m.validateBeforeExecute([i,s]),W=m.requestContentType(i,s);if(!$)return _.missingBodyValue=!0,v.setRequestBodyValidateError({path:i,method:s,validationErrors:_}),!1;if(!j)return!0;let X=m.validateShallowRequired({oas3RequiredRequestBodyContentType:j,oas3RequestContentType:W,oas3RequestBodyValue:M});return!X||X.length<1||(X.forEach((i=>{_.missingRequiredKeys.push(i)})),v.setRequestBodyValidateError({path:i,method:s,validationErrors:_}),!1)})),_o()(this,\"handleValidationResultPass\",(()=>{let{specActions:i,operation:s,path:u,method:m}=this.props;this.props.onExecute&&this.props.onExecute(),i.execute({operation:s,path:u,method:m})})),_o()(this,\"handleValidationResultFail\",(()=>{let{specActions:i,path:s,method:u}=this.props;i.clearValidateParams([s,u]),setTimeout((()=>{i.validateParams([s,u])}),40)})),_o()(this,\"handleValidationResult\",(i=>{i?this.handleValidationResultPass():this.handleValidationResultFail()})),_o()(this,\"onClick\",(()=>{let i=this.handleValidateParameters(),s=this.handleValidateRequestBody(),u=i&&s;this.handleValidationResult(u)})),_o()(this,\"onChangeProducesWrapper\",(i=>this.props.specActions.changeProducesValue([this.props.path,this.props.method],i)))}render(){const{disabled:i}=this.props;return He.createElement(\"button\",{className:\"btn execute opblock-control__btn\",onClick:this.onClick,disabled:i},\"Execute\")}}class headers_Headers extends He.Component{render(){let{headers:i,getComponent:s}=this.props;const u=s(\"Property\"),m=s(\"Markdown\",!0);return i&&i.size?He.createElement(\"div\",{className:\"headers-wrapper\"},He.createElement(\"h4\",{className:\"headers__title\"},\"Headers:\"),He.createElement(\"table\",{className:\"headers\"},He.createElement(\"thead\",null,He.createElement(\"tr\",{className:\"header-row\"},He.createElement(\"th\",{className:\"header-col\"},\"Name\"),He.createElement(\"th\",{className:\"header-col\"},\"Description\"),He.createElement(\"th\",{className:\"header-col\"},\"Type\"))),He.createElement(\"tbody\",null,i.entrySeq().map((i=>{let[s,v]=i;if(!tt().Map.isMap(v))return null;const _=v.get(\"description\"),j=v.getIn([\"schema\"])?v.getIn([\"schema\",\"type\"]):v.getIn([\"type\"]),M=v.getIn([\"schema\",\"example\"]);return He.createElement(\"tr\",{key:s},He.createElement(\"td\",{className:\"header-col\"},s),He.createElement(\"td\",{className:\"header-col\"},_?He.createElement(m,{source:_}):null),He.createElement(\"td\",{className:\"header-col\"},j,\" \",M?He.createElement(u,{propKey:\"Example\",propVal:M,propClass:\"header-example\"}):null))})).toArray()))):null}}class Errors extends He.Component{render(){let{editorActions:i,errSelectors:s,layoutSelectors:u,layoutActions:m,getComponent:v}=this.props;const _=v(\"Collapse\");if(i&&i.jumpToLine)var j=i.jumpToLine;let M=s.allErrors().filter((i=>\"thrown\"===i.get(\"type\")||\"error\"===i.get(\"level\")));if(!M||M.count()<1)return null;let $=u.isShown([\"errorPane\"],!0),W=M.sortBy((i=>i.get(\"line\")));return He.createElement(\"pre\",{className:\"errors-wrapper\"},He.createElement(\"hgroup\",{className:\"error\"},He.createElement(\"h4\",{className:\"errors__title\"},\"Errors\"),He.createElement(\"button\",{className:\"btn errors__clear-btn\",onClick:()=>m.show([\"errorPane\"],!$)},$?\"Hide\":\"Show\")),He.createElement(_,{isOpened:$,animated:!0},He.createElement(\"div\",{className:\"errors\"},W.map(((i,s)=>{let u=i.get(\"type\");return\"thrown\"===u||\"auth\"===u?He.createElement(ThrownErrorItem,{key:s,error:i.get(\"error\")||i,jumpToLine:j}):\"spec\"===u?He.createElement(SpecErrorItem,{key:s,error:i,jumpToLine:j}):void 0})))))}}const ThrownErrorItem=i=>{let{error:s,jumpToLine:u}=i;if(!s)return null;let m=s.get(\"line\");return He.createElement(\"div\",{className:\"error-wrapper\"},s?He.createElement(\"div\",null,He.createElement(\"h4\",null,s.get(\"source\")&&s.get(\"level\")?toTitleCase(s.get(\"source\"))+\" \"+s.get(\"level\"):\"\",s.get(\"path\")?He.createElement(\"small\",null,\" at \",s.get(\"path\")):null),He.createElement(\"span\",{className:\"message thrown\"},s.get(\"message\")),He.createElement(\"div\",{className:\"error-line\"},m&&u?He.createElement(\"a\",{onClick:u.bind(null,m)},\"Jump to line \",m):null)):null)},SpecErrorItem=i=>{let{error:s,jumpToLine:u}=i,m=null;return s.get(\"path\")?m=et.List.isList(s.get(\"path\"))?He.createElement(\"small\",null,\"at \",s.get(\"path\").join(\".\")):He.createElement(\"small\",null,\"at \",s.get(\"path\")):s.get(\"line\")&&!u&&(m=He.createElement(\"small\",null,\"on line \",s.get(\"line\"))),He.createElement(\"div\",{className:\"error-wrapper\"},s?He.createElement(\"div\",null,He.createElement(\"h4\",null,toTitleCase(s.get(\"source\"))+\" \"+s.get(\"level\"),\" \",m),He.createElement(\"span\",{className:\"message\"},s.get(\"message\")),He.createElement(\"div\",{className:\"error-line\"},u?He.createElement(\"a\",{onClick:u.bind(null,s.get(\"line\"))},\"Jump to line \",s.get(\"line\")):null)):null)};function toTitleCase(i){return(i||\"\").split(\" \").map((i=>i[0].toUpperCase()+i.slice(1))).join(\" \")}ThrownErrorItem.defaultProps={jumpToLine:null};class ContentType extends He.Component{constructor(){super(...arguments),_o()(this,\"onChangeWrapper\",(i=>this.props.onChange(i.target.value)))}componentDidMount(){this.props.contentTypes&&this.props.onChange(this.props.contentTypes.first())}UNSAFE_componentWillReceiveProps(i){i.contentTypes&&i.contentTypes.size&&(i.contentTypes.includes(i.value)||i.onChange(i.contentTypes.first()))}render(){let{ariaControls:i,ariaLabel:s,className:u,contentTypes:m,controlId:v,value:_}=this.props;return m&&m.size?He.createElement(\"div\",{className:\"content-type-wrapper \"+(u||\"\")},He.createElement(\"select\",{\"aria-controls\":i,\"aria-label\":s,className:\"content-type\",id:v,onChange:this.onChangeWrapper,value:_||\"\"},m.map((i=>He.createElement(\"option\",{key:i,value:i},i))).toArray())):null}}_o()(ContentType,\"defaultProps\",{onChange:()=>{},value:null,contentTypes:(0,et.fromJS)([\"application/json\"])});const BC=[\"fullscreen\",\"full\"],LC=[\"hide\",\"keepContents\",\"mobile\",\"tablet\",\"desktop\",\"large\"];function xclass(){for(var i=arguments.length,s=new Array(i),u=0;u<i;u++)s[u]=arguments[u];return s.filter((i=>!!i)).join(\" \").trim()}class Container extends He.Component{render(){let i=this.props,{fullscreen:s,full:u}=i,m=Mo()(i,BC);if(s)return He.createElement(\"section\",m);let v=\"swagger-container\"+(u?\"-full\":\"\");return He.createElement(\"section\",No()({},m,{className:xclass(m.className,v)}))}}const FC={mobile:\"\",tablet:\"-tablet\",desktop:\"-desktop\",large:\"-hd\"};class Col extends He.Component{render(){const i=this.props,{hide:s,keepContents:u,mobile:m,tablet:v,desktop:_,large:j}=i,M=Mo()(i,LC);if(s&&!u)return He.createElement(\"span\",null);let $=[];for(let i in FC){if(!Object.prototype.hasOwnProperty.call(FC,i))continue;let s=FC[i];if(i in this.props){let u=this.props[i];if(u<1){$.push(\"none\"+s);continue}$.push(\"block\"+s),$.push(\"col-\"+u+s)}}s&&$.push(\"hidden\");let W=xclass(M.className,...$);return He.createElement(\"section\",No()({},M,{className:W}))}}class Row extends He.Component{render(){return He.createElement(\"div\",No()({},this.props,{className:xclass(this.props.className,\"wrapper\")}))}}class Button extends He.Component{render(){return He.createElement(\"button\",No()({},this.props,{className:xclass(this.props.className,\"button\")}))}}_o()(Button,\"defaultProps\",{className:\"\"});const TextArea=i=>He.createElement(\"textarea\",i),Input=i=>He.createElement(\"input\",i);class Select extends He.Component{constructor(i,s){let u;super(i,s),_o()(this,\"onChange\",(i=>{let s,{onChange:u,multiple:m}=this.props,v=[].slice.call(i.target.options);s=m?v.filter((function(i){return i.selected})).map((function(i){return i.value})):i.target.value,this.setState({value:s}),u&&u(s)})),u=i.value?i.value:i.multiple?[\"\"]:\"\",this.state={value:u}}UNSAFE_componentWillReceiveProps(i){i.value!==this.props.value&&this.setState({value:i.value})}render(){var i,s;let{allowedValues:u,multiple:m,allowEmptyValue:v,disabled:_}=this.props,j=(null===(i=this.state.value)||void 0===i||null===(s=i.toJS)||void 0===s?void 0:s.call(i))||this.state.value;return He.createElement(\"select\",{className:this.props.className,multiple:m,value:j,onChange:this.onChange,disabled:_},v?He.createElement(\"option\",{value:\"\"},\"--\"):null,u.map((function(i,s){return He.createElement(\"option\",{key:s,value:String(i)},String(i))})))}}_o()(Select,\"defaultProps\",{multiple:!1,allowEmptyValue:!0});class layout_utils_Link extends He.Component{render(){return He.createElement(\"a\",No()({},this.props,{rel:\"noopener noreferrer\",className:xclass(this.props.className,\"link\")}))}}const NoMargin=i=>{let{children:s}=i;return He.createElement(\"div\",{className:\"no-margin\"},\" \",s,\" \")};class Collapse extends He.Component{renderNotAnimated(){return this.props.isOpened?He.createElement(NoMargin,null,this.props.children):He.createElement(\"noscript\",null)}render(){let{animated:i,isOpened:s,children:u}=this.props;return i?(u=s?u:null,He.createElement(NoMargin,null,u)):this.renderNotAnimated()}}_o()(Collapse,\"defaultProps\",{isOpened:!1,animated:!1});class Overview extends He.Component{constructor(){super(...arguments),this.setTagShown=this._setTagShown.bind(this)}_setTagShown(i,s){this.props.layoutActions.show(i,s)}showOp(i,s){let{layoutActions:u}=this.props;u.show(i,s)}render(){let{specSelectors:i,layoutSelectors:s,layoutActions:u,getComponent:m}=this.props,v=i.taggedOperations();const _=m(\"Collapse\");return He.createElement(\"div\",null,He.createElement(\"h4\",{className:\"overview-title\"},\"Overview\"),v.map(((i,m)=>{let v=i.get(\"operations\"),j=[\"overview-tags\",m],M=s.isShown(j,!0);return He.createElement(\"div\",{key:\"overview-\"+m},He.createElement(\"h4\",{onClick:()=>u.show(j,!M),className:\"link overview-tag\"},\" \",M?\"-\":\"+\",m),He.createElement(_,{isOpened:M,animated:!0},v.map((i=>{let{path:m,method:v,id:_}=i.toObject(),j=\"operations\",M=_,$=s.isShown([j,M]);return He.createElement(OperationLink,{key:_,path:m,method:v,id:m+\"-\"+v,shown:$,showOpId:M,showOpIdPrefix:j,href:`#operation-${M}`,onClick:u.show})})).toArray()))})).toArray(),v.size<1&&He.createElement(\"h3\",null,\" No operations defined in spec! \"))}}class OperationLink extends He.Component{constructor(i){super(i),this.onClick=this._onClick.bind(this)}_onClick(){let{showOpId:i,showOpIdPrefix:s,onClick:u,shown:m}=this.props;u([s,i],!m)}render(){let{id:i,method:s,shown:u,href:m}=this.props;return He.createElement(layout_utils_Link,{href:m,onClick:this.onClick,className:\"block opblock-link \"+(u?\"shown\":\"\")},He.createElement(\"div\",null,He.createElement(\"small\",{className:`bold-label-${s}`},s.toUpperCase()),He.createElement(\"span\",{className:\"bold-label\"},i)))}}const qC=[\"value\",\"defaultValue\",\"initialValue\"];class InitializedInput extends He.Component{componentDidMount(){this.props.initialValue&&(this.inputRef.value=this.props.initialValue)}render(){const i=this.props,{value:s,defaultValue:u,initialValue:m}=i,v=Mo()(i,qC);return He.createElement(\"input\",No()({},v,{ref:i=>this.inputRef=i}))}}class InfoBasePath extends He.Component{render(){const{host:i,basePath:s}=this.props;return He.createElement(\"pre\",{className:\"base-url\"},\"[ Base URL: \",i,s,\" ]\")}}class InfoUrl extends He.PureComponent{render(){const{url:i,getComponent:s}=this.props,u=s(\"Link\");return He.createElement(u,{target:\"_blank\",href:sanitizeUrl(i)},He.createElement(\"span\",{className:\"url\"},\" \",i))}}class info_Info extends He.Component{render(){const{info:i,url:s,host:u,basePath:m,getComponent:v,externalDocs:_,selectedServer:j,url:M}=this.props,$=i.get(\"version\"),W=i.get(\"description\"),X=i.get(\"title\"),Y=safeBuildUrl(i.get(\"termsOfService\"),M,{selectedServer:j}),Z=i.get(\"contact\"),ee=i.get(\"license\"),ie=safeBuildUrl(_&&_.get(\"url\"),M,{selectedServer:j}),ae=_&&_.get(\"description\"),ce=v(\"Markdown\",!0),le=v(\"Link\"),pe=v(\"VersionStamp\"),de=v(\"OpenAPIVersion\"),fe=v(\"InfoUrl\"),ye=v(\"InfoBasePath\"),be=v(\"License\"),_e=v(\"Contact\");return He.createElement(\"div\",{className:\"info\"},He.createElement(\"hgroup\",{className:\"main\"},He.createElement(\"h2\",{className:\"title\"},X,$&&He.createElement(pe,{version:$}),He.createElement(de,{oasVersion:\"2.0\"})),u||m?He.createElement(ye,{host:u,basePath:m}):null,s&&He.createElement(fe,{getComponent:v,url:s})),He.createElement(\"div\",{className:\"description\"},He.createElement(ce,{source:W})),Y&&He.createElement(\"div\",{className:\"info__tos\"},He.createElement(le,{target:\"_blank\",href:sanitizeUrl(Y)},\"Terms of service\")),(null==Z?void 0:Z.size)>0&&He.createElement(_e,{getComponent:v,data:Z,selectedServer:j,url:s}),(null==ee?void 0:ee.size)>0&&He.createElement(be,{getComponent:v,license:ee,selectedServer:j,url:s}),ie?He.createElement(le,{className:\"info__extdocs\",target:\"_blank\",href:sanitizeUrl(ie)},ae||ie):null)}}const $C=info_Info;class InfoContainer extends He.Component{render(){const{specSelectors:i,getComponent:s,oas3Selectors:u}=this.props,m=i.info(),v=i.url(),_=i.basePath(),j=i.host(),M=i.externalDocs(),$=u.selectedServer(),W=s(\"info\");return He.createElement(\"div\",null,m&&m.count()?He.createElement(W,{info:m,url:v,host:j,basePath:_,externalDocs:M,getComponent:s,selectedServer:$}):null)}}class contact_Contact extends He.Component{render(){const{data:i,getComponent:s,selectedServer:u,url:m}=this.props,v=i.get(\"name\",\"the developer\"),_=safeBuildUrl(i.get(\"url\"),m,{selectedServer:u}),j=i.get(\"email\"),M=s(\"Link\");return He.createElement(\"div\",{className:\"info__contact\"},_&&He.createElement(\"div\",null,He.createElement(M,{href:sanitizeUrl(_),target:\"_blank\"},v,\" - Website\")),j&&He.createElement(M,{href:sanitizeUrl(`mailto:${j}`)},_?`Send email to ${v}`:`Contact ${v}`))}}const UC=contact_Contact;class license_License extends He.Component{render(){const{license:i,getComponent:s,selectedServer:u,url:m}=this.props,v=i.get(\"name\",\"License\"),_=safeBuildUrl(i.get(\"url\"),m,{selectedServer:u}),j=s(\"Link\");return He.createElement(\"div\",{className:\"info__license\"},_?He.createElement(\"div\",{className:\"info__license__url\"},He.createElement(j,{target:\"_blank\",href:sanitizeUrl(_)},v)):He.createElement(\"span\",null,v))}}const zC=license_License;class JumpToPath extends He.Component{render(){return null}}class CopyToClipboardBtn extends He.Component{render(){let{getComponent:i}=this.props;const s=i(\"CopyIcon\");return He.createElement(\"div\",{className:\"view-line-link copy-to-clipboard\",title:\"Copy to clipboard\"},He.createElement(Ci.CopyToClipboard,{text:this.props.textToCopy},He.createElement(s,null)))}}class Footer extends He.Component{render(){return He.createElement(\"div\",{className:\"footer\"})}}class FilterContainer extends He.Component{constructor(){super(...arguments),_o()(this,\"onFilterChange\",(i=>{const{target:{value:s}}=i;this.props.layoutActions.updateFilter(s)}))}render(){const{specSelectors:i,layoutSelectors:s,getComponent:u}=this.props,m=u(\"Col\"),v=\"loading\"===i.loadingStatus(),_=\"failed\"===i.loadingStatus(),j=s.currentFilter(),M=[\"operation-filter-input\"];return _&&M.push(\"failed\"),v&&M.push(\"loading\"),He.createElement(\"div\",null,null===j||!1===j||\"false\"===j?null:He.createElement(\"div\",{className:\"filter-container\"},He.createElement(m,{className:\"filter wrapper\",mobile:12},He.createElement(\"input\",{className:M.join(\" \"),placeholder:\"Filter by tag\",type:\"text\",onChange:this.onFilterChange,value:!0===j||\"true\"===j?\"\":j,disabled:v}))))}}const VC=Function.prototype;class ParamBody extends He.PureComponent{constructor(i,s){super(i,s),_o()(this,\"updateValues\",(i=>{let{param:s,isExecute:u,consumesValue:m=\"\"}=i,v=/xml/i.test(m),_=/json/i.test(m),j=v?s.get(\"value_xml\"):s.get(\"value\");if(void 0!==j){let i=!j&&_?\"{}\":j;this.setState({value:i}),this.onChange(i,{isXml:v,isEditBox:u})}else v?this.onChange(this.sample(\"xml\"),{isXml:v,isEditBox:u}):this.onChange(this.sample(),{isEditBox:u})})),_o()(this,\"sample\",(i=>{let{param:s,fn:u}=this.props,m=u.inferSchema(s.toJS());return u.getSampleSchema(m,i,{includeWriteOnly:!0})})),_o()(this,\"onChange\",((i,s)=>{let{isEditBox:u,isXml:m}=s;this.setState({value:i,isEditBox:u}),this._onChange(i,m)})),_o()(this,\"_onChange\",((i,s)=>{(this.props.onChange||VC)(i,s)})),_o()(this,\"handleOnChange\",(i=>{const{consumesValue:s}=this.props,u=/xml/i.test(s),m=i.target.value;this.onChange(m,{isXml:u,isEditBox:this.state.isEditBox})})),_o()(this,\"toggleIsEditBox\",(()=>this.setState((i=>({isEditBox:!i.isEditBox}))))),this.state={isEditBox:!1,value:\"\"}}componentDidMount(){this.updateValues.call(this,this.props)}UNSAFE_componentWillReceiveProps(i){this.updateValues.call(this,i)}render(){let{onChangeConsumes:i,param:s,isExecute:u,specSelectors:m,pathMethod:v,getConfigs:_,getComponent:j}=this.props;const M=j(\"Button\"),$=j(\"TextArea\"),W=j(\"highlightCode\"),X=j(\"contentType\");let Y=(m?m.parameterWithMetaByIdentity(v,s):s).get(\"errors\",(0,et.List)()),Z=m.contentTypeValues(v).get(\"requestContentType\"),ee=this.props.consumes&&this.props.consumes.size?this.props.consumes:ParamBody.defaultProp.consumes,{value:ie,isEditBox:ae}=this.state,ce=null;return getKnownSyntaxHighlighterLanguage(ie)&&(ce=\"json\"),He.createElement(\"div\",{className:\"body-param\",\"data-param-name\":s.get(\"name\"),\"data-param-in\":s.get(\"in\")},ae&&u?He.createElement($,{className:\"body-param__text\"+(Y.count()?\" invalid\":\"\"),value:ie,onChange:this.handleOnChange}):ie&&He.createElement(W,{className:\"body-param__example\",language:ce,getConfigs:_,value:ie}),He.createElement(\"div\",{className:\"body-param-options\"},u?He.createElement(\"div\",{className:\"body-param-edit\"},He.createElement(M,{className:ae?\"btn cancel body-param__example-edit\":\"btn edit body-param__example-edit\",onClick:this.toggleIsEditBox},ae?\"Cancel\":\"Edit\")):null,He.createElement(\"label\",{htmlFor:\"\"},He.createElement(\"span\",null,\"Parameter content type\"),He.createElement(X,{value:Z,contentTypes:ee,onChange:i,className:\"body-param-content-type\",ariaLabel:\"Parameter content type\"}))))}}_o()(ParamBody,\"defaultProp\",{consumes:(0,et.fromJS)([\"application/json\"]),param:(0,et.fromJS)({}),onChange:VC,onChangeConsumes:VC});class Curl extends He.Component{render(){let{request:i,getConfigs:s}=this.props,u=requestSnippetGenerator_curl_bash(i);const m=s(),v=ko()(m,\"syntaxHighlight.activated\")?He.createElement(Hi,{language:\"bash\",className:\"curl microlight\",style:getStyle(ko()(m,\"syntaxHighlight.theme\"))},u):He.createElement(\"textarea\",{readOnly:!0,className:\"curl\",value:u});return He.createElement(\"div\",{className:\"curl-command\"},He.createElement(\"h4\",null,\"Curl\"),He.createElement(\"div\",{className:\"copy-to-clipboard\"},He.createElement(Ci.CopyToClipboard,{text:u},He.createElement(\"button\",null))),He.createElement(\"div\",null,v))}}class Schemes extends He.Component{constructor(){super(...arguments),_o()(this,\"onChange\",(i=>{this.setScheme(i.target.value)})),_o()(this,\"setScheme\",(i=>{let{path:s,method:u,specActions:m}=this.props;m.setScheme(i,s,u)}))}UNSAFE_componentWillMount(){let{schemes:i}=this.props;this.setScheme(i.first())}UNSAFE_componentWillReceiveProps(i){this.props.currentScheme&&i.schemes.includes(this.props.currentScheme)||this.setScheme(i.schemes.first())}render(){let{schemes:i,currentScheme:s}=this.props;return He.createElement(\"label\",{htmlFor:\"schemes\"},He.createElement(\"span\",{className:\"schemes-title\"},\"Schemes\"),He.createElement(\"select\",{onChange:this.onChange,value:s},i.valueSeq().map((i=>He.createElement(\"option\",{value:i,key:i},i))).toArray()))}}class SchemesContainer extends He.Component{render(){const{specActions:i,specSelectors:s,getComponent:u}=this.props,m=s.operationScheme(),v=s.schemes(),_=u(\"schemes\");return v&&v.size?He.createElement(_,{currentScheme:m,schemes:v,specActions:i}):null}}class ModelCollapse extends He.Component{constructor(i,s){super(i,s),_o()(this,\"toggleCollapsed\",(()=>{this.props.onToggle&&this.props.onToggle(this.props.modelName,!this.state.expanded),this.setState({expanded:!this.state.expanded})})),_o()(this,\"onLoad\",(i=>{if(i&&this.props.layoutSelectors){const s=this.props.layoutSelectors.getScrollToKey();tt().is(s,this.props.specPath)&&this.toggleCollapsed(),this.props.layoutActions.readyToScroll(this.props.specPath,i.parentElement)}}));let{expanded:u,collapsedContent:m}=this.props;this.state={expanded:u,collapsedContent:m||ModelCollapse.defaultProps.collapsedContent}}componentDidMount(){const{hideSelfOnExpand:i,expanded:s,modelName:u}=this.props;i&&s&&this.props.onToggle(u,s)}UNSAFE_componentWillReceiveProps(i){this.props.expanded!==i.expanded&&this.setState({expanded:i.expanded})}render(){const{title:i,classes:s}=this.props;return this.state.expanded&&this.props.hideSelfOnExpand?He.createElement(\"span\",{className:s||\"\"},this.props.children):He.createElement(\"span\",{className:s||\"\",ref:this.onLoad},He.createElement(\"button\",{\"aria-expanded\":this.state.expanded,className:\"model-box-control\",onClick:this.toggleCollapsed},i&&He.createElement(\"span\",{className:\"pointer\"},i),He.createElement(\"span\",{className:\"model-toggle\"+(this.state.expanded?\"\":\" collapsed\")}),!this.state.expanded&&He.createElement(\"span\",null,this.state.collapsedContent)),this.state.expanded&&this.props.children)}}_o()(ModelCollapse,\"defaultProps\",{collapsedContent:\"{...}\",expanded:!1,title:null,onToggle:()=>{},hideSelfOnExpand:!1,specPath:tt().List([])});class ModelExample extends He.Component{constructor(i,s){super(i,s),_o()(this,\"activeTab\",(i=>{let{target:{dataset:{name:s}}}=i;this.setState({activeTab:s})}));let{getConfigs:u,isExecute:m}=this.props,{defaultModelRendering:v}=u(),_=v;\"example\"!==v&&\"model\"!==v&&(_=\"example\"),m&&(_=\"example\"),this.state={activeTab:_}}UNSAFE_componentWillReceiveProps(i){i.isExecute&&!this.props.isExecute&&this.props.example&&this.setState({activeTab:\"example\"})}render(){let{getComponent:i,specSelectors:s,schema:u,example:m,isExecute:v,getConfigs:_,specPath:j,includeReadOnly:M,includeWriteOnly:$}=this.props,{defaultModelExpandDepth:W}=_();const X=i(\"ModelWrapper\"),Y=i(\"highlightCode\"),Z=jt()(5).toString(\"base64\"),ee=jt()(5).toString(\"base64\"),ie=jt()(5).toString(\"base64\"),ae=jt()(5).toString(\"base64\");let ce=s.isOAS3();return He.createElement(\"div\",{className:\"model-example\"},He.createElement(\"ul\",{className:\"tab\",role:\"tablist\"},He.createElement(\"li\",{className:CC()(\"tabitem\",{active:\"example\"===this.state.activeTab}),role:\"presentation\"},He.createElement(\"button\",{\"aria-controls\":ee,\"aria-selected\":\"example\"===this.state.activeTab,className:\"tablinks\",\"data-name\":\"example\",id:Z,onClick:this.activeTab,role:\"tab\"},v?\"Edit Value\":\"Example Value\")),u&&He.createElement(\"li\",{className:CC()(\"tabitem\",{active:\"model\"===this.state.activeTab}),role:\"presentation\"},He.createElement(\"button\",{\"aria-controls\":ae,\"aria-selected\":\"model\"===this.state.activeTab,className:CC()(\"tablinks\",{inactive:v}),\"data-name\":\"model\",id:ie,onClick:this.activeTab,role:\"tab\"},ce?\"Schema\":\"Model\"))),\"example\"===this.state.activeTab&&He.createElement(\"div\",{\"aria-hidden\":\"example\"!==this.state.activeTab,\"aria-labelledby\":Z,\"data-name\":\"examplePanel\",id:ee,role:\"tabpanel\",tabIndex:\"0\"},m||He.createElement(Y,{value:\"(no example available)\",getConfigs:_})),\"model\"===this.state.activeTab&&He.createElement(\"div\",{\"aria-hidden\":\"example\"===this.state.activeTab,\"aria-labelledby\":ie,\"data-name\":\"modelPanel\",id:ae,role:\"tabpanel\",tabIndex:\"0\"},He.createElement(X,{schema:u,getComponent:i,getConfigs:_,specSelectors:s,expandDepth:W,specPath:j,includeReadOnly:M,includeWriteOnly:$})))}}class ModelWrapper extends He.Component{constructor(){super(...arguments),_o()(this,\"onToggle\",((i,s)=>{this.props.layoutActions&&this.props.layoutActions.show(this.props.fullPath,s)}))}render(){let{getComponent:i,getConfigs:s}=this.props;const u=i(\"Model\");let m;return this.props.layoutSelectors&&(m=this.props.layoutSelectors.isShown(this.props.fullPath)),He.createElement(\"div\",{className:\"model-box\"},He.createElement(u,No()({},this.props,{getConfigs:s,expanded:m,depth:1,onToggle:this.onToggle,expandDepth:this.props.expandDepth||0})))}}function react_immutable_pure_component_es_typeof(i){return react_immutable_pure_component_es_typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(i){return typeof i}:function(i){return i&&\"function\"==typeof Symbol&&i.constructor===Symbol&&i!==Symbol.prototype?\"symbol\":typeof i},react_immutable_pure_component_es_typeof(i)}function _defineProperties(i,s){for(var u=0;u<s.length;u++){var m=s[u];m.enumerable=m.enumerable||!1,m.configurable=!0,\"value\"in m&&(m.writable=!0),Object.defineProperty(i,m.key,m)}}function react_immutable_pure_component_es_defineProperty(i,s,u){return s in i?Object.defineProperty(i,s,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[s]=u,i}function react_immutable_pure_component_es_ownKeys(i,s){var u=Object.keys(i);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(i);s&&(m=m.filter((function(s){return Object.getOwnPropertyDescriptor(i,s).enumerable}))),u.push.apply(u,m)}return u}function _getPrototypeOf(i){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(i){return i.__proto__||Object.getPrototypeOf(i)},_getPrototypeOf(i)}function _setPrototypeOf(i,s){return _setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(i,s){return i.__proto__=s,i},_setPrototypeOf(i,s)}function _possibleConstructorReturn(i,s){return!s||\"object\"!=typeof s&&\"function\"!=typeof s?function _assertThisInitialized(i){if(void 0===i)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return i}(i):s}var WC={};function react_immutable_pure_component_es_get(i,s,u){return function isInvalid(i){return null==i}(i)?u:function isMapLike(i){return null!==i&&\"object\"===react_immutable_pure_component_es_typeof(i)&&\"function\"==typeof i.get&&\"function\"==typeof i.has}(i)?i.has(s)?i.get(s):u:hasOwnProperty.call(i,s)?i[s]:u}function react_immutable_pure_component_es_getIn(i,s,u){for(var m=0;m!==s.length;)if((i=react_immutable_pure_component_es_get(i,s[m++],WC))===WC)return u;return i}function check(i){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},m=function createChecker(i,s){return function(u){if(\"string\"==typeof u)return(0,et.is)(s[u],i[u]);if(Array.isArray(u))return(0,et.is)(react_immutable_pure_component_es_getIn(s,u),react_immutable_pure_component_es_getIn(i,u));throw new TypeError(\"Invalid key: expected Array or string: \"+u)}}(s,u),v=i||Object.keys(function react_immutable_pure_component_es_objectSpread2(i){for(var s=1;s<arguments.length;s++){var u=null!=arguments[s]?arguments[s]:{};s%2?react_immutable_pure_component_es_ownKeys(u,!0).forEach((function(s){react_immutable_pure_component_es_defineProperty(i,s,u[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):react_immutable_pure_component_es_ownKeys(u).forEach((function(s){Object.defineProperty(i,s,Object.getOwnPropertyDescriptor(u,s))}))}return i}({},u,{},s));return v.every(m)}const KC=function(i){function ImmutablePureComponent(){return function _classCallCheck(i,s){if(!(i instanceof s))throw new TypeError(\"Cannot call a class as a function\")}(this,ImmutablePureComponent),_possibleConstructorReturn(this,_getPrototypeOf(ImmutablePureComponent).apply(this,arguments))}return function _inherits(i,s){if(\"function\"!=typeof s&&null!==s)throw new TypeError(\"Super expression must either be null or a function\");i.prototype=Object.create(s&&s.prototype,{constructor:{value:i,writable:!0,configurable:!0}}),s&&_setPrototypeOf(i,s)}(ImmutablePureComponent,i),function _createClass(i,s,u){return s&&_defineProperties(i.prototype,s),u&&_defineProperties(i,u),i}(ImmutablePureComponent,[{key:\"shouldComponentUpdate\",value:function shouldComponentUpdate(i){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return!check(this.updateOnProps,this.props,i,\"updateOnProps\")||!check(this.updateOnStates,this.state,s,\"updateOnStates\")}}]),ImmutablePureComponent}(He.Component);var HC=__webpack_require__(45697),JC=__webpack_require__.n(HC);const decodeRefName=i=>{const s=i.replace(/~1/g,\"/\").replace(/~0/g,\"~\");try{return decodeURIComponent(s)}catch{return s}};class Model extends KC{constructor(){super(...arguments),_o()(this,\"getModelName\",(i=>-1!==i.indexOf(\"#/definitions/\")?decodeRefName(i.replace(/^.*#\\/definitions\\//,\"\")):-1!==i.indexOf(\"#/components/schemas/\")?decodeRefName(i.replace(/^.*#\\/components\\/schemas\\//,\"\")):void 0)),_o()(this,\"getRefSchema\",(i=>{let{specSelectors:s}=this.props;return s.findDefinition(i)}))}render(){let{getComponent:i,getConfigs:s,specSelectors:u,schema:m,required:v,name:_,isRef:j,specPath:M,displayName:$,includeReadOnly:W,includeWriteOnly:X}=this.props;const Y=i(\"ObjectModel\"),Z=i(\"ArrayModel\"),ee=i(\"PrimitiveModel\");let ie=\"object\",ae=m&&m.get(\"$$ref\");if(!_&&ae&&(_=this.getModelName(ae)),!m&&ae&&(m=this.getRefSchema(_)),!m)return He.createElement(\"span\",{className:\"model model-title\"},He.createElement(\"span\",{className:\"model-title__text\"},$||_),He.createElement(\"img\",{src:xC,height:\"20px\",width:\"20px\"}));const ce=u.isOAS3()&&m.get(\"deprecated\");switch(j=void 0!==j?j:!!ae,ie=m&&m.get(\"type\")||ie,ie){case\"object\":return He.createElement(Y,No()({className:\"object\"},this.props,{specPath:M,getConfigs:s,schema:m,name:_,deprecated:ce,isRef:j,includeReadOnly:W,includeWriteOnly:X}));case\"array\":return He.createElement(Z,No()({className:\"array\"},this.props,{getConfigs:s,schema:m,name:_,deprecated:ce,required:v,includeReadOnly:W,includeWriteOnly:X}));default:return He.createElement(ee,No()({},this.props,{getComponent:i,getConfigs:s,schema:m,name:_,deprecated:ce,required:v}))}}}_o()(Model,\"propTypes\",{schema:Eo().map.isRequired,getComponent:JC().func.isRequired,getConfigs:JC().func.isRequired,specSelectors:JC().object.isRequired,name:JC().string,displayName:JC().string,isRef:JC().bool,required:JC().bool,expandDepth:JC().number,depth:JC().number,specPath:Eo().list.isRequired,includeReadOnly:JC().bool,includeWriteOnly:JC().bool});class Models extends He.Component{constructor(){super(...arguments),_o()(this,\"getSchemaBasePath\",(()=>this.props.specSelectors.isOAS3()?[\"components\",\"schemas\"]:[\"definitions\"])),_o()(this,\"getCollapsedContent\",(()=>\" \")),_o()(this,\"handleToggle\",((i,s)=>{const{layoutActions:u}=this.props;u.show([...this.getSchemaBasePath(),i],s),s&&this.props.specActions.requestResolvedSubtree([...this.getSchemaBasePath(),i])})),_o()(this,\"onLoadModels\",(i=>{i&&this.props.layoutActions.readyToScroll(this.getSchemaBasePath(),i)})),_o()(this,\"onLoadModel\",(i=>{if(i){const s=i.getAttribute(\"data-name\");this.props.layoutActions.readyToScroll([...this.getSchemaBasePath(),s],i)}}))}render(){let{specSelectors:i,getComponent:s,layoutSelectors:u,layoutActions:m,getConfigs:v}=this.props,_=i.definitions(),{docExpansion:j,defaultModelsExpandDepth:M}=v();if(!_.size||M<0)return null;const $=this.getSchemaBasePath();let W=u.isShown($,M>0&&\"none\"!==j);const X=i.isOAS3(),Y=s(\"ModelWrapper\"),Z=s(\"Collapse\"),ee=s(\"ModelCollapse\"),ie=s(\"JumpToPath\",!0),ae=s(\"ArrowUpIcon\"),ce=s(\"ArrowDownIcon\");return He.createElement(\"section\",{className:W?\"models is-open\":\"models\",ref:this.onLoadModels},He.createElement(\"h4\",null,He.createElement(\"button\",{\"aria-expanded\":W,className:\"models-control\",onClick:()=>m.show($,!W)},He.createElement(\"span\",null,X?\"Schemas\":\"Models\"),W?He.createElement(ae,null):He.createElement(ce,null))),He.createElement(Z,{isOpened:W},_.entrySeq().map((_=>{let[j]=_;const W=[...$,j],X=tt().List(W),Z=i.specResolvedSubtree(W),ae=i.specJson().getIn(W),ce=et.Map.isMap(Z)?Z:tt().Map(),le=et.Map.isMap(ae)?ae:tt().Map(),pe=ce.get(\"title\")||le.get(\"title\")||j,de=u.isShown(W,!1);de&&0===ce.size&&le.size>0&&this.props.specActions.requestResolvedSubtree(W);const fe=He.createElement(Y,{name:j,expandDepth:M,schema:ce||tt().Map(),displayName:pe,fullPath:W,specPath:X,getComponent:s,specSelectors:i,getConfigs:v,layoutSelectors:u,layoutActions:m,includeReadOnly:!0,includeWriteOnly:!0}),ye=He.createElement(\"span\",{className:\"model-box\"},He.createElement(\"span\",{className:\"model model-title\"},pe));return He.createElement(\"div\",{id:`model-${j}`,className:\"model-container\",key:`models-section-${j}`,\"data-name\":j,ref:this.onLoadModel},He.createElement(\"span\",{className:\"models-jump-to-path\"},He.createElement(ie,{specPath:X})),He.createElement(ee,{classes:\"model-box\",collapsedContent:this.getCollapsedContent(j),onToggle:this.handleToggle,title:ye,displayName:pe,modelName:j,specPath:X,layoutSelectors:u,layoutActions:m,hideSelfOnExpand:!0,expanded:M>0&&de},fe))})).toArray()))}}const enum_model=i=>{let{value:s,getComponent:u}=i,m=u(\"ModelCollapse\"),v=He.createElement(\"span\",null,\"Array [ \",s.count(),\" ]\");return He.createElement(\"span\",{className:\"prop-enum\"},\"Enum:\",He.createElement(\"br\",null),He.createElement(m,{collapsedContent:v},\"[ \",s.join(\", \"),\" ]\"))},GC=[\"schema\",\"name\",\"displayName\",\"isRef\",\"getComponent\",\"getConfigs\",\"depth\",\"onToggle\",\"expanded\",\"specPath\"];class ObjectModel extends He.Component{render(){let i=this.props,{schema:s,name:u,displayName:m,isRef:v,getComponent:_,getConfigs:j,depth:M,onToggle:$,expanded:W,specPath:X}=i,Y=Mo()(i,GC),{specSelectors:Z,expandDepth:ee,includeReadOnly:ie,includeWriteOnly:ae}=Y;const{isOAS3:ce}=Z;if(!s)return null;const{showExtensions:le}=j();let pe=s.get(\"description\"),de=s.get(\"properties\"),fe=s.get(\"additionalProperties\"),ye=s.get(\"title\")||m||u,be=s.get(\"required\"),_e=s.filter(((i,s)=>-1!==[\"maxProperties\",\"minProperties\",\"nullable\",\"example\"].indexOf(s))),we=s.get(\"deprecated\"),Se=s.getIn([\"externalDocs\",\"url\"]),xe=s.getIn([\"externalDocs\",\"description\"]);const Pe=_(\"JumpToPath\",!0),Ie=_(\"Markdown\",!0),Te=_(\"Model\"),Re=_(\"ModelCollapse\"),qe=_(\"Property\"),ze=_(\"Link\"),JumpToPathSection=()=>He.createElement(\"span\",{className:\"model-jump-to-path\"},He.createElement(Pe,{specPath:X})),Ve=He.createElement(\"span\",null,He.createElement(\"span\",null,\"{\"),\"...\",He.createElement(\"span\",null,\"}\"),v?He.createElement(JumpToPathSection,null):\"\"),We=Z.isOAS3()?s.get(\"anyOf\"):null,Xe=Z.isOAS3()?s.get(\"oneOf\"):null,Ye=Z.isOAS3()?s.get(\"not\"):null,Qe=ye&&He.createElement(\"span\",{className:\"model-title\"},v&&s.get(\"$$ref\")&&He.createElement(\"span\",{className:\"model-hint\"},s.get(\"$$ref\")),He.createElement(\"span\",{className:\"model-title__text\"},ye));return He.createElement(\"span\",{className:\"model\"},He.createElement(Re,{modelName:u,title:Qe,onToggle:$,expanded:!!W||M<=ee,collapsedContent:Ve},He.createElement(\"span\",{className:\"brace-open object\"},\"{\"),v?He.createElement(JumpToPathSection,null):null,He.createElement(\"span\",{className:\"inner-object\"},He.createElement(\"table\",{className:\"model\"},He.createElement(\"tbody\",null,pe?He.createElement(\"tr\",{className:\"description\"},He.createElement(\"td\",null,\"description:\"),He.createElement(\"td\",null,He.createElement(Ie,{source:pe}))):null,Se&&He.createElement(\"tr\",{className:\"external-docs\"},He.createElement(\"td\",null,\"externalDocs:\"),He.createElement(\"td\",null,He.createElement(ze,{target:\"_blank\",href:sanitizeUrl(Se)},xe||Se))),we?He.createElement(\"tr\",{className:\"property\"},He.createElement(\"td\",null,\"deprecated:\"),He.createElement(\"td\",null,\"true\")):null,de&&de.size?de.entrySeq().filter((i=>{let[,s]=i;return(!s.get(\"readOnly\")||ie)&&(!s.get(\"writeOnly\")||ae)})).map((i=>{let[s,m]=i,v=ce()&&m.get(\"deprecated\"),$=et.List.isList(be)&&be.contains(s),W=[\"property-row\"];return v&&W.push(\"deprecated\"),$&&W.push(\"required\"),He.createElement(\"tr\",{key:s,className:W.join(\" \")},He.createElement(\"td\",null,s,$&&He.createElement(\"span\",{className:\"star\"},\"*\")),He.createElement(\"td\",null,He.createElement(Te,No()({key:`object-${u}-${s}_${m}`},Y,{required:$,getComponent:_,specPath:X.push(\"properties\",s),getConfigs:j,schema:m,depth:M+1}))))})).toArray():null,le?He.createElement(\"tr\",null,He.createElement(\"td\",null,\" \")):null,le?s.entrySeq().map((i=>{let[s,u]=i;if(\"x-\"!==s.slice(0,2))return;const m=u?u.toJS?u.toJS():u:null;return He.createElement(\"tr\",{key:s,className:\"extension\"},He.createElement(\"td\",null,s),He.createElement(\"td\",null,JSON.stringify(m)))})).toArray():null,fe&&fe.size?He.createElement(\"tr\",null,He.createElement(\"td\",null,\"< * >:\"),He.createElement(\"td\",null,He.createElement(Te,No()({},Y,{required:!1,getComponent:_,specPath:X.push(\"additionalProperties\"),getConfigs:j,schema:fe,depth:M+1})))):null,We?He.createElement(\"tr\",null,He.createElement(\"td\",null,\"anyOf ->\"),He.createElement(\"td\",null,We.map(((i,s)=>He.createElement(\"div\",{key:s},He.createElement(Te,No()({},Y,{required:!1,getComponent:_,specPath:X.push(\"anyOf\",s),getConfigs:j,schema:i,depth:M+1}))))))):null,Xe?He.createElement(\"tr\",null,He.createElement(\"td\",null,\"oneOf ->\"),He.createElement(\"td\",null,Xe.map(((i,s)=>He.createElement(\"div\",{key:s},He.createElement(Te,No()({},Y,{required:!1,getComponent:_,specPath:X.push(\"oneOf\",s),getConfigs:j,schema:i,depth:M+1}))))))):null,Ye?He.createElement(\"tr\",null,He.createElement(\"td\",null,\"not ->\"),He.createElement(\"td\",null,He.createElement(\"div\",null,He.createElement(Te,No()({},Y,{required:!1,getComponent:_,specPath:X.push(\"not\"),getConfigs:j,schema:Ye,depth:M+1}))))):null))),He.createElement(\"span\",{className:\"brace-close\"},\"}\")),_e.size?_e.entrySeq().map((i=>{let[s,u]=i;return He.createElement(qe,{key:`${s}-${u}`,propKey:s,propVal:u,propClass:\"property\"})})):null)}}class ArrayModel extends He.Component{render(){let{getComponent:i,getConfigs:s,schema:u,depth:m,expandDepth:v,name:_,displayName:j,specPath:M}=this.props,$=u.get(\"description\"),W=u.get(\"items\"),X=u.get(\"title\")||j||_,Y=u.filter(((i,s)=>-1===[\"type\",\"items\",\"description\",\"$$ref\",\"externalDocs\"].indexOf(s))),Z=u.getIn([\"externalDocs\",\"url\"]),ee=u.getIn([\"externalDocs\",\"description\"]);const ie=i(\"Markdown\",!0),ae=i(\"ModelCollapse\"),ce=i(\"Model\"),le=i(\"Property\"),pe=i(\"Link\"),de=X&&He.createElement(\"span\",{className:\"model-title\"},He.createElement(\"span\",{className:\"model-title__text\"},X));return He.createElement(\"span\",{className:\"model\"},He.createElement(ae,{title:de,expanded:m<=v,collapsedContent:\"[...]\"},\"[\",Y.size?Y.entrySeq().map((i=>{let[s,u]=i;return He.createElement(le,{key:`${s}-${u}`,propKey:s,propVal:u,propClass:\"property\"})})):null,$?He.createElement(ie,{source:$}):Y.size?He.createElement(\"div\",{className:\"markdown\"}):null,Z&&He.createElement(\"div\",{className:\"external-docs\"},He.createElement(pe,{target:\"_blank\",href:sanitizeUrl(Z)},ee||Z)),He.createElement(\"span\",null,He.createElement(ce,No()({},this.props,{getConfigs:s,specPath:M.push(\"items\"),name:null,schema:W,required:!1,depth:m+1}))),\"]\"))}}const XC=\"property primitive\";class Primitive extends He.Component{render(){let{schema:i,getComponent:s,getConfigs:u,name:m,displayName:v,depth:_,expandDepth:j}=this.props;const{showExtensions:M}=u();if(!i||!i.get)return He.createElement(\"div\",null);let $=i.get(\"type\"),W=i.get(\"format\"),X=i.get(\"xml\"),Y=i.get(\"enum\"),Z=i.get(\"title\")||v||m,ee=i.get(\"description\"),ie=getExtensions(i),ae=i.filter(((i,s)=>-1===[\"enum\",\"type\",\"format\",\"description\",\"$$ref\",\"externalDocs\"].indexOf(s))).filterNot(((i,s)=>ie.has(s))),ce=i.getIn([\"externalDocs\",\"url\"]),le=i.getIn([\"externalDocs\",\"description\"]);const pe=s(\"Markdown\",!0),de=s(\"EnumModel\"),fe=s(\"Property\"),ye=s(\"ModelCollapse\"),be=s(\"Link\"),_e=Z&&He.createElement(\"span\",{className:\"model-title\"},He.createElement(\"span\",{className:\"model-title__text\"},Z));return He.createElement(\"span\",{className:\"model\"},He.createElement(ye,{title:_e,expanded:_<=j,collapsedContent:\"[...]\",hideSelfOnExpand:j!==_},He.createElement(\"span\",{className:\"prop\"},m&&_>1&&He.createElement(\"span\",{className:\"prop-name\"},Z),He.createElement(\"span\",{className:\"prop-type\"},$),W&&He.createElement(\"span\",{className:\"prop-format\"},\"($\",W,\")\"),ae.size?ae.entrySeq().map((i=>{let[s,u]=i;return He.createElement(fe,{key:`${s}-${u}`,propKey:s,propVal:u,propClass:XC})})):null,M&&ie.size?ie.entrySeq().map((i=>{let[s,u]=i;return He.createElement(fe,{key:`${s}-${u}`,propKey:s,propVal:u,propClass:XC})})):null,ee?He.createElement(pe,{source:ee}):null,ce&&He.createElement(\"div\",{className:\"external-docs\"},He.createElement(be,{target:\"_blank\",href:sanitizeUrl(ce)},le||ce)),X&&X.size?He.createElement(\"span\",null,He.createElement(\"br\",null),He.createElement(\"span\",{className:XC},\"xml:\"),X.entrySeq().map((i=>{let[s,u]=i;return He.createElement(\"span\",{key:`${s}-${u}`,className:XC},He.createElement(\"br\",null),\"   \",s,\": \",String(u))})).toArray()):null,Y&&He.createElement(de,{value:Y,getComponent:s}))))}}const property=i=>{let{propKey:s,propVal:u,propClass:m}=i;return He.createElement(\"span\",{className:m},He.createElement(\"br\",null),s,\": \",String(u))};class TryItOutButton extends He.Component{render(){const{onTryoutClick:i,onCancelClick:s,onResetClick:u,enabled:m,hasUserEditedBody:v,isOAS3:_}=this.props,j=_&&v;return He.createElement(\"div\",{className:j?\"try-out btn-group\":\"try-out\"},m?He.createElement(\"button\",{className:\"btn try-out__btn cancel\",onClick:s},\"Cancel\"):He.createElement(\"button\",{className:\"btn try-out__btn\",onClick:i},\"Try it out \"),j&&He.createElement(\"button\",{className:\"btn try-out__btn reset\",onClick:u},\"Reset\"))}}_o()(TryItOutButton,\"defaultProps\",{onTryoutClick:Function.prototype,onCancelClick:Function.prototype,onResetClick:Function.prototype,enabled:!1,hasUserEditedBody:!1,isOAS3:!1});class VersionPragmaFilter extends He.PureComponent{render(){const{bypass:i,isSwagger2:s,isOAS3:u,alsoShow:m}=this.props;return i?He.createElement(\"div\",null,this.props.children):s&&u?He.createElement(\"div\",{className:\"version-pragma\"},m,He.createElement(\"div\",{className:\"version-pragma__message version-pragma__message--ambiguous\"},He.createElement(\"div\",null,He.createElement(\"h3\",null,\"Unable to render this definition\"),He.createElement(\"p\",null,He.createElement(\"code\",null,\"swagger\"),\" and \",He.createElement(\"code\",null,\"openapi\"),\" fields cannot be present in the same Swagger or OpenAPI definition. Please remove one of the fields.\"),He.createElement(\"p\",null,\"Supported version fields are \",He.createElement(\"code\",null,\"swagger: \",'\"2.0\"'),\" and those that match \",He.createElement(\"code\",null,\"openapi: 3.0.n\"),\" (for example, \",He.createElement(\"code\",null,\"openapi: 3.0.0\"),\").\")))):s||u?He.createElement(\"div\",null,this.props.children):He.createElement(\"div\",{className:\"version-pragma\"},m,He.createElement(\"div\",{className:\"version-pragma__message version-pragma__message--missing\"},He.createElement(\"div\",null,He.createElement(\"h3\",null,\"Unable to render this definition\"),He.createElement(\"p\",null,\"The provided definition does not specify a valid version field.\"),He.createElement(\"p\",null,\"Please indicate a valid Swagger or OpenAPI version field. Supported version fields are \",He.createElement(\"code\",null,\"swagger: \",'\"2.0\"'),\" and those that match \",He.createElement(\"code\",null,\"openapi: 3.0.n\"),\" (for example, \",He.createElement(\"code\",null,\"openapi: 3.0.0\"),\").\"))))}}_o()(VersionPragmaFilter,\"defaultProps\",{alsoShow:null,children:null,bypass:!1});const version_stamp=i=>{let{version:s}=i;return He.createElement(\"small\",null,He.createElement(\"pre\",{className:\"version\"},\" \",s,\" \"))},openapi_version=i=>{let{oasVersion:s}=i;return He.createElement(\"small\",{className:\"version-stamp\"},He.createElement(\"pre\",{className:\"version\"},\"OAS \",s))},deep_link=i=>{let{enabled:s,path:u,text:m}=i;return He.createElement(\"a\",{className:\"nostyle\",onClick:s?i=>i.preventDefault():null,href:s?`#/${u}`:null},He.createElement(\"span\",null,m))},svg_assets=()=>He.createElement(\"div\",null,He.createElement(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",xmlnsXlink:\"http://www.w3.org/1999/xlink\",className:\"svg-assets\"},He.createElement(\"defs\",null,He.createElement(\"symbol\",{viewBox:\"0 0 20 20\",id:\"unlocked\"},He.createElement(\"path\",{d:\"M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V6h2v-.801C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8z\"})),He.createElement(\"symbol\",{viewBox:\"0 0 20 20\",id:\"locked\"},He.createElement(\"path\",{d:\"M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8zM12 8H8V5.199C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8z\"})),He.createElement(\"symbol\",{viewBox:\"0 0 20 20\",id:\"close\"},He.createElement(\"path\",{d:\"M14.348 14.849c-.469.469-1.229.469-1.697 0L10 11.819l-2.651 3.029c-.469.469-1.229.469-1.697 0-.469-.469-.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-.469-.469-.469-1.228 0-1.697.469-.469 1.228-.469 1.697 0L10 8.183l2.651-3.031c.469-.469 1.228-.469 1.697 0 .469.469.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c.469.469.469 1.229 0 1.698z\"})),He.createElement(\"symbol\",{viewBox:\"0 0 20 20\",id:\"large-arrow\"},He.createElement(\"path\",{d:\"M13.25 10L6.109 2.58c-.268-.27-.268-.707 0-.979.268-.27.701-.27.969 0l7.83 7.908c.268.271.268.709 0 .979l-7.83 7.908c-.268.271-.701.27-.969 0-.268-.269-.268-.707 0-.979L13.25 10z\"})),He.createElement(\"symbol\",{viewBox:\"0 0 20 20\",id:\"large-arrow-down\"},He.createElement(\"path\",{d:\"M17.418 6.109c.272-.268.709-.268.979 0s.271.701 0 .969l-7.908 7.83c-.27.268-.707.268-.979 0l-7.908-7.83c-.27-.268-.27-.701 0-.969.271-.268.709-.268.979 0L10 13.25l7.418-7.141z\"})),He.createElement(\"symbol\",{viewBox:\"0 0 20 20\",id:\"large-arrow-up\"},He.createElement(\"path\",{d:\"M 17.418 14.908 C 17.69 15.176 18.127 15.176 18.397 14.908 C 18.667 14.64 18.668 14.207 18.397 13.939 L 10.489 6.109 C 10.219 5.841 9.782 5.841 9.51 6.109 L 1.602 13.939 C 1.332 14.207 1.332 14.64 1.602 14.908 C 1.873 15.176 2.311 15.176 2.581 14.908 L 10 7.767 L 17.418 14.908 Z\"})),He.createElement(\"symbol\",{viewBox:\"0 0 24 24\",id:\"jump-to\"},He.createElement(\"path\",{d:\"M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z\"})),He.createElement(\"symbol\",{viewBox:\"0 0 24 24\",id:\"expand\"},He.createElement(\"path\",{d:\"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z\"})),He.createElement(\"symbol\",{viewBox:\"0 0 15 16\",id:\"copy\"},He.createElement(\"g\",{transform:\"translate(2, -1)\"},He.createElement(\"path\",{fill:\"#ffffff\",fillRule:\"evenodd\",d:\"M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z\"}))))));var YC;function decodeEntity(i){return(YC=YC||document.createElement(\"textarea\")).innerHTML=\"&\"+i+\";\",YC.value}var QC=Object.prototype.hasOwnProperty;function index_browser_has(i,s){return!!i&&QC.call(i,s)}function index_browser_assign(i){return[].slice.call(arguments,1).forEach((function(s){if(s){if(\"object\"!=typeof s)throw new TypeError(s+\"must be object\");Object.keys(s).forEach((function(u){i[u]=s[u]}))}})),i}var ZC=/\\\\([\\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;function unescapeMd(i){return i.indexOf(\"\\\\\")<0?i:i.replace(ZC,\"$1\")}function isValidEntityCode(i){return!(i>=55296&&i<=57343)&&(!(i>=64976&&i<=65007)&&(65535!=(65535&i)&&65534!=(65535&i)&&(!(i>=0&&i<=8)&&(11!==i&&(!(i>=14&&i<=31)&&(!(i>=127&&i<=159)&&!(i>1114111)))))))}function fromCodePoint(i){if(i>65535){var s=55296+((i-=65536)>>10),u=56320+(1023&i);return String.fromCharCode(s,u)}return String.fromCharCode(i)}var tj=/&([a-z#][a-z0-9]{1,31});/gi,rj=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;function replaceEntityPattern(i,s){var u=0,m=decodeEntity(s);return s!==m?m:35===s.charCodeAt(0)&&rj.test(s)&&isValidEntityCode(u=\"x\"===s[1].toLowerCase()?parseInt(s.slice(2),16):parseInt(s.slice(1),10))?fromCodePoint(u):i}function replaceEntities(i){return i.indexOf(\"&\")<0?i:i.replace(tj,replaceEntityPattern)}var nj=/[&<>\"]/,oj=/[&<>\"]/g,sj={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\"};function replaceUnsafeChar(i){return sj[i]}function escapeHtml(i){return nj.test(i)?i.replace(oj,replaceUnsafeChar):i}var uj={};function nextToken(i,s){return++s>=i.length-2?s:\"paragraph_open\"===i[s].type&&i[s].tight&&\"inline\"===i[s+1].type&&0===i[s+1].content.length&&\"paragraph_close\"===i[s+2].type&&i[s+2].tight?nextToken(i,s+2):s}uj.blockquote_open=function(){return\"<blockquote>\\n\"},uj.blockquote_close=function(i,s){return\"</blockquote>\"+pj(i,s)},uj.code=function(i,s){return i[s].block?\"<pre><code>\"+escapeHtml(i[s].content)+\"</code></pre>\"+pj(i,s):\"<code>\"+escapeHtml(i[s].content)+\"</code>\"},uj.fence=function(i,s,u,m,v){var _,j,M=i[s],$=\"\",W=u.langPrefix;if(M.params){if(j=(_=M.params.split(/\\s+/g)).join(\" \"),index_browser_has(v.rules.fence_custom,_[0]))return v.rules.fence_custom[_[0]](i,s,u,m,v);$=' class=\"'+W+escapeHtml(replaceEntities(unescapeMd(j)))+'\"'}return\"<pre><code\"+$+\">\"+(u.highlight&&u.highlight.apply(u.highlight,[M.content].concat(_))||escapeHtml(M.content))+\"</code></pre>\"+pj(i,s)},uj.fence_custom={},uj.heading_open=function(i,s){return\"<h\"+i[s].hLevel+\">\"},uj.heading_close=function(i,s){return\"</h\"+i[s].hLevel+\">\\n\"},uj.hr=function(i,s,u){return(u.xhtmlOut?\"<hr />\":\"<hr>\")+pj(i,s)},uj.bullet_list_open=function(){return\"<ul>\\n\"},uj.bullet_list_close=function(i,s){return\"</ul>\"+pj(i,s)},uj.list_item_open=function(){return\"<li>\"},uj.list_item_close=function(){return\"</li>\\n\"},uj.ordered_list_open=function(i,s){var u=i[s];return\"<ol\"+(u.order>1?' start=\"'+u.order+'\"':\"\")+\">\\n\"},uj.ordered_list_close=function(i,s){return\"</ol>\"+pj(i,s)},uj.paragraph_open=function(i,s){return i[s].tight?\"\":\"<p>\"},uj.paragraph_close=function(i,s){var u=!(i[s].tight&&s&&\"inline\"===i[s-1].type&&!i[s-1].content);return(i[s].tight?\"\":\"</p>\")+(u?pj(i,s):\"\")},uj.link_open=function(i,s,u){var m=i[s].title?' title=\"'+escapeHtml(replaceEntities(i[s].title))+'\"':\"\",v=u.linkTarget?' target=\"'+u.linkTarget+'\"':\"\";return'<a href=\"'+escapeHtml(i[s].href)+'\"'+m+v+\">\"},uj.link_close=function(){return\"</a>\"},uj.image=function(i,s,u){var m=' src=\"'+escapeHtml(i[s].src)+'\"',v=i[s].title?' title=\"'+escapeHtml(replaceEntities(i[s].title))+'\"':\"\";return\"<img\"+m+(' alt=\"'+(i[s].alt?escapeHtml(replaceEntities(unescapeMd(i[s].alt))):\"\")+'\"')+v+(u.xhtmlOut?\" /\":\"\")+\">\"},uj.table_open=function(){return\"<table>\\n\"},uj.table_close=function(){return\"</table>\\n\"},uj.thead_open=function(){return\"<thead>\\n\"},uj.thead_close=function(){return\"</thead>\\n\"},uj.tbody_open=function(){return\"<tbody>\\n\"},uj.tbody_close=function(){return\"</tbody>\\n\"},uj.tr_open=function(){return\"<tr>\"},uj.tr_close=function(){return\"</tr>\\n\"},uj.th_open=function(i,s){var u=i[s];return\"<th\"+(u.align?' style=\"text-align:'+u.align+'\"':\"\")+\">\"},uj.th_close=function(){return\"</th>\"},uj.td_open=function(i,s){var u=i[s];return\"<td\"+(u.align?' style=\"text-align:'+u.align+'\"':\"\")+\">\"},uj.td_close=function(){return\"</td>\"},uj.strong_open=function(){return\"<strong>\"},uj.strong_close=function(){return\"</strong>\"},uj.em_open=function(){return\"<em>\"},uj.em_close=function(){return\"</em>\"},uj.del_open=function(){return\"<del>\"},uj.del_close=function(){return\"</del>\"},uj.ins_open=function(){return\"<ins>\"},uj.ins_close=function(){return\"</ins>\"},uj.mark_open=function(){return\"<mark>\"},uj.mark_close=function(){return\"</mark>\"},uj.sub=function(i,s){return\"<sub>\"+escapeHtml(i[s].content)+\"</sub>\"},uj.sup=function(i,s){return\"<sup>\"+escapeHtml(i[s].content)+\"</sup>\"},uj.hardbreak=function(i,s,u){return u.xhtmlOut?\"<br />\\n\":\"<br>\\n\"},uj.softbreak=function(i,s,u){return u.breaks?u.xhtmlOut?\"<br />\\n\":\"<br>\\n\":\"\\n\"},uj.text=function(i,s){return escapeHtml(i[s].content)},uj.htmlblock=function(i,s){return i[s].content},uj.htmltag=function(i,s){return i[s].content},uj.abbr_open=function(i,s){return'<abbr title=\"'+escapeHtml(replaceEntities(i[s].title))+'\">'},uj.abbr_close=function(){return\"</abbr>\"},uj.footnote_ref=function(i,s){var u=Number(i[s].id+1).toString(),m=\"fnref\"+u;return i[s].subId>0&&(m+=\":\"+i[s].subId),'<sup class=\"footnote-ref\"><a href=\"#fn'+u+'\" id=\"'+m+'\">['+u+\"]</a></sup>\"},uj.footnote_block_open=function(i,s,u){return(u.xhtmlOut?'<hr class=\"footnotes-sep\" />\\n':'<hr class=\"footnotes-sep\">\\n')+'<section class=\"footnotes\">\\n<ol class=\"footnotes-list\">\\n'},uj.footnote_block_close=function(){return\"</ol>\\n</section>\\n\"},uj.footnote_open=function(i,s){return'<li id=\"fn'+Number(i[s].id+1).toString()+'\"  class=\"footnote-item\">'},uj.footnote_close=function(){return\"</li>\\n\"},uj.footnote_anchor=function(i,s){var u=\"fnref\"+Number(i[s].id+1).toString();return i[s].subId>0&&(u+=\":\"+i[s].subId),' <a href=\"#'+u+'\" class=\"footnote-backref\">↩</a>'},uj.dl_open=function(){return\"<dl>\\n\"},uj.dt_open=function(){return\"<dt>\"},uj.dd_open=function(){return\"<dd>\"},uj.dl_close=function(){return\"</dl>\\n\"},uj.dt_close=function(){return\"</dt>\\n\"},uj.dd_close=function(){return\"</dd>\\n\"};var pj=uj.getBreak=function getBreak(i,s){return(s=nextToken(i,s))<i.length&&\"list_item_close\"===i[s].type?\"\":\"\\n\"};function Renderer(){this.rules=index_browser_assign({},uj),this.getBreak=uj.getBreak}function Ruler(){this.__rules__=[],this.__cache__=null}function StateInline(i,s,u,m,v){this.src=i,this.env=m,this.options=u,this.parser=s,this.tokens=v,this.pos=0,this.posMax=this.src.length,this.level=0,this.pending=\"\",this.pendingLevel=0,this.cache=[],this.isInLabel=!1,this.linkLevel=0,this.linkContent=\"\",this.labelUnmatchedScopes=0}function parseLinkLabel(i,s){var u,m,v,_=-1,j=i.posMax,M=i.pos,$=i.isInLabel;if(i.isInLabel)return-1;if(i.labelUnmatchedScopes)return i.labelUnmatchedScopes--,-1;for(i.pos=s+1,i.isInLabel=!0,u=1;i.pos<j;){if(91===(v=i.src.charCodeAt(i.pos)))u++;else if(93===v&&0===--u){m=!0;break}i.parser.skipToken(i)}return m?(_=i.pos,i.labelUnmatchedScopes=0):i.labelUnmatchedScopes=u-1,i.pos=M,i.isInLabel=$,_}function parseAbbr(i,s,u,m){var v,_,j,M,$,W;if(42!==i.charCodeAt(0))return-1;if(91!==i.charCodeAt(1))return-1;if(-1===i.indexOf(\"]:\"))return-1;if((_=parseLinkLabel(v=new StateInline(i,s,u,m,[]),1))<0||58!==i.charCodeAt(_+1))return-1;for(M=v.posMax,j=_+2;j<M&&10!==v.src.charCodeAt(j);j++);return $=i.slice(2,_),0===(W=i.slice(_+2,j).trim()).length?-1:(m.abbreviations||(m.abbreviations={}),void 0===m.abbreviations[\":\"+$]&&(m.abbreviations[\":\"+$]=W),j)}function normalizeLink(i){var s=replaceEntities(i);try{s=decodeURI(s)}catch(i){}return encodeURI(s)}function parseLinkDestination(i,s){var u,m,v,_=s,j=i.posMax;if(60===i.src.charCodeAt(s)){for(s++;s<j;){if(10===(u=i.src.charCodeAt(s)))return!1;if(62===u)return v=normalizeLink(unescapeMd(i.src.slice(_+1,s))),!!i.parser.validateLink(v)&&(i.pos=s+1,i.linkContent=v,!0);92===u&&s+1<j?s+=2:s++}return!1}for(m=0;s<j&&32!==(u=i.src.charCodeAt(s))&&!(u<32||127===u);)if(92===u&&s+1<j)s+=2;else{if(40===u&&++m>1)break;if(41===u&&--m<0)break;s++}return _!==s&&(v=unescapeMd(i.src.slice(_,s)),!!i.parser.validateLink(v)&&(i.linkContent=v,i.pos=s,!0))}function parseLinkTitle(i,s){var u,m=s,v=i.posMax,_=i.src.charCodeAt(s);if(34!==_&&39!==_&&40!==_)return!1;for(s++,40===_&&(_=41);s<v;){if((u=i.src.charCodeAt(s))===_)return i.pos=s+1,i.linkContent=unescapeMd(i.src.slice(m+1,s)),!0;92===u&&s+1<v?s+=2:s++}return!1}function normalizeReference(i){return i.trim().replace(/\\s+/g,\" \").toUpperCase()}function parseReference(i,s,u,m){var v,_,j,M,$,W,X,Y,Z;if(91!==i.charCodeAt(0))return-1;if(-1===i.indexOf(\"]:\"))return-1;if((_=parseLinkLabel(v=new StateInline(i,s,u,m,[]),0))<0||58!==i.charCodeAt(_+1))return-1;for(M=v.posMax,j=_+2;j<M&&(32===($=v.src.charCodeAt(j))||10===$);j++);if(!parseLinkDestination(v,j))return-1;for(X=v.linkContent,W=j=v.pos,j+=1;j<M&&(32===($=v.src.charCodeAt(j))||10===$);j++);for(j<M&&W!==j&&parseLinkTitle(v,j)?(Y=v.linkContent,j=v.pos):(Y=\"\",j=W);j<M&&32===v.src.charCodeAt(j);)j++;return j<M&&10!==v.src.charCodeAt(j)?-1:(Z=normalizeReference(i.slice(1,_)),void 0===m.references[Z]&&(m.references[Z]={title:Y,href:X}),j)}Renderer.prototype.renderInline=function(i,s,u){for(var m=this.rules,v=i.length,_=0,j=\"\";v--;)j+=m[i[_].type](i,_++,s,u,this);return j},Renderer.prototype.render=function(i,s,u){for(var m=this.rules,v=i.length,_=-1,j=\"\";++_<v;)\"inline\"===i[_].type?j+=this.renderInline(i[_].children,s,u):j+=m[i[_].type](i,_,s,u,this);return j},Ruler.prototype.__find__=function(i){for(var s=this.__rules__.length,u=-1;s--;)if(this.__rules__[++u].name===i)return u;return-1},Ruler.prototype.__compile__=function(){var i=this,s=[\"\"];i.__rules__.forEach((function(i){i.enabled&&i.alt.forEach((function(i){s.indexOf(i)<0&&s.push(i)}))})),i.__cache__={},s.forEach((function(s){i.__cache__[s]=[],i.__rules__.forEach((function(u){u.enabled&&(s&&u.alt.indexOf(s)<0||i.__cache__[s].push(u.fn))}))}))},Ruler.prototype.at=function(i,s,u){var m=this.__find__(i),v=u||{};if(-1===m)throw new Error(\"Parser rule not found: \"+i);this.__rules__[m].fn=s,this.__rules__[m].alt=v.alt||[],this.__cache__=null},Ruler.prototype.before=function(i,s,u,m){var v=this.__find__(i),_=m||{};if(-1===v)throw new Error(\"Parser rule not found: \"+i);this.__rules__.splice(v,0,{name:s,enabled:!0,fn:u,alt:_.alt||[]}),this.__cache__=null},Ruler.prototype.after=function(i,s,u,m){var v=this.__find__(i),_=m||{};if(-1===v)throw new Error(\"Parser rule not found: \"+i);this.__rules__.splice(v+1,0,{name:s,enabled:!0,fn:u,alt:_.alt||[]}),this.__cache__=null},Ruler.prototype.push=function(i,s,u){var m=u||{};this.__rules__.push({name:i,enabled:!0,fn:s,alt:m.alt||[]}),this.__cache__=null},Ruler.prototype.enable=function(i,s){i=Array.isArray(i)?i:[i],s&&this.__rules__.forEach((function(i){i.enabled=!1})),i.forEach((function(i){var s=this.__find__(i);if(s<0)throw new Error(\"Rules manager: invalid rule name \"+i);this.__rules__[s].enabled=!0}),this),this.__cache__=null},Ruler.prototype.disable=function(i){(i=Array.isArray(i)?i:[i]).forEach((function(i){var s=this.__find__(i);if(s<0)throw new Error(\"Rules manager: invalid rule name \"+i);this.__rules__[s].enabled=!1}),this),this.__cache__=null},Ruler.prototype.getRules=function(i){return null===this.__cache__&&this.__compile__(),this.__cache__[i]||[]},StateInline.prototype.pushPending=function(){this.tokens.push({type:\"text\",content:this.pending,level:this.pendingLevel}),this.pending=\"\"},StateInline.prototype.push=function(i){this.pending&&this.pushPending(),this.tokens.push(i),this.pendingLevel=this.level},StateInline.prototype.cacheSet=function(i,s){for(var u=this.cache.length;u<=i;u++)this.cache.push(0);this.cache[i]=s},StateInline.prototype.cacheGet=function(i){return i<this.cache.length?this.cache[i]:0};var yj=\" \\n()[]'\\\".,!?-\";function regEscape(i){return i.replace(/([-()\\[\\]{}+?*.$\\^|,:#<!\\\\])/g,\"\\\\$1\")}var vj=/\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/,_j=/\\((c|tm|r|p)\\)/gi,Ej={c:\"©\",r:\"®\",p:\"§\",tm:\"™\"};function replaceScopedAbbr(i){return i.indexOf(\"(\")<0?i:i.replace(_j,(function(i,s){return Ej[s.toLowerCase()]}))}var xj=/['\"]/,Aj=/['\"]/g,Cj=/[-\\s()\\[\\]]/;function isLetter(i,s){return!(s<0||s>=i.length)&&!Cj.test(i[s])}function replaceAt(i,s,u){return i.substr(0,s)+u+i.substr(s+1)}var jj=[[\"block\",function block(i){i.inlineMode?i.tokens.push({type:\"inline\",content:i.src.replace(/\\n/g,\" \").trim(),level:0,lines:[0,1],children:[]}):i.block.parse(i.src,i.options,i.env,i.tokens)}],[\"abbr\",function abbr(i){var s,u,m,v,_=i.tokens;if(!i.inlineMode)for(s=1,u=_.length-1;s<u;s++)if(\"paragraph_open\"===_[s-1].type&&\"inline\"===_[s].type&&\"paragraph_close\"===_[s+1].type){for(m=_[s].content;m.length&&!((v=parseAbbr(m,i.inline,i.options,i.env))<0);)m=m.slice(v).trim();_[s].content=m,m.length||(_[s-1].tight=!0,_[s+1].tight=!0)}}],[\"references\",function references(i){var s,u,m,v,_=i.tokens;if(i.env.references=i.env.references||{},!i.inlineMode)for(s=1,u=_.length-1;s<u;s++)if(\"inline\"===_[s].type&&\"paragraph_open\"===_[s-1].type&&\"paragraph_close\"===_[s+1].type){for(m=_[s].content;m.length&&!((v=parseReference(m,i.inline,i.options,i.env))<0);)m=m.slice(v).trim();_[s].content=m,m.length||(_[s-1].tight=!0,_[s+1].tight=!0)}}],[\"inline\",function inline(i){var s,u,m,v=i.tokens;for(u=0,m=v.length;u<m;u++)\"inline\"===(s=v[u]).type&&i.inline.parse(s.content,i.options,i.env,s.children)}],[\"footnote_tail\",function footnote_block(i){var s,u,m,v,_,j,M,$,W,X=0,Y=!1,Z={};if(i.env.footnotes&&(i.tokens=i.tokens.filter((function(i){return\"footnote_reference_open\"===i.type?(Y=!0,$=[],W=i.label,!1):\"footnote_reference_close\"===i.type?(Y=!1,Z[\":\"+W]=$,!1):(Y&&$.push(i),!Y)})),i.env.footnotes.list)){for(j=i.env.footnotes.list,i.tokens.push({type:\"footnote_block_open\",level:X++}),s=0,u=j.length;s<u;s++){for(i.tokens.push({type:\"footnote_open\",id:s,level:X++}),j[s].tokens?((M=[]).push({type:\"paragraph_open\",tight:!1,level:X++}),M.push({type:\"inline\",content:\"\",level:X,children:j[s].tokens}),M.push({type:\"paragraph_close\",tight:!1,level:--X})):j[s].label&&(M=Z[\":\"+j[s].label]),i.tokens=i.tokens.concat(M),_=\"paragraph_close\"===i.tokens[i.tokens.length-1].type?i.tokens.pop():null,v=j[s].count>0?j[s].count:1,m=0;m<v;m++)i.tokens.push({type:\"footnote_anchor\",id:s,subId:m,level:X});_&&i.tokens.push(_),i.tokens.push({type:\"footnote_close\",level:--X})}i.tokens.push({type:\"footnote_block_close\",level:--X})}}],[\"abbr2\",function abbr2(i){var s,u,m,v,_,j,M,$,W,X,Y,Z,ee=i.tokens;if(i.env.abbreviations)for(i.env.abbrRegExp||(Z=\"(^|[\"+yj.split(\"\").map(regEscape).join(\"\")+\"])(\"+Object.keys(i.env.abbreviations).map((function(i){return i.substr(1)})).sort((function(i,s){return s.length-i.length})).map(regEscape).join(\"|\")+\")($|[\"+yj.split(\"\").map(regEscape).join(\"\")+\"])\",i.env.abbrRegExp=new RegExp(Z,\"g\")),X=i.env.abbrRegExp,u=0,m=ee.length;u<m;u++)if(\"inline\"===ee[u].type)for(s=(v=ee[u].children).length-1;s>=0;s--)if(\"text\"===(_=v[s]).type){for($=0,j=_.content,X.lastIndex=0,W=_.level,M=[];Y=X.exec(j);)X.lastIndex>$&&M.push({type:\"text\",content:j.slice($,Y.index+Y[1].length),level:W}),M.push({type:\"abbr_open\",title:i.env.abbreviations[\":\"+Y[2]],level:W++}),M.push({type:\"text\",content:Y[2],level:W}),M.push({type:\"abbr_close\",level:--W}),$=X.lastIndex-Y[3].length;M.length&&($<j.length&&M.push({type:\"text\",content:j.slice($),level:W}),ee[u].children=v=[].concat(v.slice(0,s),M,v.slice(s+1)))}}],[\"replacements\",function index_browser_replace(i){var s,u,m,v,_;if(i.options.typographer)for(_=i.tokens.length-1;_>=0;_--)if(\"inline\"===i.tokens[_].type)for(s=(v=i.tokens[_].children).length-1;s>=0;s--)\"text\"===(u=v[s]).type&&(m=replaceScopedAbbr(m=u.content),vj.test(m)&&(m=m.replace(/\\+-/g,\"±\").replace(/\\.{2,}/g,\"…\").replace(/([?!])…/g,\"$1..\").replace(/([?!]){4,}/g,\"$1$1$1\").replace(/,{2,}/g,\",\").replace(/(^|[^-])---([^-]|$)/gm,\"$1—$2\").replace(/(^|\\s)--(\\s|$)/gm,\"$1–$2\").replace(/(^|[^-\\s])--([^-\\s]|$)/gm,\"$1–$2\")),u.content=m)}],[\"smartquotes\",function smartquotes(i){var s,u,m,v,_,j,M,$,W,X,Y,Z,ee,ie,ae,ce,le;if(i.options.typographer)for(le=[],ae=i.tokens.length-1;ae>=0;ae--)if(\"inline\"===i.tokens[ae].type)for(ce=i.tokens[ae].children,le.length=0,s=0;s<ce.length;s++)if(\"text\"===(u=ce[s]).type&&!xj.test(u.text)){for(M=ce[s].level,ee=le.length-1;ee>=0&&!(le[ee].level<=M);ee--);le.length=ee+1,_=0,j=(m=u.content).length;e:for(;_<j&&(Aj.lastIndex=_,v=Aj.exec(m));)if($=!isLetter(m,v.index-1),_=v.index+1,ie=\"'\"===v[0],(W=!isLetter(m,_))||$){if(Y=!W,Z=!$)for(ee=le.length-1;ee>=0&&(X=le[ee],!(le[ee].level<M));ee--)if(X.single===ie&&le[ee].level===M){X=le[ee],ie?(ce[X.token].content=replaceAt(ce[X.token].content,X.pos,i.options.quotes[2]),u.content=replaceAt(u.content,v.index,i.options.quotes[3])):(ce[X.token].content=replaceAt(ce[X.token].content,X.pos,i.options.quotes[0]),u.content=replaceAt(u.content,v.index,i.options.quotes[1])),le.length=ee;continue e}Y?le.push({token:s,pos:v.index,single:ie,level:M}):Z&&ie&&(u.content=replaceAt(u.content,v.index,\"’\"))}else ie&&(u.content=replaceAt(u.content,v.index,\"’\"))}}]];function Core(){this.options={},this.ruler=new Ruler;for(var i=0;i<jj.length;i++)this.ruler.push(jj[i][0],jj[i][1])}function StateBlock(i,s,u,m,v){var _,j,M,$,W,X,Y;for(this.src=i,this.parser=s,this.options=u,this.env=m,this.tokens=v,this.bMarks=[],this.eMarks=[],this.tShift=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.parentType=\"root\",this.ddIndent=-1,this.level=0,this.result=\"\",X=0,Y=!1,M=$=X=0,W=(j=this.src).length;$<W;$++){if(_=j.charCodeAt($),!Y){if(32===_){X++;continue}Y=!0}10!==_&&$!==W-1||(10!==_&&$++,this.bMarks.push(M),this.eMarks.push($),this.tShift.push(X),Y=!1,X=0,M=$+1)}this.bMarks.push(j.length),this.eMarks.push(j.length),this.tShift.push(0),this.lineMax=this.bMarks.length-1}function skipBulletListMarker(i,s){var u,m,v;return(m=i.bMarks[s]+i.tShift[s])>=(v=i.eMarks[s])||42!==(u=i.src.charCodeAt(m++))&&45!==u&&43!==u||m<v&&32!==i.src.charCodeAt(m)?-1:m}function skipOrderedListMarker(i,s){var u,m=i.bMarks[s]+i.tShift[s],v=i.eMarks[s];if(m+1>=v)return-1;if((u=i.src.charCodeAt(m++))<48||u>57)return-1;for(;;){if(m>=v)return-1;if(!((u=i.src.charCodeAt(m++))>=48&&u<=57)){if(41===u||46===u)break;return-1}}return m<v&&32!==i.src.charCodeAt(m)?-1:m}Core.prototype.process=function(i){var s,u,m;for(s=0,u=(m=this.ruler.getRules(\"\")).length;s<u;s++)m[s](i)},StateBlock.prototype.isEmpty=function isEmpty(i){return this.bMarks[i]+this.tShift[i]>=this.eMarks[i]},StateBlock.prototype.skipEmptyLines=function skipEmptyLines(i){for(var s=this.lineMax;i<s&&!(this.bMarks[i]+this.tShift[i]<this.eMarks[i]);i++);return i},StateBlock.prototype.skipSpaces=function skipSpaces(i){for(var s=this.src.length;i<s&&32===this.src.charCodeAt(i);i++);return i},StateBlock.prototype.skipChars=function skipChars(i,s){for(var u=this.src.length;i<u&&this.src.charCodeAt(i)===s;i++);return i},StateBlock.prototype.skipCharsBack=function skipCharsBack(i,s,u){if(i<=u)return i;for(;i>u;)if(s!==this.src.charCodeAt(--i))return i+1;return i},StateBlock.prototype.getLines=function getLines(i,s,u,m){var v,_,j,M,$,W=i;if(i>=s)return\"\";if(W+1===s)return _=this.bMarks[W]+Math.min(this.tShift[W],u),j=m?this.eMarks[W]+1:this.eMarks[W],this.src.slice(_,j);for(M=new Array(s-i),v=0;W<s;W++,v++)($=this.tShift[W])>u&&($=u),$<0&&($=0),_=this.bMarks[W]+$,j=W+1<s||m?this.eMarks[W]+1:this.eMarks[W],M[v]=this.src.slice(_,j);return M.join(\"\")};var Ij={};[\"article\",\"aside\",\"button\",\"blockquote\",\"body\",\"canvas\",\"caption\",\"col\",\"colgroup\",\"dd\",\"div\",\"dl\",\"dt\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"iframe\",\"li\",\"map\",\"object\",\"ol\",\"output\",\"p\",\"pre\",\"progress\",\"script\",\"section\",\"style\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"tr\",\"thead\",\"ul\",\"video\"].forEach((function(i){Ij[i]=!0}));var Dj=/^<([a-zA-Z]{1,15})[\\s\\/>]/,Bj=/^<\\/([a-zA-Z]{1,15})[\\s>]/;function index_browser_getLine(i,s){var u=i.bMarks[s]+i.blkIndent,m=i.eMarks[s];return i.src.substr(u,m-u)}function skipMarker(i,s){var u,m,v=i.bMarks[s]+i.tShift[s],_=i.eMarks[s];return v>=_||126!==(m=i.src.charCodeAt(v++))&&58!==m||v===(u=i.skipSpaces(v))||u>=_?-1:u}var Fj=[[\"code\",function code(i,s,u){var m,v;if(i.tShift[s]-i.blkIndent<4)return!1;for(v=m=s+1;m<u;)if(i.isEmpty(m))m++;else{if(!(i.tShift[m]-i.blkIndent>=4))break;v=++m}return i.line=m,i.tokens.push({type:\"code\",content:i.getLines(s,v,4+i.blkIndent,!0),block:!0,lines:[s,i.line],level:i.level}),!0}],[\"fences\",function fences(i,s,u,m){var v,_,j,M,$,W=!1,X=i.bMarks[s]+i.tShift[s],Y=i.eMarks[s];if(X+3>Y)return!1;if(126!==(v=i.src.charCodeAt(X))&&96!==v)return!1;if($=X,(_=(X=i.skipChars(X,v))-$)<3)return!1;if((j=i.src.slice(X,Y).trim()).indexOf(\"`\")>=0)return!1;if(m)return!0;for(M=s;!(++M>=u)&&!((X=$=i.bMarks[M]+i.tShift[M])<(Y=i.eMarks[M])&&i.tShift[M]<i.blkIndent);)if(i.src.charCodeAt(X)===v&&!(i.tShift[M]-i.blkIndent>=4||(X=i.skipChars(X,v))-$<_||(X=i.skipSpaces(X))<Y)){W=!0;break}return _=i.tShift[s],i.line=M+(W?1:0),i.tokens.push({type:\"fence\",params:j,content:i.getLines(s+1,M,_,!0),lines:[s,i.line],level:i.level}),!0},[\"paragraph\",\"blockquote\",\"list\"]],[\"blockquote\",function blockquote(i,s,u,m){var v,_,j,M,$,W,X,Y,Z,ee,ie,ae=i.bMarks[s]+i.tShift[s],ce=i.eMarks[s];if(ae>ce)return!1;if(62!==i.src.charCodeAt(ae++))return!1;if(i.level>=i.options.maxNesting)return!1;if(m)return!0;for(32===i.src.charCodeAt(ae)&&ae++,$=i.blkIndent,i.blkIndent=0,M=[i.bMarks[s]],i.bMarks[s]=ae,_=(ae=ae<ce?i.skipSpaces(ae):ae)>=ce,j=[i.tShift[s]],i.tShift[s]=ae-i.bMarks[s],Y=i.parser.ruler.getRules(\"blockquote\"),v=s+1;v<u&&!((ae=i.bMarks[v]+i.tShift[v])>=(ce=i.eMarks[v]));v++)if(62!==i.src.charCodeAt(ae++)){if(_)break;for(ie=!1,Z=0,ee=Y.length;Z<ee;Z++)if(Y[Z](i,v,u,!0)){ie=!0;break}if(ie)break;M.push(i.bMarks[v]),j.push(i.tShift[v]),i.tShift[v]=-1337}else 32===i.src.charCodeAt(ae)&&ae++,M.push(i.bMarks[v]),i.bMarks[v]=ae,_=(ae=ae<ce?i.skipSpaces(ae):ae)>=ce,j.push(i.tShift[v]),i.tShift[v]=ae-i.bMarks[v];for(W=i.parentType,i.parentType=\"blockquote\",i.tokens.push({type:\"blockquote_open\",lines:X=[s,0],level:i.level++}),i.parser.tokenize(i,s,v),i.tokens.push({type:\"blockquote_close\",level:--i.level}),i.parentType=W,X[1]=i.line,Z=0;Z<j.length;Z++)i.bMarks[Z+s]=M[Z],i.tShift[Z+s]=j[Z];return i.blkIndent=$,!0},[\"paragraph\",\"blockquote\",\"list\"]],[\"hr\",function hr(i,s,u,m){var v,_,j,M=i.bMarks[s],$=i.eMarks[s];if((M+=i.tShift[s])>$)return!1;if(42!==(v=i.src.charCodeAt(M++))&&45!==v&&95!==v)return!1;for(_=1;M<$;){if((j=i.src.charCodeAt(M++))!==v&&32!==j)return!1;j===v&&_++}return!(_<3)&&(m||(i.line=s+1,i.tokens.push({type:\"hr\",lines:[s,i.line],level:i.level})),!0)},[\"paragraph\",\"blockquote\",\"list\"]],[\"list\",function index_browser_list(i,s,u,m){var v,_,j,M,$,W,X,Y,Z,ee,ie,ae,ce,le,pe,de,fe,ye,be,_e,we,Se=!0;if((Y=skipOrderedListMarker(i,s))>=0)ae=!0;else{if(!((Y=skipBulletListMarker(i,s))>=0))return!1;ae=!1}if(i.level>=i.options.maxNesting)return!1;if(ie=i.src.charCodeAt(Y-1),m)return!0;for(le=i.tokens.length,ae?(X=i.bMarks[s]+i.tShift[s],ee=Number(i.src.substr(X,Y-X-1)),i.tokens.push({type:\"ordered_list_open\",order:ee,lines:de=[s,0],level:i.level++})):i.tokens.push({type:\"bullet_list_open\",lines:de=[s,0],level:i.level++}),v=s,pe=!1,ye=i.parser.ruler.getRules(\"list\");!(!(v<u)||((Z=(ce=i.skipSpaces(Y))>=i.eMarks[v]?1:ce-Y)>4&&(Z=1),Z<1&&(Z=1),_=Y-i.bMarks[v]+Z,i.tokens.push({type:\"list_item_open\",lines:fe=[s,0],level:i.level++}),M=i.blkIndent,$=i.tight,j=i.tShift[s],W=i.parentType,i.tShift[s]=ce-i.bMarks[s],i.blkIndent=_,i.tight=!0,i.parentType=\"list\",i.parser.tokenize(i,s,u,!0),i.tight&&!pe||(Se=!1),pe=i.line-s>1&&i.isEmpty(i.line-1),i.blkIndent=M,i.tShift[s]=j,i.tight=$,i.parentType=W,i.tokens.push({type:\"list_item_close\",level:--i.level}),v=s=i.line,fe[1]=v,ce=i.bMarks[s],v>=u)||i.isEmpty(v)||i.tShift[v]<i.blkIndent);){for(we=!1,be=0,_e=ye.length;be<_e;be++)if(ye[be](i,v,u,!0)){we=!0;break}if(we)break;if(ae){if((Y=skipOrderedListMarker(i,v))<0)break}else if((Y=skipBulletListMarker(i,v))<0)break;if(ie!==i.src.charCodeAt(Y-1))break}return i.tokens.push({type:ae?\"ordered_list_close\":\"bullet_list_close\",level:--i.level}),de[1]=v,i.line=v,Se&&function markTightParagraphs(i,s){var u,m,v=i.level+2;for(u=s+2,m=i.tokens.length-2;u<m;u++)i.tokens[u].level===v&&\"paragraph_open\"===i.tokens[u].type&&(i.tokens[u+2].tight=!0,i.tokens[u].tight=!0,u+=2)}(i,le),!0},[\"paragraph\",\"blockquote\"]],[\"footnote\",function footnote(i,s,u,m){var v,_,j,M,$,W=i.bMarks[s]+i.tShift[s],X=i.eMarks[s];if(W+4>X)return!1;if(91!==i.src.charCodeAt(W))return!1;if(94!==i.src.charCodeAt(W+1))return!1;if(i.level>=i.options.maxNesting)return!1;for(M=W+2;M<X;M++){if(32===i.src.charCodeAt(M))return!1;if(93===i.src.charCodeAt(M))break}return M!==W+2&&(!(M+1>=X||58!==i.src.charCodeAt(++M))&&(m||(M++,i.env.footnotes||(i.env.footnotes={}),i.env.footnotes.refs||(i.env.footnotes.refs={}),$=i.src.slice(W+2,M-2),i.env.footnotes.refs[\":\"+$]=-1,i.tokens.push({type:\"footnote_reference_open\",label:$,level:i.level++}),v=i.bMarks[s],_=i.tShift[s],j=i.parentType,i.tShift[s]=i.skipSpaces(M)-M,i.bMarks[s]=M,i.blkIndent+=4,i.parentType=\"footnote\",i.tShift[s]<i.blkIndent&&(i.tShift[s]+=i.blkIndent,i.bMarks[s]-=i.blkIndent),i.parser.tokenize(i,s,u,!0),i.parentType=j,i.blkIndent-=4,i.tShift[s]=_,i.bMarks[s]=v,i.tokens.push({type:\"footnote_reference_close\",level:--i.level})),!0))},[\"paragraph\"]],[\"heading\",function heading(i,s,u,m){var v,_,j,M=i.bMarks[s]+i.tShift[s],$=i.eMarks[s];if(M>=$)return!1;if(35!==(v=i.src.charCodeAt(M))||M>=$)return!1;for(_=1,v=i.src.charCodeAt(++M);35===v&&M<$&&_<=6;)_++,v=i.src.charCodeAt(++M);return!(_>6||M<$&&32!==v)&&(m||($=i.skipCharsBack($,32,M),(j=i.skipCharsBack($,35,M))>M&&32===i.src.charCodeAt(j-1)&&($=j),i.line=s+1,i.tokens.push({type:\"heading_open\",hLevel:_,lines:[s,i.line],level:i.level}),M<$&&i.tokens.push({type:\"inline\",content:i.src.slice(M,$).trim(),level:i.level+1,lines:[s,i.line],children:[]}),i.tokens.push({type:\"heading_close\",hLevel:_,level:i.level})),!0)},[\"paragraph\",\"blockquote\"]],[\"lheading\",function lheading(i,s,u){var m,v,_,j=s+1;return!(j>=u)&&(!(i.tShift[j]<i.blkIndent)&&(!(i.tShift[j]-i.blkIndent>3)&&(!((v=i.bMarks[j]+i.tShift[j])>=(_=i.eMarks[j]))&&((45===(m=i.src.charCodeAt(v))||61===m)&&(v=i.skipChars(v,m),!((v=i.skipSpaces(v))<_)&&(v=i.bMarks[s]+i.tShift[s],i.line=j+1,i.tokens.push({type:\"heading_open\",hLevel:61===m?1:2,lines:[s,i.line],level:i.level}),i.tokens.push({type:\"inline\",content:i.src.slice(v,i.eMarks[s]).trim(),level:i.level+1,lines:[s,i.line-1],children:[]}),i.tokens.push({type:\"heading_close\",hLevel:61===m?1:2,level:i.level}),!0))))))}],[\"htmlblock\",function htmlblock(i,s,u,m){var v,_,j,M=i.bMarks[s],$=i.eMarks[s],W=i.tShift[s];if(M+=W,!i.options.html)return!1;if(W>3||M+2>=$)return!1;if(60!==i.src.charCodeAt(M))return!1;if(33===(v=i.src.charCodeAt(M+1))||63===v){if(m)return!0}else{if(47!==v&&!function isLetter$1(i){var s=32|i;return s>=97&&s<=122}(v))return!1;if(47===v){if(!(_=i.src.slice(M,$).match(Bj)))return!1}else if(!(_=i.src.slice(M,$).match(Dj)))return!1;if(!0!==Ij[_[1].toLowerCase()])return!1;if(m)return!0}for(j=s+1;j<i.lineMax&&!i.isEmpty(j);)j++;return i.line=j,i.tokens.push({type:\"htmlblock\",level:i.level,lines:[s,i.line],content:i.getLines(s,j,0,!0)}),!0},[\"paragraph\",\"blockquote\"]],[\"table\",function table(i,s,u,m){var v,_,j,M,$,W,X,Y,Z,ee,ie;if(s+2>u)return!1;if($=s+1,i.tShift[$]<i.blkIndent)return!1;if((j=i.bMarks[$]+i.tShift[$])>=i.eMarks[$])return!1;if(124!==(v=i.src.charCodeAt(j))&&45!==v&&58!==v)return!1;if(_=index_browser_getLine(i,s+1),!/^[-:| ]+$/.test(_))return!1;if((W=_.split(\"|\"))<=2)return!1;for(Y=[],M=0;M<W.length;M++){if(!(Z=W[M].trim())){if(0===M||M===W.length-1)continue;return!1}if(!/^:?-+:?$/.test(Z))return!1;58===Z.charCodeAt(Z.length-1)?Y.push(58===Z.charCodeAt(0)?\"center\":\"right\"):58===Z.charCodeAt(0)?Y.push(\"left\"):Y.push(\"\")}if(-1===(_=index_browser_getLine(i,s).trim()).indexOf(\"|\"))return!1;if(W=_.replace(/^\\||\\|$/g,\"\").split(\"|\"),Y.length!==W.length)return!1;if(m)return!0;for(i.tokens.push({type:\"table_open\",lines:ee=[s,0],level:i.level++}),i.tokens.push({type:\"thead_open\",lines:[s,s+1],level:i.level++}),i.tokens.push({type:\"tr_open\",lines:[s,s+1],level:i.level++}),M=0;M<W.length;M++)i.tokens.push({type:\"th_open\",align:Y[M],lines:[s,s+1],level:i.level++}),i.tokens.push({type:\"inline\",content:W[M].trim(),lines:[s,s+1],level:i.level,children:[]}),i.tokens.push({type:\"th_close\",level:--i.level});for(i.tokens.push({type:\"tr_close\",level:--i.level}),i.tokens.push({type:\"thead_close\",level:--i.level}),i.tokens.push({type:\"tbody_open\",lines:ie=[s+2,0],level:i.level++}),$=s+2;$<u&&!(i.tShift[$]<i.blkIndent)&&-1!==(_=index_browser_getLine(i,$).trim()).indexOf(\"|\");$++){for(W=_.replace(/^\\||\\|$/g,\"\").split(\"|\"),i.tokens.push({type:\"tr_open\",level:i.level++}),M=0;M<W.length;M++)i.tokens.push({type:\"td_open\",align:Y[M],level:i.level++}),X=W[M].substring(124===W[M].charCodeAt(0)?1:0,124===W[M].charCodeAt(W[M].length-1)?W[M].length-1:W[M].length).trim(),i.tokens.push({type:\"inline\",content:X,level:i.level,children:[]}),i.tokens.push({type:\"td_close\",level:--i.level});i.tokens.push({type:\"tr_close\",level:--i.level})}return i.tokens.push({type:\"tbody_close\",level:--i.level}),i.tokens.push({type:\"table_close\",level:--i.level}),ee[1]=ie[1]=$,i.line=$,!0},[\"paragraph\"]],[\"deflist\",function deflist(i,s,u,m){var v,_,j,M,$,W,X,Y,Z,ee,ie,ae,ce,le;if(m)return!(i.ddIndent<0)&&skipMarker(i,s)>=0;if(X=s+1,i.isEmpty(X)&&++X>u)return!1;if(i.tShift[X]<i.blkIndent)return!1;if((v=skipMarker(i,X))<0)return!1;if(i.level>=i.options.maxNesting)return!1;W=i.tokens.length,i.tokens.push({type:\"dl_open\",lines:$=[s,0],level:i.level++}),j=s,_=X;e:for(;;){for(le=!0,ce=!1,i.tokens.push({type:\"dt_open\",lines:[j,j],level:i.level++}),i.tokens.push({type:\"inline\",content:i.getLines(j,j+1,i.blkIndent,!1).trim(),level:i.level+1,lines:[j,j],children:[]}),i.tokens.push({type:\"dt_close\",level:--i.level});;){if(i.tokens.push({type:\"dd_open\",lines:M=[X,0],level:i.level++}),ae=i.tight,Z=i.ddIndent,Y=i.blkIndent,ie=i.tShift[_],ee=i.parentType,i.blkIndent=i.ddIndent=i.tShift[_]+2,i.tShift[_]=v-i.bMarks[_],i.tight=!0,i.parentType=\"deflist\",i.parser.tokenize(i,_,u,!0),i.tight&&!ce||(le=!1),ce=i.line-_>1&&i.isEmpty(i.line-1),i.tShift[_]=ie,i.tight=ae,i.parentType=ee,i.blkIndent=Y,i.ddIndent=Z,i.tokens.push({type:\"dd_close\",level:--i.level}),M[1]=X=i.line,X>=u)break e;if(i.tShift[X]<i.blkIndent)break e;if((v=skipMarker(i,X))<0)break;_=X}if(X>=u)break;if(j=X,i.isEmpty(j))break;if(i.tShift[j]<i.blkIndent)break;if((_=j+1)>=u)break;if(i.isEmpty(_)&&_++,_>=u)break;if(i.tShift[_]<i.blkIndent)break;if((v=skipMarker(i,_))<0)break}return i.tokens.push({type:\"dl_close\",level:--i.level}),$[1]=X,i.line=X,le&&function markTightParagraphs$1(i,s){var u,m,v=i.level+2;for(u=s+2,m=i.tokens.length-2;u<m;u++)i.tokens[u].level===v&&\"paragraph_open\"===i.tokens[u].type&&(i.tokens[u+2].tight=!0,i.tokens[u].tight=!0,u+=2)}(i,W),!0},[\"paragraph\"]],[\"paragraph\",function paragraph(i,s){var u,m,v,_,j,M,$=s+1;if($<(u=i.lineMax)&&!i.isEmpty($))for(M=i.parser.ruler.getRules(\"paragraph\");$<u&&!i.isEmpty($);$++)if(!(i.tShift[$]-i.blkIndent>3)){for(v=!1,_=0,j=M.length;_<j;_++)if(M[_](i,$,u,!0)){v=!0;break}if(v)break}return m=i.getLines(s,$,i.blkIndent,!1).trim(),i.line=$,m.length&&(i.tokens.push({type:\"paragraph_open\",tight:!1,lines:[s,i.line],level:i.level}),i.tokens.push({type:\"inline\",content:m,level:i.level+1,lines:[s,i.line],children:[]}),i.tokens.push({type:\"paragraph_close\",tight:!1,level:i.level})),!0}]];function ParserBlock(){this.ruler=new Ruler;for(var i=0;i<Fj.length;i++)this.ruler.push(Fj[i][0],Fj[i][1],{alt:(Fj[i][2]||[]).slice()})}ParserBlock.prototype.tokenize=function(i,s,u){for(var m,v=this.ruler.getRules(\"\"),_=v.length,j=s,M=!1;j<u&&(i.line=j=i.skipEmptyLines(j),!(j>=u))&&!(i.tShift[j]<i.blkIndent);){for(m=0;m<_&&!v[m](i,j,u,!1);m++);if(i.tight=!M,i.isEmpty(i.line-1)&&(M=!0),(j=i.line)<u&&i.isEmpty(j)){if(M=!0,++j<u&&\"list\"===i.parentType&&i.isEmpty(j))break;i.line=j}}};var qj=/[\\n\\t]/g,$j=/\\r[\\n\\u0085]|[\\u2424\\u2028\\u0085]/g,zj=/\\u00a0/g;function isTerminatorChar(i){switch(i){case 10:case 92:case 96:case 42:case 95:case 94:case 91:case 93:case 33:case 38:case 60:case 62:case 123:case 125:case 36:case 37:case 64:case 126:case 43:case 61:case 58:return!0;default:return!1}}ParserBlock.prototype.parse=function(i,s,u,m){var v,_=0,j=0;if(!i)return[];(i=(i=i.replace(zj,\" \")).replace($j,\"\\n\")).indexOf(\"\\t\")>=0&&(i=i.replace(qj,(function(s,u){var m;return 10===i.charCodeAt(u)?(_=u+1,j=0,s):(m=\"    \".slice((u-_-j)%4),j=u-_+1,m)}))),v=new StateBlock(i,this,s,u,m),this.tokenize(v,v.line,v.lineMax)};for(var Hj=[],Jj=0;Jj<256;Jj++)Hj.push(0);function isAlphaNum(i){return i>=48&&i<=57||i>=65&&i<=90||i>=97&&i<=122}function scanDelims(i,s){var u,m,v,_=s,j=!0,M=!0,$=i.posMax,W=i.src.charCodeAt(s);for(u=s>0?i.src.charCodeAt(s-1):-1;_<$&&i.src.charCodeAt(_)===W;)_++;return _>=$&&(j=!1),(v=_-s)>=4?j=M=!1:(32!==(m=_<$?i.src.charCodeAt(_):-1)&&10!==m||(j=!1),32!==u&&10!==u||(M=!1),95===W&&(isAlphaNum(u)&&(j=!1),isAlphaNum(m)&&(M=!1))),{can_open:j,can_close:M,delims:v}}\"\\\\!\\\"#$%&'()*+,./:;<=>?@[]^_`{|}~-\".split(\"\").forEach((function(i){Hj[i.charCodeAt(0)]=1}));var Gj=/\\\\([ \\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;var eP=/\\\\([ \\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;var tP=[\"coap\",\"doi\",\"javascript\",\"aaa\",\"aaas\",\"about\",\"acap\",\"cap\",\"cid\",\"crid\",\"data\",\"dav\",\"dict\",\"dns\",\"file\",\"ftp\",\"geo\",\"go\",\"gopher\",\"h323\",\"http\",\"https\",\"iax\",\"icap\",\"im\",\"imap\",\"info\",\"ipp\",\"iris\",\"iris.beep\",\"iris.xpc\",\"iris.xpcs\",\"iris.lwz\",\"ldap\",\"mailto\",\"mid\",\"msrp\",\"msrps\",\"mtqp\",\"mupdate\",\"news\",\"nfs\",\"ni\",\"nih\",\"nntp\",\"opaquelocktoken\",\"pop\",\"pres\",\"rtsp\",\"service\",\"session\",\"shttp\",\"sieve\",\"sip\",\"sips\",\"sms\",\"snmp\",\"soap.beep\",\"soap.beeps\",\"tag\",\"tel\",\"telnet\",\"tftp\",\"thismessage\",\"tn3270\",\"tip\",\"tv\",\"urn\",\"vemmi\",\"ws\",\"wss\",\"xcon\",\"xcon-userid\",\"xmlrpc.beep\",\"xmlrpc.beeps\",\"xmpp\",\"z39.50r\",\"z39.50s\",\"adiumxtra\",\"afp\",\"afs\",\"aim\",\"apt\",\"attachment\",\"aw\",\"beshare\",\"bitcoin\",\"bolo\",\"callto\",\"chrome\",\"chrome-extension\",\"com-eventbrite-attendee\",\"content\",\"cvs\",\"dlna-playsingle\",\"dlna-playcontainer\",\"dtn\",\"dvb\",\"ed2k\",\"facetime\",\"feed\",\"finger\",\"fish\",\"gg\",\"git\",\"gizmoproject\",\"gtalk\",\"hcp\",\"icon\",\"ipn\",\"irc\",\"irc6\",\"ircs\",\"itms\",\"jar\",\"jms\",\"keyparc\",\"lastfm\",\"ldaps\",\"magnet\",\"maps\",\"market\",\"message\",\"mms\",\"ms-help\",\"msnim\",\"mumble\",\"mvn\",\"notes\",\"oid\",\"palm\",\"paparazzi\",\"platform\",\"proxy\",\"psyc\",\"query\",\"res\",\"resource\",\"rmi\",\"rsync\",\"rtmp\",\"secondlife\",\"sftp\",\"sgn\",\"skype\",\"smb\",\"soldat\",\"spotify\",\"ssh\",\"steam\",\"svn\",\"teamspeak\",\"things\",\"udp\",\"unreal\",\"ut2004\",\"ventrilo\",\"view-source\",\"webcal\",\"wtai\",\"wyciwyg\",\"xfire\",\"xri\",\"ymsgr\"],rP=/^<([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,nP=/^<([a-zA-Z.\\-]{1,25}):([^<>\\x00-\\x20]*)>/;function replace$1(i,s){return i=i.source,s=s||\"\",function self(u,m){return u?(m=m.source||m,i=i.replace(u,m),self):new RegExp(i,s)}}var oP=replace$1(/(?:unquoted|single_quoted|double_quoted)/)(\"unquoted\",/[^\"'=<>`\\x00-\\x20]+/)(\"single_quoted\",/'[^']*'/)(\"double_quoted\",/\"[^\"]*\"/)(),iP=replace$1(/(?:\\s+attr_name(?:\\s*=\\s*attr_value)?)/)(\"attr_name\",/[a-zA-Z_:][a-zA-Z0-9:._-]*/)(\"attr_value\",oP)(),aP=replace$1(/<[A-Za-z][A-Za-z0-9]*attribute*\\s*\\/?>/)(\"attribute\",iP)(),sP=replace$1(/^(?:open_tag|close_tag|comment|processing|declaration|cdata)/)(\"open_tag\",aP)(\"close_tag\",/<\\/[A-Za-z][A-Za-z0-9]*\\s*>/)(\"comment\",/<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->/)(\"processing\",/<[?].*?[?]>/)(\"declaration\",/<![A-Z]+\\s+[^>]*>/)(\"cdata\",/<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/)();var cP=/^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i,lP=/^&([a-z][a-z0-9]{1,31});/i;var uP=[[\"text\",function index_browser_text(i,s){for(var u=i.pos;u<i.posMax&&!isTerminatorChar(i.src.charCodeAt(u));)u++;return u!==i.pos&&(s||(i.pending+=i.src.slice(i.pos,u)),i.pos=u,!0)}],[\"newline\",function newline(i,s){var u,m,v=i.pos;if(10!==i.src.charCodeAt(v))return!1;if(u=i.pending.length-1,m=i.posMax,!s)if(u>=0&&32===i.pending.charCodeAt(u))if(u>=1&&32===i.pending.charCodeAt(u-1)){for(var _=u-2;_>=0;_--)if(32!==i.pending.charCodeAt(_)){i.pending=i.pending.substring(0,_+1);break}i.push({type:\"hardbreak\",level:i.level})}else i.pending=i.pending.slice(0,-1),i.push({type:\"softbreak\",level:i.level});else i.push({type:\"softbreak\",level:i.level});for(v++;v<m&&32===i.src.charCodeAt(v);)v++;return i.pos=v,!0}],[\"escape\",function index_browser_escape(i,s){var u,m=i.pos,v=i.posMax;if(92!==i.src.charCodeAt(m))return!1;if(++m<v){if((u=i.src.charCodeAt(m))<256&&0!==Hj[u])return s||(i.pending+=i.src[m]),i.pos+=2,!0;if(10===u){for(s||i.push({type:\"hardbreak\",level:i.level}),m++;m<v&&32===i.src.charCodeAt(m);)m++;return i.pos=m,!0}}return s||(i.pending+=\"\\\\\"),i.pos++,!0}],[\"backticks\",function backticks(i,s){var u,m,v,_,j,M=i.pos;if(96!==i.src.charCodeAt(M))return!1;for(u=M,M++,m=i.posMax;M<m&&96===i.src.charCodeAt(M);)M++;for(v=i.src.slice(u,M),_=j=M;-1!==(_=i.src.indexOf(\"`\",j));){for(j=_+1;j<m&&96===i.src.charCodeAt(j);)j++;if(j-_===v.length)return s||i.push({type:\"code\",content:i.src.slice(M,_).replace(/[ \\n]+/g,\" \").trim(),block:!1,level:i.level}),i.pos=j,!0}return s||(i.pending+=v),i.pos+=v.length,!0}],[\"del\",function del(i,s){var u,m,v,_,j,M=i.posMax,$=i.pos;if(126!==i.src.charCodeAt($))return!1;if(s)return!1;if($+4>=M)return!1;if(126!==i.src.charCodeAt($+1))return!1;if(i.level>=i.options.maxNesting)return!1;if(_=$>0?i.src.charCodeAt($-1):-1,j=i.src.charCodeAt($+2),126===_)return!1;if(126===j)return!1;if(32===j||10===j)return!1;for(m=$+2;m<M&&126===i.src.charCodeAt(m);)m++;if(m>$+3)return i.pos+=m-$,s||(i.pending+=i.src.slice($,m)),!0;for(i.pos=$+2,v=1;i.pos+1<M;){if(126===i.src.charCodeAt(i.pos)&&126===i.src.charCodeAt(i.pos+1)&&(_=i.src.charCodeAt(i.pos-1),126!==(j=i.pos+2<M?i.src.charCodeAt(i.pos+2):-1)&&126!==_&&(32!==_&&10!==_?v--:32!==j&&10!==j&&v++,v<=0))){u=!0;break}i.parser.skipToken(i)}return u?(i.posMax=i.pos,i.pos=$+2,s||(i.push({type:\"del_open\",level:i.level++}),i.parser.tokenize(i),i.push({type:\"del_close\",level:--i.level})),i.pos=i.posMax+2,i.posMax=M,!0):(i.pos=$,!1)}],[\"ins\",function ins(i,s){var u,m,v,_,j,M=i.posMax,$=i.pos;if(43!==i.src.charCodeAt($))return!1;if(s)return!1;if($+4>=M)return!1;if(43!==i.src.charCodeAt($+1))return!1;if(i.level>=i.options.maxNesting)return!1;if(_=$>0?i.src.charCodeAt($-1):-1,j=i.src.charCodeAt($+2),43===_)return!1;if(43===j)return!1;if(32===j||10===j)return!1;for(m=$+2;m<M&&43===i.src.charCodeAt(m);)m++;if(m!==$+2)return i.pos+=m-$,s||(i.pending+=i.src.slice($,m)),!0;for(i.pos=$+2,v=1;i.pos+1<M;){if(43===i.src.charCodeAt(i.pos)&&43===i.src.charCodeAt(i.pos+1)&&(_=i.src.charCodeAt(i.pos-1),43!==(j=i.pos+2<M?i.src.charCodeAt(i.pos+2):-1)&&43!==_&&(32!==_&&10!==_?v--:32!==j&&10!==j&&v++,v<=0))){u=!0;break}i.parser.skipToken(i)}return u?(i.posMax=i.pos,i.pos=$+2,s||(i.push({type:\"ins_open\",level:i.level++}),i.parser.tokenize(i),i.push({type:\"ins_close\",level:--i.level})),i.pos=i.posMax+2,i.posMax=M,!0):(i.pos=$,!1)}],[\"mark\",function mark(i,s){var u,m,v,_,j,M=i.posMax,$=i.pos;if(61!==i.src.charCodeAt($))return!1;if(s)return!1;if($+4>=M)return!1;if(61!==i.src.charCodeAt($+1))return!1;if(i.level>=i.options.maxNesting)return!1;if(_=$>0?i.src.charCodeAt($-1):-1,j=i.src.charCodeAt($+2),61===_)return!1;if(61===j)return!1;if(32===j||10===j)return!1;for(m=$+2;m<M&&61===i.src.charCodeAt(m);)m++;if(m!==$+2)return i.pos+=m-$,s||(i.pending+=i.src.slice($,m)),!0;for(i.pos=$+2,v=1;i.pos+1<M;){if(61===i.src.charCodeAt(i.pos)&&61===i.src.charCodeAt(i.pos+1)&&(_=i.src.charCodeAt(i.pos-1),61!==(j=i.pos+2<M?i.src.charCodeAt(i.pos+2):-1)&&61!==_&&(32!==_&&10!==_?v--:32!==j&&10!==j&&v++,v<=0))){u=!0;break}i.parser.skipToken(i)}return u?(i.posMax=i.pos,i.pos=$+2,s||(i.push({type:\"mark_open\",level:i.level++}),i.parser.tokenize(i),i.push({type:\"mark_close\",level:--i.level})),i.pos=i.posMax+2,i.posMax=M,!0):(i.pos=$,!1)}],[\"emphasis\",function emphasis(i,s){var u,m,v,_,j,M,$,W=i.posMax,X=i.pos,Y=i.src.charCodeAt(X);if(95!==Y&&42!==Y)return!1;if(s)return!1;if(u=($=scanDelims(i,X)).delims,!$.can_open)return i.pos+=u,s||(i.pending+=i.src.slice(X,i.pos)),!0;if(i.level>=i.options.maxNesting)return!1;for(i.pos=X+u,M=[u];i.pos<W;)if(i.src.charCodeAt(i.pos)!==Y)i.parser.skipToken(i);else{if(m=($=scanDelims(i,i.pos)).delims,$.can_close){for(_=M.pop(),j=m;_!==j;){if(j<_){M.push(_-j);break}if(j-=_,0===M.length)break;i.pos+=_,_=M.pop()}if(0===M.length){u=_,v=!0;break}i.pos+=m;continue}$.can_open&&M.push(m),i.pos+=m}return v?(i.posMax=i.pos,i.pos=X+u,s||(2!==u&&3!==u||i.push({type:\"strong_open\",level:i.level++}),1!==u&&3!==u||i.push({type:\"em_open\",level:i.level++}),i.parser.tokenize(i),1!==u&&3!==u||i.push({type:\"em_close\",level:--i.level}),2!==u&&3!==u||i.push({type:\"strong_close\",level:--i.level})),i.pos=i.posMax+u,i.posMax=W,!0):(i.pos=X,!1)}],[\"sub\",function sub(i,s){var u,m,v=i.posMax,_=i.pos;if(126!==i.src.charCodeAt(_))return!1;if(s)return!1;if(_+2>=v)return!1;if(i.level>=i.options.maxNesting)return!1;for(i.pos=_+1;i.pos<v;){if(126===i.src.charCodeAt(i.pos)){u=!0;break}i.parser.skipToken(i)}return u&&_+1!==i.pos?(m=i.src.slice(_+1,i.pos)).match(/(^|[^\\\\])(\\\\\\\\)*\\s/)?(i.pos=_,!1):(i.posMax=i.pos,i.pos=_+1,s||i.push({type:\"sub\",level:i.level,content:m.replace(Gj,\"$1\")}),i.pos=i.posMax+1,i.posMax=v,!0):(i.pos=_,!1)}],[\"sup\",function sup(i,s){var u,m,v=i.posMax,_=i.pos;if(94!==i.src.charCodeAt(_))return!1;if(s)return!1;if(_+2>=v)return!1;if(i.level>=i.options.maxNesting)return!1;for(i.pos=_+1;i.pos<v;){if(94===i.src.charCodeAt(i.pos)){u=!0;break}i.parser.skipToken(i)}return u&&_+1!==i.pos?(m=i.src.slice(_+1,i.pos)).match(/(^|[^\\\\])(\\\\\\\\)*\\s/)?(i.pos=_,!1):(i.posMax=i.pos,i.pos=_+1,s||i.push({type:\"sup\",level:i.level,content:m.replace(eP,\"$1\")}),i.pos=i.posMax+1,i.posMax=v,!0):(i.pos=_,!1)}],[\"links\",function links(i,s){var u,m,v,_,j,M,$,W,X=!1,Y=i.pos,Z=i.posMax,ee=i.pos,ie=i.src.charCodeAt(ee);if(33===ie&&(X=!0,ie=i.src.charCodeAt(++ee)),91!==ie)return!1;if(i.level>=i.options.maxNesting)return!1;if(u=ee+1,(m=parseLinkLabel(i,ee))<0)return!1;if((M=m+1)<Z&&40===i.src.charCodeAt(M)){for(M++;M<Z&&(32===(W=i.src.charCodeAt(M))||10===W);M++);if(M>=Z)return!1;for(ee=M,parseLinkDestination(i,M)?(_=i.linkContent,M=i.pos):_=\"\",ee=M;M<Z&&(32===(W=i.src.charCodeAt(M))||10===W);M++);if(M<Z&&ee!==M&&parseLinkTitle(i,M))for(j=i.linkContent,M=i.pos;M<Z&&(32===(W=i.src.charCodeAt(M))||10===W);M++);else j=\"\";if(M>=Z||41!==i.src.charCodeAt(M))return i.pos=Y,!1;M++}else{if(i.linkLevel>0)return!1;for(;M<Z&&(32===(W=i.src.charCodeAt(M))||10===W);M++);if(M<Z&&91===i.src.charCodeAt(M)&&(ee=M+1,(M=parseLinkLabel(i,M))>=0?v=i.src.slice(ee,M++):M=ee-1),v||(void 0===v&&(M=m+1),v=i.src.slice(u,m)),!($=i.env.references[normalizeReference(v)]))return i.pos=Y,!1;_=$.href,j=$.title}return s||(i.pos=u,i.posMax=m,X?i.push({type:\"image\",src:_,title:j,alt:i.src.substr(u,m-u),level:i.level}):(i.push({type:\"link_open\",href:_,title:j,level:i.level++}),i.linkLevel++,i.parser.tokenize(i),i.linkLevel--,i.push({type:\"link_close\",level:--i.level}))),i.pos=M,i.posMax=Z,!0}],[\"footnote_inline\",function footnote_inline(i,s){var u,m,v,_,j=i.posMax,M=i.pos;return!(M+2>=j)&&(94===i.src.charCodeAt(M)&&(91===i.src.charCodeAt(M+1)&&(!(i.level>=i.options.maxNesting)&&(u=M+2,!((m=parseLinkLabel(i,M+1))<0)&&(s||(i.env.footnotes||(i.env.footnotes={}),i.env.footnotes.list||(i.env.footnotes.list=[]),v=i.env.footnotes.list.length,i.pos=u,i.posMax=m,i.push({type:\"footnote_ref\",id:v,level:i.level}),i.linkLevel++,_=i.tokens.length,i.parser.tokenize(i),i.env.footnotes.list[v]={tokens:i.tokens.splice(_)},i.linkLevel--),i.pos=m+1,i.posMax=j,!0)))))}],[\"footnote_ref\",function footnote_ref(i,s){var u,m,v,_,j=i.posMax,M=i.pos;if(M+3>j)return!1;if(!i.env.footnotes||!i.env.footnotes.refs)return!1;if(91!==i.src.charCodeAt(M))return!1;if(94!==i.src.charCodeAt(M+1))return!1;if(i.level>=i.options.maxNesting)return!1;for(m=M+2;m<j;m++){if(32===i.src.charCodeAt(m))return!1;if(10===i.src.charCodeAt(m))return!1;if(93===i.src.charCodeAt(m))break}return m!==M+2&&(!(m>=j)&&(m++,u=i.src.slice(M+2,m-1),void 0!==i.env.footnotes.refs[\":\"+u]&&(s||(i.env.footnotes.list||(i.env.footnotes.list=[]),i.env.footnotes.refs[\":\"+u]<0?(v=i.env.footnotes.list.length,i.env.footnotes.list[v]={label:u,count:0},i.env.footnotes.refs[\":\"+u]=v):v=i.env.footnotes.refs[\":\"+u],_=i.env.footnotes.list[v].count,i.env.footnotes.list[v].count++,i.push({type:\"footnote_ref\",id:v,subId:_,level:i.level})),i.pos=m,i.posMax=j,!0)))}],[\"autolink\",function autolink(i,s){var u,m,v,_,j,M=i.pos;return 60===i.src.charCodeAt(M)&&(!((u=i.src.slice(M)).indexOf(\">\")<0)&&((m=u.match(nP))?!(tP.indexOf(m[1].toLowerCase())<0)&&(j=normalizeLink(_=m[0].slice(1,-1)),!!i.parser.validateLink(_)&&(s||(i.push({type:\"link_open\",href:j,level:i.level}),i.push({type:\"text\",content:_,level:i.level+1}),i.push({type:\"link_close\",level:i.level})),i.pos+=m[0].length,!0)):!!(v=u.match(rP))&&(j=normalizeLink(\"mailto:\"+(_=v[0].slice(1,-1))),!!i.parser.validateLink(j)&&(s||(i.push({type:\"link_open\",href:j,level:i.level}),i.push({type:\"text\",content:_,level:i.level+1}),i.push({type:\"link_close\",level:i.level})),i.pos+=v[0].length,!0))))}],[\"htmltag\",function htmltag(i,s){var u,m,v,_=i.pos;return!!i.options.html&&(v=i.posMax,!(60!==i.src.charCodeAt(_)||_+2>=v)&&(!(33!==(u=i.src.charCodeAt(_+1))&&63!==u&&47!==u&&!function isLetter$2(i){var s=32|i;return s>=97&&s<=122}(u))&&(!!(m=i.src.slice(_).match(sP))&&(s||i.push({type:\"htmltag\",content:i.src.slice(_,_+m[0].length),level:i.level}),i.pos+=m[0].length,!0))))}],[\"entity\",function entity(i,s){var u,m,v=i.pos,_=i.posMax;if(38!==i.src.charCodeAt(v))return!1;if(v+1<_)if(35===i.src.charCodeAt(v+1)){if(m=i.src.slice(v).match(cP))return s||(u=\"x\"===m[1][0].toLowerCase()?parseInt(m[1].slice(1),16):parseInt(m[1],10),i.pending+=isValidEntityCode(u)?fromCodePoint(u):fromCodePoint(65533)),i.pos+=m[0].length,!0}else if(m=i.src.slice(v).match(lP)){var j=decodeEntity(m[1]);if(m[1]!==j)return s||(i.pending+=j),i.pos+=m[0].length,!0}return s||(i.pending+=\"&\"),i.pos++,!0}]];function ParserInline(){this.ruler=new Ruler;for(var i=0;i<uP.length;i++)this.ruler.push(uP[i][0],uP[i][1]);this.validateLink=validateLink}function validateLink(i){var s=i.trim().toLowerCase();return-1===(s=replaceEntities(s)).indexOf(\":\")||-1===[\"vbscript\",\"javascript\",\"file\",\"data\"].indexOf(s.split(\":\")[0])}ParserInline.prototype.skipToken=function(i){var s,u,m=this.ruler.getRules(\"\"),v=m.length,_=i.pos;if((u=i.cacheGet(_))>0)i.pos=u;else{for(s=0;s<v;s++)if(m[s](i,!0))return void i.cacheSet(_,i.pos);i.pos++,i.cacheSet(_,i.pos)}},ParserInline.prototype.tokenize=function(i){for(var s,u,m=this.ruler.getRules(\"\"),v=m.length,_=i.posMax;i.pos<_;){for(u=0;u<v&&!(s=m[u](i,!1));u++);if(s){if(i.pos>=_)break}else i.pending+=i.src[i.pos++]}i.pending&&i.pushPending()},ParserInline.prototype.parse=function(i,s,u,m){var v=new StateInline(i,this,s,u,m);this.tokenize(v)};var pP={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{rules:[\"block\",\"inline\",\"references\",\"replacements\",\"smartquotes\",\"references\",\"abbr2\",\"footnote_tail\"]},block:{rules:[\"blockquote\",\"code\",\"fences\",\"footnote\",\"heading\",\"hr\",\"htmlblock\",\"lheading\",\"list\",\"paragraph\",\"table\"]},inline:{rules:[\"autolink\",\"backticks\",\"del\",\"emphasis\",\"entity\",\"escape\",\"footnote_ref\",\"htmltag\",\"links\",\"newline\",\"text\"]}}},full:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{},block:{},inline:{}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{rules:[\"block\",\"inline\",\"references\",\"abbr2\"]},block:{rules:[\"blockquote\",\"code\",\"fences\",\"heading\",\"hr\",\"htmlblock\",\"lheading\",\"list\",\"paragraph\"]},inline:{rules:[\"autolink\",\"backticks\",\"emphasis\",\"entity\",\"escape\",\"htmltag\",\"links\",\"newline\",\"text\"]}}}};function StateCore(i,s,u){this.src=s,this.env=u,this.options=i.options,this.tokens=[],this.inlineMode=!1,this.inline=i.inline,this.block=i.block,this.renderer=i.renderer,this.typographer=i.typographer}function Remarkable(i,s){\"string\"!=typeof i&&(s=i,i=\"default\"),s&&null!=s.linkify&&console.warn(\"linkify option is removed. Use linkify plugin instead:\\n\\nimport Remarkable from 'remarkable';\\nimport linkify from 'remarkable/linkify';\\nnew Remarkable().use(linkify)\\n\"),this.inline=new ParserInline,this.block=new ParserBlock,this.core=new Core,this.renderer=new Renderer,this.ruler=new Ruler,this.options={},this.configure(pP[i]),this.set(s||{})}Remarkable.prototype.set=function(i){index_browser_assign(this.options,i)},Remarkable.prototype.configure=function(i){var s=this;if(!i)throw new Error(\"Wrong `remarkable` preset, check name/content\");i.options&&s.set(i.options),i.components&&Object.keys(i.components).forEach((function(u){i.components[u].rules&&s[u].ruler.enable(i.components[u].rules,!0)}))},Remarkable.prototype.use=function(i,s){return i(this,s),this},Remarkable.prototype.parse=function(i,s){var u=new StateCore(this,i,s);return this.core.process(u),u.tokens},Remarkable.prototype.render=function(i,s){return s=s||{},this.renderer.render(this.parse(i,s),this.options,s)},Remarkable.prototype.parseInline=function(i,s){var u=new StateCore(this,i,s);return u.inlineMode=!0,this.core.process(u),u.tokens},Remarkable.prototype.renderInline=function(i,s){return s=s||{},this.renderer.render(this.parseInline(i,s),this.options,s)};function utils_indexOf(i,s){if(Array.prototype.indexOf)return i.indexOf(s);for(var u=0,m=i.length;u<m;u++)if(i[u]===s)return u;return-1}function utils_remove(i,s){for(var u=i.length-1;u>=0;u--)!0===s(i[u])&&i.splice(u,1)}function throwUnhandledCaseError(i){throw new Error(\"Unhandled case for value: '\".concat(i,\"'\"))}var hP=function(){function HtmlTag(i){void 0===i&&(i={}),this.tagName=\"\",this.attrs={},this.innerHTML=\"\",this.whitespaceRegex=/\\s+/,this.tagName=i.tagName||\"\",this.attrs=i.attrs||{},this.innerHTML=i.innerHtml||i.innerHTML||\"\"}return HtmlTag.prototype.setTagName=function(i){return this.tagName=i,this},HtmlTag.prototype.getTagName=function(){return this.tagName||\"\"},HtmlTag.prototype.setAttr=function(i,s){return this.getAttrs()[i]=s,this},HtmlTag.prototype.getAttr=function(i){return this.getAttrs()[i]},HtmlTag.prototype.setAttrs=function(i){return Object.assign(this.getAttrs(),i),this},HtmlTag.prototype.getAttrs=function(){return this.attrs||(this.attrs={})},HtmlTag.prototype.setClass=function(i){return this.setAttr(\"class\",i)},HtmlTag.prototype.addClass=function(i){for(var s,u=this.getClass(),m=this.whitespaceRegex,v=u?u.split(m):[],_=i.split(m);s=_.shift();)-1===utils_indexOf(v,s)&&v.push(s);return this.getAttrs().class=v.join(\" \"),this},HtmlTag.prototype.removeClass=function(i){for(var s,u=this.getClass(),m=this.whitespaceRegex,v=u?u.split(m):[],_=i.split(m);v.length&&(s=_.shift());){var j=utils_indexOf(v,s);-1!==j&&v.splice(j,1)}return this.getAttrs().class=v.join(\" \"),this},HtmlTag.prototype.getClass=function(){return this.getAttrs().class||\"\"},HtmlTag.prototype.hasClass=function(i){return-1!==(\" \"+this.getClass()+\" \").indexOf(\" \"+i+\" \")},HtmlTag.prototype.setInnerHTML=function(i){return this.innerHTML=i,this},HtmlTag.prototype.setInnerHtml=function(i){return this.setInnerHTML(i)},HtmlTag.prototype.getInnerHTML=function(){return this.innerHTML||\"\"},HtmlTag.prototype.getInnerHtml=function(){return this.getInnerHTML()},HtmlTag.prototype.toAnchorString=function(){var i=this.getTagName(),s=this.buildAttrsStr();return[\"<\",i,s=s?\" \"+s:\"\",\">\",this.getInnerHtml(),\"</\",i,\">\"].join(\"\")},HtmlTag.prototype.buildAttrsStr=function(){if(!this.attrs)return\"\";var i=this.getAttrs(),s=[];for(var u in i)i.hasOwnProperty(u)&&s.push(u+'=\"'+i[u]+'\"');return s.join(\" \")},HtmlTag}();var dP=function(){function AnchorTagBuilder(i){void 0===i&&(i={}),this.newWindow=!1,this.truncate={},this.className=\"\",this.newWindow=i.newWindow||!1,this.truncate=i.truncate||{},this.className=i.className||\"\"}return AnchorTagBuilder.prototype.build=function(i){return new hP({tagName:\"a\",attrs:this.createAttrs(i),innerHtml:this.processAnchorText(i.getAnchorText())})},AnchorTagBuilder.prototype.createAttrs=function(i){var s={href:i.getAnchorHref()},u=this.createCssClass(i);return u&&(s.class=u),this.newWindow&&(s.target=\"_blank\",s.rel=\"noopener noreferrer\"),this.truncate&&this.truncate.length&&this.truncate.length<i.getAnchorText().length&&(s.title=i.getAnchorHref()),s},AnchorTagBuilder.prototype.createCssClass=function(i){var s=this.className;if(s){for(var u=[s],m=i.getCssClassSuffixes(),v=0,_=m.length;v<_;v++)u.push(s+\"-\"+m[v]);return u.join(\" \")}return\"\"},AnchorTagBuilder.prototype.processAnchorText=function(i){return i=this.doTruncate(i)},AnchorTagBuilder.prototype.doTruncate=function(i){var s=this.truncate;if(!s||!s.length)return i;var u=s.length,m=s.location;return\"smart\"===m?function truncateSmart(i,s,u){var m,v;null==u?(u=\"&hellip;\",v=3,m=8):(v=u.length,m=u.length);var buildUrl=function(i){var s=\"\";return i.scheme&&i.host&&(s+=i.scheme+\"://\"),i.host&&(s+=i.host),i.path&&(s+=\"/\"+i.path),i.query&&(s+=\"?\"+i.query),i.fragment&&(s+=\"#\"+i.fragment),s},buildSegment=function(i,s){var m=s/2,v=Math.ceil(m),_=-1*Math.floor(m),j=\"\";return _<0&&(j=i.substr(_)),i.substr(0,v)+u+j};if(i.length<=s)return i;var _=s-v,j=function(i){var s={},u=i,m=u.match(/^([a-z]+):\\/\\//i);return m&&(s.scheme=m[1],u=u.substr(m[0].length)),(m=u.match(/^(.*?)(?=(\\?|#|\\/|$))/i))&&(s.host=m[1],u=u.substr(m[0].length)),(m=u.match(/^\\/(.*?)(?=(\\?|#|$))/i))&&(s.path=m[1],u=u.substr(m[0].length)),(m=u.match(/^\\?(.*?)(?=(#|$))/i))&&(s.query=m[1],u=u.substr(m[0].length)),(m=u.match(/^#(.*?)$/i))&&(s.fragment=m[1]),s}(i);if(j.query){var M=j.query.match(/^(.*?)(?=(\\?|\\#))(.*?)$/i);M&&(j.query=j.query.substr(0,M[1].length),i=buildUrl(j))}if(i.length<=s)return i;if(j.host&&(j.host=j.host.replace(/^www\\./,\"\"),i=buildUrl(j)),i.length<=s)return i;var $=\"\";if(j.host&&($+=j.host),$.length>=_)return j.host.length==s?(j.host.substr(0,s-v)+u).substr(0,_+m):buildSegment($,_).substr(0,_+m);var W=\"\";if(j.path&&(W+=\"/\"+j.path),j.query&&(W+=\"?\"+j.query),W){if(($+W).length>=_)return($+W).length==s?($+W).substr(0,s):($+buildSegment(W,_-$.length)).substr(0,_+m);$+=W}if(j.fragment){var X=\"#\"+j.fragment;if(($+X).length>=_)return($+X).length==s?($+X).substr(0,s):($+buildSegment(X,_-$.length)).substr(0,_+m);$+=X}if(j.scheme&&j.host){var Y=j.scheme+\"://\";if(($+Y).length<_)return(Y+$).substr(0,s)}if($.length<=s)return $;var Z=\"\";return _>0&&(Z=$.substr(-1*Math.floor(_/2))),($.substr(0,Math.ceil(_/2))+u+Z).substr(0,_+m)}(i,u):\"middle\"===m?function truncateMiddle(i,s,u){if(i.length<=s)return i;var m,v;null==u?(u=\"&hellip;\",m=8,v=3):(m=u.length,v=u.length);var _=s-v,j=\"\";return _>0&&(j=i.substr(-1*Math.floor(_/2))),(i.substr(0,Math.ceil(_/2))+u+j).substr(0,_+m)}(i,u):function truncateEnd(i,s,u){return function ellipsis(i,s,u){var m;return i.length>s&&(null==u?(u=\"&hellip;\",m=3):m=u.length,i=i.substring(0,s-m)+u),i}(i,s,u)}(i,u)},AnchorTagBuilder}(),fP=function(){function Match(i){this.__jsduckDummyDocProp=null,this.matchedText=\"\",this.offset=0,this.tagBuilder=i.tagBuilder,this.matchedText=i.matchedText,this.offset=i.offset}return Match.prototype.getMatchedText=function(){return this.matchedText},Match.prototype.setOffset=function(i){this.offset=i},Match.prototype.getOffset=function(){return this.offset},Match.prototype.getCssClassSuffixes=function(){return[this.getType()]},Match.prototype.buildTag=function(){return this.tagBuilder.build(this)},Match}(),extendStatics=function(i,s){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,s){i.__proto__=s}||function(i,s){for(var u in s)Object.prototype.hasOwnProperty.call(s,u)&&(i[u]=s[u])},extendStatics(i,s)};function tslib_es6_extends(i,s){if(\"function\"!=typeof s&&null!==s)throw new TypeError(\"Class extends value \"+String(s)+\" is not a constructor or null\");function __(){this.constructor=i}extendStatics(i,s),i.prototype=null===s?Object.create(s):(__.prototype=s.prototype,new __)}var __assign=function(){return __assign=Object.assign||function __assign(i){for(var s,u=1,m=arguments.length;u<m;u++)for(var v in s=arguments[u])Object.prototype.hasOwnProperty.call(s,v)&&(i[v]=s[v]);return i},__assign.apply(this,arguments)};Object.create;Object.create;\"function\"==typeof SuppressedError&&SuppressedError;var mP,yP=function(i){function EmailMatch(s){var u=i.call(this,s)||this;return u.email=\"\",u.email=s.email,u}return tslib_es6_extends(EmailMatch,i),EmailMatch.prototype.getType=function(){return\"email\"},EmailMatch.prototype.getEmail=function(){return this.email},EmailMatch.prototype.getAnchorHref=function(){return\"mailto:\"+this.email},EmailMatch.prototype.getAnchorText=function(){return this.email},EmailMatch}(fP),gP=function(i){function HashtagMatch(s){var u=i.call(this,s)||this;return u.serviceName=\"\",u.hashtag=\"\",u.serviceName=s.serviceName,u.hashtag=s.hashtag,u}return tslib_es6_extends(HashtagMatch,i),HashtagMatch.prototype.getType=function(){return\"hashtag\"},HashtagMatch.prototype.getServiceName=function(){return this.serviceName},HashtagMatch.prototype.getHashtag=function(){return this.hashtag},HashtagMatch.prototype.getAnchorHref=function(){var i=this.serviceName,s=this.hashtag;switch(i){case\"twitter\":return\"https://twitter.com/hashtag/\"+s;case\"facebook\":return\"https://www.facebook.com/hashtag/\"+s;case\"instagram\":return\"https://instagram.com/explore/tags/\"+s;case\"tiktok\":return\"https://www.tiktok.com/tag/\"+s;default:throw new Error(\"Unknown service name to point hashtag to: \"+i)}},HashtagMatch.prototype.getAnchorText=function(){return\"#\"+this.hashtag},HashtagMatch}(fP),vP=function(i){function MentionMatch(s){var u=i.call(this,s)||this;return u.serviceName=\"twitter\",u.mention=\"\",u.mention=s.mention,u.serviceName=s.serviceName,u}return tslib_es6_extends(MentionMatch,i),MentionMatch.prototype.getType=function(){return\"mention\"},MentionMatch.prototype.getMention=function(){return this.mention},MentionMatch.prototype.getServiceName=function(){return this.serviceName},MentionMatch.prototype.getAnchorHref=function(){switch(this.serviceName){case\"twitter\":return\"https://twitter.com/\"+this.mention;case\"instagram\":return\"https://instagram.com/\"+this.mention;case\"soundcloud\":return\"https://soundcloud.com/\"+this.mention;case\"tiktok\":return\"https://www.tiktok.com/@\"+this.mention;default:throw new Error(\"Unknown service name to point mention to: \"+this.serviceName)}},MentionMatch.prototype.getAnchorText=function(){return\"@\"+this.mention},MentionMatch.prototype.getCssClassSuffixes=function(){var s=i.prototype.getCssClassSuffixes.call(this),u=this.getServiceName();return u&&s.push(u),s},MentionMatch}(fP),bP=function(i){function PhoneMatch(s){var u=i.call(this,s)||this;return u.number=\"\",u.plusSign=!1,u.number=s.number,u.plusSign=s.plusSign,u}return tslib_es6_extends(PhoneMatch,i),PhoneMatch.prototype.getType=function(){return\"phone\"},PhoneMatch.prototype.getPhoneNumber=function(){return this.number},PhoneMatch.prototype.getNumber=function(){return this.getPhoneNumber()},PhoneMatch.prototype.getAnchorHref=function(){return\"tel:\"+(this.plusSign?\"+\":\"\")+this.number},PhoneMatch.prototype.getAnchorText=function(){return this.matchedText},PhoneMatch}(fP),_P=function(i){function UrlMatch(s){var u=i.call(this,s)||this;return u.url=\"\",u.urlMatchType=\"scheme\",u.protocolUrlMatch=!1,u.protocolRelativeMatch=!1,u.stripPrefix={scheme:!0,www:!0},u.stripTrailingSlash=!0,u.decodePercentEncoding=!0,u.schemePrefixRegex=/^(https?:\\/\\/)?/i,u.wwwPrefixRegex=/^(https?:\\/\\/)?(www\\.)?/i,u.protocolRelativeRegex=/^\\/\\//,u.protocolPrepended=!1,u.urlMatchType=s.urlMatchType,u.url=s.url,u.protocolUrlMatch=s.protocolUrlMatch,u.protocolRelativeMatch=s.protocolRelativeMatch,u.stripPrefix=s.stripPrefix,u.stripTrailingSlash=s.stripTrailingSlash,u.decodePercentEncoding=s.decodePercentEncoding,u}return tslib_es6_extends(UrlMatch,i),UrlMatch.prototype.getType=function(){return\"url\"},UrlMatch.prototype.getUrlMatchType=function(){return this.urlMatchType},UrlMatch.prototype.getUrl=function(){var i=this.url;return this.protocolRelativeMatch||this.protocolUrlMatch||this.protocolPrepended||(i=this.url=\"http://\"+i,this.protocolPrepended=!0),i},UrlMatch.prototype.getAnchorHref=function(){return this.getUrl().replace(/&amp;/g,\"&\")},UrlMatch.prototype.getAnchorText=function(){var i=this.getMatchedText();return this.protocolRelativeMatch&&(i=this.stripProtocolRelativePrefix(i)),this.stripPrefix.scheme&&(i=this.stripSchemePrefix(i)),this.stripPrefix.www&&(i=this.stripWwwPrefix(i)),this.stripTrailingSlash&&(i=this.removeTrailingSlash(i)),this.decodePercentEncoding&&(i=this.removePercentEncoding(i)),i},UrlMatch.prototype.stripSchemePrefix=function(i){return i.replace(this.schemePrefixRegex,\"\")},UrlMatch.prototype.stripWwwPrefix=function(i){return i.replace(this.wwwPrefixRegex,\"$1\")},UrlMatch.prototype.stripProtocolRelativePrefix=function(i){return i.replace(this.protocolRelativeRegex,\"\")},UrlMatch.prototype.removeTrailingSlash=function(i){return\"/\"===i.charAt(i.length-1)&&(i=i.slice(0,-1)),i},UrlMatch.prototype.removePercentEncoding=function(i){var s=i.replace(/%22/gi,\"&quot;\").replace(/%26/gi,\"&amp;\").replace(/%27/gi,\"&#39;\").replace(/%3C/gi,\"&lt;\").replace(/%3E/gi,\"&gt;\");try{return decodeURIComponent(s)}catch(i){return s}},UrlMatch}(fP),wP=function wP(i){this.__jsduckDummyDocProp=null,this.tagBuilder=i.tagBuilder},EP=/[A-Za-z]/,SP=/[\\d]/,xP=/[\\D]/,OP=/\\s/,kP=/['\"]/,AP=/[\\x00-\\x1F\\x7F]/,CP=/A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC/.source,jP=CP+/\\u2700-\\u27bf\\udde6-\\uddff\\ud800-\\udbff\\udc00-\\udfff\\ufe0e\\ufe0f\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ud83c\\udffb-\\udfff\\u200d\\u3299\\u3297\\u303d\\u3030\\u24c2\\ud83c\\udd70-\\udd71\\udd7e-\\udd7f\\udd8e\\udd91-\\udd9a\\udde6-\\uddff\\ude01-\\ude02\\ude1a\\ude2f\\ude32-\\ude3a\\ude50-\\ude51\\u203c\\u2049\\u25aa-\\u25ab\\u25b6\\u25c0\\u25fb-\\u25fe\\u00a9\\u00ae\\u2122\\u2139\\udc04\\u2600-\\u26FF\\u2b05\\u2b06\\u2b07\\u2b1b\\u2b1c\\u2b50\\u2b55\\u231a\\u231b\\u2328\\u23cf\\u23e9-\\u23f3\\u23f8-\\u23fa\\udccf\\u2935\\u2934\\u2190-\\u21ff/.source+/\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFB-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F/.source,PP=/0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19/.source,IP=jP+PP,NP=jP+PP,TP=new RegExp(\"[\".concat(NP,\"]\")),MP=\"(?:[\"+PP+\"]{1,3}\\\\.){3}[\"+PP+\"]{1,3}\",RP=\"[\"+NP+\"](?:[\"+NP+\"\\\\-_]{0,61}[\"+NP+\"])?\",getDomainLabelStr=function(i){return\"(?=(\"+RP+\"))\\\\\"+i},getDomainNameStr=function(i){return\"(?:\"+getDomainLabelStr(i)+\"(?:\\\\.\"+getDomainLabelStr(i+1)+\"){0,126}|\"+MP+\")\"},DP=(new RegExp(\"[\"+NP+\".\\\\-]*[\"+NP+\"\\\\-]\"),TP),BP=/(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|vermögensberatung|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbah1a3hjkrd|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|vermögensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--mgbcpq6gpa1a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbaakc7dvf|xn--mgbc0a9azcg|xn--nqv7fs00ema|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq480n2rg|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|travelchannel|wolterskluwer|xn--cckwcxetd|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--4dbrk0ce|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|சிங்கப்பூர்|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nextdirect|properties|protection|prudential|realestate|republican|restaurant|schaeffler|tatamotors|technology|university|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--q7ce6a|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|institute|insurance|kuokgroup|lancaster|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|passagens|pramerica|richardli|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--qxa6a|xn--tckwe|xn--vhquv|yodobashi|موريتانيا|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|builders|business|capetown|catering|catholic|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|etisalat|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|merckmsd|mortgage|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|training|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|السعودية|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|channel|charity|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lanxess|lasalle|latrobe|leclerc|limited|lincoln|markets|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|singles|staples|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|католик|اتصالات|البحرين|الجزائر|العليان|پاکستان|كاثوليك|இந்தியா|abarth|abbott|abbvie|africa|agency|airbus|airtel|alipay|alsace|alstom|amazon|anquan|aramco|author|bayern|beauty|berlin|bharti|bostik|boston|broker|camera|career|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|webcam|xihuan|yachts|yandex|zappos|москва|онлайн|ابوظبي|ارامكو|الاردن|المغرب|امارات|فلسطين|مليسيا|भारतम्|இலங்கை|ファッション|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|drive|dubai|earth|edeka|email|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|irish|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|loans|locus|lotte|lotto|macys|mango|media|miami|money|movie|music|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|ישראל|ایران|بازار|بھارت|سودان|سورية|همراه|भारोत|संगठन|বাংলা|భారత్|ഭാരതം|嘉里大酒店|aarp|able|adac|aero|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kids|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|read|reit|rent|rest|rich|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|дети|сайт|بارت|بيتك|ڀارت|تونس|شبكة|عراق|عمان|موقع|भारत|ভারত|ভাৰত|ਭਾਰਤ|ભારત|ଭାରତ|ಭಾರತ|ලංකා|アマゾン|グーグル|クラウド|ポイント|组织机构|電訊盈科|香格里拉|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceo|cfa|cfd|com|cpa|crs|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gay|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|llp|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|spa|srl|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|бел|ком|қаз|мкд|мон|орг|рус|срб|укр|հայ|קום|عرب|قطر|كوم|مصر|कॉम|नेट|คอม|ไทย|ລາວ|ストア|セール|みんな|中文网|亚马逊|天主教|我爱你|新加坡|淡马锡|诺基亚|飞利浦|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|ελ|ευ|бг|ею|рф|გე|닷넷|닷컴|삼성|한국|コム|世界|中信|中国|中國|企业|佛山|信息|健康|八卦|公司|公益|台湾|台灣|商城|商店|商标|嘉里|在线|大拿|娱乐|家電|广东|微博|慈善|手机|招聘|政务|政府|新闻|时尚|書籍|机构|游戏|澳門|点看|移动|网址|网店|网站|网络|联通|谷歌|购物|通販|集团|食品|餐厅|香港)/,LP=new RegExp(\"[\".concat(NP,\"!#$%&'*+/=?^_`{|}~-]\")),FP=new RegExp(\"^\".concat(BP.source,\"$\")),qP=function(i){function EmailMatcher(){var s=null!==i&&i.apply(this,arguments)||this;return s.localPartCharRegex=LP,s.strictTldRegex=FP,s}return tslib_es6_extends(EmailMatcher,i),EmailMatcher.prototype.parseMatches=function(i){for(var s=this.tagBuilder,u=this.localPartCharRegex,m=this.strictTldRegex,v=[],_=i.length,j=new $P,M={m:\"a\",a:\"i\",i:\"l\",l:\"t\",t:\"o\",o:\":\"},$=0,W=0,X=j;$<_;){var Y=i.charAt($);switch(W){case 0:stateNonEmailAddress(Y);break;case 1:stateMailTo(i.charAt($-1),Y);break;case 2:stateLocalPart(Y);break;case 3:stateLocalPartDot(Y);break;case 4:stateAtSign(Y);break;case 5:stateDomainChar(Y);break;case 6:stateDomainHyphen(Y);break;case 7:stateDomainDot(Y);break;default:throwUnhandledCaseError(W)}$++}return captureMatchIfValidAndReset(),v;function stateNonEmailAddress(i){\"m\"===i?beginEmailMatch(1):u.test(i)&&beginEmailMatch()}function stateMailTo(i,s){\":\"===i?u.test(s)?(W=2,X=new $P(__assign(__assign({},X),{hasMailtoPrefix:!0}))):resetToNonEmailMatchState():M[i]===s||(u.test(s)?W=2:\".\"===s?W=3:\"@\"===s?W=4:resetToNonEmailMatchState())}function stateLocalPart(i){\".\"===i?W=3:\"@\"===i?W=4:u.test(i)||resetToNonEmailMatchState()}function stateLocalPartDot(i){\".\"===i||\"@\"===i?resetToNonEmailMatchState():u.test(i)?W=2:resetToNonEmailMatchState()}function stateAtSign(i){DP.test(i)?W=5:resetToNonEmailMatchState()}function stateDomainChar(i){\".\"===i?W=7:\"-\"===i?W=6:DP.test(i)||captureMatchIfValidAndReset()}function stateDomainHyphen(i){\"-\"===i||\".\"===i?captureMatchIfValidAndReset():DP.test(i)?W=5:captureMatchIfValidAndReset()}function stateDomainDot(i){\".\"===i||\"-\"===i?captureMatchIfValidAndReset():DP.test(i)?(W=5,X=new $P(__assign(__assign({},X),{hasDomainDot:!0}))):captureMatchIfValidAndReset()}function beginEmailMatch(i){void 0===i&&(i=2),W=i,X=new $P({idx:$})}function resetToNonEmailMatchState(){W=0,X=j}function captureMatchIfValidAndReset(){if(X.hasDomainDot){var u=i.slice(X.idx,$);/[-.]$/.test(u)&&(u=u.slice(0,-1));var _=X.hasMailtoPrefix?u.slice(7):u;(function doesEmailHaveValidTld(i){var s=i.split(\".\").pop()||\"\",u=s.toLowerCase();return m.test(u)})(_)&&v.push(new yP({tagBuilder:s,matchedText:u,offset:X.idx,email:_}))}resetToNonEmailMatchState()}},EmailMatcher}(wP),$P=function $P(i){void 0===i&&(i={}),this.idx=void 0!==i.idx?i.idx:-1,this.hasMailtoPrefix=!!i.hasMailtoPrefix,this.hasDomainDot=!!i.hasDomainDot},UP=function(){function UrlMatchValidator(){}return UrlMatchValidator.isValid=function(i,s){return!(s&&!this.isValidUriScheme(s)||this.urlMatchDoesNotHaveProtocolOrDot(i,s)||this.urlMatchDoesNotHaveAtLeastOneWordChar(i,s)&&!this.isValidIpAddress(i)||this.containsMultipleDots(i))},UrlMatchValidator.isValidIpAddress=function(i){var s=new RegExp(this.hasFullProtocolRegex.source+this.ipRegex.source);return null!==i.match(s)},UrlMatchValidator.containsMultipleDots=function(i){var s=i;return this.hasFullProtocolRegex.test(i)&&(s=i.split(\"://\")[1]),s.split(\"/\")[0].indexOf(\"..\")>-1},UrlMatchValidator.isValidUriScheme=function(i){var s=i.match(this.uriSchemeRegex),u=s&&s[0].toLowerCase();return\"javascript:\"!==u&&\"vbscript:\"!==u},UrlMatchValidator.urlMatchDoesNotHaveProtocolOrDot=function(i,s){return!(!i||s&&this.hasFullProtocolRegex.test(s)||-1!==i.indexOf(\".\"))},UrlMatchValidator.urlMatchDoesNotHaveAtLeastOneWordChar=function(i,s){return!(!i||!s)&&(!this.hasFullProtocolRegex.test(s)&&!this.hasWordCharAfterProtocolRegex.test(i))},UrlMatchValidator.hasFullProtocolRegex=/^[A-Za-z][-.+A-Za-z0-9]*:\\/\\//,UrlMatchValidator.uriSchemeRegex=/^[A-Za-z][-.+A-Za-z0-9]*:/,UrlMatchValidator.hasWordCharAfterProtocolRegex=new RegExp(\":[^\\\\s]*?[\"+CP+\"]\"),UrlMatchValidator.ipRegex=/[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?(:[0-9]*)?\\/?$/,UrlMatchValidator}(),zP=(mP=new RegExp(\"[/?#](?:[\"+NP+\"\\\\-+&@#/%=~_()|'$*\\\\[\\\\]{}?!:,.;^✓]*[\"+NP+\"\\\\-+&@#/%=~_()|'$*\\\\[\\\\]{}✓])?\"),new RegExp([\"(?:\",\"(\",/(?:[A-Za-z][-.+A-Za-z0-9]{0,63}:(?![A-Za-z][-.+A-Za-z0-9]{0,63}:\\/\\/)(?!\\d+\\/?)(?:\\/\\/)?)/.source,getDomainNameStr(2),\")\",\"|\",\"(\",\"(//)?\",/(?:www\\.)/.source,getDomainNameStr(6),\")\",\"|\",\"(\",\"(//)?\",getDomainNameStr(10)+\"\\\\.\",BP.source,\"(?![-\"+IP+\"])\",\")\",\")\",\"(?::[0-9]+)?\",\"(?:\"+mP.source+\")?\"].join(\"\"),\"gi\")),VP=new RegExp(\"[\"+NP+\"]\"),WP=function(i){function UrlMatcher(s){var u=i.call(this,s)||this;return u.stripPrefix={scheme:!0,www:!0},u.stripTrailingSlash=!0,u.decodePercentEncoding=!0,u.matcherRegex=zP,u.wordCharRegExp=VP,u.stripPrefix=s.stripPrefix,u.stripTrailingSlash=s.stripTrailingSlash,u.decodePercentEncoding=s.decodePercentEncoding,u}return tslib_es6_extends(UrlMatcher,i),UrlMatcher.prototype.parseMatches=function(i){for(var s,u=this.matcherRegex,m=this.stripPrefix,v=this.stripTrailingSlash,_=this.decodePercentEncoding,j=this.tagBuilder,M=[],_loop_1=function(){var u=s[0],W=s[1],X=s[4],Y=s[5],Z=s[9],ee=s.index,ie=Y||Z,ae=i.charAt(ee-1);if(!UP.isValid(u,W))return\"continue\";if(ee>0&&\"@\"===ae)return\"continue\";if(ee>0&&ie&&$.wordCharRegExp.test(ae))return\"continue\";if(/\\?$/.test(u)&&(u=u.substr(0,u.length-1)),$.matchHasUnbalancedClosingParen(u))u=u.substr(0,u.length-1);else{var ce=$.matchHasInvalidCharAfterTld(u,W);ce>-1&&(u=u.substr(0,ce))}var le=[\"http://\",\"https://\"].find((function(i){return!!W&&-1!==W.indexOf(i)}));if(le){var pe=u.indexOf(le);u=u.substr(pe),W=W.substr(pe),ee+=pe}var de=W?\"scheme\":X?\"www\":\"tld\",fe=!!W;M.push(new _P({tagBuilder:j,matchedText:u,offset:ee,urlMatchType:de,url:u,protocolUrlMatch:fe,protocolRelativeMatch:!!ie,stripPrefix:m,stripTrailingSlash:v,decodePercentEncoding:_}))},$=this;null!==(s=u.exec(i));)_loop_1();return M},UrlMatcher.prototype.matchHasUnbalancedClosingParen=function(i){var s,u=i.charAt(i.length-1);if(\")\"===u)s=\"(\";else if(\"]\"===u)s=\"[\";else{if(\"}\"!==u)return!1;s=\"{\"}for(var m=0,v=0,_=i.length-1;v<_;v++){var j=i.charAt(v);j===s?m++:j===u&&(m=Math.max(m-1,0))}return 0===m},UrlMatcher.prototype.matchHasInvalidCharAfterTld=function(i,s){if(!i)return-1;var u=0;s&&(u=i.indexOf(\":\"),i=i.slice(u));var m=new RegExp(\"^((.?//)?[-.\"+NP+\"]*[-\"+NP+\"]\\\\.[-\"+NP+\"]+)\").exec(i);return null===m?-1:(u+=m[1].length,i=i.slice(m[1].length),/^[^-.A-Za-z0-9:\\/?#]/.test(i)?u:-1)},UrlMatcher}(wP),KP=new RegExp(\"[_\".concat(NP,\"]\")),HP=function(i){function HashtagMatcher(s){var u=i.call(this,s)||this;return u.serviceName=\"twitter\",u.serviceName=s.serviceName,u}return tslib_es6_extends(HashtagMatcher,i),HashtagMatcher.prototype.parseMatches=function(i){for(var s=this.tagBuilder,u=this.serviceName,m=[],v=i.length,_=0,j=-1,M=0;_<v;){var $=i.charAt(_);switch(M){case 0:stateNone($);break;case 1:stateNonHashtagWordChar($);break;case 2:stateHashtagHashChar($);break;case 3:stateHashtagTextChar($);break;default:throwUnhandledCaseError(M)}_++}return captureMatchIfValid(),m;function stateNone(i){\"#\"===i?(M=2,j=_):TP.test(i)&&(M=1)}function stateNonHashtagWordChar(i){TP.test(i)||(M=0)}function stateHashtagHashChar(i){M=KP.test(i)?3:TP.test(i)?1:0}function stateHashtagTextChar(i){KP.test(i)||(captureMatchIfValid(),j=-1,M=TP.test(i)?1:0)}function captureMatchIfValid(){if(j>-1&&_-j<=140){var v=i.slice(j,_),M=new gP({tagBuilder:s,matchedText:v,offset:j,serviceName:u,hashtag:v.slice(1)});m.push(M)}}},HashtagMatcher}(wP),JP=[\"twitter\",\"facebook\",\"instagram\",\"tiktok\"],GP=new RegExp(\"\".concat(/(?:(?:(?:(\\+)?\\d{1,3}[-\\040.]?)?\\(?\\d{3}\\)?[-\\040.]?\\d{3}[-\\040.]?\\d{4})|(?:(\\+)(?:9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-\\040.]?(?:\\d[-\\040.]?){6,12}\\d+))([,;]+[0-9]+#?)*/.source,\"|\").concat(/(0([1-9]{1}-?[1-9]\\d{3}|[1-9]{2}-?\\d{3}|[1-9]{2}\\d{1}-?\\d{2}|[1-9]{2}\\d{2}-?\\d{1})-?\\d{4}|0[789]0-?\\d{4}-?\\d{4}|050-?\\d{4}-?\\d{4})/.source),\"g\"),XP=function(i){function PhoneMatcher(){var s=null!==i&&i.apply(this,arguments)||this;return s.matcherRegex=GP,s}return tslib_es6_extends(PhoneMatcher,i),PhoneMatcher.prototype.parseMatches=function(i){for(var s,u=this.matcherRegex,m=this.tagBuilder,v=[];null!==(s=u.exec(i));){var _=s[0],j=_.replace(/[^0-9,;#]/g,\"\"),M=!(!s[1]&&!s[2]),$=0==s.index?\"\":i.substr(s.index-1,1),W=i.substr(s.index+_.length,1),X=!$.match(/\\d/)&&!W.match(/\\d/);this.testMatch(s[3])&&this.testMatch(_)&&X&&v.push(new bP({tagBuilder:m,matchedText:_,offset:s.index,number:j,plusSign:M}))}return v},PhoneMatcher.prototype.testMatch=function(i){return xP.test(i)},PhoneMatcher}(wP),YP=new RegExp(\"@[_\".concat(NP,\"]{1,50}(?![_\").concat(NP,\"])\"),\"g\"),QP=new RegExp(\"@[_.\".concat(NP,\"]{1,30}(?![_\").concat(NP,\"])\"),\"g\"),ZP=new RegExp(\"@[-_.\".concat(NP,\"]{1,50}(?![-_\").concat(NP,\"])\"),\"g\"),eI=new RegExp(\"@[_.\".concat(NP,\"]{1,23}[_\").concat(NP,\"](?![_\").concat(NP,\"])\"),\"g\"),tI=new RegExp(\"[^\"+NP+\"]\"),rI=function(i){function MentionMatcher(s){var u=i.call(this,s)||this;return u.serviceName=\"twitter\",u.matcherRegexes={twitter:YP,instagram:QP,soundcloud:ZP,tiktok:eI},u.nonWordCharRegex=tI,u.serviceName=s.serviceName,u}return tslib_es6_extends(MentionMatcher,i),MentionMatcher.prototype.parseMatches=function(i){var s,u=this.serviceName,m=this.matcherRegexes[this.serviceName],v=this.nonWordCharRegex,_=this.tagBuilder,j=[];if(!m)return j;for(;null!==(s=m.exec(i));){var M=s.index,$=i.charAt(M-1);if(0===M||v.test($)){var W=s[0].replace(/\\.+$/g,\"\"),X=W.slice(1);j.push(new vP({tagBuilder:_,matchedText:W,offset:M,serviceName:u,mention:X}))}}return j},MentionMatcher}(wP);function parseHtml(i,s){for(var u=s.onOpenTag,m=s.onCloseTag,v=s.onText,_=s.onComment,j=s.onDoctype,M=new nI,$=0,W=i.length,X=0,Y=0,Z=M;$<W;){var ee=i.charAt($);switch(X){case 0:stateData(ee);break;case 1:stateTagOpen(ee);break;case 2:stateEndTagOpen(ee);break;case 3:stateTagName(ee);break;case 4:stateBeforeAttributeName(ee);break;case 5:stateAttributeName(ee);break;case 6:stateAfterAttributeName(ee);break;case 7:stateBeforeAttributeValue(ee);break;case 8:stateAttributeValueDoubleQuoted(ee);break;case 9:stateAttributeValueSingleQuoted(ee);break;case 10:stateAttributeValueUnquoted(ee);break;case 11:stateAfterAttributeValueQuoted(ee);break;case 12:stateSelfClosingStartTag(ee);break;case 13:stateMarkupDeclarationOpen(ee);break;case 14:stateCommentStart(ee);break;case 15:stateCommentStartDash(ee);break;case 16:stateComment(ee);break;case 17:stateCommentEndDash(ee);break;case 18:stateCommentEnd(ee);break;case 19:stateCommentEndBang(ee);break;case 20:stateDoctype(ee);break;default:throwUnhandledCaseError(X)}$++}function stateData(i){\"<\"===i&&startNewTag()}function stateTagOpen(i){\"!\"===i?X=13:\"/\"===i?(X=2,Z=new nI(__assign(__assign({},Z),{isClosing:!0}))):\"<\"===i?startNewTag():EP.test(i)?(X=3,Z=new nI(__assign(__assign({},Z),{isOpening:!0}))):(X=0,Z=M)}function stateTagName(i){OP.test(i)?(Z=new nI(__assign(__assign({},Z),{name:captureTagName()})),X=4):\"<\"===i?startNewTag():\"/\"===i?(Z=new nI(__assign(__assign({},Z),{name:captureTagName()})),X=12):\">\"===i?(Z=new nI(__assign(__assign({},Z),{name:captureTagName()})),emitTagAndPreviousTextNode()):EP.test(i)||SP.test(i)||\":\"===i||resetToDataState()}function stateEndTagOpen(i){\">\"===i?resetToDataState():EP.test(i)?X=3:resetToDataState()}function stateBeforeAttributeName(i){OP.test(i)||(\"/\"===i?X=12:\">\"===i?emitTagAndPreviousTextNode():\"<\"===i?startNewTag():\"=\"===i||kP.test(i)||AP.test(i)?resetToDataState():X=5)}function stateAttributeName(i){OP.test(i)?X=6:\"/\"===i?X=12:\"=\"===i?X=7:\">\"===i?emitTagAndPreviousTextNode():\"<\"===i?startNewTag():kP.test(i)&&resetToDataState()}function stateAfterAttributeName(i){OP.test(i)||(\"/\"===i?X=12:\"=\"===i?X=7:\">\"===i?emitTagAndPreviousTextNode():\"<\"===i?startNewTag():kP.test(i)?resetToDataState():X=5)}function stateBeforeAttributeValue(i){OP.test(i)||('\"'===i?X=8:\"'\"===i?X=9:/[>=`]/.test(i)?resetToDataState():\"<\"===i?startNewTag():X=10)}function stateAttributeValueDoubleQuoted(i){'\"'===i&&(X=11)}function stateAttributeValueSingleQuoted(i){\"'\"===i&&(X=11)}function stateAttributeValueUnquoted(i){OP.test(i)?X=4:\">\"===i?emitTagAndPreviousTextNode():\"<\"===i&&startNewTag()}function stateAfterAttributeValueQuoted(i){OP.test(i)?X=4:\"/\"===i?X=12:\">\"===i?emitTagAndPreviousTextNode():\"<\"===i?startNewTag():(X=4,function reconsumeCurrentCharacter(){$--}())}function stateSelfClosingStartTag(i){\">\"===i?(Z=new nI(__assign(__assign({},Z),{isClosing:!0})),emitTagAndPreviousTextNode()):X=4}function stateMarkupDeclarationOpen(s){\"--\"===i.substr($,2)?($+=2,Z=new nI(__assign(__assign({},Z),{type:\"comment\"})),X=14):\"DOCTYPE\"===i.substr($,7).toUpperCase()?($+=7,Z=new nI(__assign(__assign({},Z),{type:\"doctype\"})),X=20):resetToDataState()}function stateCommentStart(i){\"-\"===i?X=15:\">\"===i?resetToDataState():X=16}function stateCommentStartDash(i){\"-\"===i?X=18:\">\"===i?resetToDataState():X=16}function stateComment(i){\"-\"===i&&(X=17)}function stateCommentEndDash(i){X=\"-\"===i?18:16}function stateCommentEnd(i){\">\"===i?emitTagAndPreviousTextNode():\"!\"===i?X=19:\"-\"===i||(X=16)}function stateCommentEndBang(i){\"-\"===i?X=17:\">\"===i?emitTagAndPreviousTextNode():X=16}function stateDoctype(i){\">\"===i?emitTagAndPreviousTextNode():\"<\"===i&&startNewTag()}function resetToDataState(){X=0,Z=M}function startNewTag(){X=1,Z=new nI({idx:$})}function emitTagAndPreviousTextNode(){var s=i.slice(Y,Z.idx);s&&v(s,Y),\"comment\"===Z.type?_(Z.idx):\"doctype\"===Z.type?j(Z.idx):(Z.isOpening&&u(Z.name,Z.idx),Z.isClosing&&m(Z.name,Z.idx)),resetToDataState(),Y=$+1}function captureTagName(){var s=Z.idx+(Z.isClosing?2:1);return i.slice(s,$).toLowerCase()}Y<$&&function emitText(){var s=i.slice(Y,$);v(s,Y),Y=$+1}()}var nI=function nI(i){void 0===i&&(i={}),this.idx=void 0!==i.idx?i.idx:-1,this.type=i.type||\"tag\",this.name=i.name||\"\",this.isOpening=!!i.isOpening,this.isClosing=!!i.isClosing},oI=function(){function Autolinker(i){void 0===i&&(i={}),this.version=Autolinker.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:\"end\"},this.className=\"\",this.replaceFn=null,this.context=void 0,this.sanitizeHtml=!1,this.matchers=null,this.tagBuilder=null,this.urls=this.normalizeUrlsCfg(i.urls),this.email=\"boolean\"==typeof i.email?i.email:this.email,this.phone=\"boolean\"==typeof i.phone?i.phone:this.phone,this.hashtag=i.hashtag||this.hashtag,this.mention=i.mention||this.mention,this.newWindow=\"boolean\"==typeof i.newWindow?i.newWindow:this.newWindow,this.stripPrefix=this.normalizeStripPrefixCfg(i.stripPrefix),this.stripTrailingSlash=\"boolean\"==typeof i.stripTrailingSlash?i.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=\"boolean\"==typeof i.decodePercentEncoding?i.decodePercentEncoding:this.decodePercentEncoding,this.sanitizeHtml=i.sanitizeHtml||!1;var s=this.mention;if(!1!==s&&-1===[\"twitter\",\"instagram\",\"soundcloud\",\"tiktok\"].indexOf(s))throw new Error(\"invalid `mention` cfg '\".concat(s,\"' - see docs\"));var u=this.hashtag;if(!1!==u&&-1===JP.indexOf(u))throw new Error(\"invalid `hashtag` cfg '\".concat(u,\"' - see docs\"));this.truncate=this.normalizeTruncateCfg(i.truncate),this.className=i.className||this.className,this.replaceFn=i.replaceFn||this.replaceFn,this.context=i.context||this}return Autolinker.link=function(i,s){return new Autolinker(s).link(i)},Autolinker.parse=function(i,s){return new Autolinker(s).parse(i)},Autolinker.prototype.normalizeUrlsCfg=function(i){return null==i&&(i=!0),\"boolean\"==typeof i?{schemeMatches:i,wwwMatches:i,tldMatches:i}:{schemeMatches:\"boolean\"!=typeof i.schemeMatches||i.schemeMatches,wwwMatches:\"boolean\"!=typeof i.wwwMatches||i.wwwMatches,tldMatches:\"boolean\"!=typeof i.tldMatches||i.tldMatches}},Autolinker.prototype.normalizeStripPrefixCfg=function(i){return null==i&&(i=!0),\"boolean\"==typeof i?{scheme:i,www:i}:{scheme:\"boolean\"!=typeof i.scheme||i.scheme,www:\"boolean\"!=typeof i.www||i.www}},Autolinker.prototype.normalizeTruncateCfg=function(i){return\"number\"==typeof i?{length:i,location:\"end\"}:function defaults(i,s){for(var u in s)s.hasOwnProperty(u)&&void 0===i[u]&&(i[u]=s[u]);return i}(i||{},{length:Number.POSITIVE_INFINITY,location:\"end\"})},Autolinker.prototype.parse=function(i){var s=this,u=[\"a\",\"style\",\"script\"],m=0,v=[];return parseHtml(i,{onOpenTag:function(i){u.indexOf(i)>=0&&m++},onText:function(i,u){if(0===m){var _=function splitAndCapture(i,s){if(!s.global)throw new Error(\"`splitRegex` must have the 'g' flag set\");for(var u,m=[],v=0;u=s.exec(i);)m.push(i.substring(v,u.index)),m.push(u[0]),v=u.index+u[0].length;return m.push(i.substring(v)),m}(i,/(&nbsp;|&#160;|&lt;|&#60;|&gt;|&#62;|&quot;|&#34;|&#39;)/gi),j=u;_.forEach((function(i,u){if(u%2==0){var m=s.parseText(i,j);v.push.apply(v,m)}j+=i.length}))}},onCloseTag:function(i){u.indexOf(i)>=0&&(m=Math.max(m-1,0))},onComment:function(i){},onDoctype:function(i){}}),v=this.compactMatches(v),v=this.removeUnwantedMatches(v)},Autolinker.prototype.compactMatches=function(i){i.sort((function(i,s){return i.getOffset()-s.getOffset()}));for(var s=0;s<i.length-1;){var u=i[s],m=u.getOffset(),v=u.getMatchedText().length,_=m+v;if(s+1<i.length){if(i[s+1].getOffset()===m){var j=i[s+1].getMatchedText().length>v?s:s+1;i.splice(j,1);continue}if(i[s+1].getOffset()<_){i.splice(s+1,1);continue}}s++}return i},Autolinker.prototype.removeUnwantedMatches=function(i){return this.hashtag||utils_remove(i,(function(i){return\"hashtag\"===i.getType()})),this.email||utils_remove(i,(function(i){return\"email\"===i.getType()})),this.phone||utils_remove(i,(function(i){return\"phone\"===i.getType()})),this.mention||utils_remove(i,(function(i){return\"mention\"===i.getType()})),this.urls.schemeMatches||utils_remove(i,(function(i){return\"url\"===i.getType()&&\"scheme\"===i.getUrlMatchType()})),this.urls.wwwMatches||utils_remove(i,(function(i){return\"url\"===i.getType()&&\"www\"===i.getUrlMatchType()})),this.urls.tldMatches||utils_remove(i,(function(i){return\"url\"===i.getType()&&\"tld\"===i.getUrlMatchType()})),i},Autolinker.prototype.parseText=function(i,s){void 0===s&&(s=0),s=s||0;for(var u=this.getMatchers(),m=[],v=0,_=u.length;v<_;v++){for(var j=u[v].parseMatches(i),M=0,$=j.length;M<$;M++)j[M].setOffset(s+j[M].getOffset());m.push.apply(m,j)}return m},Autolinker.prototype.link=function(i){if(!i)return\"\";this.sanitizeHtml&&(i=i.replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\"));for(var s=this.parse(i),u=[],m=0,v=0,_=s.length;v<_;v++){var j=s[v];u.push(i.substring(m,j.getOffset())),u.push(this.createMatchReturnVal(j)),m=j.getOffset()+j.getMatchedText().length}return u.push(i.substring(m)),u.join(\"\")},Autolinker.prototype.createMatchReturnVal=function(i){var s;return this.replaceFn&&(s=this.replaceFn.call(this.context,i)),\"string\"==typeof s?s:!1===s?i.getMatchedText():s instanceof hP?s.toAnchorString():i.buildTag().toAnchorString()},Autolinker.prototype.getMatchers=function(){if(this.matchers)return this.matchers;var i=this.getTagBuilder(),s=[new HP({tagBuilder:i,serviceName:this.hashtag}),new qP({tagBuilder:i}),new XP({tagBuilder:i}),new rI({tagBuilder:i,serviceName:this.mention}),new WP({tagBuilder:i,stripPrefix:this.stripPrefix,stripTrailingSlash:this.stripTrailingSlash,decodePercentEncoding:this.decodePercentEncoding})];return this.matchers=s},Autolinker.prototype.getTagBuilder=function(){var i=this.tagBuilder;return i||(i=this.tagBuilder=new dP({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),i},Autolinker.version=\"3.16.2\",Autolinker.AnchorTagBuilder=dP,Autolinker.HtmlTag=hP,Autolinker.matcher={Email:qP,Hashtag:HP,Matcher:wP,Mention:rI,Phone:XP,Url:WP},Autolinker.match={Email:yP,Hashtag:gP,Match:fP,Mention:vP,Phone:bP,Url:_P},Autolinker}();const iI=oI;var aI=/www|@|\\:\\/\\//;function isLinkOpen(i){return/^<a[>\\s]/i.test(i)}function isLinkClose(i){return/^<\\/a\\s*>/i.test(i)}function createLinkifier(){var i=[],s=new iI({stripPrefix:!1,url:!0,email:!0,replaceFn:function(s){switch(s.getType()){case\"url\":i.push({text:s.matchedText,url:s.getUrl()});break;case\"email\":i.push({text:s.matchedText,url:\"mailto:\"+s.getEmail().replace(/^mailto:/i,\"\")})}return!1}});return{links:i,autolinker:s}}function parseTokens(i){var s,u,m,v,_,j,M,$,W,X,Y,Z,ee,ie=i.tokens,ae=null;for(u=0,m=ie.length;u<m;u++)if(\"inline\"===ie[u].type)for(Y=0,s=(v=ie[u].children).length-1;s>=0;s--)if(\"link_close\"!==(_=v[s]).type){if(\"htmltag\"===_.type&&(isLinkOpen(_.content)&&Y>0&&Y--,isLinkClose(_.content)&&Y++),!(Y>0)&&\"text\"===_.type&&aI.test(_.content)){if(ae||(Z=(ae=createLinkifier()).links,ee=ae.autolinker),j=_.content,Z.length=0,ee.link(j),!Z.length)continue;for(M=[],X=_.level,$=0;$<Z.length;$++)i.inline.validateLink(Z[$].url)&&((W=j.indexOf(Z[$].text))&&M.push({type:\"text\",content:j.slice(0,W),level:X}),M.push({type:\"link_open\",href:Z[$].url,title:\"\",level:X++}),M.push({type:\"text\",content:Z[$].text,level:X}),M.push({type:\"link_close\",level:--X}),j=j.slice(W+Z[$].text.length));j.length&&M.push({type:\"text\",content:j,level:X}),ie[u].children=v=[].concat(v.slice(0,s),M,v.slice(s+1))}}else for(s--;v[s].level!==_.level&&\"link_open\"!==v[s].type;)s--}function linkify(i){i.core.ruler.push(\"linkify\",parseTokens)}var sI=__webpack_require__(27856),cI=__webpack_require__.n(sI);function Markdown(i){let{source:s,className:u=\"\",getConfigs:m}=i;if(\"string\"!=typeof s)return null;const v=new Remarkable({html:!0,typographer:!0,breaks:!0,linkTarget:\"_blank\"}).use(linkify);v.core.ruler.disable([\"replacements\",\"smartquotes\"]);const{useUnsafeMarkdown:_}=m(),j=v.render(s),M=sanitizer(j,{useUnsafeMarkdown:_});return s&&j&&M?He.createElement(\"div\",{className:CC()(u,\"markdown\"),dangerouslySetInnerHTML:{__html:M}}):null}cI().addHook&&cI().addHook(\"beforeSanitizeElements\",(function(i){return i.href&&i.setAttribute(\"rel\",\"noopener noreferrer\"),i})),Markdown.defaultProps={getConfigs:()=>({useUnsafeMarkdown:!1})};const lI=Markdown;function sanitizer(i){let{useUnsafeMarkdown:s=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const u=s,m=s?[]:[\"style\",\"class\"];return s&&!sanitizer.hasWarnedAboutDeprecation&&(console.warn(\"useUnsafeMarkdown display configuration parameter is deprecated since >3.26.0 and will be removed in v4.0.0.\"),sanitizer.hasWarnedAboutDeprecation=!0),cI().sanitize(i,{ADD_ATTR:[\"target\"],FORBID_TAGS:[\"style\",\"form\"],ALLOW_DATA_ATTR:u,FORBID_ATTR:m})}sanitizer.hasWarnedAboutDeprecation=!1;class BaseLayout extends He.Component{render(){const{errSelectors:i,specSelectors:s,getComponent:u}=this.props,m=u(\"SvgAssets\"),v=u(\"InfoContainer\",!0),_=u(\"VersionPragmaFilter\"),j=u(\"operations\",!0),M=u(\"Models\",!0),$=u(\"Webhooks\",!0),W=u(\"Row\"),X=u(\"Col\"),Y=u(\"errors\",!0),Z=u(\"ServersContainer\",!0),ee=u(\"SchemesContainer\",!0),ie=u(\"AuthorizeBtnContainer\",!0),ae=u(\"FilterContainer\",!0),ce=s.isSwagger2(),le=s.isOAS3(),pe=s.isOAS31(),de=!s.specStr(),fe=s.loadingStatus();let ye=null;if(\"loading\"===fe&&(ye=He.createElement(\"div\",{className:\"info\"},He.createElement(\"div\",{className:\"loading-container\"},He.createElement(\"div\",{className:\"loading\"})))),\"failed\"===fe&&(ye=He.createElement(\"div\",{className:\"info\"},He.createElement(\"div\",{className:\"loading-container\"},He.createElement(\"h4\",{className:\"title\"},\"Failed to load API definition.\"),He.createElement(Y,null)))),\"failedConfig\"===fe){const s=i.lastError(),u=s?s.get(\"message\"):\"\";ye=He.createElement(\"div\",{className:\"info failed-config\"},He.createElement(\"div\",{className:\"loading-container\"},He.createElement(\"h4\",{className:\"title\"},\"Failed to load remote configuration.\"),He.createElement(\"p\",null,u)))}if(!ye&&de&&(ye=He.createElement(\"h4\",null,\"No API definition provided.\")),ye)return He.createElement(\"div\",{className:\"swagger-ui\"},He.createElement(\"div\",{className:\"loading-container\"},ye));const be=s.servers(),_e=s.schemes(),we=be&&be.size,Se=_e&&_e.size,xe=!!s.securityDefinitions();return He.createElement(\"div\",{className:\"swagger-ui\"},He.createElement(m,null),He.createElement(_,{isSwagger2:ce,isOAS3:le,alsoShow:He.createElement(Y,null)},He.createElement(Y,null),He.createElement(W,{className:\"information-container\"},He.createElement(X,{mobile:12},He.createElement(v,null))),we||Se||xe?He.createElement(\"div\",{className:\"scheme-container\"},He.createElement(X,{className:\"schemes wrapper\",mobile:12},we?He.createElement(Z,null):null,Se?He.createElement(ee,null):null,xe?He.createElement(ie,null):null)):null,He.createElement(ae,null),He.createElement(W,null,He.createElement(X,{mobile:12,desktop:12},He.createElement(j,null))),pe&&He.createElement(W,{className:\"webhooks-container\"},He.createElement(X,{mobile:12,desktop:12},He.createElement($,null))),He.createElement(W,null,He.createElement(X,{mobile:12,desktop:12},He.createElement(M,null)))))}}const core_components=()=>({components:{App,authorizationPopup:AuthorizationPopup,authorizeBtn:AuthorizeBtn,AuthorizeBtnContainer,authorizeOperationBtn:AuthorizeOperationBtn,auths:Auths,AuthItem:auth_item_Auths,authError:AuthError,oauth2:Oauth2,apiKeyAuth:ApiKeyAuth,basicAuth:BasicAuth,clear:Clear,liveResponse:LiveResponse,InitializedInput,info:$C,InfoContainer,InfoUrl,InfoBasePath,Contact:UC,License:zC,JumpToPath,CopyToClipboardBtn,onlineValidatorBadge:OnlineValidatorBadge,operations:Operations,operation:operation_Operation,OperationSummary,OperationSummaryMethod,OperationSummaryPath,highlightCode:IC,responses:responses_Responses,response:response_Response,ResponseExtension:response_extension,responseBody:ResponseBody,parameters:Parameters,parameterRow:ParameterRow,execute:Execute,headers:headers_Headers,errors:Errors,contentType:ContentType,overview:Overview,footer:Footer,FilterContainer,ParamBody,curl:Curl,schemes:Schemes,SchemesContainer,modelExample:ModelExample,ModelWrapper,ModelCollapse,Model,Models,EnumModel:enum_model,ObjectModel,ArrayModel,PrimitiveModel:Primitive,Property:property,TryItOutButton,Markdown:lI,BaseLayout,VersionPragmaFilter,VersionStamp:version_stamp,OperationExt:operation_extensions,OperationExtRow:operation_extension_row,ParameterExt:parameter_extension,ParameterIncludeEmpty,OperationTag,OperationContainer,OpenAPIVersion:openapi_version,DeepLink:deep_link,SvgAssets:svg_assets,Example:example_Example,ExamplesSelect,ExamplesSelectValueRetainer}}),form_components=()=>({components:rr()({},xe)});var uI=__webpack_require__(775),pI=__webpack_require__.n(uI);const hI={value:\"\",onChange:()=>{},schema:{},keyName:\"\",required:!1,errors:(0,et.List)()};class JsonSchemaForm extends He.Component{componentDidMount(){const{dispatchInitialValue:i,value:s,onChange:u}=this.props;i?u(s):!1===i&&u(\"\")}render(){let{schema:i,errors:s,value:u,onChange:m,getComponent:v,fn:_,disabled:j}=this.props;const M=i&&i.get?i.get(\"format\"):null,$=i&&i.get?i.get(\"type\"):null;let getComponentSilently=i=>v(i,!1,{failSilently:!0}),W=$?getComponentSilently(M?`JsonSchema_${$}_${M}`:`JsonSchema_${$}`):v(\"JsonSchema_string\");return W||(W=v(\"JsonSchema_string\")),He.createElement(W,No()({},this.props,{errors:s,fn:_,getComponent:v,value:u,onChange:m,schema:i,disabled:j}))}}_o()(JsonSchemaForm,\"defaultProps\",hI);class JsonSchema_string extends He.Component{constructor(){super(...arguments),_o()(this,\"onChange\",(i=>{const s=this.props.schema&&\"file\"===this.props.schema.get(\"type\")?i.target.files[0]:i.target.value;this.props.onChange(s,this.props.keyName)})),_o()(this,\"onEnumChange\",(i=>this.props.onChange(i)))}render(){let{getComponent:i,value:s,schema:u,errors:m,required:v,description:_,disabled:j}=this.props;const M=u&&u.get?u.get(\"enum\"):null,$=u&&u.get?u.get(\"format\"):null,W=u&&u.get?u.get(\"type\"):null,X=u&&u.get?u.get(\"in\"):null;if(s||(s=\"\"),m=m.toJS?m.toJS():[],M){const u=i(\"Select\");return He.createElement(u,{className:m.length?\"invalid\":\"\",title:m.length?m:\"\",allowedValues:[...M],value:s,allowEmptyValue:!v,disabled:j,onChange:this.onEnumChange})}const Y=j||X&&\"formData\"===X&&!(\"FormData\"in window),Z=i(\"Input\");return W&&\"file\"===W?He.createElement(Z,{type:\"file\",className:m.length?\"invalid\":\"\",title:m.length?m:\"\",onChange:this.onChange,disabled:Y}):He.createElement(pI(),{type:$&&\"password\"===$?\"password\":\"text\",className:m.length?\"invalid\":\"\",title:m.length?m:\"\",value:s,minLength:0,debounceTimeout:350,placeholder:_,onChange:this.onChange,disabled:Y})}}_o()(JsonSchema_string,\"defaultProps\",hI);class JsonSchema_array extends He.PureComponent{constructor(i,s){super(i,s),_o()(this,\"onChange\",(()=>{this.props.onChange(this.state.value)})),_o()(this,\"onItemChange\",((i,s)=>{this.setState((u=>{let{value:m}=u;return{value:m.set(s,i)}}),this.onChange)})),_o()(this,\"removeItem\",(i=>{this.setState((s=>{let{value:u}=s;return{value:u.delete(i)}}),this.onChange)})),_o()(this,\"addItem\",(()=>{const{fn:i}=this.props;let s=valueOrEmptyList(this.state.value);this.setState((()=>({value:s.push(i.getSampleSchema(this.state.schema.get(\"items\"),!1,{includeWriteOnly:!0}))})),this.onChange)})),_o()(this,\"onEnumChange\",(i=>{this.setState((()=>({value:i})),this.onChange)})),this.state={value:valueOrEmptyList(i.value),schema:i.schema}}UNSAFE_componentWillReceiveProps(i){const s=valueOrEmptyList(i.value);s!==this.state.value&&this.setState({value:s}),i.schema!==this.state.schema&&this.setState({schema:i.schema})}render(){let{getComponent:i,required:s,schema:u,errors:m,fn:v,disabled:_}=this.props;m=m.toJS?m.toJS():Array.isArray(m)?m:[];const j=m.filter((i=>\"string\"==typeof i)),M=m.filter((i=>void 0!==i.needRemove)).map((i=>i.error)),$=this.state.value,W=!!($&&$.count&&$.count()>0),X=u.getIn([\"items\",\"enum\"]),Y=u.getIn([\"items\",\"type\"]),Z=u.getIn([\"items\",\"format\"]),ee=u.get(\"items\");let ie,ae=!1,ce=\"file\"===Y||\"string\"===Y&&\"binary\"===Z;if(Y&&Z?ie=i(`JsonSchema_${Y}_${Z}`):\"boolean\"!==Y&&\"array\"!==Y&&\"object\"!==Y||(ie=i(`JsonSchema_${Y}`)),ie||ce||(ae=!0),X){const u=i(\"Select\");return He.createElement(u,{className:m.length?\"invalid\":\"\",title:m.length?m:\"\",multiple:!0,value:$,disabled:_,allowedValues:X,allowEmptyValue:!s,onChange:this.onEnumChange})}const le=i(\"Button\");return He.createElement(\"div\",{className:\"json-schema-array\"},W?$.map(((s,u)=>{const j=(0,et.fromJS)([...m.filter((i=>i.index===u)).map((i=>i.error))]);return He.createElement(\"div\",{key:u,className:\"json-schema-form-item\"},ce?He.createElement(JsonSchemaArrayItemFile,{value:s,onChange:i=>this.onItemChange(i,u),disabled:_,errors:j,getComponent:i}):ae?He.createElement(JsonSchemaArrayItemText,{value:s,onChange:i=>this.onItemChange(i,u),disabled:_,errors:j}):He.createElement(ie,No()({},this.props,{value:s,onChange:i=>this.onItemChange(i,u),disabled:_,errors:j,schema:ee,getComponent:i,fn:v})),_?null:He.createElement(le,{className:`btn btn-sm json-schema-form-item-remove ${M.length?\"invalid\":null}`,title:M.length?M:\"\",onClick:()=>this.removeItem(u)},\" - \"))})):null,_?null:He.createElement(le,{className:`btn btn-sm json-schema-form-item-add ${j.length?\"invalid\":null}`,title:j.length?j:\"\",onClick:this.addItem},\"Add \",Y?`${Y} `:\"\",\"item\"))}}_o()(JsonSchema_array,\"defaultProps\",hI);class JsonSchemaArrayItemText extends He.Component{constructor(){super(...arguments),_o()(this,\"onChange\",(i=>{const s=i.target.value;this.props.onChange(s,this.props.keyName)}))}render(){let{value:i,errors:s,description:u,disabled:m}=this.props;return i||(i=\"\"),s=s.toJS?s.toJS():[],He.createElement(pI(),{type:\"text\",className:s.length?\"invalid\":\"\",title:s.length?s:\"\",value:i,minLength:0,debounceTimeout:350,placeholder:u,onChange:this.onChange,disabled:m})}}_o()(JsonSchemaArrayItemText,\"defaultProps\",hI);class JsonSchemaArrayItemFile extends He.Component{constructor(){super(...arguments),_o()(this,\"onFileChange\",(i=>{const s=i.target.files[0];this.props.onChange(s,this.props.keyName)}))}render(){let{getComponent:i,errors:s,disabled:u}=this.props;const m=i(\"Input\"),v=u||!(\"FormData\"in window);return He.createElement(m,{type:\"file\",className:s.length?\"invalid\":\"\",title:s.length?s:\"\",onChange:this.onFileChange,disabled:v})}}_o()(JsonSchemaArrayItemFile,\"defaultProps\",hI);class JsonSchema_boolean extends He.Component{constructor(){super(...arguments),_o()(this,\"onEnumChange\",(i=>this.props.onChange(i)))}render(){let{getComponent:i,value:s,errors:u,schema:m,required:v,disabled:_}=this.props;u=u.toJS?u.toJS():[];let j=m&&m.get?m.get(\"enum\"):null,M=!j||!v,$=!j&&[\"true\",\"false\"];const W=i(\"Select\");return He.createElement(W,{className:u.length?\"invalid\":\"\",title:u.length?u:\"\",value:String(s),disabled:_,allowedValues:j?[...j]:$,allowEmptyValue:M,onChange:this.onEnumChange})}}_o()(JsonSchema_boolean,\"defaultProps\",hI);const stringifyObjectErrors=i=>i.map((i=>{const s=void 0!==i.propKey?i.propKey:i.index;let u=\"string\"==typeof i?i:\"string\"==typeof i.error?i.error:null;if(!s&&u)return u;let m=i.error,v=`/${i.propKey}`;for(;\"object\"==typeof m;){const i=void 0!==m.propKey?m.propKey:m.index;if(void 0===i)break;if(v+=`/${i}`,!m.error)break;m=m.error}return`${v}: ${m}`}));class JsonSchema_object extends He.PureComponent{constructor(){super(),_o()(this,\"onChange\",(i=>{this.props.onChange(i)})),_o()(this,\"handleOnChange\",(i=>{const s=i.target.value;this.onChange(s)}))}render(){let{getComponent:i,value:s,errors:u,disabled:m}=this.props;const v=i(\"TextArea\");return u=u.toJS?u.toJS():Array.isArray(u)?u:[],He.createElement(\"div\",null,He.createElement(v,{className:CC()({invalid:u.length}),title:u.length?stringifyObjectErrors(u).join(\", \"):\"\",value:stringify(s),disabled:m,onChange:this.handleOnChange}))}}function valueOrEmptyList(i){return et.List.isList(i)?i:Array.isArray(i)?(0,et.fromJS)(i):(0,et.List)()}_o()(JsonSchema_object,\"defaultProps\",hI);const json_schema_components=()=>({components:rr()({},Pe)}),base=()=>[configsPlugin,util,logs,view,plugins_spec,err,icons,plugins_layout,json_schema_5_samples,core_components,form_components,swagger_client,json_schema_components,auth,downloadUrlPlugin,deep_linking,filter,on_complete,plugins_request_snippets,safe_render()],dI=(0,et.Map)();function onlyOAS3(i){return(s,u)=>function(){if(u.getSystem().specSelectors.isOAS3()){const s=i(...arguments);return\"function\"==typeof s?s(u):s}return s(...arguments)}}const fI=onlyOAS3(Xt((()=>null))),mI=onlyOAS3((()=>i=>{const s=i.getSystem().specSelectors.specJson().getIn([\"components\",\"schemas\"]);return et.Map.isMap(s)?s:dI})),yI=onlyOAS3((()=>i=>i.getSystem().specSelectors.specJson().hasIn([\"servers\",0]))),gI=onlyOAS3(Xt(cs,(i=>i.getIn([\"components\",\"securitySchemes\"])||null))),wrap_selectors_validOperationMethods=(i,s)=>function(u){if(s.specSelectors.isOAS3())return s.oas3Selectors.validOperationMethods();for(var m=arguments.length,v=new Array(m>1?m-1:0),_=1;_<m;_++)v[_-1]=arguments[_];return i(...v)},vI=fI,bI=fI,_I=fI,wI=fI,EI=fI;const SI=function wrap_selectors_onlyOAS3(i){return(s,u)=>function(){for(var m=arguments.length,v=new Array(m),_=0;_<m;_++)v[_]=arguments[_];if(u.getSystem().specSelectors.isOAS3()){let s=u.getState().getIn([\"spec\",\"resolvedSubtrees\",\"components\",\"securitySchemes\"]);return i(u,s,...v)}return s(...v)}}(Xt((i=>i),(i=>{let{specSelectors:s}=i;return s.securityDefinitions()}),((i,s)=>{let u=(0,et.List)();return s?(s.entrySeq().forEach((i=>{let[s,m]=i;const v=m.get(\"type\");if(\"oauth2\"===v&&m.get(\"flows\").entrySeq().forEach((i=>{let[v,_]=i,j=(0,et.fromJS)({flow:v,authorizationUrl:_.get(\"authorizationUrl\"),tokenUrl:_.get(\"tokenUrl\"),scopes:_.get(\"scopes\"),type:m.get(\"type\"),description:m.get(\"description\")});u=u.push(new et.Map({[s]:j.filter((i=>void 0!==i))}))})),\"http\"!==v&&\"apiKey\"!==v||(u=u.push(new et.Map({[s]:m}))),\"openIdConnect\"===v&&m.get(\"openIdConnectData\")){let i=m.get(\"openIdConnectData\");(i.get(\"grant_types_supported\")||[\"authorization_code\",\"implicit\"]).forEach((v=>{let _=i.get(\"scopes_supported\")&&i.get(\"scopes_supported\").reduce(((i,s)=>i.set(s,\"\")),new et.Map),j=(0,et.fromJS)({flow:v,authorizationUrl:i.get(\"authorization_endpoint\"),tokenUrl:i.get(\"token_endpoint\"),scopes:_,type:\"oauth2\",openIdConnectUrl:m.get(\"openIdConnectUrl\")});u=u.push(new et.Map({[s]:j.filter((i=>void 0!==i))}))}))}})),u):u})));function OAS3ComponentWrapFactory(i){return(s,u)=>m=>{var v;return\"function\"==typeof(null===(v=u.specSelectors)||void 0===v?void 0:v.isOAS3)?u.specSelectors.isOAS3()?He.createElement(i,No()({},m,u,{Ori:s})):He.createElement(s,m):(console.warn(\"OAS3 wrapper: couldn't get spec\"),null)}}const xI=(0,et.Map)(),selectors_isSwagger2=()=>i=>function isSwagger2(i){const s=i.get(\"swagger\");return\"string\"==typeof s&&\"2.0\"===s}(i.getSystem().specSelectors.specJson()),selectors_isOAS30=()=>i=>function isOAS30(i){const s=i.get(\"openapi\");return\"string\"==typeof s&&/^3\\.0\\.([0123])(?:-rc[012])?$/.test(s)}(i.getSystem().specSelectors.specJson()),selectors_isOAS3=()=>i=>i.getSystem().specSelectors.isOAS30();function selectors_onlyOAS3(i){return function(s){for(var u=arguments.length,m=new Array(u>1?u-1:0),v=1;v<u;v++)m[v-1]=arguments[v];return u=>{if(u.specSelectors.isOAS3()){const v=i(s,...m);return\"function\"==typeof v?v(u):v}return null}}}const OI=selectors_onlyOAS3((()=>i=>i.specSelectors.specJson().get(\"servers\",xI))),kI=selectors_onlyOAS3(((i,s)=>{let{callbacks:u,specPath:m}=s;return i=>{const s=i.specSelectors.validOperationMethods();return et.Map.isMap(u)?u.reduce(((i,u,v)=>et.Map.isMap(u)?u.reduce(((i,u,_)=>{if(!et.Map.isMap(u))return i;const j=u.entrySeq().filter((i=>{let[u]=i;return s.includes(u)})).map((i=>{let[s,u]=i;return{operation:(0,et.Map)({operation:u}),method:s,path:_,callbackName:v,specPath:m.concat([v,_,s])}}));return i.concat(j)}),(0,et.List)()):i),(0,et.List)()).groupBy((i=>i.callbackName)).map((i=>i.toArray())).toObject():{}}})),callbacks=i=>{let{callbacks:s,specPath:u,specSelectors:m,getComponent:v}=i;const _=m.callbacksOperations({callbacks:s,specPath:u}),j=Object.keys(_),M=v(\"OperationContainer\",!0);return 0===j.length?He.createElement(\"span\",null,\"No callbacks\"):He.createElement(\"div\",null,j.map((i=>He.createElement(\"div\",{key:`${i}`},He.createElement(\"h2\",null,i),_[i].map((s=>He.createElement(M,{key:`${i}-${s.path}-${s.method}`,op:s.operation,tag:\"callbacks\",method:s.method,path:s.path,specPath:s.specPath,allowTryItOut:!1})))))))},getDefaultRequestBodyValue=(i,s,u,m)=>{var v;const _=null!==(v=i.getIn([\"content\",s]))&&void 0!==v?v:(0,et.OrderedMap)(),j=_.get(\"schema\",(0,et.OrderedMap)()).toJS(),M=void 0!==_.get(\"examples\"),$=_.get(\"example\"),W=M?_.getIn([\"examples\",u,\"value\"]):$;return stringify(m.getSampleSchema(j,s,{includeWriteOnly:!0},W))},components_request_body=i=>{var s,u,m;let{userHasEditedBody:v,requestBody:_,requestBodyValue:j,requestBodyInclusionSetting:M,requestBodyErrors:$,getComponent:W,getConfigs:X,specSelectors:Y,fn:Z,contentType:ee,isExecute:ie,specPath:ae,onChange:ce,onChangeIncludeEmpty:le,activeExamplesKey:pe,updateActiveExamplesKey:de,setRetainRequestBodyValueFlag:fe}=i;const handleFile=i=>{ce(i.target.files[0])},setIsIncludedOptions=i=>{let s={key:i,shouldDispatchInit:!1,defaultValue:!0};return\"no value\"===M.get(i,\"no value\")&&(s.shouldDispatchInit=!0),s},ye=W(\"Markdown\",!0),be=W(\"modelExample\"),_e=W(\"RequestBodyEditor\"),we=W(\"highlightCode\"),Se=W(\"ExamplesSelectValueRetainer\"),xe=W(\"Example\"),Pe=W(\"ParameterIncludeEmpty\"),{showCommonExtensions:Ie}=X(),Te=null!==(s=null==_?void 0:_.get(\"description\"))&&void 0!==s?s:null,Re=null!==(u=null==_?void 0:_.get(\"content\"))&&void 0!==u?u:new et.OrderedMap;ee=ee||Re.keySeq().first()||\"\";const qe=null!==(m=Re.get(ee))&&void 0!==m?m:(0,et.OrderedMap)(),ze=qe.get(\"schema\",(0,et.OrderedMap)()),Ve=qe.get(\"examples\",null),We=null==Ve?void 0:Ve.map(((i,s)=>{var u;const m=null===(u=i)||void 0===u?void 0:u.get(\"value\",null);return m&&(i=i.set(\"value\",getDefaultRequestBodyValue(_,ee,s,Z),m)),i}));if($=et.List.isList($)?$:(0,et.List)(),!qe.size)return null;const Xe=\"object\"===qe.getIn([\"schema\",\"type\"]),Ye=\"binary\"===qe.getIn([\"schema\",\"format\"]),Qe=\"base64\"===qe.getIn([\"schema\",\"format\"]);if(\"application/octet-stream\"===ee||0===ee.indexOf(\"image/\")||0===ee.indexOf(\"audio/\")||0===ee.indexOf(\"video/\")||Ye||Qe){const i=W(\"Input\");return ie?He.createElement(i,{type:\"file\",onChange:handleFile}):He.createElement(\"i\",null,\"Example values are not available for \",He.createElement(\"code\",null,ee),\" media types.\")}if(Xe&&(\"application/x-www-form-urlencoded\"===ee||0===ee.indexOf(\"multipart/\"))&&ze.get(\"properties\",(0,et.OrderedMap)()).size>0){const i=W(\"JsonSchemaForm\"),s=W(\"ParameterExt\"),u=ze.get(\"properties\",(0,et.OrderedMap)());return j=et.Map.isMap(j)?j:(0,et.OrderedMap)(),He.createElement(\"div\",{className:\"table-container\"},Te&&He.createElement(ye,{source:Te}),He.createElement(\"table\",null,He.createElement(\"tbody\",null,et.Map.isMap(u)&&u.entrySeq().map((u=>{let[m,v]=u;if(v.get(\"readOnly\"))return;let _=Ie?getCommonExtensions(v):null;const X=ze.get(\"required\",(0,et.List)()).includes(m),Y=v.get(\"type\"),ee=v.get(\"format\"),ae=v.get(\"description\"),pe=j.getIn([m,\"value\"]),de=j.getIn([m,\"errors\"])||$,fe=M.get(m)||!1,be=v.has(\"default\")||v.has(\"example\")||v.hasIn([\"items\",\"example\"])||v.hasIn([\"items\",\"default\"]),_e=v.has(\"enum\")&&(1===v.get(\"enum\").size||X),we=be||_e;let Se=\"\";\"array\"!==Y||we||(Se=[]),(\"object\"===Y||we)&&(Se=Z.getSampleSchema(v,!1,{includeWriteOnly:!0})),\"string\"!=typeof Se&&\"object\"===Y&&(Se=stringify(Se)),\"string\"==typeof Se&&\"array\"===Y&&(Se=JSON.parse(Se));const xe=\"string\"===Y&&(\"binary\"===ee||\"base64\"===ee);return He.createElement(\"tr\",{key:m,className:\"parameters\",\"data-property-name\":m},He.createElement(\"td\",{className:\"parameters-col_name\"},He.createElement(\"div\",{className:X?\"parameter__name required\":\"parameter__name\"},m,X?He.createElement(\"span\",null,\" *\"):null),He.createElement(\"div\",{className:\"parameter__type\"},Y,ee&&He.createElement(\"span\",{className:\"prop-format\"},\"($\",ee,\")\"),Ie&&_.size?_.entrySeq().map((i=>{let[u,m]=i;return He.createElement(s,{key:`${u}-${m}`,xKey:u,xVal:m})})):null),He.createElement(\"div\",{className:\"parameter__deprecated\"},v.get(\"deprecated\")?\"deprecated\":null)),He.createElement(\"td\",{className:\"parameters-col_description\"},He.createElement(ye,{source:ae}),ie?He.createElement(\"div\",null,He.createElement(i,{fn:Z,dispatchInitialValue:!xe,schema:v,description:m,getComponent:W,value:void 0===pe?Se:pe,required:X,errors:de,onChange:i=>{ce(i,[m])}}),X?null:He.createElement(Pe,{onChange:i=>le(m,i),isIncluded:fe,isIncludedOptions:setIsIncludedOptions(m),isDisabled:Array.isArray(pe)?0!==pe.length:!isEmptyValue(pe)})):null))})))))}const tt=getDefaultRequestBodyValue(_,ee,pe,Z);let rt=null;return getKnownSyntaxHighlighterLanguage(tt)&&(rt=\"json\"),He.createElement(\"div\",null,Te&&He.createElement(ye,{source:Te}),We?He.createElement(Se,{userHasEditedBody:v,examples:We,currentKey:pe,currentUserInputValue:j,onSelect:i=>{de(i)},updateValue:ce,defaultToFirstExample:!0,getComponent:W,setRetainRequestBodyValueFlag:fe}):null,ie?He.createElement(\"div\",null,He.createElement(_e,{value:j,errors:$,defaultValue:tt,onChange:ce,getComponent:W})):He.createElement(be,{getComponent:W,getConfigs:X,specSelectors:Y,expandDepth:1,isExecute:ie,schema:qe.get(\"schema\"),specPath:ae.push(\"content\",ee),example:He.createElement(we,{className:\"body-param__example\",getConfigs:X,language:rt,value:stringify(j)||tt}),includeWriteOnly:!0}),We?He.createElement(xe,{example:We.get(pe),getComponent:W,getConfigs:X}):null)};class operation_link_OperationLink extends He.Component{render(){const{link:i,name:s,getComponent:u}=this.props,m=u(\"Markdown\",!0);let v=i.get(\"operationId\")||i.get(\"operationRef\"),_=i.get(\"parameters\")&&i.get(\"parameters\").toJS(),j=i.get(\"description\");return He.createElement(\"div\",{className:\"operation-link\"},He.createElement(\"div\",{className:\"description\"},He.createElement(\"b\",null,He.createElement(\"code\",null,s)),j?He.createElement(m,{source:j}):null),He.createElement(\"pre\",null,\"Operation `\",v,\"`\",He.createElement(\"br\",null),He.createElement(\"br\",null),\"Parameters \",function padString(i,s){if(\"string\"!=typeof s)return\"\";return s.split(\"\\n\").map(((s,u)=>u>0?Array(i+1).join(\" \")+s:s)).join(\"\\n\")}(0,JSON.stringify(_,null,2))||\"{}\",He.createElement(\"br\",null)))}}const AI=operation_link_OperationLink;class servers_Servers extends He.Component{constructor(){super(...arguments),_o()(this,\"onServerChange\",(i=>{this.setServer(i.target.value)})),_o()(this,\"onServerVariableValueChange\",(i=>{let{setServerVariableValue:s,currentServer:u}=this.props,m=i.target.getAttribute(\"data-variable\"),v=i.target.value;\"function\"==typeof s&&s({server:u,key:m,val:v})})),_o()(this,\"setServer\",(i=>{let{setSelectedServer:s}=this.props;s(i)}))}componentDidMount(){var i;let{servers:s,currentServer:u}=this.props;u||this.setServer(null===(i=s.first())||void 0===i?void 0:i.get(\"url\"))}UNSAFE_componentWillReceiveProps(i){let{servers:s,setServerVariableValue:u,getServerVariable:m}=i;if(this.props.currentServer!==i.currentServer||this.props.servers!==i.servers){let v=s.find((s=>s.get(\"url\")===i.currentServer)),_=this.props.servers.find((i=>i.get(\"url\")===this.props.currentServer))||(0,et.OrderedMap)();if(!v)return this.setServer(s.first().get(\"url\"));let j=((_.get(\"variables\")||(0,et.OrderedMap)()).find((i=>i.get(\"default\")))||(0,et.OrderedMap)()).get(\"default\"),M=v.get(\"variables\")||(0,et.OrderedMap)(),$=(M.find((i=>i.get(\"default\")))||(0,et.OrderedMap)()).get(\"default\");M.map(((s,v)=>{m(i.currentServer,v)&&j===$||u({server:i.currentServer,key:v,val:s.get(\"default\")||\"\"})}))}}render(){let{servers:i,currentServer:s,getServerVariable:u,getEffectiveServerValue:m}=this.props,v=(i.find((i=>i.get(\"url\")===s))||(0,et.OrderedMap)()).get(\"variables\")||(0,et.OrderedMap)(),_=0!==v.size;return He.createElement(\"div\",{className:\"servers\"},He.createElement(\"label\",{htmlFor:\"servers\"},He.createElement(\"select\",{onChange:this.onServerChange,value:s},i.valueSeq().map((i=>He.createElement(\"option\",{value:i.get(\"url\"),key:i.get(\"url\")},i.get(\"url\"),i.get(\"description\")&&` - ${i.get(\"description\")}`))).toArray())),_?He.createElement(\"div\",null,He.createElement(\"div\",{className:\"computed-url\"},\"Computed URL:\",He.createElement(\"code\",null,m(s))),He.createElement(\"h4\",null,\"Server variables\"),He.createElement(\"table\",null,He.createElement(\"tbody\",null,v.entrySeq().map((i=>{let[m,v]=i;return He.createElement(\"tr\",{key:m},He.createElement(\"td\",null,m),He.createElement(\"td\",null,v.get(\"enum\")?He.createElement(\"select\",{\"data-variable\":m,onChange:this.onServerVariableValueChange},v.get(\"enum\").map((i=>He.createElement(\"option\",{selected:i===u(s,m),key:i,value:i},i)))):He.createElement(\"input\",{type:\"text\",value:u(s,m)||\"\",onChange:this.onServerVariableValueChange,\"data-variable\":m})))}))))):null)}}class ServersContainer extends He.Component{render(){const{specSelectors:i,oas3Selectors:s,oas3Actions:u,getComponent:m}=this.props,v=i.servers(),_=m(\"Servers\");return v&&v.size?He.createElement(\"div\",null,He.createElement(\"span\",{className:\"servers-title\"},\"Servers\"),He.createElement(_,{servers:v,currentServer:s.selectedServer(),setSelectedServer:u.setSelectedServer,setServerVariableValue:u.setServerVariableValue,getServerVariable:s.serverVariableValue,getEffectiveServerValue:s.serverEffectiveValue})):null}}const CI=Function.prototype;class RequestBodyEditor extends He.PureComponent{constructor(i,s){super(i,s),_o()(this,\"applyDefaultValue\",(i=>{const{onChange:s,defaultValue:u}=i||this.props;return this.setState({value:u}),s(u)})),_o()(this,\"onChange\",(i=>{this.props.onChange(stringify(i))})),_o()(this,\"onDomChange\",(i=>{const s=i.target.value;this.setState({value:s},(()=>this.onChange(s)))})),this.state={value:stringify(i.value)||i.defaultValue},i.onChange(i.value)}UNSAFE_componentWillReceiveProps(i){this.props.value!==i.value&&i.value!==this.state.value&&this.setState({value:stringify(i.value)}),!i.value&&i.defaultValue&&this.state.value&&this.applyDefaultValue(i)}render(){let{getComponent:i,errors:s}=this.props,{value:u}=this.state,m=s.size>0;const v=i(\"TextArea\");return He.createElement(\"div\",{className:\"body-param\"},He.createElement(v,{className:CC()(\"body-param__text\",{invalid:m}),title:s.size?s.join(\", \"):\"\",value:u,onChange:this.onDomChange}))}}_o()(RequestBodyEditor,\"defaultProps\",{onChange:CI,userHasEditedBody:!1});class HttpAuth extends He.Component{constructor(i,s){super(i,s),_o()(this,\"onChange\",(i=>{let{onChange:s}=this.props,{value:u,name:m}=i.target,v=Object.assign({},this.state.value);m?v[m]=u:v=u,this.setState({value:v},(()=>s(this.state)))}));let{name:u,schema:m}=this.props,v=this.getValue();this.state={name:u,schema:m,value:v}}getValue(){let{name:i,authorized:s}=this.props;return s&&s.getIn([i,\"value\"])}render(){let{schema:i,getComponent:s,errSelectors:u,name:m}=this.props;const v=s(\"Input\"),_=s(\"Row\"),j=s(\"Col\"),M=s(\"authError\"),$=s(\"Markdown\",!0),W=s(\"JumpToPath\",!0),X=(i.get(\"scheme\")||\"\").toLowerCase();let Y=this.getValue(),Z=u.allErrors().filter((i=>i.get(\"authId\")===m));if(\"basic\"===X){let s=Y?Y.get(\"username\"):null;return He.createElement(\"div\",null,He.createElement(\"h4\",null,He.createElement(\"code\",null,m||i.get(\"name\")),\"  (http, Basic)\",He.createElement(W,{path:[\"securityDefinitions\",m]})),s&&He.createElement(\"h6\",null,\"Authorized\"),He.createElement(_,null,He.createElement($,{source:i.get(\"description\")})),He.createElement(_,null,He.createElement(\"label\",null,\"Username:\"),s?He.createElement(\"code\",null,\" \",s,\" \"):He.createElement(j,null,He.createElement(v,{type:\"text\",required:\"required\",name:\"username\",\"aria-label\":\"auth-basic-username\",onChange:this.onChange,autoFocus:!0}))),He.createElement(_,null,He.createElement(\"label\",null,\"Password:\"),s?He.createElement(\"code\",null,\" ****** \"):He.createElement(j,null,He.createElement(v,{autoComplete:\"new-password\",name:\"password\",type:\"password\",\"aria-label\":\"auth-basic-password\",onChange:this.onChange}))),Z.valueSeq().map(((i,s)=>He.createElement(M,{error:i,key:s}))))}return\"bearer\"===X?He.createElement(\"div\",null,He.createElement(\"h4\",null,He.createElement(\"code\",null,m||i.get(\"name\")),\"  (http, Bearer)\",He.createElement(W,{path:[\"securityDefinitions\",m]})),Y&&He.createElement(\"h6\",null,\"Authorized\"),He.createElement(_,null,He.createElement($,{source:i.get(\"description\")})),He.createElement(_,null,He.createElement(\"label\",null,\"Value:\"),Y?He.createElement(\"code\",null,\" ****** \"):He.createElement(j,null,He.createElement(v,{type:\"text\",\"aria-label\":\"auth-bearer-value\",onChange:this.onChange,autoFocus:!0}))),Z.valueSeq().map(((i,s)=>He.createElement(M,{error:i,key:s})))):He.createElement(\"div\",null,He.createElement(\"em\",null,He.createElement(\"b\",null,m),\" HTTP authentication: unsupported scheme \",`'${X}'`))}}class operation_servers_OperationServers extends He.Component{constructor(){super(...arguments),_o()(this,\"setSelectedServer\",(i=>{const{path:s,method:u}=this.props;return this.forceUpdate(),this.props.setSelectedServer(i,`${s}:${u}`)})),_o()(this,\"setServerVariableValue\",(i=>{const{path:s,method:u}=this.props;return this.forceUpdate(),this.props.setServerVariableValue(rr()(rr()({},i),{},{namespace:`${s}:${u}`}))})),_o()(this,\"getSelectedServer\",(()=>{const{path:i,method:s}=this.props;return this.props.getSelectedServer(`${i}:${s}`)})),_o()(this,\"getServerVariable\",((i,s)=>{const{path:u,method:m}=this.props;return this.props.getServerVariable({namespace:`${u}:${m}`,server:i},s)})),_o()(this,\"getEffectiveServerValue\",(i=>{const{path:s,method:u}=this.props;return this.props.getEffectiveServerValue({server:i,namespace:`${s}:${u}`})}))}render(){const{operationServers:i,pathServers:s,getComponent:u}=this.props;if(!i&&!s)return null;const m=u(\"Servers\"),v=i||s,_=i?\"operation\":\"path\";return He.createElement(\"div\",{className:\"opblock-section operation-servers\"},He.createElement(\"div\",{className:\"opblock-section-header\"},He.createElement(\"div\",{className:\"tab-header\"},He.createElement(\"h4\",{className:\"opblock-title\"},\"Servers\"))),He.createElement(\"div\",{className:\"opblock-description-wrapper\"},He.createElement(\"h4\",{className:\"message\"},\"These \",_,\"-level options override the global server options.\"),He.createElement(m,{servers:v,currentServer:this.getSelectedServer(),setSelectedServer:this.setSelectedServer,setServerVariableValue:this.setServerVariableValue,getServerVariable:this.getServerVariable,getEffectiveServerValue:this.getEffectiveServerValue})))}}const jI={Callbacks:callbacks,HttpAuth,RequestBody:components_request_body,Servers:servers_Servers,ServersContainer,RequestBodyEditor,OperationServers:operation_servers_OperationServers,operationLink:AI},PI=new Remarkable(\"commonmark\");PI.block.ruler.enable([\"table\"]),PI.set({linkTarget:\"_blank\"});const markdown_Markdown=i=>{let{source:s,className:u=\"\",getConfigs:m}=i;if(\"string\"!=typeof s)return null;if(s){const{useUnsafeMarkdown:i}=m(),v=sanitizer(PI.render(s),{useUnsafeMarkdown:i});let _;return\"string\"==typeof v&&(_=v.trim()),He.createElement(\"div\",{dangerouslySetInnerHTML:{__html:_},className:CC()(u,\"renderedMarkdown\")})}return null};markdown_Markdown.defaultProps={getConfigs:()=>({useUnsafeMarkdown:!1})};const II=OAS3ComponentWrapFactory(markdown_Markdown),NI=[\"Ori\"],TI=OAS3ComponentWrapFactory((i=>{let{Ori:s}=i,u=Mo()(i,NI);const{schema:m,getComponent:v,errSelectors:_,authorized:j,onAuthChange:M,name:$}=u,W=v(\"HttpAuth\");return\"http\"===m.get(\"type\")?He.createElement(W,{key:$,schema:m,name:$,errSelectors:_,authorized:j,getComponent:v,onChange:M}):He.createElement(s,u)})),MI=OAS3ComponentWrapFactory(OnlineValidatorBadge);class ModelComponent extends He.Component{render(){let{getConfigs:i,schema:s}=this.props,u=[\"model-box\"],m=null;return!0===s.get(\"deprecated\")&&(u.push(\"deprecated\"),m=He.createElement(\"span\",{className:\"model-deprecated-warning\"},\"Deprecated:\")),He.createElement(\"div\",{className:u.join(\" \")},m,He.createElement(Model,No()({},this.props,{getConfigs:i,depth:1,expandDepth:this.props.expandDepth||0})))}}const RI=OAS3ComponentWrapFactory(ModelComponent),DI=[\"Ori\"],BI=OAS3ComponentWrapFactory((i=>{let{Ori:s}=i,u=Mo()(i,DI);const{schema:m,getComponent:v,errors:_,onChange:j}=u,M=m&&m.get?m.get(\"format\"):null,$=m&&m.get?m.get(\"type\"):null,W=v(\"Input\");return $&&\"string\"===$&&M&&(\"binary\"===M||\"base64\"===M)?He.createElement(W,{type:\"file\",className:_.length?\"invalid\":\"\",title:_.length?_:\"\",onChange:i=>{j(i.target.files[0])},disabled:s.isDisabled}):He.createElement(s,u)})),LI=function OAS30ComponentWrapFactory(i){return(s,u)=>m=>{var v;return\"function\"==typeof(null===(v=u.specSelectors)||void 0===v?void 0:v.isOAS30)?u.specSelectors.isOAS30()?He.createElement(i,No()({},m,u,{Ori:s})):He.createElement(s,m):(console.warn(\"OAS30 wrapper: couldn't get spec\"),null)}}((i=>{const{Ori:s}=i;return He.createElement(s,{oasVersion:\"3.0\"})})),FI={Markdown:II,AuthItem:TI,OpenAPIVersion:LI,JsonSchema_string:BI,model:RI,onlineValidatorBadge:MI},qI=\"oas3_set_servers\",$I=\"oas3_set_request_body_value\",UI=\"oas3_set_request_body_retain_flag\",zI=\"oas3_set_request_body_inclusion\",VI=\"oas3_set_active_examples_member\",WI=\"oas3_set_request_content_type\",KI=\"oas3_set_response_content_type\",HI=\"oas3_set_server_variable_value\",JI=\"oas3_set_request_body_validate_error\",GI=\"oas3_clear_request_body_validate_error\",XI=\"oas3_clear_request_body_value\";function setSelectedServer(i,s){return{type:qI,payload:{selectedServerUrl:i,namespace:s}}}function setRequestBodyValue(i){let{value:s,pathMethod:u}=i;return{type:$I,payload:{value:s,pathMethod:u}}}const setRetainRequestBodyValueFlag=i=>{let{value:s,pathMethod:u}=i;return{type:UI,payload:{value:s,pathMethod:u}}};function setRequestBodyInclusion(i){let{value:s,pathMethod:u,name:m}=i;return{type:zI,payload:{value:s,pathMethod:u,name:m}}}function setActiveExamplesMember(i){let{name:s,pathMethod:u,contextType:m,contextName:v}=i;return{type:VI,payload:{name:s,pathMethod:u,contextType:m,contextName:v}}}function setRequestContentType(i){let{value:s,pathMethod:u}=i;return{type:WI,payload:{value:s,pathMethod:u}}}function setResponseContentType(i){let{value:s,path:u,method:m}=i;return{type:KI,payload:{value:s,path:u,method:m}}}function setServerVariableValue(i){let{server:s,namespace:u,key:m,val:v}=i;return{type:HI,payload:{server:s,namespace:u,key:m,val:v}}}const setRequestBodyValidateError=i=>{let{path:s,method:u,validationErrors:m}=i;return{type:JI,payload:{path:s,method:u,validationErrors:m}}},clearRequestBodyValidateError=i=>{let{path:s,method:u}=i;return{type:GI,payload:{path:s,method:u}}},initRequestBodyValidateError=i=>{let{pathMethod:s}=i;return{type:GI,payload:{path:s[0],method:s[1]}}},clearRequestBodyValue=i=>{let{pathMethod:s}=i;return{type:XI,payload:{pathMethod:s}}},oas3_selectors_onlyOAS3=i=>function(s){for(var u=arguments.length,m=new Array(u>1?u-1:0),v=1;v<u;v++)m[v-1]=arguments[v];return u=>{if(u.getSystem().specSelectors.isOAS3()){const v=i(s,...m);return\"function\"==typeof v?v(u):v}return null}};const YI=oas3_selectors_onlyOAS3(((i,s)=>{const u=s?[s,\"selectedServer\"]:[\"selectedServer\"];return i.getIn(u)||\"\"})),QI=oas3_selectors_onlyOAS3(((i,s,u)=>i.getIn([\"requestData\",s,u,\"bodyValue\"])||null)),ZI=oas3_selectors_onlyOAS3(((i,s,u)=>i.getIn([\"requestData\",s,u,\"retainBodyValue\"])||!1)),selectDefaultRequestBodyValue=(i,s,u)=>i=>{const{oas3Selectors:m,specSelectors:v,fn:_}=i.getSystem();if(v.isOAS3()){const i=m.requestContentType(s,u);if(i)return getDefaultRequestBodyValue(v.specResolvedSubtree([\"paths\",s,u,\"requestBody\"]),i,m.activeExamplesMember(s,u,\"requestBody\",\"requestBody\"),_)}return null},eN=oas3_selectors_onlyOAS3(((i,s,u)=>i=>{const{oas3Selectors:m,specSelectors:v,fn:_}=i;let j=!1;const M=m.requestContentType(s,u);let $=m.requestBodyValue(s,u);const W=v.specResolvedSubtree([\"paths\",s,u,\"requestBody\"]);if(!W)return!1;if(et.Map.isMap($)&&($=stringify($.mapEntries((i=>et.Map.isMap(i[1])?[i[0],i[1].get(\"value\")]:i)).toJS())),et.List.isList($)&&($=stringify($)),M){const i=getDefaultRequestBodyValue(W,M,m.activeExamplesMember(s,u,\"requestBody\",\"requestBody\"),_);j=!!$&&$!==i}return j})),tN=oas3_selectors_onlyOAS3(((i,s,u)=>i.getIn([\"requestData\",s,u,\"bodyInclusion\"])||(0,et.Map)())),rN=oas3_selectors_onlyOAS3(((i,s,u)=>i.getIn([\"requestData\",s,u,\"errors\"])||null)),nN=oas3_selectors_onlyOAS3(((i,s,u,m,v)=>i.getIn([\"examples\",s,u,m,v,\"activeExample\"])||null)),oN=oas3_selectors_onlyOAS3(((i,s,u)=>i.getIn([\"requestData\",s,u,\"requestContentType\"])||null)),iN=oas3_selectors_onlyOAS3(((i,s,u)=>i.getIn([\"requestData\",s,u,\"responseContentType\"])||null)),aN=oas3_selectors_onlyOAS3(((i,s,u)=>{let m;if(\"string\"!=typeof s){const{server:i,namespace:v}=s;m=v?[v,\"serverVariableValues\",i,u]:[\"serverVariableValues\",i,u]}else{m=[\"serverVariableValues\",s,u]}return i.getIn(m)||null})),sN=oas3_selectors_onlyOAS3(((i,s)=>{let u;if(\"string\"!=typeof s){const{server:i,namespace:m}=s;u=m?[m,\"serverVariableValues\",i]:[\"serverVariableValues\",i]}else{u=[\"serverVariableValues\",s]}return i.getIn(u)||(0,et.OrderedMap)()})),cN=oas3_selectors_onlyOAS3(((i,s)=>{var u,m;if(\"string\"!=typeof s){const{server:v,namespace:_}=s;m=v,u=_?i.getIn([_,\"serverVariableValues\",m]):i.getIn([\"serverVariableValues\",m])}else m=s,u=i.getIn([\"serverVariableValues\",m]);u=u||(0,et.OrderedMap)();let v=m;return u.map(((i,s)=>{v=v.replace(new RegExp(`{${s}}`,\"g\"),i)})),v})),lN=function validateRequestBodyIsRequired(i){return function(){for(var s=arguments.length,u=new Array(s),m=0;m<s;m++)u[m]=arguments[m];return s=>{const m=s.getSystem().specSelectors.specJson();let v=[...u][1]||[];return!m.getIn([\"paths\",...v,\"requestBody\",\"required\"])||i(...u)}}}(((i,s)=>((i,s)=>(s=s||[],!!i.getIn([\"requestData\",...s,\"bodyValue\"])))(i,s))),validateShallowRequired=(i,s)=>{let{oas3RequiredRequestBodyContentType:u,oas3RequestContentType:m,oas3RequestBodyValue:v}=s,_=[];if(!et.Map.isMap(v))return _;let j=[];return Object.keys(u.requestContentType).forEach((i=>{if(i===m){u.requestContentType[i].forEach((i=>{j.indexOf(i)<0&&j.push(i)}))}})),j.forEach((i=>{v.getIn([i,\"value\"])||_.push(i)})),_},uN=Xt((()=>[\"get\",\"put\",\"post\",\"delete\",\"options\",\"head\",\"patch\",\"trace\"])),pN={[qI]:(i,s)=>{let{payload:{selectedServerUrl:u,namespace:m}}=s;const v=m?[m,\"selectedServer\"]:[\"selectedServer\"];return i.setIn(v,u)},[$I]:(i,s)=>{let{payload:{value:u,pathMethod:m}}=s,[v,_]=m;if(!et.Map.isMap(u))return i.setIn([\"requestData\",v,_,\"bodyValue\"],u);let j,M=i.getIn([\"requestData\",v,_,\"bodyValue\"])||(0,et.Map)();et.Map.isMap(M)||(M=(0,et.Map)());const[...$]=u.keys();return $.forEach((i=>{let s=u.getIn([i]);M.has(i)&&et.Map.isMap(s)||(j=M.setIn([i,\"value\"],s))})),i.setIn([\"requestData\",v,_,\"bodyValue\"],j)},[UI]:(i,s)=>{let{payload:{value:u,pathMethod:m}}=s,[v,_]=m;return i.setIn([\"requestData\",v,_,\"retainBodyValue\"],u)},[zI]:(i,s)=>{let{payload:{value:u,pathMethod:m,name:v}}=s,[_,j]=m;return i.setIn([\"requestData\",_,j,\"bodyInclusion\",v],u)},[VI]:(i,s)=>{let{payload:{name:u,pathMethod:m,contextType:v,contextName:_}}=s,[j,M]=m;return i.setIn([\"examples\",j,M,v,_,\"activeExample\"],u)},[WI]:(i,s)=>{let{payload:{value:u,pathMethod:m}}=s,[v,_]=m;return i.setIn([\"requestData\",v,_,\"requestContentType\"],u)},[KI]:(i,s)=>{let{payload:{value:u,path:m,method:v}}=s;return i.setIn([\"requestData\",m,v,\"responseContentType\"],u)},[HI]:(i,s)=>{let{payload:{server:u,namespace:m,key:v,val:_}}=s;const j=m?[m,\"serverVariableValues\",u,v]:[\"serverVariableValues\",u,v];return i.setIn(j,_)},[JI]:(i,s)=>{let{payload:{path:u,method:m,validationErrors:v}}=s,_=[];if(_.push(\"Required field is not provided\"),v.missingBodyValue)return i.setIn([\"requestData\",u,m,\"errors\"],(0,et.fromJS)(_));if(v.missingRequiredKeys&&v.missingRequiredKeys.length>0){const{missingRequiredKeys:s}=v;return i.updateIn([\"requestData\",u,m,\"bodyValue\"],(0,et.fromJS)({}),(i=>s.reduce(((i,s)=>i.setIn([s,\"errors\"],(0,et.fromJS)(_))),i)))}return console.warn(\"unexpected result: SET_REQUEST_BODY_VALIDATE_ERROR\"),i},[GI]:(i,s)=>{let{payload:{path:u,method:m}}=s;const v=i.getIn([\"requestData\",u,m,\"bodyValue\"]);if(!et.Map.isMap(v))return i.setIn([\"requestData\",u,m,\"errors\"],(0,et.fromJS)([]));const[..._]=v.keys();return _?i.updateIn([\"requestData\",u,m,\"bodyValue\"],(0,et.fromJS)({}),(i=>_.reduce(((i,s)=>i.setIn([s,\"errors\"],(0,et.fromJS)([]))),i))):i},[XI]:(i,s)=>{let{payload:{pathMethod:u}}=s,[m,v]=u;const _=i.getIn([\"requestData\",m,v,\"bodyValue\"]);return _?et.Map.isMap(_)?i.setIn([\"requestData\",m,v,\"bodyValue\"],(0,et.Map)()):i.setIn([\"requestData\",m,v,\"bodyValue\"],\"\"):i}};function oas3(){return{components:jI,wrapComponents:FI,statePlugins:{spec:{wrapSelectors:Ie,selectors:Re},auth:{wrapSelectors:Te},oas3:{actions:qe,reducers:pN,selectors:ze}}}}const webhooks=i=>{let{specSelectors:s,getComponent:u}=i;const m=s.selectWebhooksOperations(),v=Object.keys(m),_=u(\"OperationContainer\",!0);return 0===v.length?null:He.createElement(\"div\",{className:\"webhooks\"},He.createElement(\"h2\",null,\"Webhooks\"),v.map((i=>He.createElement(\"div\",{key:`${i}-webhook`},m[i].map((s=>He.createElement(_,{key:`${i}-${s.method}-webhook`,op:s.operation,tag:\"webhooks\",method:s.method,path:i,specPath:s.specPath,allowTryItOut:!1})))))))},oas31_components_license=i=>{let{getComponent:s,specSelectors:u}=i;const m=u.selectLicenseNameField(),v=u.selectLicenseUrl(),_=s(\"Link\");return He.createElement(\"div\",{className:\"info__license\"},v?He.createElement(\"div\",{className:\"info__license__url\"},He.createElement(_,{target:\"_blank\",href:sanitizeUrl(v)},m)):He.createElement(\"span\",null,m))},oas31_components_contact=i=>{let{getComponent:s,specSelectors:u}=i;const m=u.selectContactNameField(),v=u.selectContactUrl(),_=u.selectContactEmailField(),j=s(\"Link\");return He.createElement(\"div\",{className:\"info__contact\"},v&&He.createElement(\"div\",null,He.createElement(j,{href:sanitizeUrl(v),target:\"_blank\"},m,\" - Website\")),_&&He.createElement(j,{href:sanitizeUrl(`mailto:${_}`)},v?`Send email to ${m}`:`Contact ${m}`))},oas31_components_info=i=>{let{getComponent:s,specSelectors:u}=i;const m=u.version(),v=u.url(),_=u.basePath(),j=u.host(),M=u.selectInfoSummaryField(),$=u.selectInfoDescriptionField(),W=u.selectInfoTitleField(),X=u.selectInfoTermsOfServiceUrl(),Y=u.selectExternalDocsUrl(),Z=u.selectExternalDocsDescriptionField(),ee=u.contact(),ie=u.license(),ae=s(\"Markdown\",!0),ce=s(\"Link\"),le=s(\"VersionStamp\"),pe=s(\"OpenAPIVersion\"),de=s(\"InfoUrl\"),fe=s(\"InfoBasePath\"),ye=s(\"License\",!0),be=s(\"Contact\",!0),_e=s(\"JsonSchemaDialect\",!0);return He.createElement(\"div\",{className:\"info\"},He.createElement(\"hgroup\",{className:\"main\"},He.createElement(\"h2\",{className:\"title\"},W,m&&He.createElement(le,{version:m}),He.createElement(pe,{oasVersion:\"3.1\"})),(j||_)&&He.createElement(fe,{host:j,basePath:_}),v&&He.createElement(de,{getComponent:s,url:v})),M&&He.createElement(\"p\",{className:\"info__summary\"},M),He.createElement(\"div\",{className:\"info__description description\"},He.createElement(ae,{source:$})),X&&He.createElement(\"div\",{className:\"info__tos\"},He.createElement(ce,{target:\"_blank\",href:sanitizeUrl(X)},\"Terms of service\")),ee.size>0&&He.createElement(be,null),ie.size>0&&He.createElement(ye,null),Y&&He.createElement(ce,{className:\"info__extdocs\",target:\"_blank\",href:sanitizeUrl(Y)},Z||Y),He.createElement(_e,null))},json_schema_dialect=i=>{let{getComponent:s,specSelectors:u}=i;const m=u.selectJsonSchemaDialectField(),v=u.selectJsonSchemaDialectDefault(),_=s(\"Link\");return He.createElement(He.Fragment,null,m&&m===v&&He.createElement(\"p\",{className:\"info__jsonschemadialect\"},\"JSON Schema dialect:\",\" \",He.createElement(_,{target:\"_blank\",href:sanitizeUrl(m)},m)),m&&m!==v&&He.createElement(\"div\",{className:\"error-wrapper\"},He.createElement(\"div\",{className:\"no-margin\"},He.createElement(\"div\",{className:\"errors\"},He.createElement(\"div\",{className:\"errors-wrapper\"},He.createElement(\"h4\",{className:\"center\"},\"Warning\"),He.createElement(\"p\",{className:\"message\"},He.createElement(\"strong\",null,\"OpenAPI.jsonSchemaDialect\"),\" field contains a value different from the default value of\",\" \",He.createElement(_,{target:\"_blank\",href:v},v),\". Values different from the default one are currently not supported. Please either omit the field or provide it with the default value.\"))))))},version_pragma_filter=i=>{let{bypass:s,isSwagger2:u,isOAS3:m,isOAS31:v,alsoShow:_,children:j}=i;return s?He.createElement(\"div\",null,j):u&&(m||v)?He.createElement(\"div\",{className:\"version-pragma\"},_,He.createElement(\"div\",{className:\"version-pragma__message version-pragma__message--ambiguous\"},He.createElement(\"div\",null,He.createElement(\"h3\",null,\"Unable to render this definition\"),He.createElement(\"p\",null,He.createElement(\"code\",null,\"swagger\"),\" and \",He.createElement(\"code\",null,\"openapi\"),\" fields cannot be present in the same Swagger or OpenAPI definition. Please remove one of the fields.\"),He.createElement(\"p\",null,\"Supported version fields are \",He.createElement(\"code\",null,'swagger: \"2.0\"'),\" and those that match \",He.createElement(\"code\",null,\"openapi: 3.x.y\"),\" (for example,\",\" \",He.createElement(\"code\",null,\"openapi: 3.1.0\"),\").\")))):u||m||v?He.createElement(\"div\",null,j):He.createElement(\"div\",{className:\"version-pragma\"},_,He.createElement(\"div\",{className:\"version-pragma__message version-pragma__message--missing\"},He.createElement(\"div\",null,He.createElement(\"h3\",null,\"Unable to render this definition\"),He.createElement(\"p\",null,\"The provided definition does not specify a valid version field.\"),He.createElement(\"p\",null,\"Please indicate a valid Swagger or OpenAPI version field. Supported version fields are \",He.createElement(\"code\",null,'swagger: \"2.0\"'),\" and those that match \",He.createElement(\"code\",null,\"openapi: 3.x.y\"),\" (for example,\",\" \",He.createElement(\"code\",null,\"openapi: 3.1.0\"),\").\"))))},getModelName=i=>\"string\"==typeof i&&i.includes(\"#/components/schemas/\")?(i=>{const s=i.replace(/~1/g,\"/\").replace(/~0/g,\"~\");try{return decodeURIComponent(s)}catch{return s}})(i.replace(/^.*#\\/components\\/schemas\\//,\"\")):null,hN=(0,He.forwardRef)(((i,s)=>{let{schema:u,getComponent:m,onToggle:v}=i;const _=m(\"JSONSchema202012\"),j=getModelName(u.get(\"$$ref\")),M=(0,He.useCallback)(((i,s)=>{v(j,s)}),[j,v]);return He.createElement(_,{name:j,schema:u.toJS(),ref:s,onExpand:M})}));hN.defaultProps={name:\"\",displayName:\"\",isRef:!1,required:!1,expandDepth:0,depth:1,includeReadOnly:!1,includeWriteOnly:!1,onToggle:()=>{}};const dN=hN,models=i=>{let{specActions:s,specSelectors:u,layoutSelectors:m,layoutActions:v,getComponent:_,getConfigs:j}=i;const M=u.selectSchemas(),$=Object.keys(M).length>0,W=[\"components\",\"schemas\"],{docExpansion:X,defaultModelsExpandDepth:Y}=j(),Z=Y>0&&\"none\"!==X,ee=m.isShown(W,Z),ie=_(\"Collapse\"),ae=_(\"JSONSchema202012\"),ce=_(\"ArrowUpIcon\"),le=_(\"ArrowDownIcon\");(0,He.useEffect)((()=>{const i=ee&&Y>1,m=null!=u.specResolvedSubtree(W);i&&!m&&s.requestResolvedSubtree(W)}),[ee,Y]);const pe=(0,He.useCallback)((()=>{v.show(W,!ee)}),[ee]),de=(0,He.useCallback)((i=>{null!==i&&v.readyToScroll(W,i)}),[]),handleJSONSchema202012Ref=i=>s=>{null!==s&&v.readyToScroll([...W,i],s)},handleJSONSchema202012Expand=i=>(m,v)=>{if(v){const m=[...W,i];null!=u.specResolvedSubtree(m)||s.requestResolvedSubtree([...W,i])}};return!$||Y<0?null:He.createElement(\"section\",{className:CC()(\"models\",{\"is-open\":ee}),ref:de},He.createElement(\"h4\",null,He.createElement(\"button\",{\"aria-expanded\":ee,className:\"models-control\",onClick:pe},He.createElement(\"span\",null,\"Schemas\"),ee?He.createElement(ce,null):He.createElement(le,null))),He.createElement(ie,{isOpened:ee},Object.entries(M).map((i=>{let[s,u]=i;return He.createElement(ae,{key:s,ref:handleJSONSchema202012Ref(s),schema:u,name:s,onExpand:handleJSONSchema202012Expand(s)})}))))},isOAS31=i=>{const s=i.get(\"openapi\");return\"string\"==typeof s&&/^3\\.1\\.(?:[1-9]\\d*|0)$/.test(s)},fn_createOnlyOAS31Selector=i=>function(s){for(var u=arguments.length,m=new Array(u>1?u-1:0),v=1;v<u;v++)m[v-1]=arguments[v];return u=>{if(u.getSystem().specSelectors.isOAS31()){const v=i(s,...m);return\"function\"==typeof v?v(u):v}return null}},fn_createSystemSelector=i=>function(s){for(var u=arguments.length,m=new Array(u>1?u-1:0),v=1;v<u;v++)m[v-1]=arguments[v];return u=>{const v=i(s,u,...m);return\"function\"==typeof v?v(u):v}},createOnlyOAS31ComponentWrapper=i=>(s,u)=>m=>u.specSelectors.isOAS31()?He.createElement(i,No()({},m,{originalComponent:s,getSystem:u.getSystem})):He.createElement(s,m),fN=createOnlyOAS31ComponentWrapper((i=>{let{getSystem:s}=i;const u=s().getComponent(\"OAS31License\",!0);return He.createElement(u,null)})),mN=createOnlyOAS31ComponentWrapper((i=>{let{getSystem:s}=i;const u=s().getComponent(\"OAS31Contact\",!0);return He.createElement(u,null)})),yN=createOnlyOAS31ComponentWrapper((i=>{let{getSystem:s}=i;const u=s().getComponent(\"OAS31Info\",!0);return He.createElement(u,null)})),makeIsExpandable=(i,s)=>{const{fn:u}=s();if(\"function\"!=typeof i)return null;const{hasKeyword:m}=u.jsonSchema202012;return s=>i(s)||m(s,\"example\")||(null==s?void 0:s.xml)||(null==s?void 0:s.discriminator)||(null==s?void 0:s.externalDocs)},getProperties=(i,s)=>{let{includeReadOnly:u,includeWriteOnly:m}=s;if(null==i||!i.properties)return{};const v=Object.entries(i.properties).filter((i=>{let[,s]=i;const v=!0===(null==s?void 0:s.readOnly),_=!0===(null==s?void 0:s.writeOnly);return(!v||u)&&(!_||m)}));return Object.fromEntries(v)},gN=[\"getSystem\"],vN=createOnlyOAS31ComponentWrapper((i=>{let{getSystem:s}=i,u=Mo()(i,gN);const m=s(),{getComponent:v,fn:_,getConfigs:j}=m,M=j(),$=v(\"OAS31Model\"),W=v(\"JSONSchema202012\"),X=v(\"JSONSchema202012Keyword$schema\"),Y=v(\"JSONSchema202012Keyword$vocabulary\"),Z=v(\"JSONSchema202012Keyword$id\"),ee=v(\"JSONSchema202012Keyword$anchor\"),ie=v(\"JSONSchema202012Keyword$dynamicAnchor\"),ae=v(\"JSONSchema202012Keyword$ref\"),ce=v(\"JSONSchema202012Keyword$dynamicRef\"),le=v(\"JSONSchema202012Keyword$defs\"),pe=v(\"JSONSchema202012Keyword$comment\"),de=v(\"JSONSchema202012KeywordAllOf\"),fe=v(\"JSONSchema202012KeywordAnyOf\"),ye=v(\"JSONSchema202012KeywordOneOf\"),be=v(\"JSONSchema202012KeywordNot\"),_e=v(\"JSONSchema202012KeywordIf\"),we=v(\"JSONSchema202012KeywordThen\"),Se=v(\"JSONSchema202012KeywordElse\"),xe=v(\"JSONSchema202012KeywordDependentSchemas\"),Pe=v(\"JSONSchema202012KeywordPrefixItems\"),Ie=v(\"JSONSchema202012KeywordItems\"),Te=v(\"JSONSchema202012KeywordContains\"),Re=v(\"JSONSchema202012KeywordProperties\"),qe=v(\"JSONSchema202012KeywordPatternProperties\"),ze=v(\"JSONSchema202012KeywordAdditionalProperties\"),Ve=v(\"JSONSchema202012KeywordPropertyNames\"),We=v(\"JSONSchema202012KeywordUnevaluatedItems\"),Xe=v(\"JSONSchema202012KeywordUnevaluatedProperties\"),Ye=v(\"JSONSchema202012KeywordType\"),Qe=v(\"JSONSchema202012KeywordEnum\"),et=v(\"JSONSchema202012KeywordConst\"),tt=v(\"JSONSchema202012KeywordConstraint\"),rt=v(\"JSONSchema202012KeywordDependentRequired\"),nt=v(\"JSONSchema202012KeywordContentSchema\"),ot=v(\"JSONSchema202012KeywordTitle\"),it=v(\"JSONSchema202012KeywordDescription\"),at=v(\"JSONSchema202012KeywordDefault\"),st=v(\"JSONSchema202012KeywordDeprecated\"),ct=v(\"JSONSchema202012KeywordReadOnly\"),lt=v(\"JSONSchema202012KeywordWriteOnly\"),ut=v(\"JSONSchema202012Accordion\"),pt=v(\"JSONSchema202012ExpandDeepButton\"),ht=v(\"JSONSchema202012ChevronRightIcon\"),dt=v(\"withJSONSchema202012Context\")($,{config:{default$schema:\"https://spec.openapis.org/oas/3.1/dialect/base\",defaultExpandedLevels:M.defaultModelExpandDepth,includeReadOnly:Boolean(u.includeReadOnly),includeWriteOnly:Boolean(u.includeWriteOnly)},components:{JSONSchema:W,Keyword$schema:X,Keyword$vocabulary:Y,Keyword$id:Z,Keyword$anchor:ee,Keyword$dynamicAnchor:ie,Keyword$ref:ae,Keyword$dynamicRef:ce,Keyword$defs:le,Keyword$comment:pe,KeywordAllOf:de,KeywordAnyOf:fe,KeywordOneOf:ye,KeywordNot:be,KeywordIf:_e,KeywordThen:we,KeywordElse:Se,KeywordDependentSchemas:xe,KeywordPrefixItems:Pe,KeywordItems:Ie,KeywordContains:Te,KeywordProperties:Re,KeywordPatternProperties:qe,KeywordAdditionalProperties:ze,KeywordPropertyNames:Ve,KeywordUnevaluatedItems:We,KeywordUnevaluatedProperties:Xe,KeywordType:Ye,KeywordEnum:Qe,KeywordConst:et,KeywordConstraint:tt,KeywordDependentRequired:rt,KeywordContentSchema:nt,KeywordTitle:ot,KeywordDescription:it,KeywordDefault:at,KeywordDeprecated:st,KeywordReadOnly:ct,KeywordWriteOnly:lt,Accordion:ut,ExpandDeepButton:pt,ChevronRightIcon:ht},fn:{upperFirst:_.upperFirst,isExpandable:makeIsExpandable(_.jsonSchema202012.isExpandable,s),getProperties}});return He.createElement(dt,u)})),bN=vN,_N=createOnlyOAS31ComponentWrapper((i=>{let{getSystem:s}=i;const{getComponent:u,fn:m,getConfigs:v}=s(),_=v();if(_N.ModelsWithJSONSchemaContext)return He.createElement(_N.ModelsWithJSONSchemaContext,null);const j=u(\"OAS31Models\",!0),M=u(\"JSONSchema202012\"),$=u(\"JSONSchema202012Keyword$schema\"),W=u(\"JSONSchema202012Keyword$vocabulary\"),X=u(\"JSONSchema202012Keyword$id\"),Y=u(\"JSONSchema202012Keyword$anchor\"),Z=u(\"JSONSchema202012Keyword$dynamicAnchor\"),ee=u(\"JSONSchema202012Keyword$ref\"),ie=u(\"JSONSchema202012Keyword$dynamicRef\"),ae=u(\"JSONSchema202012Keyword$defs\"),ce=u(\"JSONSchema202012Keyword$comment\"),le=u(\"JSONSchema202012KeywordAllOf\"),pe=u(\"JSONSchema202012KeywordAnyOf\"),de=u(\"JSONSchema202012KeywordOneOf\"),fe=u(\"JSONSchema202012KeywordNot\"),ye=u(\"JSONSchema202012KeywordIf\"),be=u(\"JSONSchema202012KeywordThen\"),_e=u(\"JSONSchema202012KeywordElse\"),we=u(\"JSONSchema202012KeywordDependentSchemas\"),Se=u(\"JSONSchema202012KeywordPrefixItems\"),xe=u(\"JSONSchema202012KeywordItems\"),Pe=u(\"JSONSchema202012KeywordContains\"),Ie=u(\"JSONSchema202012KeywordProperties\"),Te=u(\"JSONSchema202012KeywordPatternProperties\"),Re=u(\"JSONSchema202012KeywordAdditionalProperties\"),qe=u(\"JSONSchema202012KeywordPropertyNames\"),ze=u(\"JSONSchema202012KeywordUnevaluatedItems\"),Ve=u(\"JSONSchema202012KeywordUnevaluatedProperties\"),We=u(\"JSONSchema202012KeywordType\"),Xe=u(\"JSONSchema202012KeywordEnum\"),Ye=u(\"JSONSchema202012KeywordConst\"),Qe=u(\"JSONSchema202012KeywordConstraint\"),et=u(\"JSONSchema202012KeywordDependentRequired\"),tt=u(\"JSONSchema202012KeywordContentSchema\"),rt=u(\"JSONSchema202012KeywordTitle\"),nt=u(\"JSONSchema202012KeywordDescription\"),ot=u(\"JSONSchema202012KeywordDefault\"),it=u(\"JSONSchema202012KeywordDeprecated\"),at=u(\"JSONSchema202012KeywordReadOnly\"),st=u(\"JSONSchema202012KeywordWriteOnly\"),ct=u(\"JSONSchema202012Accordion\"),lt=u(\"JSONSchema202012ExpandDeepButton\"),ut=u(\"JSONSchema202012ChevronRightIcon\"),pt=u(\"withJSONSchema202012Context\");return _N.ModelsWithJSONSchemaContext=pt(j,{config:{default$schema:\"https://spec.openapis.org/oas/3.1/dialect/base\",defaultExpandedLevels:_.defaultModelsExpandDepth-1,includeReadOnly:!0,includeWriteOnly:!0},components:{JSONSchema:M,Keyword$schema:$,Keyword$vocabulary:W,Keyword$id:X,Keyword$anchor:Y,Keyword$dynamicAnchor:Z,Keyword$ref:ee,Keyword$dynamicRef:ie,Keyword$defs:ae,Keyword$comment:ce,KeywordAllOf:le,KeywordAnyOf:pe,KeywordOneOf:de,KeywordNot:fe,KeywordIf:ye,KeywordThen:be,KeywordElse:_e,KeywordDependentSchemas:we,KeywordPrefixItems:Se,KeywordItems:xe,KeywordContains:Pe,KeywordProperties:Ie,KeywordPatternProperties:Te,KeywordAdditionalProperties:Re,KeywordPropertyNames:qe,KeywordUnevaluatedItems:ze,KeywordUnevaluatedProperties:Ve,KeywordType:We,KeywordEnum:Xe,KeywordConst:Ye,KeywordConstraint:Qe,KeywordDependentRequired:et,KeywordContentSchema:tt,KeywordTitle:rt,KeywordDescription:nt,KeywordDefault:ot,KeywordDeprecated:it,KeywordReadOnly:at,KeywordWriteOnly:st,Accordion:ct,ExpandDeepButton:lt,ChevronRightIcon:ut},fn:{upperFirst:m.upperFirst,isExpandable:m.jsonSchema202012.isExpandable,getProperties:m.jsonSchema202012.getProperties}}),He.createElement(_N.ModelsWithJSONSchemaContext,null)}));_N.ModelsWithJSONSchemaContext=null;const wN=_N,wrap_components_version_pragma_filter=(i,s)=>i=>{const u=s.specSelectors.isOAS31(),m=s.getComponent(\"OAS31VersionPragmaFilter\");return He.createElement(m,No()({isOAS31:u},i))},EN=(0,et.Map)(),SN=Xt(((i,s)=>s.specSelectors.specJson()),isOAS31),selectors_webhooks=()=>i=>i.specSelectors.specJson().get(\"webhooks\",EN),xN=Xt(((i,s)=>s.specSelectors.webhooks()),((i,s)=>s.specSelectors.validOperationMethods()),((i,s)=>s.specSelectors.specResolvedSubtree([\"webhooks\"])),((i,s)=>et.Map.isMap(i)?i.reduce(((i,u,m)=>{if(!et.Map.isMap(u))return i;const v=u.entrySeq().filter((i=>{let[u]=i;return s.includes(u)})).map((i=>{let[s,u]=i;return{operation:(0,et.Map)({operation:u}),method:s,path:m,specPath:(0,et.List)([\"webhooks\",m,s])}}));return i.concat(v)}),(0,et.List)()).groupBy((i=>i.path)).map((i=>i.toArray())).toObject():{})),selectors_license=()=>i=>i.specSelectors.info().get(\"license\",EN),selectLicenseNameField=()=>i=>i.specSelectors.license().get(\"name\",\"License\"),selectLicenseUrlField=()=>i=>i.specSelectors.license().get(\"url\"),ON=Xt(((i,s)=>s.specSelectors.url()),((i,s)=>s.oas3Selectors.selectedServer()),((i,s)=>s.specSelectors.selectLicenseUrlField()),((i,s,u)=>{if(u)return safeBuildUrl(u,i,{selectedServer:s})})),selectLicenseIdentifierField=()=>i=>i.specSelectors.license().get(\"identifier\"),selectors_contact=()=>i=>i.specSelectors.info().get(\"contact\",EN),selectContactNameField=()=>i=>i.specSelectors.contact().get(\"name\",\"the developer\"),selectContactEmailField=()=>i=>i.specSelectors.contact().get(\"email\"),selectContactUrlField=()=>i=>i.specSelectors.contact().get(\"url\"),kN=Xt(((i,s)=>s.specSelectors.url()),((i,s)=>s.oas3Selectors.selectedServer()),((i,s)=>s.specSelectors.selectContactUrlField()),((i,s,u)=>{if(u)return safeBuildUrl(u,i,{selectedServer:s})})),selectInfoTitleField=()=>i=>i.specSelectors.info().get(\"title\"),selectInfoSummaryField=()=>i=>i.specSelectors.info().get(\"summary\"),selectInfoDescriptionField=()=>i=>i.specSelectors.info().get(\"description\"),selectInfoTermsOfServiceField=()=>i=>i.specSelectors.info().get(\"termsOfService\"),AN=Xt(((i,s)=>s.specSelectors.url()),((i,s)=>s.oas3Selectors.selectedServer()),((i,s)=>s.specSelectors.selectInfoTermsOfServiceField()),((i,s,u)=>{if(u)return safeBuildUrl(u,i,{selectedServer:s})})),selectExternalDocsDescriptionField=()=>i=>i.specSelectors.externalDocs().get(\"description\"),selectExternalDocsUrlField=()=>i=>i.specSelectors.externalDocs().get(\"url\"),CN=Xt(((i,s)=>s.specSelectors.url()),((i,s)=>s.oas3Selectors.selectedServer()),((i,s)=>s.specSelectors.selectExternalDocsUrlField()),((i,s,u)=>{if(u)return safeBuildUrl(u,i,{selectedServer:s})})),selectJsonSchemaDialectField=()=>i=>i.specSelectors.specJson().get(\"jsonSchemaDialect\"),selectJsonSchemaDialectDefault=()=>\"https://spec.openapis.org/oas/3.1/dialect/base\",jN=Xt(((i,s)=>s.specSelectors.definitions()),((i,s)=>s.specSelectors.specResolvedSubtree([\"components\",\"schemas\"])),((i,s)=>et.Map.isMap(i)?et.Map.isMap(s)?Object.entries(i.toJS()).reduce(((i,u)=>{let[m,v]=u;const _=s.get(m);return i[m]=(null==_?void 0:_.toJS())||v,i}),{}):i.toJS():{})),wrap_selectors_isOAS3=(i,s)=>function(u){const m=s.specSelectors.isOAS31();for(var v=arguments.length,_=new Array(v>1?v-1:0),j=1;j<v;j++)_[j-1]=arguments[j];return m||i(..._)},PN=(IN=()=>(i,s)=>s.oas31Selectors.selectLicenseUrl(),(i,s)=>function(u){for(var m=arguments.length,v=new Array(m>1?m-1:0),_=1;_<m;_++)v[_-1]=arguments[_];if(s.getSystem().specSelectors.isOAS31()){const m=IN(u,...v);return\"function\"==typeof m?m(i,s):m}return i(...v)});var IN;const NN=Xt(((i,s)=>s.specSelectors.url()),((i,s)=>s.oas3Selectors.selectedServer()),((i,s)=>s.specSelectors.selectLicenseUrlField()),((i,s)=>s.specSelectors.selectLicenseIdentifierField()),((i,s,u,m)=>u?safeBuildUrl(u,i,{selectedServer:s}):m?`https://spdx.org/licenses/${m}.html`:void 0)),keywords_Example=i=>{let{schema:s,getSystem:u}=i;const{fn:m}=u(),{hasKeyword:v,stringify:_}=m.jsonSchema202012.useFn();return v(s,\"example\")?He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--example\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"Example\"),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--const\"},_(s.example))):null},keywords_Xml=i=>{let{schema:s,getSystem:u}=i;const m=(null==s?void 0:s.xml)||{},{fn:v,getComponent:_}=u(),{useIsExpandedDeeply:j,useComponent:M}=v.jsonSchema202012,$=j(),W=!!(m.name||m.namespace||m.prefix),[X,Y]=(0,He.useState)($),[Z,ee]=(0,He.useState)(!1),ie=M(\"Accordion\"),ae=M(\"ExpandDeepButton\"),ce=_(\"JSONSchema202012DeepExpansionContext\")(),le=(0,He.useCallback)((()=>{Y((i=>!i))}),[]),pe=(0,He.useCallback)(((i,s)=>{Y(s),ee(s)}),[]);return 0===Object.keys(m).length?null:He.createElement(ce.Provider,{value:Z},He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--xml\"},W?He.createElement(He.Fragment,null,He.createElement(ie,{expanded:X,onChange:le},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"XML\")),He.createElement(ae,{expanded:X,onClick:pe})):He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"XML\"),!0===m.attribute&&He.createElement(\"span\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--muted\"},\"attribute\"),!0===m.wrapped&&He.createElement(\"span\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--muted\"},\"wrapped\"),He.createElement(\"strong\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--primary\"},\"object\"),He.createElement(\"ul\",{className:CC()(\"json-schema-2020-12-keyword__children\",{\"json-schema-2020-12-keyword__children--collapsed\":!X})},X&&He.createElement(He.Fragment,null,m.name&&He.createElement(\"li\",{className:\"json-schema-2020-12-property\"},He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"name\"),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--secondary\"},m.name))),m.namespace&&He.createElement(\"li\",{className:\"json-schema-2020-12-property\"},He.createElement(\"div\",{className:\"json-schema-2020-12-keyword\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"namespace\"),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--secondary\"},m.namespace))),m.prefix&&He.createElement(\"li\",{className:\"json-schema-2020-12-property\"},He.createElement(\"div\",{className:\"json-schema-2020-12-keyword\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"prefix\"),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--secondary\"},m.prefix)))))))},DiscriminatorMapping_DiscriminatorMapping=i=>{let{discriminator:s}=i;const u=(null==s?void 0:s.mapping)||{};return 0===Object.keys(u).length?null:Object.entries(u).map((i=>{let[s,u]=i;return He.createElement(\"div\",{key:`${s}-${u}`,className:\"json-schema-2020-12-keyword\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},s),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--secondary\"},u))}))};DiscriminatorMapping_DiscriminatorMapping.defaultProps={mapping:void 0};const TN=DiscriminatorMapping_DiscriminatorMapping,keywords_Discriminator_Discriminator=i=>{let{schema:s,getSystem:u}=i;const m=(null==s?void 0:s.discriminator)||{},{fn:v,getComponent:_}=u(),{useIsExpandedDeeply:j,useComponent:M}=v.jsonSchema202012,$=j(),W=!!m.mapping,[X,Y]=(0,He.useState)($),[Z,ee]=(0,He.useState)(!1),ie=M(\"Accordion\"),ae=M(\"ExpandDeepButton\"),ce=_(\"JSONSchema202012DeepExpansionContext\")(),le=(0,He.useCallback)((()=>{Y((i=>!i))}),[]),pe=(0,He.useCallback)(((i,s)=>{Y(s),ee(s)}),[]);return 0===Object.keys(m).length?null:He.createElement(ce.Provider,{value:Z},He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--discriminator\"},W?He.createElement(He.Fragment,null,He.createElement(ie,{expanded:X,onChange:le},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"Discriminator\")),He.createElement(ae,{expanded:X,onClick:pe})):He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"Discriminator\"),m.propertyName&&He.createElement(\"span\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--muted\"},m.propertyName),He.createElement(\"strong\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--primary\"},\"object\"),He.createElement(\"ul\",{className:CC()(\"json-schema-2020-12-keyword__children\",{\"json-schema-2020-12-keyword__children--collapsed\":!X})},X&&He.createElement(\"li\",{className:\"json-schema-2020-12-property\"},He.createElement(TN,{discriminator:m})))))},keywords_ExternalDocs=i=>{let{schema:s,getSystem:u}=i;const m=(null==s?void 0:s.externalDocs)||{},{fn:v,getComponent:_}=u(),{useIsExpandedDeeply:j,useComponent:M}=v.jsonSchema202012,$=j(),W=!(!m.description&&!m.url),[X,Y]=(0,He.useState)($),[Z,ee]=(0,He.useState)(!1),ie=M(\"Accordion\"),ae=M(\"ExpandDeepButton\"),ce=_(\"JSONSchema202012KeywordDescription\"),le=_(\"Link\"),pe=_(\"JSONSchema202012DeepExpansionContext\")(),de=(0,He.useCallback)((()=>{Y((i=>!i))}),[]),fe=(0,He.useCallback)(((i,s)=>{Y(s),ee(s)}),[]);return 0===Object.keys(m).length?null:He.createElement(pe.Provider,{value:Z},He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--externalDocs\"},W?He.createElement(He.Fragment,null,He.createElement(ie,{expanded:X,onChange:de},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"External documentation\")),He.createElement(ae,{expanded:X,onClick:fe})):He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"External documentation\"),He.createElement(\"strong\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--primary\"},\"object\"),He.createElement(\"ul\",{className:CC()(\"json-schema-2020-12-keyword__children\",{\"json-schema-2020-12-keyword__children--collapsed\":!X})},X&&He.createElement(He.Fragment,null,m.description&&He.createElement(\"li\",{className:\"json-schema-2020-12-property\"},He.createElement(ce,{schema:m,getSystem:u})),m.url&&He.createElement(\"li\",{className:\"json-schema-2020-12-property\"},He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"url\"),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--secondary\"},He.createElement(le,{target:\"_blank\",href:sanitizeUrl(m.url)},m.url))))))))},keywords_Description=i=>{let{schema:s,getSystem:u}=i;if(null==s||!s.description)return null;const{getComponent:m}=u(),v=m(\"Markdown\");return He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--description\"},He.createElement(\"div\",{className:\"json-schema-2020-12-core-keyword__value json-schema-2020-12-core-keyword__value--secondary\"},He.createElement(v,{source:s.description})))},MN=createOnlyOAS31ComponentWrapper(keywords_Description),RN=createOnlyOAS31ComponentWrapper((i=>{let{schema:s,getSystem:u,originalComponent:m}=i;const{getComponent:v}=u(),_=v(\"JSONSchema202012KeywordDiscriminator\"),j=v(\"JSONSchema202012KeywordXml\"),M=v(\"JSONSchema202012KeywordExample\"),$=v(\"JSONSchema202012KeywordExternalDocs\");return He.createElement(He.Fragment,null,He.createElement(m,{schema:s}),He.createElement(_,{schema:s,getSystem:u}),He.createElement(j,{schema:s,getSystem:u}),He.createElement($,{schema:s,getSystem:u}),He.createElement(M,{schema:s,getSystem:u}))})),DN=RN,keywords_Properties=i=>{let{schema:s,getSystem:u}=i;const{fn:m}=u(),{useComponent:v}=m.jsonSchema202012,{getDependentRequired:_,getProperties:j}=m.jsonSchema202012.useFn(),M=m.jsonSchema202012.useConfig(),$=Array.isArray(null==s?void 0:s.required)?s.required:[],W=v(\"JSONSchema\"),X=j(s,M);return 0===Object.keys(X).length?null:He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--properties\"},He.createElement(\"ul\",null,Object.entries(X).map((i=>{let[u,m]=i;const v=$.includes(u),j=_(u,s);return He.createElement(\"li\",{key:u,className:CC()(\"json-schema-2020-12-property\",{\"json-schema-2020-12-property--required\":v})},He.createElement(W,{name:u,schema:m,dependentRequired:j}))}))))},BN=createOnlyOAS31ComponentWrapper(keywords_Properties);const LN=function afterLoad(i){let{fn:s,getSystem:u}=i;if(s.jsonSchema202012){const i=makeIsExpandable(s.jsonSchema202012.isExpandable,u);Object.assign(this.fn.jsonSchema202012,{isExpandable:i,getProperties})}if(\"function\"==typeof s.sampleFromSchema&&s.jsonSchema202012){const i=((i,s)=>{const{fn:u,specSelectors:m}=s;return Object.fromEntries(Object.entries(i).map((i=>{let[s,v]=i;const _=u[s];return[s,function(){return m.isOAS31()?v(...arguments):\"function\"==typeof _?_(...arguments):void 0}]})))})({sampleFromSchema:s.jsonSchema202012.sampleFromSchema,sampleFromSchemaGeneric:s.jsonSchema202012.sampleFromSchemaGeneric,createXMLExample:s.jsonSchema202012.createXMLExample,memoizedSampleFromSchema:s.jsonSchema202012.memoizedSampleFromSchema,memoizedCreateXMLExample:s.jsonSchema202012.memoizedCreateXMLExample},u());Object.assign(this.fn,i)}},oas31=i=>{let{fn:s}=i;const u=s.createSystemSelector||fn_createSystemSelector,m=s.createOnlyOAS31Selector||fn_createOnlyOAS31Selector;return{afterLoad:LN,fn:{isOAS31,createSystemSelector:fn_createSystemSelector,createOnlyOAS31Selector:fn_createOnlyOAS31Selector},components:{Webhooks:webhooks,JsonSchemaDialect:json_schema_dialect,OAS31Info:oas31_components_info,OAS31License:oas31_components_license,OAS31Contact:oas31_components_contact,OAS31VersionPragmaFilter:version_pragma_filter,OAS31Model:dN,OAS31Models:models,JSONSchema202012KeywordExample:keywords_Example,JSONSchema202012KeywordXml:keywords_Xml,JSONSchema202012KeywordDiscriminator:keywords_Discriminator_Discriminator,JSONSchema202012KeywordExternalDocs:keywords_ExternalDocs},wrapComponents:{InfoContainer:yN,License:fN,Contact:mN,VersionPragmaFilter:wrap_components_version_pragma_filter,Model:bN,Models:wN,JSONSchema202012KeywordDescription:MN,JSONSchema202012KeywordDefault:DN,JSONSchema202012KeywordProperties:BN},statePlugins:{spec:{selectors:{isOAS31:u(SN),license:selectors_license,selectLicenseNameField,selectLicenseUrlField,selectLicenseIdentifierField:m(selectLicenseIdentifierField),selectLicenseUrl:u(ON),contact:selectors_contact,selectContactNameField,selectContactEmailField,selectContactUrlField,selectContactUrl:u(kN),selectInfoTitleField,selectInfoSummaryField:m(selectInfoSummaryField),selectInfoDescriptionField,selectInfoTermsOfServiceField,selectInfoTermsOfServiceUrl:u(AN),selectExternalDocsDescriptionField,selectExternalDocsUrlField,selectExternalDocsUrl:u(CN),webhooks:m(selectors_webhooks),selectWebhooksOperations:m(u(xN)),selectJsonSchemaDialectField,selectJsonSchemaDialectDefault,selectSchemas:u(jN)},wrapSelectors:{isOAS3:wrap_selectors_isOAS3,selectLicenseUrl:PN}},oas31:{selectors:{selectLicenseUrl:m(u(NN))}}}}},FN=JC().object,qN=JC().bool,$N=(JC().oneOfType([FN,qN]),(0,He.createContext)(null));$N.displayName=\"JSONSchemaContext\";const UN=(0,He.createContext)(0);UN.displayName=\"JSONSchemaLevelContext\";const zN=(0,He.createContext)(!1);zN.displayName=\"JSONSchemaDeepExpansionContext\";const VN=(0,He.createContext)(new Set),useConfig=()=>{const{config:i}=(0,He.useContext)($N);return i},useComponent=i=>{const{components:s}=(0,He.useContext)($N);return s[i]||null},useFn=function(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;const{fn:s}=(0,He.useContext)($N);return void 0!==i?s[i]:s},useLevel=()=>{const i=(0,He.useContext)(UN);return[i,i+1]},useIsExpandedDeeply=()=>(0,He.useContext)(zN),useRenderedSchemas=function(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;if(void 0===i)return(0,He.useContext)(VN);const s=(0,He.useContext)(VN);return new Set([...s,i])},WN=(0,He.forwardRef)(((i,s)=>{let{schema:u,name:m,dependentRequired:v,onExpand:_}=i;const j=useFn(),M=(()=>{const[i]=useLevel(),{defaultExpandedLevels:s}=useConfig();return s-i>0})(),$=useIsExpandedDeeply(),[W,X]=(0,He.useState)(M||$),[Y,Z]=(0,He.useState)($),[ee,ie]=useLevel(),ae=(()=>{const[i]=useLevel();return i>0})(),ce=j.isExpandable(u)||v.length>0,le=(i=>useRenderedSchemas().has(i))(u),pe=useRenderedSchemas(u),de=j.stringifyConstraints(u),fe=useComponent(\"Accordion\"),ye=useComponent(\"Keyword$schema\"),be=useComponent(\"Keyword$vocabulary\"),_e=useComponent(\"Keyword$id\"),we=useComponent(\"Keyword$anchor\"),Se=useComponent(\"Keyword$dynamicAnchor\"),xe=useComponent(\"Keyword$ref\"),Pe=useComponent(\"Keyword$dynamicRef\"),Ie=useComponent(\"Keyword$defs\"),Te=useComponent(\"Keyword$comment\"),Re=useComponent(\"KeywordAllOf\"),qe=useComponent(\"KeywordAnyOf\"),ze=useComponent(\"KeywordOneOf\"),Ve=useComponent(\"KeywordNot\"),We=useComponent(\"KeywordIf\"),Xe=useComponent(\"KeywordThen\"),Ye=useComponent(\"KeywordElse\"),Qe=useComponent(\"KeywordDependentSchemas\"),et=useComponent(\"KeywordPrefixItems\"),tt=useComponent(\"KeywordItems\"),rt=useComponent(\"KeywordContains\"),nt=useComponent(\"KeywordProperties\"),ot=useComponent(\"KeywordPatternProperties\"),it=useComponent(\"KeywordAdditionalProperties\"),at=useComponent(\"KeywordPropertyNames\"),st=useComponent(\"KeywordUnevaluatedItems\"),ct=useComponent(\"KeywordUnevaluatedProperties\"),lt=useComponent(\"KeywordType\"),ut=useComponent(\"KeywordEnum\"),pt=useComponent(\"KeywordConst\"),ht=useComponent(\"KeywordConstraint\"),dt=useComponent(\"KeywordDependentRequired\"),mt=useComponent(\"KeywordContentSchema\"),yt=useComponent(\"KeywordTitle\"),gt=useComponent(\"KeywordDescription\"),vt=useComponent(\"KeywordDefault\"),bt=useComponent(\"KeywordDeprecated\"),_t=useComponent(\"KeywordReadOnly\"),wt=useComponent(\"KeywordWriteOnly\"),Et=useComponent(\"ExpandDeepButton\");(0,He.useEffect)((()=>{Z($)}),[$]),(0,He.useEffect)((()=>{Z(Y)}),[Y]);const St=(0,He.useCallback)(((i,s)=>{X(s),!s&&Z(!1),_(i,s,!1)}),[_]),xt=(0,He.useCallback)(((i,s)=>{X(s),Z(s),_(i,s,!0)}),[_]);return He.createElement(UN.Provider,{value:ie},He.createElement(zN.Provider,{value:Y},He.createElement(VN.Provider,{value:pe},He.createElement(\"article\",{ref:s,\"data-json-schema-level\":ee,className:CC()(\"json-schema-2020-12\",{\"json-schema-2020-12--embedded\":ae,\"json-schema-2020-12--circular\":le})},He.createElement(\"div\",{className:\"json-schema-2020-12-head\"},ce&&!le?He.createElement(He.Fragment,null,He.createElement(fe,{expanded:W,onChange:St},He.createElement(yt,{title:m,schema:u})),He.createElement(Et,{expanded:W,onClick:xt})):He.createElement(yt,{title:m,schema:u}),He.createElement(bt,{schema:u}),He.createElement(_t,{schema:u}),He.createElement(wt,{schema:u}),He.createElement(lt,{schema:u,isCircular:le}),de.length>0&&de.map((i=>He.createElement(ht,{key:`${i.scope}-${i.value}`,constraint:i})))),He.createElement(\"div\",{className:CC()(\"json-schema-2020-12-body\",{\"json-schema-2020-12-body--collapsed\":!W})},W&&He.createElement(He.Fragment,null,He.createElement(gt,{schema:u}),!le&&ce&&He.createElement(He.Fragment,null,He.createElement(nt,{schema:u}),He.createElement(ot,{schema:u}),He.createElement(it,{schema:u}),He.createElement(ct,{schema:u}),He.createElement(at,{schema:u}),He.createElement(Re,{schema:u}),He.createElement(qe,{schema:u}),He.createElement(ze,{schema:u}),He.createElement(Ve,{schema:u}),He.createElement(We,{schema:u}),He.createElement(Xe,{schema:u}),He.createElement(Ye,{schema:u}),He.createElement(Qe,{schema:u}),He.createElement(et,{schema:u}),He.createElement(tt,{schema:u}),He.createElement(st,{schema:u}),He.createElement(rt,{schema:u}),He.createElement(mt,{schema:u})),He.createElement(ut,{schema:u}),He.createElement(pt,{schema:u}),He.createElement(dt,{schema:u,dependentRequired:v}),He.createElement(vt,{schema:u}),He.createElement(ye,{schema:u}),He.createElement(be,{schema:u}),He.createElement(_e,{schema:u}),He.createElement(we,{schema:u}),He.createElement(Se,{schema:u}),He.createElement(xe,{schema:u}),!le&&ce&&He.createElement(Ie,{schema:u}),He.createElement(Pe,{schema:u}),He.createElement(Te,{schema:u})))))))}));WN.defaultProps={name:\"\",dependentRequired:[],onExpand:()=>{}};const KN=WN,keywords_$schema=i=>{let{schema:s}=i;return null!=s&&s.$schema?He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--$schema\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"$schema\"),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--secondary\"},s.$schema)):null},$vocabulary_$vocabulary=i=>{let{schema:s}=i;const u=useIsExpandedDeeply(),[m,v]=(0,He.useState)(u),_=useComponent(\"Accordion\"),j=(0,He.useCallback)((()=>{v((i=>!i))}),[]);return null!=s&&s.$vocabulary?\"object\"!=typeof s.$vocabulary?null:He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--$vocabulary\"},He.createElement(_,{expanded:m,onChange:j},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"$vocabulary\")),He.createElement(\"strong\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--primary\"},\"object\"),He.createElement(\"ul\",null,m&&Object.entries(s.$vocabulary).map((i=>{let[s,u]=i;return He.createElement(\"li\",{key:s,className:CC()(\"json-schema-2020-12-$vocabulary-uri\",{\"json-schema-2020-12-$vocabulary-uri--disabled\":!u})},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--secondary\"},s))})))):null},keywords_$id=i=>{let{schema:s}=i;return null!=s&&s.$id?He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--$id\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"$id\"),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--secondary\"},s.$id)):null},keywords_$anchor=i=>{let{schema:s}=i;return null!=s&&s.$anchor?He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--$anchor\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"$anchor\"),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--secondary\"},s.$anchor)):null},keywords_$dynamicAnchor=i=>{let{schema:s}=i;return null!=s&&s.$dynamicAnchor?He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--$dynamicAnchor\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"$dynamicAnchor\"),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--secondary\"},s.$dynamicAnchor)):null},keywords_$ref=i=>{let{schema:s}=i;return null!=s&&s.$ref?He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--$ref\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"$ref\"),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--secondary\"},s.$ref)):null},keywords_$dynamicRef=i=>{let{schema:s}=i;return null!=s&&s.$dynamicRef?He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--$dynamicRef\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"$dynamicRef\"),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--secondary\"},s.$dynamicRef)):null},keywords_$defs=i=>{let{schema:s}=i;const u=(null==s?void 0:s.$defs)||{},m=useIsExpandedDeeply(),[v,_]=(0,He.useState)(m),[j,M]=(0,He.useState)(!1),$=useComponent(\"Accordion\"),W=useComponent(\"ExpandDeepButton\"),X=useComponent(\"JSONSchema\"),Y=(0,He.useCallback)((()=>{_((i=>!i))}),[]),Z=(0,He.useCallback)(((i,s)=>{_(s),M(s)}),[]);return 0===Object.keys(u).length?null:He.createElement(zN.Provider,{value:j},He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--$defs\"},He.createElement($,{expanded:v,onChange:Y},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"$defs\")),He.createElement(W,{expanded:v,onClick:Z}),He.createElement(\"strong\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--primary\"},\"object\"),He.createElement(\"ul\",{className:CC()(\"json-schema-2020-12-keyword__children\",{\"json-schema-2020-12-keyword__children--collapsed\":!v})},v&&He.createElement(He.Fragment,null,Object.entries(u).map((i=>{let[s,u]=i;return He.createElement(\"li\",{key:s,className:\"json-schema-2020-12-property\"},He.createElement(X,{name:s,schema:u}))}))))))},keywords_$comment=i=>{let{schema:s}=i;return null!=s&&s.$comment?He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--$comment\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--secondary\"},\"$comment\"),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--secondary\"},s.$comment)):null},keywords_AllOf=i=>{let{schema:s}=i;const u=(null==s?void 0:s.allOf)||[],m=useFn(),v=useIsExpandedDeeply(),[_,j]=(0,He.useState)(v),[M,$]=(0,He.useState)(!1),W=useComponent(\"Accordion\"),X=useComponent(\"ExpandDeepButton\"),Y=useComponent(\"JSONSchema\"),Z=useComponent(\"KeywordType\"),ee=(0,He.useCallback)((()=>{j((i=>!i))}),[]),ie=(0,He.useCallback)(((i,s)=>{j(s),$(s)}),[]);return Array.isArray(u)&&0!==u.length?He.createElement(zN.Provider,{value:M},He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--allOf\"},He.createElement(W,{expanded:_,onChange:ee},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"All of\")),He.createElement(X,{expanded:_,onClick:ie}),He.createElement(Z,{schema:{allOf:u}}),He.createElement(\"ul\",{className:CC()(\"json-schema-2020-12-keyword__children\",{\"json-schema-2020-12-keyword__children--collapsed\":!_})},_&&He.createElement(He.Fragment,null,u.map(((i,s)=>He.createElement(\"li\",{key:`#${s}`,className:\"json-schema-2020-12-property\"},He.createElement(Y,{name:`#${s} ${m.getTitle(i)}`,schema:i})))))))):null},keywords_AnyOf=i=>{let{schema:s}=i;const u=(null==s?void 0:s.anyOf)||[],m=useFn(),v=useIsExpandedDeeply(),[_,j]=(0,He.useState)(v),[M,$]=(0,He.useState)(!1),W=useComponent(\"Accordion\"),X=useComponent(\"ExpandDeepButton\"),Y=useComponent(\"JSONSchema\"),Z=useComponent(\"KeywordType\"),ee=(0,He.useCallback)((()=>{j((i=>!i))}),[]),ie=(0,He.useCallback)(((i,s)=>{j(s),$(s)}),[]);return Array.isArray(u)&&0!==u.length?He.createElement(zN.Provider,{value:M},He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--anyOf\"},He.createElement(W,{expanded:_,onChange:ee},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Any of\")),He.createElement(X,{expanded:_,onClick:ie}),He.createElement(Z,{schema:{anyOf:u}}),He.createElement(\"ul\",{className:CC()(\"json-schema-2020-12-keyword__children\",{\"json-schema-2020-12-keyword__children--collapsed\":!_})},_&&He.createElement(He.Fragment,null,u.map(((i,s)=>He.createElement(\"li\",{key:`#${s}`,className:\"json-schema-2020-12-property\"},He.createElement(Y,{name:`#${s} ${m.getTitle(i)}`,schema:i})))))))):null},keywords_OneOf=i=>{let{schema:s}=i;const u=(null==s?void 0:s.oneOf)||[],m=useFn(),v=useIsExpandedDeeply(),[_,j]=(0,He.useState)(v),[M,$]=(0,He.useState)(!1),W=useComponent(\"Accordion\"),X=useComponent(\"ExpandDeepButton\"),Y=useComponent(\"JSONSchema\"),Z=useComponent(\"KeywordType\"),ee=(0,He.useCallback)((()=>{j((i=>!i))}),[]),ie=(0,He.useCallback)(((i,s)=>{j(s),$(s)}),[]);return Array.isArray(u)&&0!==u.length?He.createElement(zN.Provider,{value:M},He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--oneOf\"},He.createElement(W,{expanded:_,onChange:ee},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"One of\")),He.createElement(X,{expanded:_,onClick:ie}),He.createElement(Z,{schema:{oneOf:u}}),He.createElement(\"ul\",{className:CC()(\"json-schema-2020-12-keyword__children\",{\"json-schema-2020-12-keyword__children--collapsed\":!_})},_&&He.createElement(He.Fragment,null,u.map(((i,s)=>He.createElement(\"li\",{key:`#${s}`,className:\"json-schema-2020-12-property\"},He.createElement(Y,{name:`#${s} ${m.getTitle(i)}`,schema:i})))))))):null},keywords_Not=i=>{let{schema:s}=i;const u=useFn(),m=useComponent(\"JSONSchema\");if(!u.hasKeyword(s,\"not\"))return null;const v=He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Not\");return He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--not\"},He.createElement(m,{name:v,schema:s.not}))},keywords_If=i=>{let{schema:s}=i;const u=useFn(),m=useComponent(\"JSONSchema\");if(!u.hasKeyword(s,\"if\"))return null;const v=He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"If\");return He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--if\"},He.createElement(m,{name:v,schema:s.if}))},keywords_Then=i=>{let{schema:s}=i;const u=useFn(),m=useComponent(\"JSONSchema\");if(!u.hasKeyword(s,\"then\"))return null;const v=He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Then\");return He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--then\"},He.createElement(m,{name:v,schema:s.then}))},keywords_Else=i=>{let{schema:s}=i;const u=useFn(),m=useComponent(\"JSONSchema\");if(!u.hasKeyword(s,\"else\"))return null;const v=He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Else\");return He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--if\"},He.createElement(m,{name:v,schema:s.else}))},keywords_DependentSchemas=i=>{let{schema:s}=i;const u=(null==s?void 0:s.dependentSchemas)||[],m=useIsExpandedDeeply(),[v,_]=(0,He.useState)(m),[j,M]=(0,He.useState)(!1),$=useComponent(\"Accordion\"),W=useComponent(\"ExpandDeepButton\"),X=useComponent(\"JSONSchema\"),Y=(0,He.useCallback)((()=>{_((i=>!i))}),[]),Z=(0,He.useCallback)(((i,s)=>{_(s),M(s)}),[]);return\"object\"!=typeof u||0===Object.keys(u).length?null:He.createElement(zN.Provider,{value:j},He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--dependentSchemas\"},He.createElement($,{expanded:v,onChange:Y},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Dependent schemas\")),He.createElement(W,{expanded:v,onClick:Z}),He.createElement(\"strong\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--primary\"},\"object\"),He.createElement(\"ul\",{className:CC()(\"json-schema-2020-12-keyword__children\",{\"json-schema-2020-12-keyword__children--collapsed\":!v})},v&&He.createElement(He.Fragment,null,Object.entries(u).map((i=>{let[s,u]=i;return He.createElement(\"li\",{key:s,className:\"json-schema-2020-12-property\"},He.createElement(X,{name:s,schema:u}))}))))))},keywords_PrefixItems=i=>{let{schema:s}=i;const u=(null==s?void 0:s.prefixItems)||[],m=useFn(),v=useIsExpandedDeeply(),[_,j]=(0,He.useState)(v),[M,$]=(0,He.useState)(!1),W=useComponent(\"Accordion\"),X=useComponent(\"ExpandDeepButton\"),Y=useComponent(\"JSONSchema\"),Z=useComponent(\"KeywordType\"),ee=(0,He.useCallback)((()=>{j((i=>!i))}),[]),ie=(0,He.useCallback)(((i,s)=>{j(s),$(s)}),[]);return Array.isArray(u)&&0!==u.length?He.createElement(zN.Provider,{value:M},He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--prefixItems\"},He.createElement(W,{expanded:_,onChange:ee},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Prefix items\")),He.createElement(X,{expanded:_,onClick:ie}),He.createElement(Z,{schema:{prefixItems:u}}),He.createElement(\"ul\",{className:CC()(\"json-schema-2020-12-keyword__children\",{\"json-schema-2020-12-keyword__children--collapsed\":!_})},_&&He.createElement(He.Fragment,null,u.map(((i,s)=>He.createElement(\"li\",{key:`#${s}`,className:\"json-schema-2020-12-property\"},He.createElement(Y,{name:`#${s} ${m.getTitle(i)}`,schema:i})))))))):null},keywords_Items=i=>{let{schema:s}=i;const u=useFn(),m=useComponent(\"JSONSchema\");if(!u.hasKeyword(s,\"items\"))return null;const v=He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Items\");return He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--items\"},He.createElement(m,{name:v,schema:s.items}))},keywords_Contains=i=>{let{schema:s}=i;const u=useFn(),m=useComponent(\"JSONSchema\");if(!u.hasKeyword(s,\"contains\"))return null;const v=He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Contains\");return He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--contains\"},He.createElement(m,{name:v,schema:s.contains}))},keywords_Properties_Properties=i=>{let{schema:s}=i;const u=useFn(),m=(null==s?void 0:s.properties)||{},v=Array.isArray(null==s?void 0:s.required)?s.required:[],_=useComponent(\"JSONSchema\");return 0===Object.keys(m).length?null:He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--properties\"},He.createElement(\"ul\",null,Object.entries(m).map((i=>{let[m,j]=i;const M=v.includes(m),$=u.getDependentRequired(m,s);return He.createElement(\"li\",{key:m,className:CC()(\"json-schema-2020-12-property\",{\"json-schema-2020-12-property--required\":M})},He.createElement(_,{name:m,schema:j,dependentRequired:$}))}))))},keywords_PatternProperties_PatternProperties=i=>{let{schema:s}=i;const u=(null==s?void 0:s.patternProperties)||{},m=useComponent(\"JSONSchema\");return 0===Object.keys(u).length?null:He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--patternProperties\"},He.createElement(\"ul\",null,Object.entries(u).map((i=>{let[s,u]=i;return He.createElement(\"li\",{key:s,className:\"json-schema-2020-12-property\"},He.createElement(m,{name:s,schema:u}))}))))},keywords_AdditionalProperties=i=>{let{schema:s}=i;const u=useFn(),{additionalProperties:m}=s,v=useComponent(\"JSONSchema\");if(!u.hasKeyword(s,\"additionalProperties\"))return null;const _=He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Additional properties\");return He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--additionalProperties\"},!0===m?He.createElement(He.Fragment,null,_,He.createElement(\"span\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--primary\"},\"allowed\")):!1===m?He.createElement(He.Fragment,null,_,He.createElement(\"span\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--primary\"},\"forbidden\")):He.createElement(v,{name:_,schema:m}))},keywords_PropertyNames=i=>{let{schema:s}=i;const u=useFn(),{propertyNames:m}=s,v=useComponent(\"JSONSchema\"),_=He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Property names\");return u.hasKeyword(s,\"propertyNames\")?He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--propertyNames\"},He.createElement(v,{name:_,schema:m})):null},keywords_UnevaluatedItems=i=>{let{schema:s}=i;const u=useFn(),{unevaluatedItems:m}=s,v=useComponent(\"JSONSchema\");if(!u.hasKeyword(s,\"unevaluatedItems\"))return null;const _=He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Unevaluated items\");return He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--unevaluatedItems\"},He.createElement(v,{name:_,schema:m}))},keywords_UnevaluatedProperties=i=>{let{schema:s}=i;const u=useFn(),{unevaluatedProperties:m}=s,v=useComponent(\"JSONSchema\");if(!u.hasKeyword(s,\"unevaluatedProperties\"))return null;const _=He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Unevaluated properties\");return He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--unevaluatedProperties\"},He.createElement(v,{name:_,schema:m}))},Type_Type=i=>{let{schema:s,isCircular:u}=i;const m=useFn().getType(s),v=u?\" [circular]\":\"\";return He.createElement(\"strong\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--primary\"},`${m}${v}`)};Type_Type.defaultProps={isCircular:!1};const HN=Type_Type,Enum_Enum=i=>{let{schema:s}=i;const u=useFn();return Array.isArray(null==s?void 0:s.enum)?He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--enum\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Allowed values\"),He.createElement(\"ul\",null,s.enum.map((i=>{const s=u.stringify(i);return He.createElement(\"li\",{key:s},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--const\"},s))})))):null},keywords_Const=i=>{let{schema:s}=i;const u=useFn();return u.hasKeyword(s,\"const\")?He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--const\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Const\"),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--const\"},u.stringify(s.const))):null},Constraint=i=>{let{constraint:s}=i;return He.createElement(\"span\",{className:`json-schema-2020-12__constraint json-schema-2020-12__constraint--${s.scope}`},s.value)},JN=He.memo(Constraint),DependentRequired_DependentRequired=i=>{let{dependentRequired:s}=i;return 0===s.length?null:He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--dependentRequired\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Required when defined\"),He.createElement(\"ul\",null,s.map((i=>He.createElement(\"li\",{key:i},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--warning\"},i))))))},keywords_ContentSchema=i=>{let{schema:s}=i;const u=useFn(),m=useComponent(\"JSONSchema\");if(!u.hasKeyword(s,\"contentSchema\"))return null;const v=He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Content schema\");return He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--contentSchema\"},He.createElement(m,{name:v,schema:s.contentSchema}))},Title=i=>{let{title:s,schema:u}=i;const m=useFn();return s||m.getTitle(u)?He.createElement(\"div\",{className:\"json-schema-2020-12__title\"},s||m.getTitle(u)):null};Title.defaultProps={title:\"\"};const GN=Title,keywords_Description_Description=i=>{let{schema:s}=i;return null!=s&&s.description?He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--description\"},He.createElement(\"div\",{className:\"json-schema-2020-12-core-keyword__value json-schema-2020-12-core-keyword__value--secondary\"},s.description)):null},keywords_Default=i=>{let{schema:s}=i;const u=useFn();return u.hasKeyword(s,\"default\")?He.createElement(\"div\",{className:\"json-schema-2020-12-keyword json-schema-2020-12-keyword--default\"},He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__name json-schema-2020-12-keyword__name--primary\"},\"Default\"),He.createElement(\"span\",{className:\"json-schema-2020-12-keyword__value json-schema-2020-12-keyword__value--const\"},u.stringify(s.default))):null},keywords_Deprecated=i=>{let{schema:s}=i;return!0!==(null==s?void 0:s.deprecated)?null:He.createElement(\"span\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--warning\"},\"deprecated\")},keywords_ReadOnly=i=>{let{schema:s}=i;return!0!==(null==s?void 0:s.readOnly)?null:He.createElement(\"span\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--muted\"},\"read-only\")},keywords_WriteOnly=i=>{let{schema:s}=i;return!0!==(null==s?void 0:s.writeOnly)?null:He.createElement(\"span\",{className:\"json-schema-2020-12__attribute json-schema-2020-12__attribute--muted\"},\"write-only\")},Accordion=i=>{let{expanded:s,children:u,onChange:m}=i;const v=useComponent(\"ChevronRightIcon\"),_=(0,He.useCallback)((i=>{m(i,!s)}),[s,m]);return He.createElement(\"button\",{type:\"button\",className:\"json-schema-2020-12-accordion\",onClick:_},He.createElement(\"div\",{className:\"json-schema-2020-12-accordion__children\"},u),He.createElement(\"span\",{className:CC()(\"json-schema-2020-12-accordion__icon\",{\"json-schema-2020-12-accordion__icon--expanded\":s,\"json-schema-2020-12-accordion__icon--collapsed\":!s})},He.createElement(v,null)))};Accordion.defaultProps={expanded:!1};const XN=Accordion,ExpandDeepButton_ExpandDeepButton=i=>{let{expanded:s,onClick:u}=i;const m=(0,He.useCallback)((i=>{u(i,!s)}),[s,u]);return He.createElement(\"button\",{type:\"button\",className:\"json-schema-2020-12-expand-deep-button\",onClick:m},s?\"Collapse all\":\"Expand all\")},icons_ChevronRight=()=>He.createElement(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"24\",height:\"24\",viewBox:\"0 0 24 24\"},He.createElement(\"path\",{d:\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"})),fn_upperFirst=i=>\"string\"==typeof i?`${i.charAt(0).toUpperCase()}${i.slice(1)}`:i,getTitle=i=>{const s=useFn();return null!=i&&i.title?s.upperFirst(i.title):null!=i&&i.$anchor?s.upperFirst(i.$anchor):null!=i&&i.$id?i.$id:\"\"},getType=function(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new WeakSet;const u=useFn();if(null==i)return\"any\";if(u.isBooleanJSONSchema(i))return i?\"any\":\"never\";if(\"object\"!=typeof i)return\"any\";if(s.has(i))return\"any\";s.add(i);const{type:m,prefixItems:v,items:_}=i,getArrayType=()=>{if(Array.isArray(v)){const i=v.map((i=>getType(i,s))),u=_?getType(_,s):\"any\";return`array<[${i.join(\", \")}], ${u}>`}if(_){return`array<${getType(_,s)}>`}return\"array<any>\"};if(i.not&&\"any\"===getType(i.not))return\"never\";const handleCombiningKeywords=(u,m)=>{if(Array.isArray(i[u])){return`(${i[u].map((i=>getType(i,s))).join(m)})`}return null},j=[Array.isArray(m)?m.map((i=>\"array\"===i?getArrayType():i)).join(\" | \"):\"array\"===m?getArrayType():[\"null\",\"boolean\",\"object\",\"array\",\"number\",\"integer\",\"string\"].includes(m)?m:(()=>{if(Object.hasOwn(i,\"prefixItems\")||Object.hasOwn(i,\"items\")||Object.hasOwn(i,\"contains\"))return getArrayType();if(Object.hasOwn(i,\"properties\")||Object.hasOwn(i,\"additionalProperties\")||Object.hasOwn(i,\"patternProperties\"))return\"object\";if([\"int32\",\"int64\"].includes(i.format))return\"integer\";if([\"float\",\"double\"].includes(i.format))return\"number\";if(Object.hasOwn(i,\"minimum\")||Object.hasOwn(i,\"maximum\")||Object.hasOwn(i,\"exclusiveMinimum\")||Object.hasOwn(i,\"exclusiveMaximum\")||Object.hasOwn(i,\"multipleOf\"))return\"number | integer\";if(Object.hasOwn(i,\"pattern\")||Object.hasOwn(i,\"format\")||Object.hasOwn(i,\"minLength\")||Object.hasOwn(i,\"maxLength\"))return\"string\";if(void 0!==i.const){if(null===i.const)return\"null\";if(\"boolean\"==typeof i.const)return\"boolean\";if(\"number\"==typeof i.const)return Number.isInteger(i.const)?\"integer\":\"number\";if(\"string\"==typeof i.const)return\"string\";if(Array.isArray(i.const))return\"array<any>\";if(\"object\"==typeof i.const)return\"object\"}return null})(),handleCombiningKeywords(\"oneOf\",\" | \"),handleCombiningKeywords(\"anyOf\",\" | \"),handleCombiningKeywords(\"allOf\",\" & \")].filter(Boolean).join(\" | \");return s.delete(i),j||\"any\"},isBooleanJSONSchema=i=>\"boolean\"==typeof i,hasKeyword=(i,s)=>null!==i&&\"object\"==typeof i&&Object.hasOwn(i,s),isExpandable=i=>{const s=useFn();return(null==i?void 0:i.$schema)||(null==i?void 0:i.$vocabulary)||(null==i?void 0:i.$id)||(null==i?void 0:i.$anchor)||(null==i?void 0:i.$dynamicAnchor)||(null==i?void 0:i.$ref)||(null==i?void 0:i.$dynamicRef)||(null==i?void 0:i.$defs)||(null==i?void 0:i.$comment)||(null==i?void 0:i.allOf)||(null==i?void 0:i.anyOf)||(null==i?void 0:i.oneOf)||s.hasKeyword(i,\"not\")||s.hasKeyword(i,\"if\")||s.hasKeyword(i,\"then\")||s.hasKeyword(i,\"else\")||(null==i?void 0:i.dependentSchemas)||(null==i?void 0:i.prefixItems)||s.hasKeyword(i,\"items\")||s.hasKeyword(i,\"contains\")||(null==i?void 0:i.properties)||(null==i?void 0:i.patternProperties)||s.hasKeyword(i,\"additionalProperties\")||s.hasKeyword(i,\"propertyNames\")||s.hasKeyword(i,\"unevaluatedItems\")||s.hasKeyword(i,\"unevaluatedProperties\")||(null==i?void 0:i.description)||(null==i?void 0:i.enum)||s.hasKeyword(i,\"const\")||s.hasKeyword(i,\"contentSchema\")||s.hasKeyword(i,\"default\")},fn_stringify=i=>null===i||[\"number\",\"bigint\",\"boolean\"].includes(typeof i)?String(i):Array.isArray(i)?`[${i.map(fn_stringify).join(\", \")}]`:JSON.stringify(i),stringifyConstraintRange=(i,s,u)=>{const m=\"number\"==typeof s,v=\"number\"==typeof u;return m&&v?s===u?`${s} ${i}`:`[${s}, ${u}] ${i}`:m?`>= ${s} ${i}`:v?`<= ${u} ${i}`:null},stringifyConstraints=i=>{const s=[],u=(i=>{if(\"number\"!=typeof(null==i?void 0:i.multipleOf))return null;if(i.multipleOf<=0)return null;if(1===i.multipleOf)return null;const{multipleOf:s}=i;if(Number.isInteger(s))return`multiple of ${s}`;const u=10**s.toString().split(\".\")[1].length;return`multiple of ${s*u}/${u}`})(i);null!==u&&s.push({scope:\"number\",value:u});const m=(i=>{const s=null==i?void 0:i.minimum,u=null==i?void 0:i.maximum,m=null==i?void 0:i.exclusiveMinimum,v=null==i?void 0:i.exclusiveMaximum,_=\"number\"==typeof s,j=\"number\"==typeof u,M=\"number\"==typeof m,$=\"number\"==typeof v,W=M&&(!_||s<m),X=$&&(!j||u>v);if((_||M)&&(j||$))return`${W?\"(\":\"[\"}${W?m:s}, ${X?v:u}${X?\")\":\"]\"}`;if(_||M)return`${W?\">\":\"≥\"} ${W?m:s}`;if(j||$)return`${X?\"<\":\"≤\"} ${X?v:u}`;return null})(i);null!==m&&s.push({scope:\"number\",value:m}),null!=i&&i.format&&s.push({scope:\"string\",value:i.format});const v=stringifyConstraintRange(\"characters\",null==i?void 0:i.minLength,null==i?void 0:i.maxLength);null!==v&&s.push({scope:\"string\",value:v}),null!=i&&i.pattern&&s.push({scope:\"string\",value:`matches ${null==i?void 0:i.pattern}`}),null!=i&&i.contentMediaType&&s.push({scope:\"string\",value:`media type: ${i.contentMediaType}`}),null!=i&&i.contentEncoding&&s.push({scope:\"string\",value:`encoding: ${i.contentEncoding}`});const _=stringifyConstraintRange(null!=i&&i.hasUniqueItems?\"unique items\":\"items\",null==i?void 0:i.minItems,null==i?void 0:i.maxItems);null!==_&&s.push({scope:\"array\",value:_});const j=stringifyConstraintRange(\"contained items\",null==i?void 0:i.minContains,null==i?void 0:i.maxContains);null!==j&&s.push({scope:\"array\",value:j});const M=stringifyConstraintRange(\"properties\",null==i?void 0:i.minProperties,null==i?void 0:i.maxProperties);return null!==M&&s.push({scope:\"object\",value:M}),s},getDependentRequired=(i,s)=>null!=s&&s.dependentRequired?Array.from(Object.entries(s.dependentRequired).reduce(((s,u)=>{let[m,v]=u;return Array.isArray(v)&&v.includes(i)?(s.add(m),s):s}),new Set)):[],withJSONSchemaContext=function(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const u={components:rr()({JSONSchema:KN,Keyword$schema:keywords_$schema,Keyword$vocabulary:$vocabulary_$vocabulary,Keyword$id:keywords_$id,Keyword$anchor:keywords_$anchor,Keyword$dynamicAnchor:keywords_$dynamicAnchor,Keyword$ref:keywords_$ref,Keyword$dynamicRef:keywords_$dynamicRef,Keyword$defs:keywords_$defs,Keyword$comment:keywords_$comment,KeywordAllOf:keywords_AllOf,KeywordAnyOf:keywords_AnyOf,KeywordOneOf:keywords_OneOf,KeywordNot:keywords_Not,KeywordIf:keywords_If,KeywordThen:keywords_Then,KeywordElse:keywords_Else,KeywordDependentSchemas:keywords_DependentSchemas,KeywordPrefixItems:keywords_PrefixItems,KeywordItems:keywords_Items,KeywordContains:keywords_Contains,KeywordProperties:keywords_Properties_Properties,KeywordPatternProperties:keywords_PatternProperties_PatternProperties,KeywordAdditionalProperties:keywords_AdditionalProperties,KeywordPropertyNames:keywords_PropertyNames,KeywordUnevaluatedItems:keywords_UnevaluatedItems,KeywordUnevaluatedProperties:keywords_UnevaluatedProperties,KeywordType:HN,KeywordEnum:Enum_Enum,KeywordConst:keywords_Const,KeywordConstraint:JN,KeywordDependentRequired:DependentRequired_DependentRequired,KeywordContentSchema:keywords_ContentSchema,KeywordTitle:GN,KeywordDescription:keywords_Description_Description,KeywordDefault:keywords_Default,KeywordDeprecated:keywords_Deprecated,KeywordReadOnly:keywords_ReadOnly,KeywordWriteOnly:keywords_WriteOnly,Accordion:XN,ExpandDeepButton:ExpandDeepButton_ExpandDeepButton,ChevronRightIcon:icons_ChevronRight},s.components),config:rr()({default$schema:\"https://json-schema.org/draft/2020-12/schema\",defaultExpandedLevels:0},s.config),fn:rr()({upperFirst:fn_upperFirst,getTitle,getType,isBooleanJSONSchema,hasKeyword,isExpandable,stringify:fn_stringify,stringifyConstraints,getDependentRequired},s.fn)},HOC=s=>He.createElement($N.Provider,{value:u},He.createElement(i,s));return HOC.contexts={JSONSchemaContext:$N},HOC.displayName=i.displayName,HOC},json_schema_2020_12=()=>({components:{JSONSchema202012:KN,JSONSchema202012Keyword$schema:keywords_$schema,JSONSchema202012Keyword$vocabulary:$vocabulary_$vocabulary,JSONSchema202012Keyword$id:keywords_$id,JSONSchema202012Keyword$anchor:keywords_$anchor,JSONSchema202012Keyword$dynamicAnchor:keywords_$dynamicAnchor,JSONSchema202012Keyword$ref:keywords_$ref,JSONSchema202012Keyword$dynamicRef:keywords_$dynamicRef,JSONSchema202012Keyword$defs:keywords_$defs,JSONSchema202012Keyword$comment:keywords_$comment,JSONSchema202012KeywordAllOf:keywords_AllOf,JSONSchema202012KeywordAnyOf:keywords_AnyOf,JSONSchema202012KeywordOneOf:keywords_OneOf,JSONSchema202012KeywordNot:keywords_Not,JSONSchema202012KeywordIf:keywords_If,JSONSchema202012KeywordThen:keywords_Then,JSONSchema202012KeywordElse:keywords_Else,JSONSchema202012KeywordDependentSchemas:keywords_DependentSchemas,JSONSchema202012KeywordPrefixItems:keywords_PrefixItems,JSONSchema202012KeywordItems:keywords_Items,JSONSchema202012KeywordContains:keywords_Contains,JSONSchema202012KeywordProperties:keywords_Properties_Properties,JSONSchema202012KeywordPatternProperties:keywords_PatternProperties_PatternProperties,JSONSchema202012KeywordAdditionalProperties:keywords_AdditionalProperties,JSONSchema202012KeywordPropertyNames:keywords_PropertyNames,JSONSchema202012KeywordUnevaluatedItems:keywords_UnevaluatedItems,JSONSchema202012KeywordUnevaluatedProperties:keywords_UnevaluatedProperties,JSONSchema202012KeywordType:HN,JSONSchema202012KeywordEnum:Enum_Enum,JSONSchema202012KeywordConst:keywords_Const,JSONSchema202012KeywordConstraint:JN,JSONSchema202012KeywordDependentRequired:DependentRequired_DependentRequired,JSONSchema202012KeywordContentSchema:keywords_ContentSchema,JSONSchema202012KeywordTitle:GN,JSONSchema202012KeywordDescription:keywords_Description_Description,JSONSchema202012KeywordDefault:keywords_Default,JSONSchema202012KeywordDeprecated:keywords_Deprecated,JSONSchema202012KeywordReadOnly:keywords_ReadOnly,JSONSchema202012KeywordWriteOnly:keywords_WriteOnly,JSONSchema202012Accordion:XN,JSONSchema202012ExpandDeepButton:ExpandDeepButton_ExpandDeepButton,JSONSchema202012ChevronRightIcon:icons_ChevronRight,withJSONSchema202012Context:withJSONSchemaContext,JSONSchema202012DeepExpansionContext:()=>zN},fn:{upperFirst:fn_upperFirst,jsonSchema202012:{isExpandable,hasKeyword,useFn,useConfig,useComponent,useIsExpandedDeeply}}});var YN=__webpack_require__(68630),QN=__webpack_require__.n(YN);const array=(i,s)=>{let{sample:u}=s;return function(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{minItems:u,maxItems:m,uniqueItems:v}=s,{contains:_,minContains:j,maxContains:M}=s;let $=[...i];if(null!=_&&\"object\"==typeof _){if(Number.isInteger(j)&&j>1){const i=$.at(0);for(let s=1;s<j;s+=1)$.unshift(i)}Number.isInteger(M)}if(Number.isInteger(m)&&m>0&&($=i.slice(0,m)),Number.isInteger(u)&&u>0)for(let i=0;$.length<u;i+=1)$.push($[i%$.length]);return!0===v&&($=Array.from(new Set($))),$}(u,i)},object=()=>{throw new Error(\"Not implemented\")},bytes=i=>jt()(i),random_pick=i=>i.at(0),predicates_isBooleanJSONSchema=i=>\"boolean\"==typeof i,isJSONSchemaObject=i=>QN()(i),isJSONSchema=i=>predicates_isBooleanJSONSchema(i)||isJSONSchemaObject(i),email=()=>\"user@example.com\",idn_email=()=>\"실례@example.com\",hostname=()=>\"example.com\",idn_hostname=()=>\"실례.com\",ipv4=()=>\"198.51.100.42\",ipv6=()=>\"2001:0db8:5b96:0000:0000:426f:8e17:642a\",uri=()=>\"https://example.com/\",uri_reference=()=>\"path/index.html\",iri=()=>\"https://실례.com/\",iri_reference=()=>\"path/실례.html\",uuid=()=>\"3fa85f64-5717-4562-b3fc-2c963f66afa6\",uri_template=()=>\"https://example.com/dictionary/{term:1}/{term}\",json_pointer=()=>\"/a/b/c\",relative_json_pointer=()=>\"1/0\",date_time=()=>(new Date).toISOString(),date=()=>(new Date).toISOString().substring(0,10),time=()=>(new Date).toISOString().substring(11),duration=()=>\"P3D\",generators_password=()=>\"********\",regex=()=>\"^[a-z]+$\";const ZN=class Registry{constructor(){_o()(this,\"data\",{})}register(i,s){this.data[i]=s}unregister(i){void 0===i?this.data={}:delete this.data[i]}get(i){return this.data[i]}},eT=new ZN,api_formatAPI=(i,s)=>\"function\"==typeof s?eT.register(i,s):null===s?eT.unregister(i):eT.get(i);var tT=__webpack_require__(47667),rT=__webpack_require__.n(tT),nT=__webpack_require__(48764).Buffer;const _7bit=i=>nT.from(i).toString(\"ascii\");var oT=__webpack_require__(48764).Buffer;const _8bit=i=>oT.from(i).toString(\"utf8\");var iT=__webpack_require__(48764).Buffer;const encoders_binary=i=>iT.from(i).toString(\"binary\"),quoted_printable=i=>{let s=\"\";for(let u=0;u<i.length;u++){const m=i.charCodeAt(u);if(61===m)s+=\"=3D\";else if(m>=33&&m<=60||m>=62&&m<=126||9===m||32===m)s+=i.charAt(u);else if(13===m||10===m)s+=\"\\r\\n\";else if(m>126){const m=unescape(encodeURIComponent(i.charAt(u)));for(let i=0;i<m.length;i++)s+=\"=\"+(\"0\"+m.charCodeAt(i).toString(16)).slice(-2).toUpperCase()}else s+=\"=\"+(\"0\"+m.toString(16)).slice(-2).toUpperCase()}return s};var aT=__webpack_require__(48764).Buffer;const base16=i=>aT.from(i).toString(\"hex\");var sT=__webpack_require__(48764).Buffer;const base32=i=>{const s=sT.from(i).toString(\"utf8\"),u=\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\";let m=0,v=\"\",_=0,j=0;for(let i=0;i<s.length;i++)for(_=_<<8|s.charCodeAt(i),j+=8;j>=5;)v+=u.charAt(_>>>j-5&31),j-=5;j>0&&(v+=u.charAt(_<<5-j&31),m=(8-8*s.length%5)%5);for(let i=0;i<m;i++)v+=\"=\";return v};var cT=__webpack_require__(48764).Buffer;const base64=i=>cT.from(i).toString(\"base64\");function _classPrivateFieldInitSpec(i,s,u){!function _checkPrivateRedeclaration(i,s){if(s.has(i))throw new TypeError(\"Cannot initialize the same private elements twice on an object\")}(i,s),s.set(i,u)}var lT=new WeakMap;const uT=new class EncoderRegistry extends ZN{constructor(){super(...arguments),_classPrivateFieldInitSpec(this,lT,{writable:!0,value:{\"7bit\":_7bit,\"8bit\":_8bit,binary:encoders_binary,\"quoted-printable\":quoted_printable,base16,base32,base64}}),_o()(this,\"data\",rr()({},rT()(this,lT)))}get defaults(){return rr()({},rT()(this,lT))}},encoderAPI=(i,s)=>\"function\"==typeof s?uT.register(i,s):null===s?uT.unregister(i):uT.get(i);encoderAPI.getDefaults=()=>uT.defaults;const pT=encoderAPI,hT={\"text/plain\":()=>\"string\",\"text/css\":()=>\".selector { border: 1px solid red }\",\"text/csv\":()=>\"value1,value2,value3\",\"text/html\":()=>\"<p>content</p>\",\"text/calendar\":()=>\"BEGIN:VCALENDAR\",\"text/javascript\":()=>\"console.dir('Hello world!');\",\"text/xml\":()=>'<person age=\"30\">John Doe</person>',\"text/*\":()=>\"string\"},dT={\"image/*\":()=>bytes(25).toString(\"binary\")},fT={\"audio/*\":()=>bytes(25).toString(\"binary\")},mT={\"video/*\":()=>bytes(25).toString(\"binary\")},yT={\"application/json\":()=>'{\"key\":\"value\"}',\"application/ld+json\":()=>'{\"name\": \"John Doe\"}',\"application/x-httpd-php\":()=>\"<?php echo '<p>Hello World!</p>'; ?>\",\"application/rtf\":()=>String.raw`{\\rtf1\\adeflang1025\\ansi\\ansicpg1252\\uc1`,\"application/x-sh\":()=>'echo \"Hello World!\"',\"application/xhtml+xml\":()=>\"<p>content</p>\",\"application/*\":()=>bytes(25).toString(\"binary\")};function MediaTypeRegistry_classPrivateFieldInitSpec(i,s,u){!function MediaTypeRegistry_checkPrivateRedeclaration(i,s){if(s.has(i))throw new TypeError(\"Cannot initialize the same private elements twice on an object\")}(i,s),s.set(i,u)}var gT=new WeakMap;const vT=new class MediaTypeRegistry extends ZN{constructor(){super(...arguments),MediaTypeRegistry_classPrivateFieldInitSpec(this,gT,{writable:!0,value:rr()(rr()(rr()(rr()(rr()({},hT),dT),fT),mT),yT)}),_o()(this,\"data\",rr()({},rT()(this,gT)))}get defaults(){return rr()({},rT()(this,gT))}},mediaTypeAPI=(i,s)=>{if(\"function\"==typeof s)return vT.register(i,s);if(null===s)return vT.unregister(i);const u=i.split(\";\").at(0),m=`${u.split(\"/\").at(0)}/*`;return vT.get(i)||vT.get(u)||vT.get(m)};mediaTypeAPI.getDefaults=()=>vT.defaults;const bT=mediaTypeAPI,types_string=function(i){let{sample:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{contentEncoding:u,contentMediaType:m,contentSchema:v}=i,{pattern:_,format:j}=i,M=pT(u)||bC();let $;if(\"string\"==typeof _)$=(i=>{try{return new(Aa())(i).gen()}catch{return\"string\"}})(_);else if(\"string\"==typeof j)$=(i=>{const{format:s}=i,u=api_formatAPI(s);if(\"function\"==typeof u)return u(i);switch(s){case\"email\":return email();case\"idn-email\":return idn_email();case\"hostname\":return hostname();case\"idn-hostname\":return idn_hostname();case\"ipv4\":return ipv4();case\"ipv6\":return ipv6();case\"uri\":return uri();case\"uri-reference\":return uri_reference();case\"iri\":return iri();case\"iri-reference\":return iri_reference();case\"uuid\":return uuid();case\"uri-template\":return uri_template();case\"json-pointer\":return json_pointer();case\"relative-json-pointer\":return relative_json_pointer();case\"date-time\":return date_time();case\"date\":return date();case\"time\":return time();case\"duration\":return duration();case\"password\":return generators_password();case\"regex\":return regex()}return\"string\"})(i);else if(isJSONSchema(v)&&\"string\"==typeof m&&void 0!==s)$=Array.isArray(s)||\"object\"==typeof s?JSON.stringify(s):String(s);else if(\"string\"==typeof m){const s=bT(m);\"function\"==typeof s&&($=s(i))}else $=\"string\";return M(function(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{maxLength:u,minLength:m}=s;let v=i;if(Number.isInteger(u)&&u>0&&(v=v.slice(0,u)),Number.isInteger(m)&&m>0){let i=0;for(;v.length<m;)v+=v[i++%v.length]}return v}($,i))},generators_float=()=>.1,generators_double=()=>.1,types_number=i=>{const{format:s}=i;let u;return u=\"string\"==typeof s?(i=>{const{format:s}=i,u=api_formatAPI(s);if(\"function\"==typeof u)return u(i);switch(s){case\"float\":return generators_float();case\"double\":return generators_double()}return 0})(i):0,function(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{minimum:u,maximum:m,exclusiveMinimum:v,exclusiveMaximum:_}=s,{multipleOf:j}=s,M=Number.isInteger(i)?1:Number.EPSILON;let $=\"number\"==typeof u?u:null,W=\"number\"==typeof m?m:null,X=i;if(\"number\"==typeof v&&($=null!==$?Math.max($,v+M):v+M),\"number\"==typeof _&&(W=null!==W?Math.min(W,_-M):_-M),X=$>W&&i||$||W||X,\"number\"==typeof j&&j>0){const i=X%j;X=0===i?X:X+j-i}return X}(u,i)},int32=()=>2**30>>>0,int64=()=>2**53-1,types_integer=i=>{const{format:s}=i;return\"string\"==typeof s?(i=>{const{format:s}=i,u=api_formatAPI(s);if(\"function\"==typeof u)return u(i);switch(s){case\"int32\":return int32();case\"int64\":return int64()}return 0})(i):0},types_boolean=i=>\"boolean\"!=typeof i.default||i.default,_T=new Proxy({array,object,string:types_string,number:types_number,integer:types_integer,boolean:types_boolean,null:()=>null},{get:(i,s)=>\"string\"==typeof s&&Object.hasOwn(i,s)?i[s]:()=>`Unknown Type: ${s}`}),wT=[\"array\",\"object\",\"number\",\"integer\",\"string\",\"boolean\",\"null\"],hasExample=i=>{if(!isJSONSchemaObject(i))return!1;const{examples:s,example:u,default:m}=i;return!!(Array.isArray(s)&&s.length>=1)||(void 0!==m||void 0!==u)},extractExample=i=>{if(!isJSONSchemaObject(i))return null;const{examples:s,example:u,default:m}=i;return Array.isArray(s)&&s.length>=1?s.at(0):void 0!==m?m:void 0!==u?u:void 0},ET={array:[\"items\",\"prefixItems\",\"contains\",\"maxContains\",\"minContains\",\"maxItems\",\"minItems\",\"uniqueItems\",\"unevaluatedItems\"],object:[\"properties\",\"additionalProperties\",\"patternProperties\",\"propertyNames\",\"minProperties\",\"maxProperties\",\"required\",\"dependentSchemas\",\"dependentRequired\",\"unevaluatedProperties\"],string:[\"pattern\",\"format\",\"minLength\",\"maxLength\",\"contentEncoding\",\"contentMediaType\",\"contentSchema\"],integer:[\"minimum\",\"maximum\",\"exclusiveMinimum\",\"exclusiveMaximum\",\"multipleOf\"]};ET.number=ET.integer;const ST=\"string\",inferTypeFromValue=i=>void 0===i?null:null===i?\"null\":Array.isArray(i)?\"array\":Number.isInteger(i)?\"integer\":typeof i,foldType=i=>{if(Array.isArray(i)&&i.length>=1){if(i.includes(\"array\"))return\"array\";if(i.includes(\"object\"))return\"object\";{const s=random_pick(i);if(wT.includes(s))return s}}return wT.includes(i)?i:null},inferType=function(i){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new WeakSet;if(!isJSONSchemaObject(i))return ST;if(s.has(i))return ST;s.add(i);let{type:u,const:m}=i;if(u=foldType(u),\"string\"!=typeof u){const s=Object.keys(ET);e:for(let m=0;m<s.length;m+=1){const v=s[m],_=ET[v];for(let s=0;s<_.length;s+=1){const m=_[s];if(Object.hasOwn(i,m)){u=v;break e}}}}if(\"string\"!=typeof u&&void 0!==m){const i=inferTypeFromValue(m);u=\"string\"==typeof i?i:u}if(\"string\"!=typeof u){const combineTypes=u=>{if(Array.isArray(i[u])){const m=i[u].map((i=>inferType(i,s)));return foldType(m)}return null},m=combineTypes(\"allOf\"),v=combineTypes(\"anyOf\"),_=combineTypes(\"oneOf\"),j=i.not?inferType(i.not,s):null;(m||v||_||j)&&(u=foldType([m,v,_,j].filter(Boolean)))}if(\"string\"!=typeof u&&hasExample(i)){const s=extractExample(i),m=inferTypeFromValue(s);u=\"string\"==typeof m?m:u}return s.delete(i),u||ST},type_getType=i=>inferType(i),typeCast=i=>predicates_isBooleanJSONSchema(i)?(i=>!1===i?{not:{}}:{})(i):isJSONSchemaObject(i)?i:{},merge_merge=function(i,s){let u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(predicates_isBooleanJSONSchema(i)&&!0===i)return!0;if(predicates_isBooleanJSONSchema(i)&&!1===i)return!1;if(predicates_isBooleanJSONSchema(s)&&!0===s)return!0;if(predicates_isBooleanJSONSchema(s)&&!1===s)return!1;if(!isJSONSchema(i))return s;if(!isJSONSchema(s))return i;const m=rr()(rr()({},s),i);if(s.type&&i.type&&Array.isArray(s.type)&&\"string\"==typeof s.type){const u=normalizeArray(s.type).concat(i.type);m.type=Array.from(new Set(u))}if(Array.isArray(s.required)&&Array.isArray(i.required)&&(m.required=[...new Set([...i.required,...s.required])]),s.properties&&i.properties){const v=new Set([...Object.keys(s.properties),...Object.keys(i.properties)]);m.properties={};for(const _ of v){const v=s.properties[_]||{},j=i.properties[_]||{};v.readOnly&&!u.includeReadOnly||v.writeOnly&&!u.includeWriteOnly?m.required=(m.required||[]).filter((i=>i!==_)):m.properties[_]=merge_merge(j,v,u)}}return isJSONSchema(s.items)&&isJSONSchema(i.items)&&(m.items=merge_merge(i.items,s.items,u)),isJSONSchema(s.contains)&&isJSONSchema(i.contains)&&(m.contains=merge_merge(i.contains,s.contains,u)),isJSONSchema(s.contentSchema)&&isJSONSchema(i.contentSchema)&&(m.contentSchema=merge_merge(i.contentSchema,s.contentSchema,u)),m},xT=merge_merge,main_sampleFromSchemaGeneric=function(i){var s;let u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,v=arguments.length>3&&void 0!==arguments[3]&&arguments[3];\"function\"==typeof(null===(s=i)||void 0===s?void 0:s.toJS)&&(i=i.toJS()),i=typeCast(i);let _=void 0!==m||hasExample(i);const j=!_&&Array.isArray(i.oneOf)&&i.oneOf.length>0,M=!_&&Array.isArray(i.anyOf)&&i.anyOf.length>0;if(!_&&(j||M)){const s=typeCast(random_pick(j?i.oneOf:i.anyOf));!(i=xT(i,s,u)).xml&&s.xml&&(i.xml=s.xml),hasExample(i)&&hasExample(s)&&(_=!0)}const $={};let{xml:W,properties:X,additionalProperties:Y,items:Z,contains:ee}=i||{},ie=type_getType(i),{includeReadOnly:ae,includeWriteOnly:ce}=u;W=W||{};let le,{name:pe,prefix:de,namespace:fe}=W,ye={};if(Object.hasOwn(i,\"type\")||(i.type=ie),v&&(pe=pe||\"notagname\",le=(de?`${de}:`:\"\")+pe,fe)){$[de?`xmlns:${de}`:\"xmlns\"]=fe}v&&(ye[le]=[]);const be=objectify(X);let _e,we=0;const hasExceededMaxProperties=()=>Number.isInteger(i.maxProperties)&&i.maxProperties>0&&we>=i.maxProperties,canAddProperty=s=>!(Number.isInteger(i.maxProperties)&&i.maxProperties>0)||!hasExceededMaxProperties()&&(!(s=>!Array.isArray(i.required)||0===i.required.length||!i.required.includes(s))(s)||i.maxProperties-we-(()=>{if(!Array.isArray(i.required)||0===i.required.length)return 0;let s=0;return v?i.required.forEach((i=>s+=void 0===ye[i]?0:1)):i.required.forEach((i=>{var u;s+=void 0===(null===(u=ye[le])||void 0===u?void 0:u.find((s=>void 0!==s[i])))?0:1})),i.required.length-s})()>0);if(_e=v?function(s){let m=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if(i&&be[s]){if(be[s].xml=be[s].xml||{},be[s].xml.attribute){const i=Array.isArray(be[s].enum)?random_pick(be[s].enum):void 0;if(hasExample(be[s]))$[be[s].xml.name||s]=extractExample(be[s]);else if(void 0!==i)$[be[s].xml.name||s]=i;else{const i=typeCast(be[s]),u=type_getType(i),m=be[s].xml.name||s;$[m]=_T[u](i)}return}be[s].xml.name=be[s].xml.name||s}else be[s]||!1===Y||(be[s]={xml:{name:s}});let _=main_sampleFromSchemaGeneric(be[s],u,m,v);canAddProperty(s)&&(we++,Array.isArray(_)?ye[le]=ye[le].concat(_):ye[le].push(_))}:(s,m)=>{var _;if(canAddProperty(s)){if(QN()(null===(_=i.discriminator)||void 0===_?void 0:_.mapping)&&i.discriminator.propertyName===s&&\"string\"==typeof i.$$ref){for(const u in i.discriminator.mapping)if(-1!==i.$$ref.search(i.discriminator.mapping[u])){ye[s]=u;break}}else ye[s]=main_sampleFromSchemaGeneric(be[s],u,m,v);we++}},_){let s;if(s=void 0!==m?m:extractExample(i),!v){if(\"number\"==typeof s&&\"string\"===ie)return`${s}`;if(\"string\"!=typeof s||\"string\"===ie)return s;try{return JSON.parse(s)}catch{return s}}if(\"array\"===ie){if(!Array.isArray(s)){if(\"string\"==typeof s)return s;s=[s]}let m=[];return isJSONSchemaObject(Z)&&(Z.xml=Z.xml||W||{},Z.xml.name=Z.xml.name||W.name,m=s.map((i=>main_sampleFromSchemaGeneric(Z,u,i,v)))),isJSONSchemaObject(ee)&&(ee.xml=ee.xml||W||{},ee.xml.name=ee.xml.name||W.name,m=[main_sampleFromSchemaGeneric(ee,u,void 0,v),...m]),m=_T.array(i,{sample:m}),W.wrapped?(ye[le]=m,ja()($)||ye[le].push({_attr:$})):ye=m,ye}if(\"object\"===ie){if(\"string\"==typeof s)return s;for(const i in s){var Se,xe,Pe;Object.hasOwn(s,i)&&(null!==(Se=be[i])&&void 0!==Se&&Se.readOnly&&!ae||null!==(xe=be[i])&&void 0!==xe&&xe.writeOnly&&!ce||(null!==(Pe=be[i])&&void 0!==Pe&&null!==(Pe=Pe.xml)&&void 0!==Pe&&Pe.attribute?$[be[i].xml.name||i]=s[i]:_e(i,s[i])))}return ja()($)||ye[le].push({_attr:$}),ye}return ye[le]=ja()($)?s:[{_attr:$},s],ye}if(\"array\"===ie){let s=[];if(isJSONSchemaObject(ee))if(v&&(ee.xml=ee.xml||i.xml||{},ee.xml.name=ee.xml.name||W.name),Array.isArray(ee.anyOf))s.push(...ee.anyOf.map((i=>main_sampleFromSchemaGeneric(xT(i,ee,u),u,void 0,v))));else if(Array.isArray(ee.oneOf))s.push(...ee.oneOf.map((i=>main_sampleFromSchemaGeneric(xT(i,ee,u),u,void 0,v))));else{if(!(!v||v&&W.wrapped))return main_sampleFromSchemaGeneric(ee,u,void 0,v);s.push(main_sampleFromSchemaGeneric(ee,u,void 0,v))}if(isJSONSchemaObject(Z))if(v&&(Z.xml=Z.xml||i.xml||{},Z.xml.name=Z.xml.name||W.name),Array.isArray(Z.anyOf))s.push(...Z.anyOf.map((i=>main_sampleFromSchemaGeneric(xT(i,Z,u),u,void 0,v))));else if(Array.isArray(Z.oneOf))s.push(...Z.oneOf.map((i=>main_sampleFromSchemaGeneric(xT(i,Z,u),u,void 0,v))));else{if(!(!v||v&&W.wrapped))return main_sampleFromSchemaGeneric(Z,u,void 0,v);s.push(main_sampleFromSchemaGeneric(Z,u,void 0,v))}return s=_T.array(i,{sample:s}),v&&W.wrapped?(ye[le]=s,ja()($)||ye[le].push({_attr:$}),ye):s}if(\"object\"===ie){for(let i in be){var Ie,Te,Re;Object.hasOwn(be,i)&&(null!==(Ie=be[i])&&void 0!==Ie&&Ie.deprecated||null!==(Te=be[i])&&void 0!==Te&&Te.readOnly&&!ae||null!==(Re=be[i])&&void 0!==Re&&Re.writeOnly&&!ce||_e(i))}if(v&&$&&ye[le].push({_attr:$}),hasExceededMaxProperties())return ye;if(predicates_isBooleanJSONSchema(Y)&&Y)v?ye[le].push({additionalProp:\"Anything can be here\"}):ye.additionalProp1={},we++;else if(isJSONSchemaObject(Y)){var qe,ze;const s=Y,m=main_sampleFromSchemaGeneric(s,u,void 0,v);if(v&&\"string\"==typeof(null==s||null===(qe=s.xml)||void 0===qe?void 0:qe.name)&&\"notagname\"!==(null==s||null===(ze=s.xml)||void 0===ze?void 0:ze.name))ye[le].push(m);else{const s=Number.isInteger(i.minProperties)&&i.minProperties>0&&we<i.minProperties?i.minProperties-we:3;for(let i=1;i<=s;i++){if(hasExceededMaxProperties())return ye;if(v){const s={};s[\"additionalProp\"+i]=m.notagname,ye[le].push(s)}else ye[\"additionalProp\"+i]=m;we++}}}return ye}let Ve;if(void 0!==i.const)Ve=i.const;else if(i&&Array.isArray(i.enum))Ve=random_pick(normalizeArray(i.enum));else{const s=isJSONSchemaObject(i.contentSchema)?main_sampleFromSchemaGeneric(i.contentSchema,u,void 0,v):void 0;Ve=_T[ie](i,{sample:s})}return v?(ye[le]=ja()($)?Ve:[{_attr:$},Ve],ye):Ve},main_createXMLExample=(i,s,u)=>{const m=main_sampleFromSchemaGeneric(i,s,u,!0);if(m)return\"string\"==typeof m?m:Oa()(m,{declaration:!0,indent:\"\\t\"})},main_sampleFromSchema=(i,s,u)=>main_sampleFromSchemaGeneric(i,s,u,!1),main_resolver=(i,s,u)=>[i,JSON.stringify(s),JSON.stringify(u)],OT=utils_memoizeN(main_createXMLExample,main_resolver),kT=utils_memoizeN(main_sampleFromSchema,main_resolver),AT=[{when:/json/,shouldStringifyTypes:[\"string\"]}],CT=[\"object\"],fn_get_json_sample_schema=i=>(s,u,m,v)=>{const{fn:_}=i(),j=_.jsonSchema202012.memoizedSampleFromSchema(s,u,v),M=typeof j,$=AT.reduce(((i,s)=>s.when.test(m)?[...i,...s.shouldStringifyTypes]:i),CT);return wt()($,(i=>i===M))?JSON.stringify(j,null,2):j},fn_get_yaml_sample_schema=i=>(s,u,m,v)=>{const{fn:_}=i(),j=_.jsonSchema202012.getJsonSampleSchema(s,u,m,v);let M;try{M=co.dump(co.load(j),{lineWidth:-1},{schema:Yn}),\"\\n\"===M[M.length-1]&&(M=M.slice(0,M.length-1))}catch(i){return console.error(i),\"error: could not generate yaml example\"}return M.replace(/\\t/g,\"  \")},fn_get_xml_sample_schema=i=>(s,u,m)=>{const{fn:v}=i();if(s&&!s.xml&&(s.xml={}),s&&!s.xml.name){if(!s.$$ref&&(s.type||s.items||s.properties||s.additionalProperties))return'<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n\\x3c!-- XML example cannot be generated; root element name is undefined --\\x3e';if(s.$$ref){let i=s.$$ref.match(/\\S*\\/(\\S+)$/);s.xml.name=i[1]}}return v.jsonSchema202012.memoizedCreateXMLExample(s,u,m)},fn_get_sample_schema=i=>function(s){var u,m;let v=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",_=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},j=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;const{fn:M}=i();return\"function\"==typeof(null===(u=s)||void 0===u?void 0:u.toJS)&&(s=s.toJS()),\"function\"==typeof(null===(m=j)||void 0===m?void 0:m.toJS)&&(j=j.toJS()),/xml/.test(v)?M.jsonSchema202012.getXmlSampleSchema(s,_,j):/(yaml|yml)/.test(v)?M.jsonSchema202012.getYamlSampleSchema(s,_,v,j):M.jsonSchema202012.getJsonSampleSchema(s,_,v,j)},json_schema_2020_12_samples=i=>{let{getSystem:s}=i;const u=fn_get_json_sample_schema(s),m=fn_get_yaml_sample_schema(s),v=fn_get_xml_sample_schema(s),_=fn_get_sample_schema(s);return{fn:{jsonSchema202012:{sampleFromSchema:main_sampleFromSchema,sampleFromSchemaGeneric:main_sampleFromSchemaGeneric,sampleEncoderAPI:pT,sampleFormatAPI:api_formatAPI,sampleMediaTypeAPI:bT,createXMLExample:main_createXMLExample,memoizedSampleFromSchema:kT,memoizedCreateXMLExample:OT,getJsonSampleSchema:u,getYamlSampleSchema:m,getXmlSampleSchema:v,getSampleSchema:_}}}};function PresetApis(){return[base,oas3,json_schema_2020_12,json_schema_2020_12_samples,oas31]}const{GIT_DIRTY:jT,GIT_COMMIT:PT,PACKAGE_VERSION:IT,BUILD_TIME:NT}={PACKAGE_VERSION:\"5.6.2\",GIT_COMMIT:\"g5dbfc1b4\",GIT_DIRTY:!0,BUILD_TIME:\"Wed, 06 Sep 2023 05:52:08 GMT\"};function SwaggerUI(i){dt.versions=dt.versions||{},dt.versions.swaggerUi={version:IT,gitRevision:PT,gitDirty:jT,buildTimestamp:NT};const s={dom_id:null,domNode:null,spec:{},url:\"\",urls:null,layout:\"BaseLayout\",docExpansion:\"list\",maxDisplayedTags:null,filter:null,validatorUrl:\"https://validator.swagger.io/validator\",oauth2RedirectUrl:`${window.location.protocol}//${window.location.host}${window.location.pathname.substring(0,window.location.pathname.lastIndexOf(\"/\"))}/oauth2-redirect.html`,persistAuthorization:!1,configs:{},custom:{},displayOperationId:!1,displayRequestDuration:!1,deepLinking:!1,tryItOutEnabled:!1,requestInterceptor:i=>i,responseInterceptor:i=>i,showMutatedRequest:!0,defaultModelRendering:\"example\",defaultModelExpandDepth:1,defaultModelsExpandDepth:1,showExtensions:!1,showCommonExtensions:!1,withCredentials:void 0,requestSnippetsEnabled:!1,requestSnippets:{generators:{curl_bash:{title:\"cURL (bash)\",syntax:\"bash\"},curl_powershell:{title:\"cURL (PowerShell)\",syntax:\"powershell\"},curl_cmd:{title:\"cURL (CMD)\",syntax:\"bash\"}},defaultExpanded:!0,languages:null},supportedSubmitMethods:[\"get\",\"put\",\"post\",\"delete\",\"options\",\"head\",\"patch\",\"trace\"],queryConfigEnabled:!1,presets:[PresetApis],plugins:[],pluginsOptions:{pluginLoadType:\"legacy\"},initialState:{},fn:{},components:{},syntaxHighlight:{activated:!0,theme:\"agate\"}};let u=i.queryConfigEnabled?(()=>{let i={},s=dt.location.search;if(!s)return{};if(\"\"!=s){let u=s.substr(1).split(\"&\");for(let s in u)Object.prototype.hasOwnProperty.call(u,s)&&(s=u[s].split(\"=\"),i[decodeURIComponent(s[0])]=s[1]&&decodeURIComponent(s[1])||\"\")}return i})():{};const m=i.domNode;delete i.domNode;const v=We()({},s,i,u),_={system:{configs:v.configs},plugins:v.presets,pluginsOptions:v.pluginsOptions,state:We()({layout:{layout:v.layout,filter:v.filter},spec:{spec:\"\",url:v.url},requestSnippets:v.requestSnippets},v.initialState)};if(v.initialState)for(var j in v.initialState)Object.prototype.hasOwnProperty.call(v.initialState,j)&&void 0===v.initialState[j]&&delete _.state[j];var M=new Store(_);M.register([v.plugins,()=>({fn:v.fn,components:v.components,state:v.state})]);var $=M.getSystem();const downloadSpec=i=>{let s=$.specSelectors.getLocalConfig?$.specSelectors.getLocalConfig():{},_=We()({},s,v,i||{},u);if(m&&(_.domNode=m),M.setConfigs(_),$.configsActions.loaded(),null!==i&&(!u.url&&\"object\"==typeof _.spec&&Object.keys(_.spec).length?($.specActions.updateUrl(\"\"),$.specActions.updateLoadingStatus(\"success\"),$.specActions.updateSpec(JSON.stringify(_.spec))):$.specActions.download&&_.url&&!_.urls&&($.specActions.updateUrl(_.url),$.specActions.download(_.url))),_.domNode)$.render(_.domNode,\"App\");else if(_.dom_id){let i=document.querySelector(_.dom_id);$.render(i,\"App\")}else null===_.dom_id||null===_.domNode||console.error(\"Skipped rendering: no `dom_id` or `domNode` was specified\");return $},W=u.config||v.configUrl;return W&&$.specActions&&$.specActions.getConfigByUrl?($.specActions.getConfigByUrl({url:W,loadRemoteConfig:!0,requestInterceptor:v.requestInterceptor,responseInterceptor:v.responseInterceptor},downloadSpec),$):downloadSpec()}SwaggerUI.System=Store,SwaggerUI.presets={base,apis:PresetApis},SwaggerUI.plugins={Auth:auth,Configs:configsPlugin,DeepLining:deep_linking,Err:err,Filter:filter,Icons:icons,JSONSchema5Samples:json_schema_5_samples,JSONSchema202012:json_schema_2020_12,JSONSchema202012Samples:json_schema_2020_12_samples,Layout:plugins_layout,Logs:logs,OpenAPI30:oas3,OpenAPI31:oas3,OnComplete:on_complete,RequestSnippets:plugins_request_snippets,Spec:plugins_spec,SwaggerClient:swagger_client,Util:util,View:view,DownloadUrl:downloadUrlPlugin,SafeRender:safe_render};const TT=SwaggerUI})(),u=u.default})()));\n//# sourceMappingURL=swagger-ui-bundle.js.map"
  },
  {
    "path": "docs/swagger/swagger-ui-standalone-preset.js",
    "content": "/*! For license information please see swagger-ui-standalone-preset.js.LICENSE.txt */\n!function webpackUniversalModuleDefinition(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.SwaggerUIStandalonePreset=e():t.SwaggerUIStandalonePreset=e()}(this,(()=>(()=>{var t={7967:(t,e)=>{\"use strict\";e.Rq=void 0;var r=/^([^\\w]*)(javascript|data|vbscript)/im,n=/&#(\\w+)(^\\w|;)?/g,i=/&(newline|tab);/gi,o=/[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim,a=/^.+(:|&colon;)/gim,s=[\".\",\"/\"];e.Rq=\"about:blank\"},9742:(t,e)=>{\"use strict\";e.byteLength=function byteLength(t){var e=getLens(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function toByteArray(t){var e,r,o=getLens(t),a=o[0],s=o[1],u=new i(function _byteLength(t,e,r){return 3*(e+r)/4-r}(0,a,s)),c=0,f=s>0?a-4:a;for(r=0;r<f;r+=4)e=n[t.charCodeAt(r)]<<18|n[t.charCodeAt(r+1)]<<12|n[t.charCodeAt(r+2)]<<6|n[t.charCodeAt(r+3)],u[c++]=e>>16&255,u[c++]=e>>8&255,u[c++]=255&e;2===s&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,u[c++]=255&e);1===s&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,u[c++]=e>>8&255,u[c++]=255&e);return u},e.fromByteArray=function fromByteArray(t){for(var e,n=t.length,i=n%3,o=[],a=16383,s=0,u=n-i;s<u;s+=a)o.push(encodeChunk(t,s,s+a>u?u:s+a));1===i?(e=t[n-1],o.push(r[e>>2]+r[e<<4&63]+\"==\")):2===i&&(e=(t[n-2]<<8)+t[n-1],o.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+\"=\"));return o.join(\"\")};for(var r=[],n=[],i=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",a=0;a<64;++a)r[a]=o[a],n[o.charCodeAt(a)]=a;function getLens(t){var e=t.length;if(e%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=t.indexOf(\"=\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function encodeChunk(t,e,n){for(var i,o,a=[],s=e;s<n;s+=3)i=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(255&t[s+2]),a.push(r[(o=i)>>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return a.join(\"\")}n[\"-\".charCodeAt(0)]=62,n[\"_\".charCodeAt(0)]=63},8764:(t,e,r)=>{\"use strict\";const n=r(9742),i=r(645),o=\"function\"==typeof Symbol&&\"function\"==typeof Symbol.for?Symbol.for(\"nodejs.util.inspect.custom\"):null;e.Buffer=Buffer,e.SlowBuffer=function SlowBuffer(t){+t!=t&&(t=0);return Buffer.alloc(+t)},e.INSPECT_MAX_BYTES=50;const a=2147483647;function createBuffer(t){if(t>a)throw new RangeError('The value \"'+t+'\" is invalid for option \"size\"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,Buffer.prototype),e}function Buffer(t,e,r){if(\"number\"==typeof t){if(\"string\"==typeof e)throw new TypeError('The \"string\" argument must be of type string. Received type number');return allocUnsafe(t)}return from(t,e,r)}function from(t,e,r){if(\"string\"==typeof t)return function fromString(t,e){\"string\"==typeof e&&\"\"!==e||(e=\"utf8\");if(!Buffer.isEncoding(e))throw new TypeError(\"Unknown encoding: \"+e);const r=0|byteLength(t,e);let n=createBuffer(r);const i=n.write(t,e);i!==r&&(n=n.slice(0,i));return n}(t,e);if(ArrayBuffer.isView(t))return function fromArrayView(t){if(isInstance(t,Uint8Array)){const e=new Uint8Array(t);return fromArrayBuffer(e.buffer,e.byteOffset,e.byteLength)}return fromArrayLike(t)}(t);if(null==t)throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof t);if(isInstance(t,ArrayBuffer)||t&&isInstance(t.buffer,ArrayBuffer))return fromArrayBuffer(t,e,r);if(\"undefined\"!=typeof SharedArrayBuffer&&(isInstance(t,SharedArrayBuffer)||t&&isInstance(t.buffer,SharedArrayBuffer)))return fromArrayBuffer(t,e,r);if(\"number\"==typeof t)throw new TypeError('The \"value\" argument must not be of type number. Received type number');const n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return Buffer.from(n,e,r);const i=function fromObject(t){if(Buffer.isBuffer(t)){const e=0|checked(t.length),r=createBuffer(e);return 0===r.length||t.copy(r,0,0,e),r}if(void 0!==t.length)return\"number\"!=typeof t.length||numberIsNaN(t.length)?createBuffer(0):fromArrayLike(t);if(\"Buffer\"===t.type&&Array.isArray(t.data))return fromArrayLike(t.data)}(t);if(i)return i;if(\"undefined\"!=typeof Symbol&&null!=Symbol.toPrimitive&&\"function\"==typeof t[Symbol.toPrimitive])return Buffer.from(t[Symbol.toPrimitive](\"string\"),e,r);throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof t)}function assertSize(t){if(\"number\"!=typeof t)throw new TypeError('\"size\" argument must be of type number');if(t<0)throw new RangeError('The value \"'+t+'\" is invalid for option \"size\"')}function allocUnsafe(t){return assertSize(t),createBuffer(t<0?0:0|checked(t))}function fromArrayLike(t){const e=t.length<0?0:0|checked(t.length),r=createBuffer(e);for(let n=0;n<e;n+=1)r[n]=255&t[n];return r}function fromArrayBuffer(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('\"offset\" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('\"length\" is outside of buffer bounds');let n;return n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r),Object.setPrototypeOf(n,Buffer.prototype),n}function checked(t){if(t>=a)throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+a.toString(16)+\" bytes\");return 0|t}function byteLength(t,e){if(Buffer.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||isInstance(t,ArrayBuffer))return t.byteLength;if(\"string\"!=typeof t)throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":return utf8ToBytes(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return base64ToBytes(t).length;default:if(i)return n?-1:utf8ToBytes(t).length;e=(\"\"+e).toLowerCase(),i=!0}}function slowToString(t,e,r){let n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(e>>>=0))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return hexSlice(this,e,r);case\"utf8\":case\"utf-8\":return utf8Slice(this,e,r);case\"ascii\":return asciiSlice(this,e,r);case\"latin1\":case\"binary\":return latin1Slice(this,e,r);case\"base64\":return base64Slice(this,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return utf16leSlice(this,e,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0}}function swap(t,e,r){const n=t[e];t[e]=t[r],t[r]=n}function bidirectionalIndexOf(t,e,r,n,i){if(0===t.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),numberIsNaN(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof e&&(e=Buffer.from(e,n)),Buffer.isBuffer(e))return 0===e.length?-1:arrayIndexOf(t,e,r,n,i);if(\"number\"==typeof e)return e&=255,\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):arrayIndexOf(t,[e],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function arrayIndexOf(t,e,r,n,i){let o,a=1,s=t.length,u=e.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,r/=2}function read(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(i){let n=-1;for(o=r;o<s;o++)if(read(t,o)===read(e,-1===n?0:o-n)){if(-1===n&&(n=o),o-n+1===u)return n*a}else-1!==n&&(o-=o-n),n=-1}else for(r+u>s&&(r=s-u),o=r;o>=0;o--){let r=!0;for(let n=0;n<u;n++)if(read(t,o+n)!==read(e,n)){r=!1;break}if(r)return o}return-1}function hexWrite(t,e,r,n){r=Number(r)||0;const i=t.length-r;n?(n=Number(n))>i&&(n=i):n=i;const o=e.length;let a;for(n>o/2&&(n=o/2),a=0;a<n;++a){const n=parseInt(e.substr(2*a,2),16);if(numberIsNaN(n))return a;t[r+a]=n}return a}function utf8Write(t,e,r,n){return blitBuffer(utf8ToBytes(e,t.length-r),t,r,n)}function asciiWrite(t,e,r,n){return blitBuffer(function asciiToBytes(t){const e=[];for(let r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(e),t,r,n)}function base64Write(t,e,r,n){return blitBuffer(base64ToBytes(e),t,r,n)}function ucs2Write(t,e,r,n){return blitBuffer(function utf16leToBytes(t,e){let r,n,i;const o=[];for(let a=0;a<t.length&&!((e-=2)<0);++a)r=t.charCodeAt(a),n=r>>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function base64Slice(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function utf8Slice(t,e,r){r=Math.min(t.length,r);const n=[];let i=e;for(;i<r;){const e=t[i];let o=null,a=e>239?4:e>223?3:e>191?2:1;if(i+a<=r){let r,n,s,u;switch(a){case 1:e<128&&(o=e);break;case 2:r=t[i+1],128==(192&r)&&(u=(31&e)<<6|63&r,u>127&&(o=u));break;case 3:r=t[i+1],n=t[i+2],128==(192&r)&&128==(192&n)&&(u=(15&e)<<12|(63&r)<<6|63&n,u>2047&&(u<55296||u>57343)&&(o=u));break;case 4:r=t[i+1],n=t[i+2],s=t[i+3],128==(192&r)&&128==(192&n)&&128==(192&s)&&(u=(15&e)<<18|(63&r)<<12|(63&n)<<6|63&s,u>65535&&u<1114112&&(o=u))}}null===o?(o=65533,a=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=a}return function decodeCodePointsArray(t){const e=t.length;if(e<=s)return String.fromCharCode.apply(String,t);let r=\"\",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=s));return r}(n)}e.kMaxLength=a,Buffer.TYPED_ARRAY_SUPPORT=function typedArraySupport(){try{const t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),Buffer.TYPED_ARRAY_SUPPORT||\"undefined\"==typeof console||\"function\"!=typeof console.error||console.error(\"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\"),Object.defineProperty(Buffer.prototype,\"parent\",{enumerable:!0,get:function(){if(Buffer.isBuffer(this))return this.buffer}}),Object.defineProperty(Buffer.prototype,\"offset\",{enumerable:!0,get:function(){if(Buffer.isBuffer(this))return this.byteOffset}}),Buffer.poolSize=8192,Buffer.from=function(t,e,r){return from(t,e,r)},Object.setPrototypeOf(Buffer.prototype,Uint8Array.prototype),Object.setPrototypeOf(Buffer,Uint8Array),Buffer.alloc=function(t,e,r){return function alloc(t,e,r){return assertSize(t),t<=0?createBuffer(t):void 0!==e?\"string\"==typeof r?createBuffer(t).fill(e,r):createBuffer(t).fill(e):createBuffer(t)}(t,e,r)},Buffer.allocUnsafe=function(t){return allocUnsafe(t)},Buffer.allocUnsafeSlow=function(t){return allocUnsafe(t)},Buffer.isBuffer=function isBuffer(t){return null!=t&&!0===t._isBuffer&&t!==Buffer.prototype},Buffer.compare=function compare(t,e){if(isInstance(t,Uint8Array)&&(t=Buffer.from(t,t.offset,t.byteLength)),isInstance(e,Uint8Array)&&(e=Buffer.from(e,e.offset,e.byteLength)),!Buffer.isBuffer(t)||!Buffer.isBuffer(e))throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;let r=t.length,n=e.length;for(let i=0,o=Math.min(r,n);i<o;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:n<r?1:0},Buffer.isEncoding=function isEncoding(t){switch(String(t).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return!0;default:return!1}},Buffer.concat=function concat(t,e){if(!Array.isArray(t))throw new TypeError('\"list\" argument must be an Array of Buffers');if(0===t.length)return Buffer.alloc(0);let r;if(void 0===e)for(e=0,r=0;r<t.length;++r)e+=t[r].length;const n=Buffer.allocUnsafe(e);let i=0;for(r=0;r<t.length;++r){let e=t[r];if(isInstance(e,Uint8Array))i+e.length>n.length?(Buffer.isBuffer(e)||(e=Buffer.from(e)),e.copy(n,i)):Uint8Array.prototype.set.call(n,e,i);else{if(!Buffer.isBuffer(e))throw new TypeError('\"list\" argument must be an Array of Buffers');e.copy(n,i)}i+=e.length}return n},Buffer.byteLength=byteLength,Buffer.prototype._isBuffer=!0,Buffer.prototype.swap16=function swap16(){const t=this.length;if(t%2!=0)throw new RangeError(\"Buffer size must be a multiple of 16-bits\");for(let e=0;e<t;e+=2)swap(this,e,e+1);return this},Buffer.prototype.swap32=function swap32(){const t=this.length;if(t%4!=0)throw new RangeError(\"Buffer size must be a multiple of 32-bits\");for(let e=0;e<t;e+=4)swap(this,e,e+3),swap(this,e+1,e+2);return this},Buffer.prototype.swap64=function swap64(){const t=this.length;if(t%8!=0)throw new RangeError(\"Buffer size must be a multiple of 64-bits\");for(let e=0;e<t;e+=8)swap(this,e,e+7),swap(this,e+1,e+6),swap(this,e+2,e+5),swap(this,e+3,e+4);return this},Buffer.prototype.toString=function toString(){const t=this.length;return 0===t?\"\":0===arguments.length?utf8Slice(this,0,t):slowToString.apply(this,arguments)},Buffer.prototype.toLocaleString=Buffer.prototype.toString,Buffer.prototype.equals=function equals(t){if(!Buffer.isBuffer(t))throw new TypeError(\"Argument must be a Buffer\");return this===t||0===Buffer.compare(this,t)},Buffer.prototype.inspect=function inspect(){let t=\"\";const r=e.INSPECT_MAX_BYTES;return t=this.toString(\"hex\",0,r).replace(/(.{2})/g,\"$1 \").trim(),this.length>r&&(t+=\" ... \"),\"<Buffer \"+t+\">\"},o&&(Buffer.prototype[o]=Buffer.prototype.inspect),Buffer.prototype.compare=function compare(t,e,r,n,i){if(isInstance(t,Uint8Array)&&(t=Buffer.from(t,t.offset,t.byteLength)),!Buffer.isBuffer(t))throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError(\"out of range index\");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;let o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(e>>>=0);const s=Math.min(o,a),u=this.slice(n,i),c=t.slice(e,r);for(let t=0;t<s;++t)if(u[t]!==c[t]){o=u[t],a=c[t];break}return o<a?-1:a<o?1:0},Buffer.prototype.includes=function includes(t,e,r){return-1!==this.indexOf(t,e,r)},Buffer.prototype.indexOf=function indexOf(t,e,r){return bidirectionalIndexOf(this,t,e,r,!0)},Buffer.prototype.lastIndexOf=function lastIndexOf(t,e,r){return bidirectionalIndexOf(this,t,e,r,!1)},Buffer.prototype.write=function write(t,e,r,n){if(void 0===e)n=\"utf8\",r=this.length,e=0;else if(void 0===r&&\"string\"==typeof e)n=e,r=this.length,e=0;else{if(!isFinite(e))throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");e>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n=\"utf8\")):(n=r,r=void 0)}const i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");let o=!1;for(;;)switch(n){case\"hex\":return hexWrite(this,t,e,r);case\"utf8\":case\"utf-8\":return utf8Write(this,t,e,r);case\"ascii\":case\"latin1\":case\"binary\":return asciiWrite(this,t,e,r);case\"base64\":return base64Write(this,t,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return ucs2Write(this,t,e,r);default:if(o)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),o=!0}},Buffer.prototype.toJSON=function toJSON(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};const s=4096;function asciiSlice(t,e,r){let n=\"\";r=Math.min(t.length,r);for(let i=e;i<r;++i)n+=String.fromCharCode(127&t[i]);return n}function latin1Slice(t,e,r){let n=\"\";r=Math.min(t.length,r);for(let i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}function hexSlice(t,e,r){const n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);let i=\"\";for(let n=e;n<r;++n)i+=f[t[n]];return i}function utf16leSlice(t,e,r){const n=t.slice(e,r);let i=\"\";for(let t=0;t<n.length-1;t+=2)i+=String.fromCharCode(n[t]+256*n[t+1]);return i}function checkOffset(t,e,r){if(t%1!=0||t<0)throw new RangeError(\"offset is not uint\");if(t+e>r)throw new RangeError(\"Trying to access beyond buffer length\")}function checkInt(t,e,r,n,i,o){if(!Buffer.isBuffer(t))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(e>i||e<o)throw new RangeError('\"value\" argument is out of bounds');if(r+n>t.length)throw new RangeError(\"Index out of range\")}function wrtBigUInt64LE(t,e,r,n,i){checkIntBI(e,n,i,t,r,7);let o=Number(e&BigInt(4294967295));t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o;let a=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=a,a>>=8,t[r++]=a,a>>=8,t[r++]=a,a>>=8,t[r++]=a,r}function wrtBigUInt64BE(t,e,r,n,i){checkIntBI(e,n,i,t,r,7);let o=Number(e&BigInt(4294967295));t[r+7]=o,o>>=8,t[r+6]=o,o>>=8,t[r+5]=o,o>>=8,t[r+4]=o;let a=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=a,a>>=8,t[r+2]=a,a>>=8,t[r+1]=a,a>>=8,t[r]=a,r+8}function checkIEEE754(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function writeFloat(t,e,r,n,o){return e=+e,r>>>=0,o||checkIEEE754(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function writeDouble(t,e,r,n,o){return e=+e,r>>>=0,o||checkIEEE754(t,0,r,8),i.write(t,e,r,n,52,8),r+8}Buffer.prototype.slice=function slice(t,e){const r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t);const n=this.subarray(t,e);return Object.setPrototypeOf(n,Buffer.prototype),n},Buffer.prototype.readUintLE=Buffer.prototype.readUIntLE=function readUIntLE(t,e,r){t>>>=0,e>>>=0,r||checkOffset(t,e,this.length);let n=this[t],i=1,o=0;for(;++o<e&&(i*=256);)n+=this[t+o]*i;return n},Buffer.prototype.readUintBE=Buffer.prototype.readUIntBE=function readUIntBE(t,e,r){t>>>=0,e>>>=0,r||checkOffset(t,e,this.length);let n=this[t+--e],i=1;for(;e>0&&(i*=256);)n+=this[t+--e]*i;return n},Buffer.prototype.readUint8=Buffer.prototype.readUInt8=function readUInt8(t,e){return t>>>=0,e||checkOffset(t,1,this.length),this[t]},Buffer.prototype.readUint16LE=Buffer.prototype.readUInt16LE=function readUInt16LE(t,e){return t>>>=0,e||checkOffset(t,2,this.length),this[t]|this[t+1]<<8},Buffer.prototype.readUint16BE=Buffer.prototype.readUInt16BE=function readUInt16BE(t,e){return t>>>=0,e||checkOffset(t,2,this.length),this[t]<<8|this[t+1]},Buffer.prototype.readUint32LE=Buffer.prototype.readUInt32LE=function readUInt32LE(t,e){return t>>>=0,e||checkOffset(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},Buffer.prototype.readUint32BE=Buffer.prototype.readUInt32BE=function readUInt32BE(t,e){return t>>>=0,e||checkOffset(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},Buffer.prototype.readBigUInt64LE=defineBigIntMethod((function readBigUInt64LE(t){validateNumber(t>>>=0,\"offset\");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||boundsError(t,this.length-8);const n=e+256*this[++t]+65536*this[++t]+this[++t]*2**24,i=this[++t]+256*this[++t]+65536*this[++t]+r*2**24;return BigInt(n)+(BigInt(i)<<BigInt(32))})),Buffer.prototype.readBigUInt64BE=defineBigIntMethod((function readBigUInt64BE(t){validateNumber(t>>>=0,\"offset\");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||boundsError(t,this.length-8);const n=e*2**24+65536*this[++t]+256*this[++t]+this[++t],i=this[++t]*2**24+65536*this[++t]+256*this[++t]+r;return(BigInt(n)<<BigInt(32))+BigInt(i)})),Buffer.prototype.readIntLE=function readIntLE(t,e,r){t>>>=0,e>>>=0,r||checkOffset(t,e,this.length);let n=this[t],i=1,o=0;for(;++o<e&&(i*=256);)n+=this[t+o]*i;return i*=128,n>=i&&(n-=Math.pow(2,8*e)),n},Buffer.prototype.readIntBE=function readIntBE(t,e,r){t>>>=0,e>>>=0,r||checkOffset(t,e,this.length);let n=e,i=1,o=this[t+--n];for(;n>0&&(i*=256);)o+=this[t+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},Buffer.prototype.readInt8=function readInt8(t,e){return t>>>=0,e||checkOffset(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},Buffer.prototype.readInt16LE=function readInt16LE(t,e){t>>>=0,e||checkOffset(t,2,this.length);const r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},Buffer.prototype.readInt16BE=function readInt16BE(t,e){t>>>=0,e||checkOffset(t,2,this.length);const r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},Buffer.prototype.readInt32LE=function readInt32LE(t,e){return t>>>=0,e||checkOffset(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},Buffer.prototype.readInt32BE=function readInt32BE(t,e){return t>>>=0,e||checkOffset(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},Buffer.prototype.readBigInt64LE=defineBigIntMethod((function readBigInt64LE(t){validateNumber(t>>>=0,\"offset\");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||boundsError(t,this.length-8);const n=this[t+4]+256*this[t+5]+65536*this[t+6]+(r<<24);return(BigInt(n)<<BigInt(32))+BigInt(e+256*this[++t]+65536*this[++t]+this[++t]*2**24)})),Buffer.prototype.readBigInt64BE=defineBigIntMethod((function readBigInt64BE(t){validateNumber(t>>>=0,\"offset\");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||boundsError(t,this.length-8);const n=(e<<24)+65536*this[++t]+256*this[++t]+this[++t];return(BigInt(n)<<BigInt(32))+BigInt(this[++t]*2**24+65536*this[++t]+256*this[++t]+r)})),Buffer.prototype.readFloatLE=function readFloatLE(t,e){return t>>>=0,e||checkOffset(t,4,this.length),i.read(this,t,!0,23,4)},Buffer.prototype.readFloatBE=function readFloatBE(t,e){return t>>>=0,e||checkOffset(t,4,this.length),i.read(this,t,!1,23,4)},Buffer.prototype.readDoubleLE=function readDoubleLE(t,e){return t>>>=0,e||checkOffset(t,8,this.length),i.read(this,t,!0,52,8)},Buffer.prototype.readDoubleBE=function readDoubleBE(t,e){return t>>>=0,e||checkOffset(t,8,this.length),i.read(this,t,!1,52,8)},Buffer.prototype.writeUintLE=Buffer.prototype.writeUIntLE=function writeUIntLE(t,e,r,n){if(t=+t,e>>>=0,r>>>=0,!n){checkInt(this,t,e,r,Math.pow(2,8*r)-1,0)}let i=1,o=0;for(this[e]=255&t;++o<r&&(i*=256);)this[e+o]=t/i&255;return e+r},Buffer.prototype.writeUintBE=Buffer.prototype.writeUIntBE=function writeUIntBE(t,e,r,n){if(t=+t,e>>>=0,r>>>=0,!n){checkInt(this,t,e,r,Math.pow(2,8*r)-1,0)}let i=r-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+r},Buffer.prototype.writeUint8=Buffer.prototype.writeUInt8=function writeUInt8(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,1,255,0),this[e]=255&t,e+1},Buffer.prototype.writeUint16LE=Buffer.prototype.writeUInt16LE=function writeUInt16LE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},Buffer.prototype.writeUint16BE=Buffer.prototype.writeUInt16BE=function writeUInt16BE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},Buffer.prototype.writeUint32LE=Buffer.prototype.writeUInt32LE=function writeUInt32LE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},Buffer.prototype.writeUint32BE=Buffer.prototype.writeUInt32BE=function writeUInt32BE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},Buffer.prototype.writeBigUInt64LE=defineBigIntMethod((function writeBigUInt64LE(t,e=0){return wrtBigUInt64LE(this,t,e,BigInt(0),BigInt(\"0xffffffffffffffff\"))})),Buffer.prototype.writeBigUInt64BE=defineBigIntMethod((function writeBigUInt64BE(t,e=0){return wrtBigUInt64BE(this,t,e,BigInt(0),BigInt(\"0xffffffffffffffff\"))})),Buffer.prototype.writeIntLE=function writeIntLE(t,e,r,n){if(t=+t,e>>>=0,!n){const n=Math.pow(2,8*r-1);checkInt(this,t,e,r,n-1,-n)}let i=0,o=1,a=0;for(this[e]=255&t;++i<r&&(o*=256);)t<0&&0===a&&0!==this[e+i-1]&&(a=1),this[e+i]=(t/o>>0)-a&255;return e+r},Buffer.prototype.writeIntBE=function writeIntBE(t,e,r,n){if(t=+t,e>>>=0,!n){const n=Math.pow(2,8*r-1);checkInt(this,t,e,r,n-1,-n)}let i=r-1,o=1,a=0;for(this[e+i]=255&t;--i>=0&&(o*=256);)t<0&&0===a&&0!==this[e+i+1]&&(a=1),this[e+i]=(t/o>>0)-a&255;return e+r},Buffer.prototype.writeInt8=function writeInt8(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},Buffer.prototype.writeInt16LE=function writeInt16LE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},Buffer.prototype.writeInt16BE=function writeInt16BE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},Buffer.prototype.writeInt32LE=function writeInt32LE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},Buffer.prototype.writeInt32BE=function writeInt32BE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},Buffer.prototype.writeBigInt64LE=defineBigIntMethod((function writeBigInt64LE(t,e=0){return wrtBigUInt64LE(this,t,e,-BigInt(\"0x8000000000000000\"),BigInt(\"0x7fffffffffffffff\"))})),Buffer.prototype.writeBigInt64BE=defineBigIntMethod((function writeBigInt64BE(t,e=0){return wrtBigUInt64BE(this,t,e,-BigInt(\"0x8000000000000000\"),BigInt(\"0x7fffffffffffffff\"))})),Buffer.prototype.writeFloatLE=function writeFloatLE(t,e,r){return writeFloat(this,t,e,!0,r)},Buffer.prototype.writeFloatBE=function writeFloatBE(t,e,r){return writeFloat(this,t,e,!1,r)},Buffer.prototype.writeDoubleLE=function writeDoubleLE(t,e,r){return writeDouble(this,t,e,!0,r)},Buffer.prototype.writeDoubleBE=function writeDoubleBE(t,e,r){return writeDouble(this,t,e,!1,r)},Buffer.prototype.copy=function copy(t,e,r,n){if(!Buffer.isBuffer(t))throw new TypeError(\"argument should be a Buffer\");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError(\"targetStart out of bounds\");if(r<0||r>=this.length)throw new RangeError(\"Index out of range\");if(n<0)throw new RangeError(\"sourceEnd out of bounds\");n>this.length&&(n=this.length),t.length-e<n-r&&(n=t.length-e+r);const i=n-r;return this===t&&\"function\"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(e,r,n):Uint8Array.prototype.set.call(t,this.subarray(r,n),e),i},Buffer.prototype.fill=function fill(t,e,r,n){if(\"string\"==typeof t){if(\"string\"==typeof e?(n=e,e=0,r=this.length):\"string\"==typeof r&&(n=r,r=this.length),void 0!==n&&\"string\"!=typeof n)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof n&&!Buffer.isEncoding(n))throw new TypeError(\"Unknown encoding: \"+n);if(1===t.length){const e=t.charCodeAt(0);(\"utf8\"===n&&e<128||\"latin1\"===n)&&(t=e)}}else\"number\"==typeof t?t&=255:\"boolean\"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<r)throw new RangeError(\"Out of range index\");if(r<=e)return this;let i;if(e>>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),\"number\"==typeof t)for(i=e;i<r;++i)this[i]=t;else{const o=Buffer.isBuffer(t)?t:Buffer.from(t,n),a=o.length;if(0===a)throw new TypeError('The value \"'+t+'\" is invalid for argument \"value\"');for(i=0;i<r-e;++i)this[i+e]=o[i%a]}return this};const u={};function E(t,e,r){u[t]=class NodeError extends r{constructor(){super(),Object.defineProperty(this,\"message\",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${t}]`,this.stack,delete this.name}get code(){return t}set code(t){Object.defineProperty(this,\"code\",{configurable:!0,enumerable:!0,value:t,writable:!0})}toString(){return`${this.name} [${t}]: ${this.message}`}}}function addNumericalSeparator(t){let e=\"\",r=t.length;const n=\"-\"===t[0]?1:0;for(;r>=n+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function checkIntBI(t,e,r,n,i,o){if(t>r||t<e){const n=\"bigint\"==typeof e?\"n\":\"\";let i;throw i=o>3?0===e||e===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(o+1)}${n}`:`>= -(2${n} ** ${8*(o+1)-1}${n}) and < 2 ** ${8*(o+1)-1}${n}`:`>= ${e}${n} and <= ${r}${n}`,new u.ERR_OUT_OF_RANGE(\"value\",i,t)}!function checkBounds(t,e,r){validateNumber(e,\"offset\"),void 0!==t[e]&&void 0!==t[e+r]||boundsError(e,t.length-(r+1))}(n,i,o)}function validateNumber(t,e){if(\"number\"!=typeof t)throw new u.ERR_INVALID_ARG_TYPE(e,\"number\",t)}function boundsError(t,e,r){if(Math.floor(t)!==t)throw validateNumber(t,r),new u.ERR_OUT_OF_RANGE(r||\"offset\",\"an integer\",t);if(e<0)throw new u.ERR_BUFFER_OUT_OF_BOUNDS;throw new u.ERR_OUT_OF_RANGE(r||\"offset\",`>= ${r?1:0} and <= ${e}`,t)}E(\"ERR_BUFFER_OUT_OF_BOUNDS\",(function(t){return t?`${t} is outside of buffer bounds`:\"Attempt to access memory outside buffer bounds\"}),RangeError),E(\"ERR_INVALID_ARG_TYPE\",(function(t,e){return`The \"${t}\" argument must be of type number. Received type ${typeof e}`}),TypeError),E(\"ERR_OUT_OF_RANGE\",(function(t,e,r){let n=`The value of \"${t}\" is out of range.`,i=r;return Number.isInteger(r)&&Math.abs(r)>2**32?i=addNumericalSeparator(String(r)):\"bigint\"==typeof r&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=addNumericalSeparator(i)),i+=\"n\"),n+=` It must be ${e}. Received ${i}`,n}),RangeError);const c=/[^+/0-9A-Za-z-_]/g;function utf8ToBytes(t,e){let r;e=e||1/0;const n=t.length;let i=null;const o=[];for(let a=0;a<n;++a){if(r=t.charCodeAt(a),r>55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function base64ToBytes(t){return n.toByteArray(function base64clean(t){if((t=(t=t.split(\"=\")[0]).trim().replace(c,\"\")).length<2)return\"\";for(;t.length%4!=0;)t+=\"=\";return t}(t))}function blitBuffer(t,e,r,n){let i;for(i=0;i<n&&!(i+r>=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function isInstance(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function numberIsNaN(t){return t!=t}const f=function(){const t=\"0123456789abcdef\",e=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let i=0;i<16;++i)e[n+i]=t[r]+t[i]}return e}();function defineBigIntMethod(t){return\"undefined\"==typeof BigInt?BufferBigIntNotDefined:t}function BufferBigIntNotDefined(){throw new Error(\"BigInt not supported\")}},93:(t,e,r)=>{var n=r(8196);t.exports=n},5362:(t,e,r)=>{var n=r(3383);t.exports=n},3536:(t,e,r)=>{var n=r(1910);t.exports=n},281:(t,e,r)=>{var n=r(2547);r(7522),r(3975),r(5414),t.exports=n},31:(t,e,r)=>{var n=r(6509);t.exports=n},7487:(t,e,r)=>{var n=r(5774);t.exports=n},7700:(t,e,r)=>{r(3381);var n=r(5703);t.exports=n(\"Function\").bind},6246:(t,e,r)=>{var n=r(7046),i=r(7700),o=Function.prototype;t.exports=function(t){var e=t.bind;return t===o||n(o,t)&&e===o.bind?i:e}},5999:(t,e,r)=>{r(9221);var n=r(4058);t.exports=n.Object.assign},8171:(t,e,r)=>{r(6450);var n=r(4058).Object,i=t.exports=function defineProperty(t,e,r){return n.defineProperty(t,e,r)};n.defineProperty.sham&&(i.sham=!0)},7473:(t,e,r)=>{r(5906),r(5967),r(5824),r(8555),r(2615),r(1732),r(5903),r(1825),r(8394),r(5915),r(1766),r(2737),r(9911),r(4315),r(3131),r(4714),r(659),r(9120),r(5327),r(1502);var n=r(4058);t.exports=n.Symbol},4227:(t,e,r)=>{r(6274),r(5967),r(7971),r(1825);var n=r(1477);t.exports=n.f(\"iterator\")},2978:(t,e,r)=>{r(8084),r(3131);var n=r(1477);t.exports=n.f(\"toPrimitive\")},4122:(t,e,r)=>{t.exports=r(9097)},269:(t,e,r)=>{t.exports=r(6936)},3685:(t,e,r)=>{t.exports=r(621)},6600:(t,e,r)=>{t.exports=r(2201)},9759:(t,e,r)=>{t.exports=r(7398)},1384:(t,e,r)=>{t.exports=r(6189)},9097:(t,e,r)=>{var n=r(93);t.exports=n},6936:(t,e,r)=>{var n=r(5362);t.exports=n},621:(t,e,r)=>{var n=r(3536);t.exports=n},2201:(t,e,r)=>{var n=r(281);r(8783),r(7618),r(6989),r(5799),r(6774),r(2731),r(5605),r(1943),r(620),r(6172),t.exports=n},7398:(t,e,r)=>{var n=r(31);t.exports=n},6189:(t,e,r)=>{var n=r(7487);t.exports=n},4883:(t,e,r)=>{var n=r(7475),i=r(9826),o=TypeError;t.exports=function(t){if(n(t))return t;throw o(i(t)+\" is not a function\")}},1851:(t,e,r)=>{var n=r(7475),i=String,o=TypeError;t.exports=function(t){if(\"object\"==typeof t||n(t))return t;throw o(\"Can't set \"+i(t)+\" as a prototype\")}},8479:t=>{t.exports=function(){}},6059:(t,e,r)=>{var n=r(941),i=String,o=TypeError;t.exports=function(t){if(n(t))return t;throw o(i(t)+\" is not an object\")}},1692:(t,e,r)=>{var n=r(4529),i=r(9413),o=r(623),createMethod=function(t){return function(e,r,a){var s,u=n(e),c=o(u),f=i(a,c);if(t&&r!=r){for(;c>f;)if((s=u[f++])!=s)return!0}else for(;c>f;f++)if((t||f in u)&&u[f]===r)return t||f||0;return!t&&-1}};t.exports={includes:createMethod(!0),indexOf:createMethod(!1)}},3610:(t,e,r)=>{var n=r(6843),i=r(5329),o=r(7026),a=r(9678),s=r(623),u=r(4692),c=i([].push),createMethod=function(t){var e=1==t,r=2==t,i=3==t,f=4==t,l=6==t,p=7==t,h=5==t||l;return function(d,M,w,g){for(var _,v,I=a(d),m=o(I),j=n(M,w),b=s(m),x=0,A=g||u,T=e?A(d,b):r||p?A(d,0):void 0;b>x;x++)if((h||x in m)&&(v=j(_=m[x],x,I),t))if(e)T[x]=v;else if(v)switch(t){case 3:return!0;case 5:return _;case 6:return x;case 2:c(T,_)}else switch(t){case 4:return!1;case 7:c(T,_)}return l?-1:i||f?f:T}};t.exports={forEach:createMethod(0),map:createMethod(1),filter:createMethod(2),some:createMethod(3),every:createMethod(4),find:createMethod(5),findIndex:createMethod(6),filterReject:createMethod(7)}},568:(t,e,r)=>{var n=r(5981),i=r(9813),o=r(3385),a=i(\"species\");t.exports=function(t){return o>=51||!n((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},5790:(t,e,r)=>{var n=r(9413),i=r(623),o=r(5449),a=Array,s=Math.max;t.exports=function(t,e,r){for(var u=i(t),c=n(e,u),f=n(void 0===r?u:r,u),l=a(s(f-c,0)),p=0;c<f;c++,p++)o(l,p,t[c]);return l.length=p,l}},3765:(t,e,r)=>{var n=r(5329);t.exports=n([].slice)},5693:(t,e,r)=>{var n=r(1052),i=r(4284),o=r(941),a=r(9813)(\"species\"),s=Array;t.exports=function(t){var e;return n(t)&&(e=t.constructor,(i(e)&&(e===s||n(e.prototype))||o(e)&&null===(e=e[a]))&&(e=void 0)),void 0===e?s:e}},4692:(t,e,r)=>{var n=r(5693);t.exports=function(t,e){return new(n(t))(0===e?0:e)}},2532:(t,e,r)=>{var n=r(5329),i=n({}.toString),o=n(\"\".slice);t.exports=function(t){return o(i(t),8,-1)}},9697:(t,e,r)=>{var n=r(2885),i=r(7475),o=r(2532),a=r(9813)(\"toStringTag\"),s=Object,u=\"Arguments\"==o(function(){return arguments}());t.exports=n?o:function(t){var e,r,n;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=s(t),a))?r:u?o(e):\"Object\"==(n=o(e))&&i(e.callee)?\"Arguments\":n}},4160:(t,e,r)=>{var n=r(5981);t.exports=!n((function(){function F(){}return F.prototype.constructor=null,Object.getPrototypeOf(new F)!==F.prototype}))},3538:t=>{t.exports=function(t,e){return{value:t,done:e}}},2029:(t,e,r)=>{var n=r(5746),i=r(5988),o=r(1887);t.exports=n?function(t,e,r){return i.f(t,e,o(1,r))}:function(t,e,r){return t[e]=r,t}},1887:t=>{t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},5449:(t,e,r)=>{\"use strict\";var n=r(3894),i=r(5988),o=r(1887);t.exports=function(t,e,r){var a=n(e);a in t?i.f(t,a,o(0,r)):t[a]=r}},9202:(t,e,r)=>{var n=r(5988);t.exports=function(t,e,r){return n.f(t,e,r)}},5929:(t,e,r)=>{var n=r(2029);t.exports=function(t,e,r,i){return i&&i.enumerable?t[e]=r:n(t,e,r),t}},5609:(t,e,r)=>{var n=r(1899),i=Object.defineProperty;t.exports=function(t,e){try{i(n,t,{value:e,configurable:!0,writable:!0})}catch(r){n[t]=e}return e}},5746:(t,e,r)=>{var n=r(5981);t.exports=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},6616:t=>{var e=\"object\"==typeof document&&document.all,r=void 0===e&&void 0!==e;t.exports={all:e,IS_HTMLDDA:r}},1333:(t,e,r)=>{var n=r(1899),i=r(941),o=n.document,a=i(o)&&i(o.createElement);t.exports=function(t){return a?o.createElement(t):{}}},6796:t=>{var e=TypeError;t.exports=function(t){if(t>9007199254740991)throw e(\"Maximum allowed index exceeded\");return t}},3281:t=>{t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},2861:t=>{t.exports=\"undefined\"!=typeof navigator&&String(navigator.userAgent)||\"\"},3385:(t,e,r)=>{var n,i,o=r(1899),a=r(2861),s=o.process,u=o.Deno,c=s&&s.versions||u&&u.version,f=c&&c.v8;f&&(i=(n=f.split(\".\"))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!i&&a&&(!(n=a.match(/Edge\\/(\\d+)/))||n[1]>=74)&&(n=a.match(/Chrome\\/(\\d+)/))&&(i=+n[1]),t.exports=i},5703:(t,e,r)=>{var n=r(4058);t.exports=function(t){return n[t+\"Prototype\"]}},6759:t=>{t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},6887:(t,e,r)=>{\"use strict\";var n=r(1899),i=r(9730),o=r(7484),a=r(7475),s=r(9677).f,u=r(7252),c=r(4058),f=r(6843),l=r(2029),p=r(953),wrapConstructor=function(t){var Wrapper=function(e,r,n){if(this instanceof Wrapper){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,r)}return new t(e,r,n)}return i(t,this,arguments)};return Wrapper.prototype=t.prototype,Wrapper};t.exports=function(t,e){var r,i,h,d,M,w,g,_,v,I=t.target,m=t.global,j=t.stat,b=t.proto,x=m?n:j?n[I]:(n[I]||{}).prototype,A=m?c:c[I]||l(c,I,{})[I],T=A.prototype;for(d in e)i=!(r=u(m?d:I+(j?\".\":\"#\")+d,t.forced))&&x&&p(x,d),w=A[d],i&&(g=t.dontCallGetSet?(v=s(x,d))&&v.value:x[d]),M=i&&g?g:e[d],i&&typeof w==typeof M||(_=t.bind&&i?f(M,n):t.wrap&&i?wrapConstructor(M):b&&a(M)?o(M):M,(t.sham||M&&M.sham||w&&w.sham)&&l(_,\"sham\",!0),l(A,d,_),b&&(p(c,h=I+\"Prototype\")||l(c,h,{}),l(c[h],d,M),t.real&&T&&(r||!T[d])&&l(T,d,M)))}},5981:t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},9730:(t,e,r)=>{var n=r(8285),i=Function.prototype,o=i.apply,a=i.call;t.exports=\"object\"==typeof Reflect&&Reflect.apply||(n?a.bind(o):function(){return a.apply(o,arguments)})},6843:(t,e,r)=>{var n=r(7484),i=r(4883),o=r(8285),a=n(n.bind);t.exports=function(t,e){return i(t),void 0===e?t:o?a(t,e):function(){return t.apply(e,arguments)}}},8285:(t,e,r)=>{var n=r(5981);t.exports=!n((function(){var t=function(){}.bind();return\"function\"!=typeof t||t.hasOwnProperty(\"prototype\")}))},8308:(t,e,r)=>{\"use strict\";var n=r(5329),i=r(4883),o=r(941),a=r(953),s=r(3765),u=r(8285),c=Function,f=n([].concat),l=n([].join),p={};t.exports=u?c.bind:function bind(t){var e=i(this),r=e.prototype,n=s(arguments,1),u=function bound(){var r=f(n,s(arguments));return this instanceof u?function(t,e,r){if(!a(p,e)){for(var n=[],i=0;i<e;i++)n[i]=\"a[\"+i+\"]\";p[e]=c(\"C,a\",\"return new C(\"+l(n,\",\")+\")\")}return p[e](t,r)}(e,r.length,r):e.apply(t,r)};return o(r)&&(u.prototype=r),u}},8834:(t,e,r)=>{var n=r(8285),i=Function.prototype.call;t.exports=n?i.bind(i):function(){return i.apply(i,arguments)}},9417:(t,e,r)=>{var n=r(5746),i=r(953),o=Function.prototype,a=n&&Object.getOwnPropertyDescriptor,s=i(o,\"name\"),u=s&&\"something\"===function something(){}.name,c=s&&(!n||n&&a(o,\"name\").configurable);t.exports={EXISTS:s,PROPER:u,CONFIGURABLE:c}},5526:(t,e,r)=>{var n=r(5329),i=r(4883);t.exports=function(t,e,r){try{return n(i(Object.getOwnPropertyDescriptor(t,e)[r]))}catch(t){}}},7484:(t,e,r)=>{var n=r(2532),i=r(5329);t.exports=function(t){if(\"Function\"===n(t))return i(t)}},5329:(t,e,r)=>{var n=r(8285),i=Function.prototype,o=i.call,a=n&&i.bind.bind(o,o);t.exports=n?a:function(t){return function(){return o.apply(t,arguments)}}},626:(t,e,r)=>{var n=r(4058),i=r(1899),o=r(7475),aFunction=function(t){return o(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?aFunction(n[t])||aFunction(i[t]):n[t]&&n[t][e]||i[t]&&i[t][e]}},3323:(t,e,r)=>{var n=r(5329),i=r(1052),o=r(7475),a=r(2532),s=r(5803),u=n([].push);t.exports=function(t){if(o(t))return t;if(i(t)){for(var e=t.length,r=[],n=0;n<e;n++){var c=t[n];\"string\"==typeof c?u(r,c):\"number\"!=typeof c&&\"Number\"!=a(c)&&\"String\"!=a(c)||u(r,s(c))}var f=r.length,l=!0;return function(t,e){if(l)return l=!1,e;if(i(this))return e;for(var n=0;n<f;n++)if(r[n]===t)return e}}}},4229:(t,e,r)=>{var n=r(4883),i=r(2119);t.exports=function(t,e){var r=t[e];return i(r)?void 0:n(r)}},1899:function(t,e,r){var check=function(t){return t&&t.Math==Math&&t};t.exports=check(\"object\"==typeof globalThis&&globalThis)||check(\"object\"==typeof window&&window)||check(\"object\"==typeof self&&self)||check(\"object\"==typeof r.g&&r.g)||function(){return this}()||this||Function(\"return this\")()},953:(t,e,r)=>{var n=r(5329),i=r(9678),o=n({}.hasOwnProperty);t.exports=Object.hasOwn||function hasOwn(t,e){return o(i(t),e)}},7748:t=>{t.exports={}},5463:(t,e,r)=>{var n=r(626);t.exports=n(\"document\",\"documentElement\")},2840:(t,e,r)=>{var n=r(5746),i=r(5981),o=r(1333);t.exports=!n&&!i((function(){return 7!=Object.defineProperty(o(\"div\"),\"a\",{get:function(){return 7}}).a}))},7026:(t,e,r)=>{var n=r(5329),i=r(5981),o=r(2532),a=Object,s=n(\"\".split);t.exports=i((function(){return!a(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?s(t,\"\"):a(t)}:a},1302:(t,e,r)=>{var n=r(5329),i=r(7475),o=r(3030),a=n(Function.toString);i(o.inspectSource)||(o.inspectSource=function(t){return a(t)}),t.exports=o.inspectSource},5402:(t,e,r)=>{var n,i,o,a=r(7093),s=r(1899),u=r(941),c=r(2029),f=r(953),l=r(3030),p=r(4262),h=r(7748),d=\"Object already initialized\",M=s.TypeError,w=s.WeakMap;if(a||l.state){var g=l.state||(l.state=new w);g.get=g.get,g.has=g.has,g.set=g.set,n=function(t,e){if(g.has(t))throw M(d);return e.facade=t,g.set(t,e),e},i=function(t){return g.get(t)||{}},o=function(t){return g.has(t)}}else{var _=p(\"state\");h[_]=!0,n=function(t,e){if(f(t,_))throw M(d);return e.facade=t,c(t,_,e),e},i=function(t){return f(t,_)?t[_]:{}},o=function(t){return f(t,_)}}t.exports={set:n,get:i,has:o,enforce:function(t){return o(t)?i(t):n(t,{})},getterFor:function(t){return function(e){var r;if(!u(e)||(r=i(e)).type!==t)throw M(\"Incompatible receiver, \"+t+\" required\");return r}}}},1052:(t,e,r)=>{var n=r(2532);t.exports=Array.isArray||function isArray(t){return\"Array\"==n(t)}},7475:(t,e,r)=>{var n=r(6616),i=n.all;t.exports=n.IS_HTMLDDA?function(t){return\"function\"==typeof t||t===i}:function(t){return\"function\"==typeof t}},4284:(t,e,r)=>{var n=r(5329),i=r(5981),o=r(7475),a=r(9697),s=r(626),u=r(1302),noop=function(){},c=[],f=s(\"Reflect\",\"construct\"),l=/^\\s*(?:class|function)\\b/,p=n(l.exec),h=!l.exec(noop),d=function isConstructor(t){if(!o(t))return!1;try{return f(noop,c,t),!0}catch(t){return!1}},M=function isConstructor(t){if(!o(t))return!1;switch(a(t)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return h||!!p(l,u(t))}catch(t){return!0}};M.sham=!0,t.exports=!f||i((function(){var t;return d(d.call)||!d(Object)||!d((function(){t=!0}))||t}))?M:d},7252:(t,e,r)=>{var n=r(5981),i=r(7475),o=/#|\\.prototype\\./,isForced=function(t,e){var r=s[a(t)];return r==c||r!=u&&(i(e)?n(e):!!e)},a=isForced.normalize=function(t){return String(t).replace(o,\".\").toLowerCase()},s=isForced.data={},u=isForced.NATIVE=\"N\",c=isForced.POLYFILL=\"P\";t.exports=isForced},2119:t=>{t.exports=function(t){return null==t}},941:(t,e,r)=>{var n=r(7475),i=r(6616),o=i.all;t.exports=i.IS_HTMLDDA?function(t){return\"object\"==typeof t?null!==t:n(t)||t===o}:function(t){return\"object\"==typeof t?null!==t:n(t)}},2529:t=>{t.exports=!0},6664:(t,e,r)=>{var n=r(626),i=r(7475),o=r(7046),a=r(2302),s=Object;t.exports=a?function(t){return\"symbol\"==typeof t}:function(t){var e=n(\"Symbol\");return i(e)&&o(e.prototype,s(t))}},3847:(t,e,r)=>{\"use strict\";var n=r(5143).IteratorPrototype,i=r(9290),o=r(1887),a=r(904),s=r(2077),returnThis=function(){return this};t.exports=function(t,e,r,u){var c=e+\" Iterator\";return t.prototype=i(n,{next:o(+!u,r)}),a(t,c,!1,!0),s[c]=returnThis,t}},5105:(t,e,r)=>{\"use strict\";var n=r(6887),i=r(8834),o=r(2529),a=r(9417),s=r(7475),u=r(3847),c=r(249),f=r(8929),l=r(904),p=r(2029),h=r(5929),d=r(9813),M=r(2077),w=r(5143),g=a.PROPER,_=a.CONFIGURABLE,v=w.IteratorPrototype,I=w.BUGGY_SAFARI_ITERATORS,m=d(\"iterator\"),j=\"keys\",b=\"values\",x=\"entries\",returnThis=function(){return this};t.exports=function(t,e,r,a,d,w,A){u(r,e,a);var T,k,B,getIterationMethod=function(t){if(t===d&&W)return W;if(!I&&t in q)return q[t];switch(t){case j:return function keys(){return new r(this,t)};case b:return function values(){return new r(this,t)};case x:return function entries(){return new r(this,t)}}return function(){return new r(this)}},U=e+\" Iterator\",Y=!1,q=t.prototype,R=q[m]||q[\"@@iterator\"]||d&&q[d],W=!I&&R||getIterationMethod(d),G=\"Array\"==e&&q.entries||R;if(G&&(T=c(G.call(new t)))!==Object.prototype&&T.next&&(o||c(T)===v||(f?f(T,v):s(T[m])||h(T,m,returnThis)),l(T,U,!0,!0),o&&(M[U]=returnThis)),g&&d==b&&R&&R.name!==b&&(!o&&_?p(q,\"name\",b):(Y=!0,W=function values(){return i(R,this)})),d)if(k={values:getIterationMethod(b),keys:w?W:getIterationMethod(j),entries:getIterationMethod(x)},A)for(B in k)(I||Y||!(B in q))&&h(q,B,k[B]);else n({target:e,proto:!0,forced:I||Y},k);return o&&!A||q[m]===W||h(q,m,W,{name:d}),M[e]=W,k}},5143:(t,e,r)=>{\"use strict\";var n,i,o,a=r(5981),s=r(7475),u=r(941),c=r(9290),f=r(249),l=r(5929),p=r(9813),h=r(2529),d=p(\"iterator\"),M=!1;[].keys&&(\"next\"in(o=[].keys())?(i=f(f(o)))!==Object.prototype&&(n=i):M=!0),!u(n)||a((function(){var t={};return n[d].call(t)!==t}))?n={}:h&&(n=c(n)),s(n[d])||l(n,d,(function(){return this})),t.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:M}},2077:t=>{t.exports={}},623:(t,e,r)=>{var n=r(3057);t.exports=function(t){return n(t.length)}},5331:t=>{var e=Math.ceil,r=Math.floor;t.exports=Math.trunc||function trunc(t){var n=+t;return(n>0?r:e)(n)}},4420:(t,e,r)=>{\"use strict\";var n=r(5746),i=r(5329),o=r(8834),a=r(5981),s=r(4771),u=r(7857),c=r(6760),f=r(9678),l=r(7026),p=Object.assign,h=Object.defineProperty,d=i([].concat);t.exports=!p||a((function(){if(n&&1!==p({b:1},p(h({},\"a\",{enumerable:!0,get:function(){h(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},r=Symbol(),i=\"abcdefghijklmnopqrst\";return t[r]=7,i.split(\"\").forEach((function(t){e[t]=t})),7!=p({},t)[r]||s(p({},e)).join(\"\")!=i}))?function assign(t,e){for(var r=f(t),i=arguments.length,a=1,p=u.f,h=c.f;i>a;)for(var M,w=l(arguments[a++]),g=p?d(s(w),p(w)):s(w),_=g.length,v=0;_>v;)M=g[v++],n&&!o(h,w,M)||(r[M]=w[M]);return r}:p},9290:(t,e,r)=>{var n,i=r(6059),o=r(9938),a=r(6759),s=r(7748),u=r(5463),c=r(1333),f=r(4262),l=\"prototype\",p=\"script\",h=f(\"IE_PROTO\"),EmptyConstructor=function(){},scriptTag=function(t){return\"<\"+p+\">\"+t+\"</\"+p+\">\"},NullProtoObjectViaActiveX=function(t){t.write(scriptTag(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e},NullProtoObject=function(){try{n=new ActiveXObject(\"htmlfile\")}catch(t){}var t,e,r;NullProtoObject=\"undefined\"!=typeof document?document.domain&&n?NullProtoObjectViaActiveX(n):(e=c(\"iframe\"),r=\"java\"+p+\":\",e.style.display=\"none\",u.appendChild(e),e.src=String(r),(t=e.contentWindow.document).open(),t.write(scriptTag(\"document.F=Object\")),t.close(),t.F):NullProtoObjectViaActiveX(n);for(var i=a.length;i--;)delete NullProtoObject[l][a[i]];return NullProtoObject()};s[h]=!0,t.exports=Object.create||function create(t,e){var r;return null!==t?(EmptyConstructor[l]=i(t),r=new EmptyConstructor,EmptyConstructor[l]=null,r[h]=t):r=NullProtoObject(),void 0===e?r:o.f(r,e)}},9938:(t,e,r)=>{var n=r(5746),i=r(3937),o=r(5988),a=r(6059),s=r(4529),u=r(4771);e.f=n&&!i?Object.defineProperties:function defineProperties(t,e){a(t);for(var r,n=s(e),i=u(e),c=i.length,f=0;c>f;)o.f(t,r=i[f++],n[r]);return t}},5988:(t,e,r)=>{var n=r(5746),i=r(2840),o=r(3937),a=r(6059),s=r(3894),u=TypeError,c=Object.defineProperty,f=Object.getOwnPropertyDescriptor,l=\"enumerable\",p=\"configurable\",h=\"writable\";e.f=n?o?function defineProperty(t,e,r){if(a(t),e=s(e),a(r),\"function\"==typeof t&&\"prototype\"===e&&\"value\"in r&&h in r&&!r[h]){var n=f(t,e);n&&n[h]&&(t[e]=r.value,r={configurable:p in r?r[p]:n[p],enumerable:l in r?r[l]:n[l],writable:!1})}return c(t,e,r)}:c:function defineProperty(t,e,r){if(a(t),e=s(e),a(r),i)try{return c(t,e,r)}catch(t){}if(\"get\"in r||\"set\"in r)throw u(\"Accessors not supported\");return\"value\"in r&&(t[e]=r.value),t}},9677:(t,e,r)=>{var n=r(5746),i=r(8834),o=r(6760),a=r(1887),s=r(4529),u=r(3894),c=r(953),f=r(2840),l=Object.getOwnPropertyDescriptor;e.f=n?l:function getOwnPropertyDescriptor(t,e){if(t=s(t),e=u(e),f)try{return l(t,e)}catch(t){}if(c(t,e))return a(!i(o.f,t,e),t[e])}},684:(t,e,r)=>{var n=r(2532),i=r(4529),o=r(946).f,a=r(5790),s=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function getOwnPropertyNames(t){return s&&\"Window\"==n(t)?function(t){try{return o(t)}catch(t){return a(s)}}(t):o(i(t))}},946:(t,e,r)=>{var n=r(5629),i=r(6759).concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return n(t,i)}},7857:(t,e)=>{e.f=Object.getOwnPropertySymbols},249:(t,e,r)=>{var n=r(953),i=r(7475),o=r(9678),a=r(4262),s=r(4160),u=a(\"IE_PROTO\"),c=Object,f=c.prototype;t.exports=s?c.getPrototypeOf:function(t){var e=o(t);if(n(e,u))return e[u];var r=e.constructor;return i(r)&&e instanceof r?r.prototype:e instanceof c?f:null}},7046:(t,e,r)=>{var n=r(5329);t.exports=n({}.isPrototypeOf)},5629:(t,e,r)=>{var n=r(5329),i=r(953),o=r(4529),a=r(1692).indexOf,s=r(7748),u=n([].push);t.exports=function(t,e){var r,n=o(t),c=0,f=[];for(r in n)!i(s,r)&&i(n,r)&&u(f,r);for(;e.length>c;)i(n,r=e[c++])&&(~a(f,r)||u(f,r));return f}},4771:(t,e,r)=>{var n=r(5629),i=r(6759);t.exports=Object.keys||function keys(t){return n(t,i)}},6760:(t,e)=>{\"use strict\";var r={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,i=n&&!r.call({1:2},1);e.f=i?function propertyIsEnumerable(t){var e=n(this,t);return!!e&&e.enumerable}:r},8929:(t,e,r)=>{var n=r(5526),i=r(6059),o=r(1851);t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,r={};try{(t=n(Object.prototype,\"__proto__\",\"set\"))(r,[]),e=r instanceof Array}catch(t){}return function setPrototypeOf(r,n){return i(r),o(n),e?t(r,n):r.__proto__=n,r}}():void 0)},5623:(t,e,r)=>{\"use strict\";var n=r(2885),i=r(9697);t.exports=n?{}.toString:function toString(){return\"[object \"+i(this)+\"]\"}},9811:(t,e,r)=>{var n=r(8834),i=r(7475),o=r(941),a=TypeError;t.exports=function(t,e){var r,s;if(\"string\"===e&&i(r=t.toString)&&!o(s=n(r,t)))return s;if(i(r=t.valueOf)&&!o(s=n(r,t)))return s;if(\"string\"!==e&&i(r=t.toString)&&!o(s=n(r,t)))return s;throw a(\"Can't convert object to primitive value\")}},4058:t=>{t.exports={}},8219:(t,e,r)=>{var n=r(2119),i=TypeError;t.exports=function(t){if(n(t))throw i(\"Can't call method on \"+t);return t}},904:(t,e,r)=>{var n=r(2885),i=r(5988).f,o=r(2029),a=r(953),s=r(5623),u=r(9813)(\"toStringTag\");t.exports=function(t,e,r,c){if(t){var f=r?t:t.prototype;a(f,u)||i(f,u,{configurable:!0,value:e}),c&&!n&&o(f,\"toString\",s)}}},4262:(t,e,r)=>{var n=r(8726),i=r(9418),o=n(\"keys\");t.exports=function(t){return o[t]||(o[t]=i(t))}},3030:(t,e,r)=>{var n=r(1899),i=r(5609),o=\"__core-js_shared__\",a=n[o]||i(o,{});t.exports=a},8726:(t,e,r)=>{var n=r(2529),i=r(3030);(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.31.1\",mode:n?\"pure\":\"global\",copyright:\"© 2014-2023 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.31.1/LICENSE\",source:\"https://github.com/zloirock/core-js\"})},4620:(t,e,r)=>{var n=r(5329),i=r(2435),o=r(5803),a=r(8219),s=n(\"\".charAt),u=n(\"\".charCodeAt),c=n(\"\".slice),createMethod=function(t){return function(e,r){var n,f,l=o(a(e)),p=i(r),h=l.length;return p<0||p>=h?t?\"\":void 0:(n=u(l,p))<55296||n>56319||p+1===h||(f=u(l,p+1))<56320||f>57343?t?s(l,p):n:t?c(l,p,p+2):f-56320+(n-55296<<10)+65536}};t.exports={codeAt:createMethod(!1),charAt:createMethod(!0)}},3405:(t,e,r)=>{var n=r(3385),i=r(5981),o=r(1899).String;t.exports=!!Object.getOwnPropertySymbols&&!i((function(){var t=Symbol();return!o(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},9630:(t,e,r)=>{var n=r(8834),i=r(626),o=r(9813),a=r(5929);t.exports=function(){var t=i(\"Symbol\"),e=t&&t.prototype,r=e&&e.valueOf,s=o(\"toPrimitive\");e&&!e[s]&&a(e,s,(function(t){return n(r,this)}),{arity:1})}},2087:(t,e,r)=>{var n=r(626),i=r(5329),o=n(\"Symbol\"),a=o.keyFor,s=i(o.prototype.valueOf);t.exports=o.isRegisteredSymbol||function isRegisteredSymbol(t){try{return void 0!==a(s(t))}catch(t){return!1}}},6559:(t,e,r)=>{for(var n=r(8726),i=r(626),o=r(5329),a=r(6664),s=r(9813),u=i(\"Symbol\"),c=u.isWellKnownSymbol,f=i(\"Object\",\"getOwnPropertyNames\"),l=o(u.prototype.valueOf),p=n(\"wks\"),h=0,d=f(u),M=d.length;h<M;h++)try{var w=d[h];a(u[w])&&s(w)}catch(t){}t.exports=function isWellKnownSymbol(t){if(c&&c(t))return!0;try{for(var e=l(t),r=0,n=f(p),i=n.length;r<i;r++)if(p[n[r]]==e)return!0}catch(t){}return!1}},4680:(t,e,r)=>{var n=r(3405);t.exports=n&&!!Symbol.for&&!!Symbol.keyFor},9413:(t,e,r)=>{var n=r(2435),i=Math.max,o=Math.min;t.exports=function(t,e){var r=n(t);return r<0?i(r+e,0):o(r,e)}},4529:(t,e,r)=>{var n=r(7026),i=r(8219);t.exports=function(t){return n(i(t))}},2435:(t,e,r)=>{var n=r(5331);t.exports=function(t){var e=+t;return e!=e||0===e?0:n(e)}},3057:(t,e,r)=>{var n=r(2435),i=Math.min;t.exports=function(t){return t>0?i(n(t),9007199254740991):0}},9678:(t,e,r)=>{var n=r(8219),i=Object;t.exports=function(t){return i(n(t))}},6935:(t,e,r)=>{var n=r(8834),i=r(941),o=r(6664),a=r(4229),s=r(9811),u=r(9813),c=TypeError,f=u(\"toPrimitive\");t.exports=function(t,e){if(!i(t)||o(t))return t;var r,u=a(t,f);if(u){if(void 0===e&&(e=\"default\"),r=n(u,t,e),!i(r)||o(r))return r;throw c(\"Can't convert object to primitive value\")}return void 0===e&&(e=\"number\"),s(t,e)}},3894:(t,e,r)=>{var n=r(6935),i=r(6664);t.exports=function(t){var e=n(t,\"string\");return i(e)?e:e+\"\"}},2885:(t,e,r)=>{var n={};n[r(9813)(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(n)},5803:(t,e,r)=>{var n=r(9697),i=String;t.exports=function(t){if(\"Symbol\"===n(t))throw TypeError(\"Cannot convert a Symbol value to a string\");return i(t)}},9826:t=>{var e=String;t.exports=function(t){try{return e(t)}catch(t){return\"Object\"}}},9418:(t,e,r)=>{var n=r(5329),i=0,o=Math.random(),a=n(1..toString);t.exports=function(t){return\"Symbol(\"+(void 0===t?\"\":t)+\")_\"+a(++i+o,36)}},2302:(t,e,r)=>{var n=r(3405);t.exports=n&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator},3937:(t,e,r)=>{var n=r(5746),i=r(5981);t.exports=n&&i((function(){return 42!=Object.defineProperty((function(){}),\"prototype\",{value:42,writable:!1}).prototype}))},7093:(t,e,r)=>{var n=r(1899),i=r(7475),o=n.WeakMap;t.exports=i(o)&&/native code/.test(String(o))},3464:(t,e,r)=>{var n=r(4058),i=r(953),o=r(1477),a=r(5988).f;t.exports=function(t){var e=n.Symbol||(n.Symbol={});i(e,t)||a(e,t,{value:o.f(t)})}},1477:(t,e,r)=>{var n=r(9813);e.f=n},9813:(t,e,r)=>{var n=r(1899),i=r(8726),o=r(953),a=r(9418),s=r(3405),u=r(2302),c=n.Symbol,f=i(\"wks\"),l=u?c.for||c:c&&c.withoutSetter||a;t.exports=function(t){return o(f,t)||(f[t]=s&&o(c,t)?c[t]:l(\"Symbol.\"+t)),f[t]}},5906:(t,e,r)=>{\"use strict\";var n=r(6887),i=r(5981),o=r(1052),a=r(941),s=r(9678),u=r(623),c=r(6796),f=r(5449),l=r(4692),p=r(568),h=r(9813),d=r(3385),M=h(\"isConcatSpreadable\"),w=d>=51||!i((function(){var t=[];return t[M]=!1,t.concat()[0]!==t})),isConcatSpreadable=function(t){if(!a(t))return!1;var e=t[M];return void 0!==e?!!e:o(t)};n({target:\"Array\",proto:!0,arity:1,forced:!w||!p(\"concat\")},{concat:function concat(t){var e,r,n,i,o,a=s(this),p=l(a,0),h=0;for(e=-1,n=arguments.length;e<n;e++)if(isConcatSpreadable(o=-1===e?a:arguments[e]))for(i=u(o),c(h+i),r=0;r<i;r++,h++)r in o&&f(p,h,o[r]);else c(h+1),f(p,h++,o);return p.length=h,p}})},6274:(t,e,r)=>{\"use strict\";var n=r(4529),i=r(8479),o=r(2077),a=r(5402),s=r(5988).f,u=r(5105),c=r(3538),f=r(2529),l=r(5746),p=\"Array Iterator\",h=a.set,d=a.getterFor(p);t.exports=u(Array,\"Array\",(function(t,e){h(this,{type:p,target:n(t),index:0,kind:e})}),(function(){var t=d(this),e=t.target,r=t.kind,n=t.index++;return!e||n>=e.length?(t.target=void 0,c(void 0,!0)):c(\"keys\"==r?n:\"values\"==r?e[n]:[n,e[n]],!1)}),\"values\");var M=o.Arguments=o.Array;if(i(\"keys\"),i(\"values\"),i(\"entries\"),!f&&l&&\"values\"!==M.name)try{s(M,\"name\",{value:\"values\"})}catch(t){}},8084:()=>{},3381:(t,e,r)=>{var n=r(6887),i=r(8308);n({target:\"Function\",proto:!0,forced:Function.bind!==i},{bind:i})},2619:(t,e,r)=>{var n=r(6887),i=r(626),o=r(9730),a=r(8834),s=r(5329),u=r(5981),c=r(7475),f=r(6664),l=r(3765),p=r(3323),h=r(3405),d=String,M=i(\"JSON\",\"stringify\"),w=s(/./.exec),g=s(\"\".charAt),_=s(\"\".charCodeAt),v=s(\"\".replace),I=s(1..toString),m=/[\\uD800-\\uDFFF]/g,j=/^[\\uD800-\\uDBFF]$/,b=/^[\\uDC00-\\uDFFF]$/,x=!h||u((function(){var t=i(\"Symbol\")();return\"[null]\"!=M([t])||\"{}\"!=M({a:t})||\"{}\"!=M(Object(t))})),A=u((function(){return'\"\\\\udf06\\\\ud834\"'!==M(\"\\udf06\\ud834\")||'\"\\\\udead\"'!==M(\"\\udead\")})),stringifyWithSymbolsFix=function(t,e){var r=l(arguments),n=p(e);if(c(n)||void 0!==t&&!f(t))return r[1]=function(t,e){if(c(n)&&(e=a(n,this,d(t),e)),!f(e))return e},o(M,null,r)},fixIllFormed=function(t,e,r){var n=g(r,e-1),i=g(r,e+1);return w(j,t)&&!w(b,i)||w(b,t)&&!w(j,n)?\"\\\\u\"+I(_(t,0),16):t};M&&n({target:\"JSON\",stat:!0,arity:3,forced:x||A},{stringify:function stringify(t,e,r){var n=l(arguments),i=o(x?stringifyWithSymbolsFix:M,null,n);return A&&\"string\"==typeof i?v(i,m,fixIllFormed):i}})},9120:(t,e,r)=>{var n=r(1899);r(904)(n.JSON,\"JSON\",!0)},5327:()=>{},9221:(t,e,r)=>{var n=r(6887),i=r(4420);n({target:\"Object\",stat:!0,arity:2,forced:Object.assign!==i},{assign:i})},6450:(t,e,r)=>{var n=r(6887),i=r(5746),o=r(5988).f;n({target:\"Object\",stat:!0,forced:Object.defineProperty!==o,sham:!i},{defineProperty:o})},7144:(t,e,r)=>{var n=r(6887),i=r(3405),o=r(5981),a=r(7857),s=r(9678);n({target:\"Object\",stat:!0,forced:!i||o((function(){a.f(1)}))},{getOwnPropertySymbols:function getOwnPropertySymbols(t){var e=a.f;return e?e(s(t)):[]}})},5967:()=>{},1502:()=>{},7971:(t,e,r)=>{\"use strict\";var n=r(4620).charAt,i=r(5803),o=r(5402),a=r(5105),s=r(3538),u=\"String Iterator\",c=o.set,f=o.getterFor(u);a(String,\"String\",(function(t){c(this,{type:u,string:i(t),index:0})}),(function next(){var t,e=f(this),r=e.string,i=e.index;return i>=r.length?s(void 0,!0):(t=n(r,i),e.index+=t.length,s(t,!1))}))},8555:(t,e,r)=>{r(3464)(\"asyncIterator\")},8616:(t,e,r)=>{\"use strict\";var n=r(6887),i=r(1899),o=r(8834),a=r(5329),s=r(2529),u=r(5746),c=r(3405),f=r(5981),l=r(953),p=r(7046),h=r(6059),d=r(4529),M=r(3894),w=r(5803),g=r(1887),_=r(9290),v=r(4771),I=r(946),m=r(684),j=r(7857),b=r(9677),x=r(5988),A=r(9938),T=r(6760),k=r(5929),B=r(9202),U=r(8726),Y=r(4262),q=r(7748),R=r(9418),W=r(9813),G=r(1477),V=r(3464),H=r(9630),Z=r(904),$=r(5402),X=r(3610).forEach,tt=Y(\"hidden\"),et=\"Symbol\",rt=\"prototype\",nt=$.set,it=$.getterFor(et),ot=Object[rt],at=i.Symbol,st=at&&at[rt],ut=i.TypeError,ct=i.QObject,lt=b.f,pt=x.f,ht=m.f,dt=T.f,yt=a([].push),Mt=U(\"symbols\"),wt=U(\"op-symbols\"),gt=U(\"wks\"),Lt=!ct||!ct[rt]||!ct[rt].findChild,_t=u&&f((function(){return 7!=_(pt({},\"a\",{get:function(){return pt(this,\"a\",{value:7}).a}})).a}))?function(t,e,r){var n=lt(ot,e);n&&delete ot[e],pt(t,e,r),n&&t!==ot&&pt(ot,e,n)}:pt,wrap=function(t,e){var r=Mt[t]=_(st);return nt(r,{type:et,tag:t,description:e}),u||(r.description=e),r},vt=function defineProperty(t,e,r){t===ot&&vt(wt,e,r),h(t);var n=M(e);return h(r),l(Mt,n)?(r.enumerable?(l(t,tt)&&t[tt][n]&&(t[tt][n]=!1),r=_(r,{enumerable:g(0,!1)})):(l(t,tt)||pt(t,tt,g(1,{})),t[tt][n]=!0),_t(t,n,r)):pt(t,n,r)},St=function defineProperties(t,e){h(t);var r=d(e),n=v(r).concat($getOwnPropertySymbols(r));return X(n,(function(e){u&&!o(It,r,e)||vt(t,e,r[e])})),t},It=function propertyIsEnumerable(t){var e=M(t),r=o(dt,this,e);return!(this===ot&&l(Mt,e)&&!l(wt,e))&&(!(r||!l(this,e)||!l(Mt,e)||l(this,tt)&&this[tt][e])||r)},mt=function getOwnPropertyDescriptor(t,e){var r=d(t),n=M(e);if(r!==ot||!l(Mt,n)||l(wt,n)){var i=lt(r,n);return!i||!l(Mt,n)||l(r,tt)&&r[tt][n]||(i.enumerable=!0),i}},Nt=function getOwnPropertyNames(t){var e=ht(d(t)),r=[];return X(e,(function(t){l(Mt,t)||l(q,t)||yt(r,t)})),r},$getOwnPropertySymbols=function(t){var e=t===ot,r=ht(e?wt:d(t)),n=[];return X(r,(function(t){!l(Mt,t)||e&&!l(ot,t)||yt(n,Mt[t])})),n};c||(k(st=(at=function Symbol(){if(p(st,this))throw ut(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?w(arguments[0]):void 0,e=R(t),setter=function(t){this===ot&&o(setter,wt,t),l(this,tt)&&l(this[tt],e)&&(this[tt][e]=!1),_t(this,e,g(1,t))};return u&&Lt&&_t(ot,e,{configurable:!0,set:setter}),wrap(e,t)})[rt],\"toString\",(function toString(){return it(this).tag})),k(at,\"withoutSetter\",(function(t){return wrap(R(t),t)})),T.f=It,x.f=vt,A.f=St,b.f=mt,I.f=m.f=Nt,j.f=$getOwnPropertySymbols,G.f=function(t){return wrap(W(t),t)},u&&(B(st,\"description\",{configurable:!0,get:function description(){return it(this).description}}),s||k(ot,\"propertyIsEnumerable\",It,{unsafe:!0}))),n({global:!0,constructor:!0,wrap:!0,forced:!c,sham:!c},{Symbol:at}),X(v(gt),(function(t){V(t)})),n({target:et,stat:!0,forced:!c},{useSetter:function(){Lt=!0},useSimple:function(){Lt=!1}}),n({target:\"Object\",stat:!0,forced:!c,sham:!u},{create:function create(t,e){return void 0===e?_(t):St(_(t),e)},defineProperty:vt,defineProperties:St,getOwnPropertyDescriptor:mt}),n({target:\"Object\",stat:!0,forced:!c},{getOwnPropertyNames:Nt}),H(),Z(at,et),q[tt]=!0},2615:()=>{},4523:(t,e,r)=>{var n=r(6887),i=r(626),o=r(953),a=r(5803),s=r(8726),u=r(4680),c=s(\"string-to-symbol-registry\"),f=s(\"symbol-to-string-registry\");n({target:\"Symbol\",stat:!0,forced:!u},{for:function(t){var e=a(t);if(o(c,e))return c[e];var r=i(\"Symbol\")(e);return c[e]=r,f[r]=e,r}})},1732:(t,e,r)=>{r(3464)(\"hasInstance\")},5903:(t,e,r)=>{r(3464)(\"isConcatSpreadable\")},1825:(t,e,r)=>{r(3464)(\"iterator\")},5824:(t,e,r)=>{r(8616),r(4523),r(8608),r(2619),r(7144)},8608:(t,e,r)=>{var n=r(6887),i=r(953),o=r(6664),a=r(9826),s=r(8726),u=r(4680),c=s(\"symbol-to-string-registry\");n({target:\"Symbol\",stat:!0,forced:!u},{keyFor:function keyFor(t){if(!o(t))throw TypeError(a(t)+\" is not a symbol\");if(i(c,t))return c[t]}})},5915:(t,e,r)=>{r(3464)(\"matchAll\")},8394:(t,e,r)=>{r(3464)(\"match\")},1766:(t,e,r)=>{r(3464)(\"replace\")},2737:(t,e,r)=>{r(3464)(\"search\")},9911:(t,e,r)=>{r(3464)(\"species\")},4315:(t,e,r)=>{r(3464)(\"split\")},3131:(t,e,r)=>{var n=r(3464),i=r(9630);n(\"toPrimitive\"),i()},4714:(t,e,r)=>{var n=r(626),i=r(3464),o=r(904);i(\"toStringTag\"),o(n(\"Symbol\"),\"Symbol\")},659:(t,e,r)=>{r(3464)(\"unscopables\")},7522:(t,e,r)=>{var n=r(9813),i=r(5988).f,o=n(\"metadata\"),a=Function.prototype;void 0===a[o]&&i(a,o,{value:null})},8783:(t,e,r)=>{r(3464)(\"asyncDispose\")},3975:(t,e,r)=>{r(3464)(\"dispose\")},7618:(t,e,r)=>{r(6887)({target:\"Symbol\",stat:!0},{isRegisteredSymbol:r(2087)})},2731:(t,e,r)=>{r(6887)({target:\"Symbol\",stat:!0,name:\"isRegisteredSymbol\"},{isRegistered:r(2087)})},6989:(t,e,r)=>{r(6887)({target:\"Symbol\",stat:!0,forced:!0},{isWellKnownSymbol:r(6559)})},5605:(t,e,r)=>{r(6887)({target:\"Symbol\",stat:!0,name:\"isWellKnownSymbol\",forced:!0},{isWellKnown:r(6559)})},5799:(t,e,r)=>{r(3464)(\"matcher\")},1943:(t,e,r)=>{r(3464)(\"metadataKey\")},5414:(t,e,r)=>{r(3464)(\"metadata\")},6774:(t,e,r)=>{r(3464)(\"observable\")},620:(t,e,r)=>{r(3464)(\"patternMatch\")},6172:(t,e,r)=>{r(3464)(\"replaceAll\")},7634:(t,e,r)=>{r(6274);var n=r(3281),i=r(1899),o=r(9697),a=r(2029),s=r(2077),u=r(9813)(\"toStringTag\");for(var c in n){var f=i[c],l=f&&f.prototype;l&&o(l)!==u&&a(l,u,c),s[c]=s.Array}},8196:(t,e,r)=>{var n=r(6246);t.exports=n},3383:(t,e,r)=>{var n=r(5999);t.exports=n},1910:(t,e,r)=>{var n=r(8171);t.exports=n},2547:(t,e,r)=>{var n=r(7473);r(7634),t.exports=n},6509:(t,e,r)=>{var n=r(4227);r(7634),t.exports=n},5774:(t,e,r)=>{var n=r(2978);t.exports=n},8269:function(t,e,r){var n;n=void 0!==r.g?r.g:this,t.exports=function(t){if(t.CSS&&t.CSS.escape)return t.CSS.escape;var cssEscape=function(t){if(0==arguments.length)throw new TypeError(\"`CSS.escape` requires an argument.\");for(var e,r=String(t),n=r.length,i=-1,o=\"\",a=r.charCodeAt(0);++i<n;)0!=(e=r.charCodeAt(i))?o+=e>=1&&e<=31||127==e||0==i&&e>=48&&e<=57||1==i&&e>=48&&e<=57&&45==a?\"\\\\\"+e.toString(16)+\" \":0==i&&1==n&&45==e||!(e>=128||45==e||95==e||e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122)?\"\\\\\"+r.charAt(i):r.charAt(i):o+=\"�\";return o};return t.CSS||(t.CSS={}),t.CSS.escape=cssEscape,cssEscape}(n)},645:(t,e)=>{e.read=function(t,e,r,n,i){var o,a,s=8*i-n-1,u=(1<<s)-1,c=u>>1,f=-7,l=r?i-1:0,p=r?-1:1,h=t[e+l];for(l+=p,o=h&(1<<-f)-1,h>>=-f,f+=s;f>0;o=256*o+t[e+l],l+=p,f-=8);for(a=o&(1<<-f)-1,o>>=-f,f+=n;f>0;a=256*a+t[e+l],l+=p,f-=8);if(0===o)o=1-c;else{if(o===u)return a?NaN:1/0*(h?-1:1);a+=Math.pow(2,n),o-=c}return(h?-1:1)*a*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var a,s,u,c=8*o-i-1,f=(1<<c)-1,l=f>>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:o-1,d=n?1:-1,M=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=f):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),(e+=a+l>=1?p/u:p*Math.pow(2,1-l))*u>=2&&(a++,u/=2),a+l>=f?(s=0,a=f):a+l>=1?(s=(e*u-1)*Math.pow(2,i),a+=l):(s=e*Math.pow(2,l-1)*Math.pow(2,i),a=0));i>=8;t[r+h]=255&s,h+=d,s/=256,i-=8);for(a=a<<i|s,c+=i;c>0;t[r+h]=255&a,h+=d,a/=256,c-=8);t[r+h-d]|=128*M}},3393:function(t){t.exports=function(){\"use strict\";var t=Array.prototype.slice;function createClass(t,e){e&&(t.prototype=Object.create(e.prototype)),t.prototype.constructor=t}function Iterable(t){return isIterable(t)?t:Seq(t)}function KeyedIterable(t){return isKeyed(t)?t:KeyedSeq(t)}function IndexedIterable(t){return isIndexed(t)?t:IndexedSeq(t)}function SetIterable(t){return isIterable(t)&&!isAssociative(t)?t:SetSeq(t)}function isIterable(t){return!(!t||!t[e])}function isKeyed(t){return!(!t||!t[r])}function isIndexed(t){return!(!t||!t[n])}function isAssociative(t){return isKeyed(t)||isIndexed(t)}function isOrdered(t){return!(!t||!t[i])}createClass(KeyedIterable,Iterable),createClass(IndexedIterable,Iterable),createClass(SetIterable,Iterable),Iterable.isIterable=isIterable,Iterable.isKeyed=isKeyed,Iterable.isIndexed=isIndexed,Iterable.isAssociative=isAssociative,Iterable.isOrdered=isOrdered,Iterable.Keyed=KeyedIterable,Iterable.Indexed=IndexedIterable,Iterable.Set=SetIterable;var e=\"@@__IMMUTABLE_ITERABLE__@@\",r=\"@@__IMMUTABLE_KEYED__@@\",n=\"@@__IMMUTABLE_INDEXED__@@\",i=\"@@__IMMUTABLE_ORDERED__@@\",o=\"delete\",a=5,s=1<<a,u=s-1,c={},f={value:!1},l={value:!1};function MakeRef(t){return t.value=!1,t}function SetRef(t){t&&(t.value=!0)}function OwnerID(){}function arrCopy(t,e){e=e||0;for(var r=Math.max(0,t.length-e),n=new Array(r),i=0;i<r;i++)n[i]=t[i+e];return n}function ensureSize(t){return void 0===t.size&&(t.size=t.__iterate(returnTrue)),t.size}function wrapIndex(t,e){if(\"number\"!=typeof e){var r=e>>>0;if(\"\"+r!==e||4294967295===r)return NaN;e=r}return e<0?ensureSize(t)+e:e}function returnTrue(){return!0}function wholeSlice(t,e,r){return(0===t||void 0!==r&&t<=-r)&&(void 0===e||void 0!==r&&e>=r)}function resolveBegin(t,e){return resolveIndex(t,e,0)}function resolveEnd(t,e){return resolveIndex(t,e,e)}function resolveIndex(t,e,r){return void 0===t?r:t<0?Math.max(0,e+t):void 0===e?t:Math.min(e,t)}var p=0,h=1,d=2,M=\"function\"==typeof Symbol&&Symbol.iterator,w=\"@@iterator\",g=M||w;function Iterator(t){this.next=t}function iteratorValue(t,e,r,n){var i=0===t?e:1===t?r:[e,r];return n?n.value=i:n={value:i,done:!1},n}function iteratorDone(){return{value:void 0,done:!0}}function hasIterator(t){return!!getIteratorFn(t)}function isIterator(t){return t&&\"function\"==typeof t.next}function getIterator(t){var e=getIteratorFn(t);return e&&e.call(t)}function getIteratorFn(t){var e=t&&(M&&t[M]||t[w]);if(\"function\"==typeof e)return e}function isArrayLike(t){return t&&\"number\"==typeof t.length}function Seq(t){return null==t?emptySequence():isIterable(t)?t.toSeq():seqFromValue(t)}function KeyedSeq(t){return null==t?emptySequence().toKeyedSeq():isIterable(t)?isKeyed(t)?t.toSeq():t.fromEntrySeq():keyedSeqFromValue(t)}function IndexedSeq(t){return null==t?emptySequence():isIterable(t)?isKeyed(t)?t.entrySeq():t.toIndexedSeq():indexedSeqFromValue(t)}function SetSeq(t){return(null==t?emptySequence():isIterable(t)?isKeyed(t)?t.entrySeq():t:indexedSeqFromValue(t)).toSetSeq()}Iterator.prototype.toString=function(){return\"[Iterator]\"},Iterator.KEYS=p,Iterator.VALUES=h,Iterator.ENTRIES=d,Iterator.prototype.inspect=Iterator.prototype.toSource=function(){return this.toString()},Iterator.prototype[g]=function(){return this},createClass(Seq,Iterable),Seq.of=function(){return Seq(arguments)},Seq.prototype.toSeq=function(){return this},Seq.prototype.toString=function(){return this.__toString(\"Seq {\",\"}\")},Seq.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},Seq.prototype.__iterate=function(t,e){return seqIterate(this,t,e,!0)},Seq.prototype.__iterator=function(t,e){return seqIterator(this,t,e,!0)},createClass(KeyedSeq,Seq),KeyedSeq.prototype.toKeyedSeq=function(){return this},createClass(IndexedSeq,Seq),IndexedSeq.of=function(){return IndexedSeq(arguments)},IndexedSeq.prototype.toIndexedSeq=function(){return this},IndexedSeq.prototype.toString=function(){return this.__toString(\"Seq [\",\"]\")},IndexedSeq.prototype.__iterate=function(t,e){return seqIterate(this,t,e,!1)},IndexedSeq.prototype.__iterator=function(t,e){return seqIterator(this,t,e,!1)},createClass(SetSeq,Seq),SetSeq.of=function(){return SetSeq(arguments)},SetSeq.prototype.toSetSeq=function(){return this},Seq.isSeq=isSeq,Seq.Keyed=KeyedSeq,Seq.Set=SetSeq,Seq.Indexed=IndexedSeq;var _,v,I,m=\"@@__IMMUTABLE_SEQ__@@\";function ArraySeq(t){this._array=t,this.size=t.length}function ObjectSeq(t){var e=Object.keys(t);this._object=t,this._keys=e,this.size=e.length}function IterableSeq(t){this._iterable=t,this.size=t.length||t.size}function IteratorSeq(t){this._iterator=t,this._iteratorCache=[]}function isSeq(t){return!(!t||!t[m])}function emptySequence(){return _||(_=new ArraySeq([]))}function keyedSeqFromValue(t){var e=Array.isArray(t)?new ArraySeq(t).fromEntrySeq():isIterator(t)?new IteratorSeq(t).fromEntrySeq():hasIterator(t)?new IterableSeq(t).fromEntrySeq():\"object\"==typeof t?new ObjectSeq(t):void 0;if(!e)throw new TypeError(\"Expected Array or iterable object of [k, v] entries, or keyed object: \"+t);return e}function indexedSeqFromValue(t){var e=maybeIndexedSeqFromValue(t);if(!e)throw new TypeError(\"Expected Array or iterable object of values: \"+t);return e}function seqFromValue(t){var e=maybeIndexedSeqFromValue(t)||\"object\"==typeof t&&new ObjectSeq(t);if(!e)throw new TypeError(\"Expected Array or iterable object of values, or keyed object: \"+t);return e}function maybeIndexedSeqFromValue(t){return isArrayLike(t)?new ArraySeq(t):isIterator(t)?new IteratorSeq(t):hasIterator(t)?new IterableSeq(t):void 0}function seqIterate(t,e,r,n){var i=t._cache;if(i){for(var o=i.length-1,a=0;a<=o;a++){var s=i[r?o-a:a];if(!1===e(s[1],n?s[0]:a,t))return a+1}return a}return t.__iterateUncached(e,r)}function seqIterator(t,e,r,n){var i=t._cache;if(i){var o=i.length-1,a=0;return new Iterator((function(){var t=i[r?o-a:a];return a++>o?iteratorDone():iteratorValue(e,n?t[0]:a-1,t[1])}))}return t.__iteratorUncached(e,r)}function fromJS(t,e){return e?fromJSWith(e,t,\"\",{\"\":t}):fromJSDefault(t)}function fromJSWith(t,e,r,n){return Array.isArray(e)?t.call(n,r,IndexedSeq(e).map((function(r,n){return fromJSWith(t,r,n,e)}))):isPlainObj(e)?t.call(n,r,KeyedSeq(e).map((function(r,n){return fromJSWith(t,r,n,e)}))):e}function fromJSDefault(t){return Array.isArray(t)?IndexedSeq(t).map(fromJSDefault).toList():isPlainObj(t)?KeyedSeq(t).map(fromJSDefault).toMap():t}function isPlainObj(t){return t&&(t.constructor===Object||void 0===t.constructor)}function is(t,e){if(t===e||t!=t&&e!=e)return!0;if(!t||!e)return!1;if(\"function\"==typeof t.valueOf&&\"function\"==typeof e.valueOf){if((t=t.valueOf())===(e=e.valueOf())||t!=t&&e!=e)return!0;if(!t||!e)return!1}return!(\"function\"!=typeof t.equals||\"function\"!=typeof e.equals||!t.equals(e))}function deepEqual(t,e){if(t===e)return!0;if(!isIterable(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||isKeyed(t)!==isKeyed(e)||isIndexed(t)!==isIndexed(e)||isOrdered(t)!==isOrdered(e))return!1;if(0===t.size&&0===e.size)return!0;var r=!isAssociative(t);if(isOrdered(t)){var n=t.entries();return e.every((function(t,e){var i=n.next().value;return i&&is(i[1],t)&&(r||is(i[0],e))}))&&n.next().done}var i=!1;if(void 0===t.size)if(void 0===e.size)\"function\"==typeof t.cacheResult&&t.cacheResult();else{i=!0;var o=t;t=e,e=o}var a=!0,s=e.__iterate((function(e,n){if(r?!t.has(e):i?!is(e,t.get(n,c)):!is(t.get(n,c),e))return a=!1,!1}));return a&&t.size===s}function Repeat(t,e){if(!(this instanceof Repeat))return new Repeat(t,e);if(this._value=t,this.size=void 0===e?1/0:Math.max(0,e),0===this.size){if(v)return v;v=this}}function invariant(t,e){if(!t)throw new Error(e)}function Range(t,e,r){if(!(this instanceof Range))return new Range(t,e,r);if(invariant(0!==r,\"Cannot step a Range by 0\"),t=t||0,void 0===e&&(e=1/0),r=void 0===r?1:Math.abs(r),e<t&&(r=-r),this._start=t,this._end=e,this._step=r,this.size=Math.max(0,Math.ceil((e-t)/r-1)+1),0===this.size){if(I)return I;I=this}}function Collection(){throw TypeError(\"Abstract\")}function KeyedCollection(){}function IndexedCollection(){}function SetCollection(){}Seq.prototype[m]=!0,createClass(ArraySeq,IndexedSeq),ArraySeq.prototype.get=function(t,e){return this.has(t)?this._array[wrapIndex(this,t)]:e},ArraySeq.prototype.__iterate=function(t,e){for(var r=this._array,n=r.length-1,i=0;i<=n;i++)if(!1===t(r[e?n-i:i],i,this))return i+1;return i},ArraySeq.prototype.__iterator=function(t,e){var r=this._array,n=r.length-1,i=0;return new Iterator((function(){return i>n?iteratorDone():iteratorValue(t,i,r[e?n-i++:i++])}))},createClass(ObjectSeq,KeyedSeq),ObjectSeq.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},ObjectSeq.prototype.has=function(t){return this._object.hasOwnProperty(t)},ObjectSeq.prototype.__iterate=function(t,e){for(var r=this._object,n=this._keys,i=n.length-1,o=0;o<=i;o++){var a=n[e?i-o:o];if(!1===t(r[a],a,this))return o+1}return o},ObjectSeq.prototype.__iterator=function(t,e){var r=this._object,n=this._keys,i=n.length-1,o=0;return new Iterator((function(){var a=n[e?i-o:o];return o++>i?iteratorDone():iteratorValue(t,a,r[a])}))},ObjectSeq.prototype[i]=!0,createClass(IterableSeq,IndexedSeq),IterableSeq.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);var r=getIterator(this._iterable),n=0;if(isIterator(r))for(var i;!(i=r.next()).done&&!1!==t(i.value,n++,this););return n},IterableSeq.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var r=getIterator(this._iterable);if(!isIterator(r))return new Iterator(iteratorDone);var n=0;return new Iterator((function(){var e=r.next();return e.done?e:iteratorValue(t,n++,e.value)}))},createClass(IteratorSeq,IndexedSeq),IteratorSeq.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);for(var r,n=this._iterator,i=this._iteratorCache,o=0;o<i.length;)if(!1===t(i[o],o++,this))return o;for(;!(r=n.next()).done;){var a=r.value;if(i[o]=a,!1===t(a,o++,this))break}return o},IteratorSeq.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var r=this._iterator,n=this._iteratorCache,i=0;return new Iterator((function(){if(i>=n.length){var e=r.next();if(e.done)return e;n[i]=e.value}return iteratorValue(t,i,n[i++])}))},createClass(Repeat,IndexedSeq),Repeat.prototype.toString=function(){return 0===this.size?\"Repeat []\":\"Repeat [ \"+this._value+\" \"+this.size+\" times ]\"},Repeat.prototype.get=function(t,e){return this.has(t)?this._value:e},Repeat.prototype.includes=function(t){return is(this._value,t)},Repeat.prototype.slice=function(t,e){var r=this.size;return wholeSlice(t,e,r)?this:new Repeat(this._value,resolveEnd(e,r)-resolveBegin(t,r))},Repeat.prototype.reverse=function(){return this},Repeat.prototype.indexOf=function(t){return is(this._value,t)?0:-1},Repeat.prototype.lastIndexOf=function(t){return is(this._value,t)?this.size:-1},Repeat.prototype.__iterate=function(t,e){for(var r=0;r<this.size;r++)if(!1===t(this._value,r,this))return r+1;return r},Repeat.prototype.__iterator=function(t,e){var r=this,n=0;return new Iterator((function(){return n<r.size?iteratorValue(t,n++,r._value):iteratorDone()}))},Repeat.prototype.equals=function(t){return t instanceof Repeat?is(this._value,t._value):deepEqual(t)},createClass(Range,IndexedSeq),Range.prototype.toString=function(){return 0===this.size?\"Range []\":\"Range [ \"+this._start+\"...\"+this._end+(1!==this._step?\" by \"+this._step:\"\")+\" ]\"},Range.prototype.get=function(t,e){return this.has(t)?this._start+wrapIndex(this,t)*this._step:e},Range.prototype.includes=function(t){var e=(t-this._start)/this._step;return e>=0&&e<this.size&&e===Math.floor(e)},Range.prototype.slice=function(t,e){return wholeSlice(t,e,this.size)?this:(t=resolveBegin(t,this.size),(e=resolveEnd(e,this.size))<=t?new Range(0,0):new Range(this.get(t,this._end),this.get(e,this._end),this._step))},Range.prototype.indexOf=function(t){var e=t-this._start;if(e%this._step==0){var r=e/this._step;if(r>=0&&r<this.size)return r}return-1},Range.prototype.lastIndexOf=function(t){return this.indexOf(t)},Range.prototype.__iterate=function(t,e){for(var r=this.size-1,n=this._step,i=e?this._start+r*n:this._start,o=0;o<=r;o++){if(!1===t(i,o,this))return o+1;i+=e?-n:n}return o},Range.prototype.__iterator=function(t,e){var r=this.size-1,n=this._step,i=e?this._start+r*n:this._start,o=0;return new Iterator((function(){var a=i;return i+=e?-n:n,o>r?iteratorDone():iteratorValue(t,o++,a)}))},Range.prototype.equals=function(t){return t instanceof Range?this._start===t._start&&this._end===t._end&&this._step===t._step:deepEqual(this,t)},createClass(Collection,Iterable),createClass(KeyedCollection,Collection),createClass(IndexedCollection,Collection),createClass(SetCollection,Collection),Collection.Keyed=KeyedCollection,Collection.Indexed=IndexedCollection,Collection.Set=SetCollection;var j=\"function\"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function imul(t,e){var r=65535&(t|=0),n=65535&(e|=0);return r*n+((t>>>16)*n+r*(e>>>16)<<16>>>0)|0};function smi(t){return t>>>1&1073741824|3221225471&t}function hash(t){if(!1===t||null==t)return 0;if(\"function\"==typeof t.valueOf&&(!1===(t=t.valueOf())||null==t))return 0;if(!0===t)return 1;var e=typeof t;if(\"number\"===e){if(t!=t||t===1/0)return 0;var r=0|t;for(r!==t&&(r^=4294967295*t);t>4294967295;)r^=t/=4294967295;return smi(r)}if(\"string\"===e)return t.length>U?cachedHashString(t):hashString(t);if(\"function\"==typeof t.hashCode)return t.hashCode();if(\"object\"===e)return hashJSObj(t);if(\"function\"==typeof t.toString)return hashString(t.toString());throw new Error(\"Value type \"+e+\" cannot be hashed.\")}function cachedHashString(t){var e=R[t];return void 0===e&&(e=hashString(t),q===Y&&(q=0,R={}),q++,R[t]=e),e}function hashString(t){for(var e=0,r=0;r<t.length;r++)e=31*e+t.charCodeAt(r)|0;return smi(e)}function hashJSObj(t){var e;if(T&&void 0!==(e=A.get(t)))return e;if(void 0!==(e=t[B]))return e;if(!x){if(void 0!==(e=t.propertyIsEnumerable&&t.propertyIsEnumerable[B]))return e;if(void 0!==(e=getIENodeHash(t)))return e}if(e=++k,1073741824&k&&(k=0),T)A.set(t,e);else{if(void 0!==b&&!1===b(t))throw new Error(\"Non-extensible objects are not allowed as keys.\");if(x)Object.defineProperty(t,B,{enumerable:!1,configurable:!1,writable:!1,value:e});else if(void 0!==t.propertyIsEnumerable&&t.propertyIsEnumerable===t.constructor.prototype.propertyIsEnumerable)t.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},t.propertyIsEnumerable[B]=e;else{if(void 0===t.nodeType)throw new Error(\"Unable to set a non-enumerable property on object.\");t[B]=e}}return e}var b=Object.isExtensible,x=function(){try{return Object.defineProperty({},\"@\",{}),!0}catch(t){return!1}}();function getIENodeHash(t){if(t&&t.nodeType>0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}var A,T=\"function\"==typeof WeakMap;T&&(A=new WeakMap);var k=0,B=\"__immutablehash__\";\"function\"==typeof Symbol&&(B=Symbol(B));var U=16,Y=255,q=0,R={};function assertNotInfinite(t){invariant(t!==1/0,\"Cannot perform this action with an infinite size.\")}function Map(t){return null==t?emptyMap():isMap(t)&&!isOrdered(t)?t:emptyMap().withMutations((function(e){var r=KeyedIterable(t);assertNotInfinite(r.size),r.forEach((function(t,r){return e.set(r,t)}))}))}function isMap(t){return!(!t||!t[G])}createClass(Map,KeyedCollection),Map.of=function(){var e=t.call(arguments,0);return emptyMap().withMutations((function(t){for(var r=0;r<e.length;r+=2){if(r+1>=e.length)throw new Error(\"Missing value for key: \"+e[r]);t.set(e[r],e[r+1])}}))},Map.prototype.toString=function(){return this.__toString(\"Map {\",\"}\")},Map.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},Map.prototype.set=function(t,e){return updateMap(this,t,e)},Map.prototype.setIn=function(t,e){return this.updateIn(t,c,(function(){return e}))},Map.prototype.remove=function(t){return updateMap(this,t,c)},Map.prototype.deleteIn=function(t){return this.updateIn(t,(function(){return c}))},Map.prototype.update=function(t,e,r){return 1===arguments.length?t(this):this.updateIn([t],e,r)},Map.prototype.updateIn=function(t,e,r){r||(r=e,e=void 0);var n=updateInDeepMap(this,forceIterator(t),e,r);return n===c?void 0:n},Map.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):emptyMap()},Map.prototype.merge=function(){return mergeIntoMapWith(this,void 0,arguments)},Map.prototype.mergeWith=function(e){return mergeIntoMapWith(this,e,t.call(arguments,1))},Map.prototype.mergeIn=function(e){var r=t.call(arguments,1);return this.updateIn(e,emptyMap(),(function(t){return\"function\"==typeof t.merge?t.merge.apply(t,r):r[r.length-1]}))},Map.prototype.mergeDeep=function(){return mergeIntoMapWith(this,deepMerger,arguments)},Map.prototype.mergeDeepWith=function(e){var r=t.call(arguments,1);return mergeIntoMapWith(this,deepMergerWith(e),r)},Map.prototype.mergeDeepIn=function(e){var r=t.call(arguments,1);return this.updateIn(e,emptyMap(),(function(t){return\"function\"==typeof t.mergeDeep?t.mergeDeep.apply(t,r):r[r.length-1]}))},Map.prototype.sort=function(t){return OrderedMap(sortFactory(this,t))},Map.prototype.sortBy=function(t,e){return OrderedMap(sortFactory(this,e,t))},Map.prototype.withMutations=function(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this},Map.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new OwnerID)},Map.prototype.asImmutable=function(){return this.__ensureOwner()},Map.prototype.wasAltered=function(){return this.__altered},Map.prototype.__iterator=function(t,e){return new MapIterator(this,t,e)},Map.prototype.__iterate=function(t,e){var r=this,n=0;return this._root&&this._root.iterate((function(e){return n++,t(e[1],e[0],r)}),e),n},Map.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?makeMap(this.size,this._root,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Map.isMap=isMap;var W,G=\"@@__IMMUTABLE_MAP__@@\",V=Map.prototype;function ArrayMapNode(t,e){this.ownerID=t,this.entries=e}function BitmapIndexedNode(t,e,r){this.ownerID=t,this.bitmap=e,this.nodes=r}function HashArrayMapNode(t,e,r){this.ownerID=t,this.count=e,this.nodes=r}function HashCollisionNode(t,e,r){this.ownerID=t,this.keyHash=e,this.entries=r}function ValueNode(t,e,r){this.ownerID=t,this.keyHash=e,this.entry=r}function MapIterator(t,e,r){this._type=e,this._reverse=r,this._stack=t._root&&mapIteratorFrame(t._root)}function mapIteratorValue(t,e){return iteratorValue(t,e[0],e[1])}function mapIteratorFrame(t,e){return{node:t,index:0,__prev:e}}function makeMap(t,e,r,n){var i=Object.create(V);return i.size=t,i._root=e,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function emptyMap(){return W||(W=makeMap(0))}function updateMap(t,e,r){var n,i;if(t._root){var o=MakeRef(f),a=MakeRef(l);if(n=updateNode(t._root,t.__ownerID,0,void 0,e,r,o,a),!a.value)return t;i=t.size+(o.value?r===c?-1:1:0)}else{if(r===c)return t;i=1,n=new ArrayMapNode(t.__ownerID,[[e,r]])}return t.__ownerID?(t.size=i,t._root=n,t.__hash=void 0,t.__altered=!0,t):n?makeMap(i,n):emptyMap()}function updateNode(t,e,r,n,i,o,a,s){return t?t.update(e,r,n,i,o,a,s):o===c?t:(SetRef(s),SetRef(a),new ValueNode(e,n,[i,o]))}function isLeafNode(t){return t.constructor===ValueNode||t.constructor===HashCollisionNode}function mergeIntoNode(t,e,r,n,i){if(t.keyHash===n)return new HashCollisionNode(e,n,[t.entry,i]);var o,s=(0===r?t.keyHash:t.keyHash>>>r)&u,c=(0===r?n:n>>>r)&u;return new BitmapIndexedNode(e,1<<s|1<<c,s===c?[mergeIntoNode(t,e,r+a,n,i)]:(o=new ValueNode(e,n,i),s<c?[t,o]:[o,t]))}function createNodes(t,e,r,n){t||(t=new OwnerID);for(var i=new ValueNode(t,hash(r),[r,n]),o=0;o<e.length;o++){var a=e[o];i=i.update(t,0,void 0,a[0],a[1])}return i}function packNodes(t,e,r,n){for(var i=0,o=0,a=new Array(r),s=0,u=1,c=e.length;s<c;s++,u<<=1){var f=e[s];void 0!==f&&s!==n&&(i|=u,a[o++]=f)}return new BitmapIndexedNode(t,i,a)}function expandNodes(t,e,r,n,i){for(var o=0,a=new Array(s),u=0;0!==r;u++,r>>>=1)a[u]=1&r?e[o++]:void 0;return a[n]=i,new HashArrayMapNode(t,o+1,a)}function mergeIntoMapWith(t,e,r){for(var n=[],i=0;i<r.length;i++){var o=r[i],a=KeyedIterable(o);isIterable(o)||(a=a.map((function(t){return fromJS(t)}))),n.push(a)}return mergeIntoCollectionWith(t,e,n)}function deepMerger(t,e,r){return t&&t.mergeDeep&&isIterable(e)?t.mergeDeep(e):is(t,e)?t:e}function deepMergerWith(t){return function(e,r,n){if(e&&e.mergeDeepWith&&isIterable(r))return e.mergeDeepWith(t,r);var i=t(e,r,n);return is(e,i)?e:i}}function mergeIntoCollectionWith(t,e,r){return 0===(r=r.filter((function(t){return 0!==t.size}))).length?t:0!==t.size||t.__ownerID||1!==r.length?t.withMutations((function(t){for(var n=e?function(r,n){t.update(n,c,(function(t){return t===c?r:e(t,r,n)}))}:function(e,r){t.set(r,e)},i=0;i<r.length;i++)r[i].forEach(n)})):t.constructor(r[0])}function updateInDeepMap(t,e,r,n){var i=t===c,o=e.next();if(o.done){var a=i?r:t,s=n(a);return s===a?t:s}invariant(i||t&&t.set,\"invalid keyPath\");var u=o.value,f=i?c:t.get(u,c),l=updateInDeepMap(f,e,r,n);return l===f?t:l===c?t.remove(u):(i?emptyMap():t).set(u,l)}function popCount(t){return t=(t=(858993459&(t-=t>>1&1431655765))+(t>>2&858993459))+(t>>4)&252645135,t+=t>>8,127&(t+=t>>16)}function setIn(t,e,r,n){var i=n?t:arrCopy(t);return i[e]=r,i}function spliceIn(t,e,r,n){var i=t.length+1;if(n&&e+1===i)return t[e]=r,t;for(var o=new Array(i),a=0,s=0;s<i;s++)s===e?(o[s]=r,a=-1):o[s]=t[s+a];return o}function spliceOut(t,e,r){var n=t.length-1;if(r&&e===n)return t.pop(),t;for(var i=new Array(n),o=0,a=0;a<n;a++)a===e&&(o=1),i[a]=t[a+o];return i}V[G]=!0,V[o]=V.remove,V.removeIn=V.deleteIn,ArrayMapNode.prototype.get=function(t,e,r,n){for(var i=this.entries,o=0,a=i.length;o<a;o++)if(is(r,i[o][0]))return i[o][1];return n},ArrayMapNode.prototype.update=function(t,e,r,n,i,o,a){for(var s=i===c,u=this.entries,f=0,l=u.length;f<l&&!is(n,u[f][0]);f++);var p=f<l;if(p?u[f][1]===i:s)return this;if(SetRef(a),(s||!p)&&SetRef(o),!s||1!==u.length){if(!p&&!s&&u.length>=H)return createNodes(t,u,n,i);var h=t&&t===this.ownerID,d=h?u:arrCopy(u);return p?s?f===l-1?d.pop():d[f]=d.pop():d[f]=[n,i]:d.push([n,i]),h?(this.entries=d,this):new ArrayMapNode(t,d)}},BitmapIndexedNode.prototype.get=function(t,e,r,n){void 0===e&&(e=hash(r));var i=1<<((0===t?e:e>>>t)&u),o=this.bitmap;return 0==(o&i)?n:this.nodes[popCount(o&i-1)].get(t+a,e,r,n)},BitmapIndexedNode.prototype.update=function(t,e,r,n,i,o,s){void 0===r&&(r=hash(n));var f=(0===e?r:r>>>e)&u,l=1<<f,p=this.bitmap,h=0!=(p&l);if(!h&&i===c)return this;var d=popCount(p&l-1),M=this.nodes,w=h?M[d]:void 0,g=updateNode(w,t,e+a,r,n,i,o,s);if(g===w)return this;if(!h&&g&&M.length>=Z)return expandNodes(t,M,p,f,g);if(h&&!g&&2===M.length&&isLeafNode(M[1^d]))return M[1^d];if(h&&g&&1===M.length&&isLeafNode(g))return g;var _=t&&t===this.ownerID,v=h?g?p:p^l:p|l,I=h?g?setIn(M,d,g,_):spliceOut(M,d,_):spliceIn(M,d,g,_);return _?(this.bitmap=v,this.nodes=I,this):new BitmapIndexedNode(t,v,I)},HashArrayMapNode.prototype.get=function(t,e,r,n){void 0===e&&(e=hash(r));var i=(0===t?e:e>>>t)&u,o=this.nodes[i];return o?o.get(t+a,e,r,n):n},HashArrayMapNode.prototype.update=function(t,e,r,n,i,o,s){void 0===r&&(r=hash(n));var f=(0===e?r:r>>>e)&u,l=i===c,p=this.nodes,h=p[f];if(l&&!h)return this;var d=updateNode(h,t,e+a,r,n,i,o,s);if(d===h)return this;var M=this.count;if(h){if(!d&&--M<$)return packNodes(t,p,M,f)}else M++;var w=t&&t===this.ownerID,g=setIn(p,f,d,w);return w?(this.count=M,this.nodes=g,this):new HashArrayMapNode(t,M,g)},HashCollisionNode.prototype.get=function(t,e,r,n){for(var i=this.entries,o=0,a=i.length;o<a;o++)if(is(r,i[o][0]))return i[o][1];return n},HashCollisionNode.prototype.update=function(t,e,r,n,i,o,a){void 0===r&&(r=hash(n));var s=i===c;if(r!==this.keyHash)return s?this:(SetRef(a),SetRef(o),mergeIntoNode(this,t,e,r,[n,i]));for(var u=this.entries,f=0,l=u.length;f<l&&!is(n,u[f][0]);f++);var p=f<l;if(p?u[f][1]===i:s)return this;if(SetRef(a),(s||!p)&&SetRef(o),s&&2===l)return new ValueNode(t,this.keyHash,u[1^f]);var h=t&&t===this.ownerID,d=h?u:arrCopy(u);return p?s?f===l-1?d.pop():d[f]=d.pop():d[f]=[n,i]:d.push([n,i]),h?(this.entries=d,this):new HashCollisionNode(t,this.keyHash,d)},ValueNode.prototype.get=function(t,e,r,n){return is(r,this.entry[0])?this.entry[1]:n},ValueNode.prototype.update=function(t,e,r,n,i,o,a){var s=i===c,u=is(n,this.entry[0]);return(u?i===this.entry[1]:s)?this:(SetRef(a),s?void SetRef(o):u?t&&t===this.ownerID?(this.entry[1]=i,this):new ValueNode(t,this.keyHash,[n,i]):(SetRef(o),mergeIntoNode(this,t,e,hash(n),[n,i])))},ArrayMapNode.prototype.iterate=HashCollisionNode.prototype.iterate=function(t,e){for(var r=this.entries,n=0,i=r.length-1;n<=i;n++)if(!1===t(r[e?i-n:n]))return!1},BitmapIndexedNode.prototype.iterate=HashArrayMapNode.prototype.iterate=function(t,e){for(var r=this.nodes,n=0,i=r.length-1;n<=i;n++){var o=r[e?i-n:n];if(o&&!1===o.iterate(t,e))return!1}},ValueNode.prototype.iterate=function(t,e){return t(this.entry)},createClass(MapIterator,Iterator),MapIterator.prototype.next=function(){for(var t=this._type,e=this._stack;e;){var r,n=e.node,i=e.index++;if(n.entry){if(0===i)return mapIteratorValue(t,n.entry)}else if(n.entries){if(i<=(r=n.entries.length-1))return mapIteratorValue(t,n.entries[this._reverse?r-i:i])}else if(i<=(r=n.nodes.length-1)){var o=n.nodes[this._reverse?r-i:i];if(o){if(o.entry)return mapIteratorValue(t,o.entry);e=this._stack=mapIteratorFrame(o,e)}continue}e=this._stack=this._stack.__prev}return iteratorDone()};var H=s/4,Z=s/2,$=s/4;function List(t){var e=emptyList();if(null==t)return e;if(isList(t))return t;var r=IndexedIterable(t),n=r.size;return 0===n?e:(assertNotInfinite(n),n>0&&n<s?makeList(0,n,a,null,new VNode(r.toArray())):e.withMutations((function(t){t.setSize(n),r.forEach((function(e,r){return t.set(r,e)}))})))}function isList(t){return!(!t||!t[X])}createClass(List,IndexedCollection),List.of=function(){return this(arguments)},List.prototype.toString=function(){return this.__toString(\"List [\",\"]\")},List.prototype.get=function(t,e){if((t=wrapIndex(this,t))>=0&&t<this.size){var r=listNodeFor(this,t+=this._origin);return r&&r.array[t&u]}return e},List.prototype.set=function(t,e){return updateList(this,t,e)},List.prototype.remove=function(t){return this.has(t)?0===t?this.shift():t===this.size-1?this.pop():this.splice(t,1):this},List.prototype.insert=function(t,e){return this.splice(t,0,e)},List.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=a,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):emptyList()},List.prototype.push=function(){var t=arguments,e=this.size;return this.withMutations((function(r){setListBounds(r,0,e+t.length);for(var n=0;n<t.length;n++)r.set(e+n,t[n])}))},List.prototype.pop=function(){return setListBounds(this,0,-1)},List.prototype.unshift=function(){var t=arguments;return this.withMutations((function(e){setListBounds(e,-t.length);for(var r=0;r<t.length;r++)e.set(r,t[r])}))},List.prototype.shift=function(){return setListBounds(this,1)},List.prototype.merge=function(){return mergeIntoListWith(this,void 0,arguments)},List.prototype.mergeWith=function(e){return mergeIntoListWith(this,e,t.call(arguments,1))},List.prototype.mergeDeep=function(){return mergeIntoListWith(this,deepMerger,arguments)},List.prototype.mergeDeepWith=function(e){var r=t.call(arguments,1);return mergeIntoListWith(this,deepMergerWith(e),r)},List.prototype.setSize=function(t){return setListBounds(this,0,t)},List.prototype.slice=function(t,e){var r=this.size;return wholeSlice(t,e,r)?this:setListBounds(this,resolveBegin(t,r),resolveEnd(e,r))},List.prototype.__iterator=function(t,e){var r=0,n=iterateList(this,e);return new Iterator((function(){var e=n();return e===nt?iteratorDone():iteratorValue(t,r++,e)}))},List.prototype.__iterate=function(t,e){for(var r,n=0,i=iterateList(this,e);(r=i())!==nt&&!1!==t(r,n++,this););return n},List.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?makeList(this._origin,this._capacity,this._level,this._root,this._tail,t,this.__hash):(this.__ownerID=t,this)},List.isList=isList;var X=\"@@__IMMUTABLE_LIST__@@\",tt=List.prototype;function VNode(t,e){this.array=t,this.ownerID=e}tt[X]=!0,tt[o]=tt.remove,tt.setIn=V.setIn,tt.deleteIn=tt.removeIn=V.removeIn,tt.update=V.update,tt.updateIn=V.updateIn,tt.mergeIn=V.mergeIn,tt.mergeDeepIn=V.mergeDeepIn,tt.withMutations=V.withMutations,tt.asMutable=V.asMutable,tt.asImmutable=V.asImmutable,tt.wasAltered=V.wasAltered,VNode.prototype.removeBefore=function(t,e,r){if(r===e?1<<e:0===this.array.length)return this;var n=r>>>e&u;if(n>=this.array.length)return new VNode([],t);var i,o=0===n;if(e>0){var s=this.array[n];if((i=s&&s.removeBefore(t,e-a,r))===s&&o)return this}if(o&&!i)return this;var c=editableVNode(this,t);if(!o)for(var f=0;f<n;f++)c.array[f]=void 0;return i&&(c.array[n]=i),c},VNode.prototype.removeAfter=function(t,e,r){if(r===(e?1<<e:0)||0===this.array.length)return this;var n,i=r-1>>>e&u;if(i>=this.array.length)return this;if(e>0){var o=this.array[i];if((n=o&&o.removeAfter(t,e-a,r))===o&&i===this.array.length-1)return this}var s=editableVNode(this,t);return s.array.splice(i+1),n&&(s.array[i]=n),s};var et,rt,nt={};function iterateList(t,e){var r=t._origin,n=t._capacity,i=getTailOffset(n),o=t._tail;return iterateNodeOrLeaf(t._root,t._level,0);function iterateNodeOrLeaf(t,e,r){return 0===e?iterateLeaf(t,r):iterateNode(t,e,r)}function iterateLeaf(t,a){var u=a===i?o&&o.array:t&&t.array,c=a>r?0:r-a,f=n-a;return f>s&&(f=s),function(){if(c===f)return nt;var t=e?--f:c++;return u&&u[t]}}function iterateNode(t,i,o){var u,c=t&&t.array,f=o>r?0:r-o>>i,l=1+(n-o>>i);return l>s&&(l=s),function(){for(;;){if(u){var t=u();if(t!==nt)return t;u=null}if(f===l)return nt;var r=e?--l:f++;u=iterateNodeOrLeaf(c&&c[r],i-a,o+(r<<i))}}}}function makeList(t,e,r,n,i,o,a){var s=Object.create(tt);return s.size=e-t,s._origin=t,s._capacity=e,s._level=r,s._root=n,s._tail=i,s.__ownerID=o,s.__hash=a,s.__altered=!1,s}function emptyList(){return et||(et=makeList(0,0,a))}function updateList(t,e,r){if((e=wrapIndex(t,e))!=e)return t;if(e>=t.size||e<0)return t.withMutations((function(t){e<0?setListBounds(t,e).set(0,r):setListBounds(t,0,e+1).set(e,r)}));e+=t._origin;var n=t._tail,i=t._root,o=MakeRef(l);return e>=getTailOffset(t._capacity)?n=updateVNode(n,t.__ownerID,0,e,r,o):i=updateVNode(i,t.__ownerID,t._level,e,r,o),o.value?t.__ownerID?(t._root=i,t._tail=n,t.__hash=void 0,t.__altered=!0,t):makeList(t._origin,t._capacity,t._level,i,n):t}function updateVNode(t,e,r,n,i,o){var s,c=n>>>r&u,f=t&&c<t.array.length;if(!f&&void 0===i)return t;if(r>0){var l=t&&t.array[c],p=updateVNode(l,e,r-a,n,i,o);return p===l?t:((s=editableVNode(t,e)).array[c]=p,s)}return f&&t.array[c]===i?t:(SetRef(o),s=editableVNode(t,e),void 0===i&&c===s.array.length-1?s.array.pop():s.array[c]=i,s)}function editableVNode(t,e){return e&&t&&e===t.ownerID?t:new VNode(t?t.array.slice():[],e)}function listNodeFor(t,e){if(e>=getTailOffset(t._capacity))return t._tail;if(e<1<<t._level+a){for(var r=t._root,n=t._level;r&&n>0;)r=r.array[e>>>n&u],n-=a;return r}}function setListBounds(t,e,r){void 0!==e&&(e|=0),void 0!==r&&(r|=0);var n=t.__ownerID||new OwnerID,i=t._origin,o=t._capacity,s=i+e,c=void 0===r?o:r<0?o+r:i+r;if(s===i&&c===o)return t;if(s>=c)return t.clear();for(var f=t._level,l=t._root,p=0;s+p<0;)l=new VNode(l&&l.array.length?[void 0,l]:[],n),p+=1<<(f+=a);p&&(s+=p,i+=p,c+=p,o+=p);for(var h=getTailOffset(o),d=getTailOffset(c);d>=1<<f+a;)l=new VNode(l&&l.array.length?[l]:[],n),f+=a;var M=t._tail,w=d<h?listNodeFor(t,c-1):d>h?new VNode([],n):M;if(M&&d>h&&s<o&&M.array.length){for(var g=l=editableVNode(l,n),_=f;_>a;_-=a){var v=h>>>_&u;g=g.array[v]=editableVNode(g.array[v],n)}g.array[h>>>a&u]=M}if(c<o&&(w=w&&w.removeAfter(n,0,c)),s>=d)s-=d,c-=d,f=a,l=null,w=w&&w.removeBefore(n,0,s);else if(s>i||d<h){for(p=0;l;){var I=s>>>f&u;if(I!==d>>>f&u)break;I&&(p+=(1<<f)*I),f-=a,l=l.array[I]}l&&s>i&&(l=l.removeBefore(n,f,s-p)),l&&d<h&&(l=l.removeAfter(n,f,d-p)),p&&(s-=p,c-=p)}return t.__ownerID?(t.size=c-s,t._origin=s,t._capacity=c,t._level=f,t._root=l,t._tail=w,t.__hash=void 0,t.__altered=!0,t):makeList(s,c,f,l,w)}function mergeIntoListWith(t,e,r){for(var n=[],i=0,o=0;o<r.length;o++){var a=r[o],s=IndexedIterable(a);s.size>i&&(i=s.size),isIterable(a)||(s=s.map((function(t){return fromJS(t)}))),n.push(s)}return i>t.size&&(t=t.setSize(i)),mergeIntoCollectionWith(t,e,n)}function getTailOffset(t){return t<s?0:t-1>>>a<<a}function OrderedMap(t){return null==t?emptyOrderedMap():isOrderedMap(t)?t:emptyOrderedMap().withMutations((function(e){var r=KeyedIterable(t);assertNotInfinite(r.size),r.forEach((function(t,r){return e.set(r,t)}))}))}function isOrderedMap(t){return isMap(t)&&isOrdered(t)}function makeOrderedMap(t,e,r,n){var i=Object.create(OrderedMap.prototype);return i.size=t?t.size:0,i._map=t,i._list=e,i.__ownerID=r,i.__hash=n,i}function emptyOrderedMap(){return rt||(rt=makeOrderedMap(emptyMap(),emptyList()))}function updateOrderedMap(t,e,r){var n,i,o=t._map,a=t._list,u=o.get(e),f=void 0!==u;if(r===c){if(!f)return t;a.size>=s&&a.size>=2*o.size?(n=(i=a.filter((function(t,e){return void 0!==t&&u!==e}))).toKeyedSeq().map((function(t){return t[0]})).flip().toMap(),t.__ownerID&&(n.__ownerID=i.__ownerID=t.__ownerID)):(n=o.remove(e),i=u===a.size-1?a.pop():a.set(u,void 0))}else if(f){if(r===a.get(u)[1])return t;n=o,i=a.set(u,[e,r])}else n=o.set(e,a.size),i=a.set(a.size,[e,r]);return t.__ownerID?(t.size=n.size,t._map=n,t._list=i,t.__hash=void 0,t):makeOrderedMap(n,i)}function ToKeyedSequence(t,e){this._iter=t,this._useKeys=e,this.size=t.size}function ToIndexedSequence(t){this._iter=t,this.size=t.size}function ToSetSequence(t){this._iter=t,this.size=t.size}function FromEntriesSequence(t){this._iter=t,this.size=t.size}function flipFactory(t){var e=makeSequence(t);return e._iter=t,e.size=t.size,e.flip=function(){return t},e.reverse=function(){var e=t.reverse.apply(this);return e.flip=function(){return t.reverse()},e},e.has=function(e){return t.includes(e)},e.includes=function(e){return t.has(e)},e.cacheResult=cacheResultThrough,e.__iterateUncached=function(e,r){var n=this;return t.__iterate((function(t,r){return!1!==e(r,t,n)}),r)},e.__iteratorUncached=function(e,r){if(e===d){var n=t.__iterator(e,r);return new Iterator((function(){var t=n.next();if(!t.done){var e=t.value[0];t.value[0]=t.value[1],t.value[1]=e}return t}))}return t.__iterator(e===h?p:h,r)},e}function mapFactory(t,e,r){var n=makeSequence(t);return n.size=t.size,n.has=function(e){return t.has(e)},n.get=function(n,i){var o=t.get(n,c);return o===c?i:e.call(r,o,n,t)},n.__iterateUncached=function(n,i){var o=this;return t.__iterate((function(t,i,a){return!1!==n(e.call(r,t,i,a),i,o)}),i)},n.__iteratorUncached=function(n,i){var o=t.__iterator(d,i);return new Iterator((function(){var i=o.next();if(i.done)return i;var a=i.value,s=a[0];return iteratorValue(n,s,e.call(r,a[1],s,t),i)}))},n}function reverseFactory(t,e){var r=makeSequence(t);return r._iter=t,r.size=t.size,r.reverse=function(){return t},t.flip&&(r.flip=function(){var e=flipFactory(t);return e.reverse=function(){return t.flip()},e}),r.get=function(r,n){return t.get(e?r:-1-r,n)},r.has=function(r){return t.has(e?r:-1-r)},r.includes=function(e){return t.includes(e)},r.cacheResult=cacheResultThrough,r.__iterate=function(e,r){var n=this;return t.__iterate((function(t,r){return e(t,r,n)}),!r)},r.__iterator=function(e,r){return t.__iterator(e,!r)},r}function filterFactory(t,e,r,n){var i=makeSequence(t);return n&&(i.has=function(n){var i=t.get(n,c);return i!==c&&!!e.call(r,i,n,t)},i.get=function(n,i){var o=t.get(n,c);return o!==c&&e.call(r,o,n,t)?o:i}),i.__iterateUncached=function(i,o){var a=this,s=0;return t.__iterate((function(t,o,u){if(e.call(r,t,o,u))return s++,i(t,n?o:s-1,a)}),o),s},i.__iteratorUncached=function(i,o){var a=t.__iterator(d,o),s=0;return new Iterator((function(){for(;;){var o=a.next();if(o.done)return o;var u=o.value,c=u[0],f=u[1];if(e.call(r,f,c,t))return iteratorValue(i,n?c:s++,f,o)}}))},i}function countByFactory(t,e,r){var n=Map().asMutable();return t.__iterate((function(i,o){n.update(e.call(r,i,o,t),0,(function(t){return t+1}))})),n.asImmutable()}function groupByFactory(t,e,r){var n=isKeyed(t),i=(isOrdered(t)?OrderedMap():Map()).asMutable();t.__iterate((function(o,a){i.update(e.call(r,o,a,t),(function(t){return(t=t||[]).push(n?[a,o]:o),t}))}));var o=iterableClass(t);return i.map((function(e){return reify(t,o(e))}))}function sliceFactory(t,e,r,n){var i=t.size;if(void 0!==e&&(e|=0),void 0!==r&&(r===1/0?r=i:r|=0),wholeSlice(e,r,i))return t;var o=resolveBegin(e,i),a=resolveEnd(r,i);if(o!=o||a!=a)return sliceFactory(t.toSeq().cacheResult(),e,r,n);var s,u=a-o;u==u&&(s=u<0?0:u);var c=makeSequence(t);return c.size=0===s?s:t.size&&s||void 0,!n&&isSeq(t)&&s>=0&&(c.get=function(e,r){return(e=wrapIndex(this,e))>=0&&e<s?t.get(e+o,r):r}),c.__iterateUncached=function(e,r){var i=this;if(0===s)return 0;if(r)return this.cacheResult().__iterate(e,r);var a=0,u=!0,c=0;return t.__iterate((function(t,r){if(!u||!(u=a++<o))return c++,!1!==e(t,n?r:c-1,i)&&c!==s})),c},c.__iteratorUncached=function(e,r){if(0!==s&&r)return this.cacheResult().__iterator(e,r);var i=0!==s&&t.__iterator(e,r),a=0,u=0;return new Iterator((function(){for(;a++<o;)i.next();if(++u>s)return iteratorDone();var t=i.next();return n||e===h?t:iteratorValue(e,u-1,e===p?void 0:t.value[1],t)}))},c}function takeWhileFactory(t,e,r){var n=makeSequence(t);return n.__iterateUncached=function(n,i){var o=this;if(i)return this.cacheResult().__iterate(n,i);var a=0;return t.__iterate((function(t,i,s){return e.call(r,t,i,s)&&++a&&n(t,i,o)})),a},n.__iteratorUncached=function(n,i){var o=this;if(i)return this.cacheResult().__iterator(n,i);var a=t.__iterator(d,i),s=!0;return new Iterator((function(){if(!s)return iteratorDone();var t=a.next();if(t.done)return t;var i=t.value,u=i[0],c=i[1];return e.call(r,c,u,o)?n===d?t:iteratorValue(n,u,c,t):(s=!1,iteratorDone())}))},n}function skipWhileFactory(t,e,r,n){var i=makeSequence(t);return i.__iterateUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterate(i,o);var s=!0,u=0;return t.__iterate((function(t,o,c){if(!s||!(s=e.call(r,t,o,c)))return u++,i(t,n?o:u-1,a)})),u},i.__iteratorUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterator(i,o);var s=t.__iterator(d,o),u=!0,c=0;return new Iterator((function(){var t,o,f;do{if((t=s.next()).done)return n||i===h?t:iteratorValue(i,c++,i===p?void 0:t.value[1],t);var l=t.value;o=l[0],f=l[1],u&&(u=e.call(r,f,o,a))}while(u);return i===d?t:iteratorValue(i,o,f,t)}))},i}function concatFactory(t,e){var r=isKeyed(t),n=[t].concat(e).map((function(t){return isIterable(t)?r&&(t=KeyedIterable(t)):t=r?keyedSeqFromValue(t):indexedSeqFromValue(Array.isArray(t)?t:[t]),t})).filter((function(t){return 0!==t.size}));if(0===n.length)return t;if(1===n.length){var i=n[0];if(i===t||r&&isKeyed(i)||isIndexed(t)&&isIndexed(i))return i}var o=new ArraySeq(n);return r?o=o.toKeyedSeq():isIndexed(t)||(o=o.toSetSeq()),(o=o.flatten(!0)).size=n.reduce((function(t,e){if(void 0!==t){var r=e.size;if(void 0!==r)return t+r}}),0),o}function flattenFactory(t,e,r){var n=makeSequence(t);return n.__iterateUncached=function(n,i){var o=0,a=!1;function flatDeep(t,s){var u=this;t.__iterate((function(t,i){return(!e||s<e)&&isIterable(t)?flatDeep(t,s+1):!1===n(t,r?i:o++,u)&&(a=!0),!a}),i)}return flatDeep(t,0),o},n.__iteratorUncached=function(n,i){var o=t.__iterator(n,i),a=[],s=0;return new Iterator((function(){for(;o;){var t=o.next();if(!1===t.done){var u=t.value;if(n===d&&(u=u[1]),e&&!(a.length<e)||!isIterable(u))return r?t:iteratorValue(n,s++,u,t);a.push(o),o=u.__iterator(n,i)}else o=a.pop()}return iteratorDone()}))},n}function flatMapFactory(t,e,r){var n=iterableClass(t);return t.toSeq().map((function(i,o){return n(e.call(r,i,o,t))})).flatten(!0)}function interposeFactory(t,e){var r=makeSequence(t);return r.size=t.size&&2*t.size-1,r.__iterateUncached=function(r,n){var i=this,o=0;return t.__iterate((function(t,n){return(!o||!1!==r(e,o++,i))&&!1!==r(t,o++,i)}),n),o},r.__iteratorUncached=function(r,n){var i,o=t.__iterator(h,n),a=0;return new Iterator((function(){return(!i||a%2)&&(i=o.next()).done?i:a%2?iteratorValue(r,a++,e):iteratorValue(r,a++,i.value,i)}))},r}function sortFactory(t,e,r){e||(e=defaultComparator);var n=isKeyed(t),i=0,o=t.toSeq().map((function(e,n){return[n,e,i++,r?r(e,n,t):e]})).toArray();return o.sort((function(t,r){return e(t[3],r[3])||t[2]-r[2]})).forEach(n?function(t,e){o[e].length=2}:function(t,e){o[e]=t[1]}),n?KeyedSeq(o):isIndexed(t)?IndexedSeq(o):SetSeq(o)}function maxFactory(t,e,r){if(e||(e=defaultComparator),r){var n=t.toSeq().map((function(e,n){return[e,r(e,n,t)]})).reduce((function(t,r){return maxCompare(e,t[1],r[1])?r:t}));return n&&n[0]}return t.reduce((function(t,r){return maxCompare(e,t,r)?r:t}))}function maxCompare(t,e,r){var n=t(r,e);return 0===n&&r!==e&&(null==r||r!=r)||n>0}function zipWithFactory(t,e,r){var n=makeSequence(t);return n.size=new ArraySeq(r).map((function(t){return t.size})).min(),n.__iterate=function(t,e){for(var r,n=this.__iterator(h,e),i=0;!(r=n.next()).done&&!1!==t(r.value,i++,this););return i},n.__iteratorUncached=function(t,n){var i=r.map((function(t){return t=Iterable(t),getIterator(n?t.reverse():t)})),o=0,a=!1;return new Iterator((function(){var r;return a||(r=i.map((function(t){return t.next()})),a=r.some((function(t){return t.done}))),a?iteratorDone():iteratorValue(t,o++,e.apply(null,r.map((function(t){return t.value}))))}))},n}function reify(t,e){return isSeq(t)?e:t.constructor(e)}function validateEntry(t){if(t!==Object(t))throw new TypeError(\"Expected [K, V] tuple: \"+t)}function resolveSize(t){return assertNotInfinite(t.size),ensureSize(t)}function iterableClass(t){return isKeyed(t)?KeyedIterable:isIndexed(t)?IndexedIterable:SetIterable}function makeSequence(t){return Object.create((isKeyed(t)?KeyedSeq:isIndexed(t)?IndexedSeq:SetSeq).prototype)}function cacheResultThrough(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):Seq.prototype.cacheResult.call(this)}function defaultComparator(t,e){return t>e?1:t<e?-1:0}function forceIterator(t){var e=getIterator(t);if(!e){if(!isArrayLike(t))throw new TypeError(\"Expected iterable or array-like: \"+t);e=getIterator(Iterable(t))}return e}function Record(t,e){var r,n=function Record(o){if(o instanceof n)return o;if(!(this instanceof n))return new n(o);if(!r){r=!0;var a=Object.keys(t);setProps(i,a),i.size=a.length,i._name=e,i._keys=a,i._defaultValues=t}this._map=Map(o)},i=n.prototype=Object.create(it);return i.constructor=n,n}createClass(OrderedMap,Map),OrderedMap.of=function(){return this(arguments)},OrderedMap.prototype.toString=function(){return this.__toString(\"OrderedMap {\",\"}\")},OrderedMap.prototype.get=function(t,e){var r=this._map.get(t);return void 0!==r?this._list.get(r)[1]:e},OrderedMap.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):emptyOrderedMap()},OrderedMap.prototype.set=function(t,e){return updateOrderedMap(this,t,e)},OrderedMap.prototype.remove=function(t){return updateOrderedMap(this,t,c)},OrderedMap.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},OrderedMap.prototype.__iterate=function(t,e){var r=this;return this._list.__iterate((function(e){return e&&t(e[1],e[0],r)}),e)},OrderedMap.prototype.__iterator=function(t,e){return this._list.fromEntrySeq().__iterator(t,e)},OrderedMap.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t),r=this._list.__ensureOwner(t);return t?makeOrderedMap(e,r,t,this.__hash):(this.__ownerID=t,this._map=e,this._list=r,this)},OrderedMap.isOrderedMap=isOrderedMap,OrderedMap.prototype[i]=!0,OrderedMap.prototype[o]=OrderedMap.prototype.remove,createClass(ToKeyedSequence,KeyedSeq),ToKeyedSequence.prototype.get=function(t,e){return this._iter.get(t,e)},ToKeyedSequence.prototype.has=function(t){return this._iter.has(t)},ToKeyedSequence.prototype.valueSeq=function(){return this._iter.valueSeq()},ToKeyedSequence.prototype.reverse=function(){var t=this,e=reverseFactory(this,!0);return this._useKeys||(e.valueSeq=function(){return t._iter.toSeq().reverse()}),e},ToKeyedSequence.prototype.map=function(t,e){var r=this,n=mapFactory(this,t,e);return this._useKeys||(n.valueSeq=function(){return r._iter.toSeq().map(t,e)}),n},ToKeyedSequence.prototype.__iterate=function(t,e){var r,n=this;return this._iter.__iterate(this._useKeys?function(e,r){return t(e,r,n)}:(r=e?resolveSize(this):0,function(i){return t(i,e?--r:r++,n)}),e)},ToKeyedSequence.prototype.__iterator=function(t,e){if(this._useKeys)return this._iter.__iterator(t,e);var r=this._iter.__iterator(h,e),n=e?resolveSize(this):0;return new Iterator((function(){var i=r.next();return i.done?i:iteratorValue(t,e?--n:n++,i.value,i)}))},ToKeyedSequence.prototype[i]=!0,createClass(ToIndexedSequence,IndexedSeq),ToIndexedSequence.prototype.includes=function(t){return this._iter.includes(t)},ToIndexedSequence.prototype.__iterate=function(t,e){var r=this,n=0;return this._iter.__iterate((function(e){return t(e,n++,r)}),e)},ToIndexedSequence.prototype.__iterator=function(t,e){var r=this._iter.__iterator(h,e),n=0;return new Iterator((function(){var e=r.next();return e.done?e:iteratorValue(t,n++,e.value,e)}))},createClass(ToSetSequence,SetSeq),ToSetSequence.prototype.has=function(t){return this._iter.includes(t)},ToSetSequence.prototype.__iterate=function(t,e){var r=this;return this._iter.__iterate((function(e){return t(e,e,r)}),e)},ToSetSequence.prototype.__iterator=function(t,e){var r=this._iter.__iterator(h,e);return new Iterator((function(){var e=r.next();return e.done?e:iteratorValue(t,e.value,e.value,e)}))},createClass(FromEntriesSequence,KeyedSeq),FromEntriesSequence.prototype.entrySeq=function(){return this._iter.toSeq()},FromEntriesSequence.prototype.__iterate=function(t,e){var r=this;return this._iter.__iterate((function(e){if(e){validateEntry(e);var n=isIterable(e);return t(n?e.get(1):e[1],n?e.get(0):e[0],r)}}),e)},FromEntriesSequence.prototype.__iterator=function(t,e){var r=this._iter.__iterator(h,e);return new Iterator((function(){for(;;){var e=r.next();if(e.done)return e;var n=e.value;if(n){validateEntry(n);var i=isIterable(n);return iteratorValue(t,i?n.get(0):n[0],i?n.get(1):n[1],e)}}}))},ToIndexedSequence.prototype.cacheResult=ToKeyedSequence.prototype.cacheResult=ToSetSequence.prototype.cacheResult=FromEntriesSequence.prototype.cacheResult=cacheResultThrough,createClass(Record,KeyedCollection),Record.prototype.toString=function(){return this.__toString(recordName(this)+\" {\",\"}\")},Record.prototype.has=function(t){return this._defaultValues.hasOwnProperty(t)},Record.prototype.get=function(t,e){if(!this.has(t))return e;var r=this._defaultValues[t];return this._map?this._map.get(t,r):r},Record.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var t=this.constructor;return t._empty||(t._empty=makeRecord(this,emptyMap()))},Record.prototype.set=function(t,e){if(!this.has(t))throw new Error('Cannot set unknown key \"'+t+'\" on '+recordName(this));if(this._map&&!this._map.has(t)&&e===this._defaultValues[t])return this;var r=this._map&&this._map.set(t,e);return this.__ownerID||r===this._map?this:makeRecord(this,r)},Record.prototype.remove=function(t){if(!this.has(t))return this;var e=this._map&&this._map.remove(t);return this.__ownerID||e===this._map?this:makeRecord(this,e)},Record.prototype.wasAltered=function(){return this._map.wasAltered()},Record.prototype.__iterator=function(t,e){var r=this;return KeyedIterable(this._defaultValues).map((function(t,e){return r.get(e)})).__iterator(t,e)},Record.prototype.__iterate=function(t,e){var r=this;return KeyedIterable(this._defaultValues).map((function(t,e){return r.get(e)})).__iterate(t,e)},Record.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map&&this._map.__ensureOwner(t);return t?makeRecord(this,e,t):(this.__ownerID=t,this._map=e,this)};var it=Record.prototype;function makeRecord(t,e,r){var n=Object.create(Object.getPrototypeOf(t));return n._map=e,n.__ownerID=r,n}function recordName(t){return t._name||t.constructor.name||\"Record\"}function setProps(t,e){try{e.forEach(setProp.bind(void 0,t))}catch(t){}}function setProp(t,e){Object.defineProperty(t,e,{get:function(){return this.get(e)},set:function(t){invariant(this.__ownerID,\"Cannot set on an immutable record.\"),this.set(e,t)}})}function Set(t){return null==t?emptySet():isSet(t)&&!isOrdered(t)?t:emptySet().withMutations((function(e){var r=SetIterable(t);assertNotInfinite(r.size),r.forEach((function(t){return e.add(t)}))}))}function isSet(t){return!(!t||!t[at])}it[o]=it.remove,it.deleteIn=it.removeIn=V.removeIn,it.merge=V.merge,it.mergeWith=V.mergeWith,it.mergeIn=V.mergeIn,it.mergeDeep=V.mergeDeep,it.mergeDeepWith=V.mergeDeepWith,it.mergeDeepIn=V.mergeDeepIn,it.setIn=V.setIn,it.update=V.update,it.updateIn=V.updateIn,it.withMutations=V.withMutations,it.asMutable=V.asMutable,it.asImmutable=V.asImmutable,createClass(Set,SetCollection),Set.of=function(){return this(arguments)},Set.fromKeys=function(t){return this(KeyedIterable(t).keySeq())},Set.prototype.toString=function(){return this.__toString(\"Set {\",\"}\")},Set.prototype.has=function(t){return this._map.has(t)},Set.prototype.add=function(t){return updateSet(this,this._map.set(t,!0))},Set.prototype.remove=function(t){return updateSet(this,this._map.remove(t))},Set.prototype.clear=function(){return updateSet(this,this._map.clear())},Set.prototype.union=function(){var e=t.call(arguments,0);return 0===(e=e.filter((function(t){return 0!==t.size}))).length?this:0!==this.size||this.__ownerID||1!==e.length?this.withMutations((function(t){for(var r=0;r<e.length;r++)SetIterable(e[r]).forEach((function(e){return t.add(e)}))})):this.constructor(e[0])},Set.prototype.intersect=function(){var e=t.call(arguments,0);if(0===e.length)return this;e=e.map((function(t){return SetIterable(t)}));var r=this;return this.withMutations((function(t){r.forEach((function(r){e.every((function(t){return t.includes(r)}))||t.remove(r)}))}))},Set.prototype.subtract=function(){var e=t.call(arguments,0);if(0===e.length)return this;e=e.map((function(t){return SetIterable(t)}));var r=this;return this.withMutations((function(t){r.forEach((function(r){e.some((function(t){return t.includes(r)}))&&t.remove(r)}))}))},Set.prototype.merge=function(){return this.union.apply(this,arguments)},Set.prototype.mergeWith=function(e){var r=t.call(arguments,1);return this.union.apply(this,r)},Set.prototype.sort=function(t){return OrderedSet(sortFactory(this,t))},Set.prototype.sortBy=function(t,e){return OrderedSet(sortFactory(this,e,t))},Set.prototype.wasAltered=function(){return this._map.wasAltered()},Set.prototype.__iterate=function(t,e){var r=this;return this._map.__iterate((function(e,n){return t(n,n,r)}),e)},Set.prototype.__iterator=function(t,e){return this._map.map((function(t,e){return e})).__iterator(t,e)},Set.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t);return t?this.__make(e,t):(this.__ownerID=t,this._map=e,this)},Set.isSet=isSet;var ot,at=\"@@__IMMUTABLE_SET__@@\",st=Set.prototype;function updateSet(t,e){return t.__ownerID?(t.size=e.size,t._map=e,t):e===t._map?t:0===e.size?t.__empty():t.__make(e)}function makeSet(t,e){var r=Object.create(st);return r.size=t?t.size:0,r._map=t,r.__ownerID=e,r}function emptySet(){return ot||(ot=makeSet(emptyMap()))}function OrderedSet(t){return null==t?emptyOrderedSet():isOrderedSet(t)?t:emptyOrderedSet().withMutations((function(e){var r=SetIterable(t);assertNotInfinite(r.size),r.forEach((function(t){return e.add(t)}))}))}function isOrderedSet(t){return isSet(t)&&isOrdered(t)}st[at]=!0,st[o]=st.remove,st.mergeDeep=st.merge,st.mergeDeepWith=st.mergeWith,st.withMutations=V.withMutations,st.asMutable=V.asMutable,st.asImmutable=V.asImmutable,st.__empty=emptySet,st.__make=makeSet,createClass(OrderedSet,Set),OrderedSet.of=function(){return this(arguments)},OrderedSet.fromKeys=function(t){return this(KeyedIterable(t).keySeq())},OrderedSet.prototype.toString=function(){return this.__toString(\"OrderedSet {\",\"}\")},OrderedSet.isOrderedSet=isOrderedSet;var ut,ct=OrderedSet.prototype;function makeOrderedSet(t,e){var r=Object.create(ct);return r.size=t?t.size:0,r._map=t,r.__ownerID=e,r}function emptyOrderedSet(){return ut||(ut=makeOrderedSet(emptyOrderedMap()))}function Stack(t){return null==t?emptyStack():isStack(t)?t:emptyStack().unshiftAll(t)}function isStack(t){return!(!t||!t[pt])}ct[i]=!0,ct.__empty=emptyOrderedSet,ct.__make=makeOrderedSet,createClass(Stack,IndexedCollection),Stack.of=function(){return this(arguments)},Stack.prototype.toString=function(){return this.__toString(\"Stack [\",\"]\")},Stack.prototype.get=function(t,e){var r=this._head;for(t=wrapIndex(this,t);r&&t--;)r=r.next;return r?r.value:e},Stack.prototype.peek=function(){return this._head&&this._head.value},Stack.prototype.push=function(){if(0===arguments.length)return this;for(var t=this.size+arguments.length,e=this._head,r=arguments.length-1;r>=0;r--)e={value:arguments[r],next:e};return this.__ownerID?(this.size=t,this._head=e,this.__hash=void 0,this.__altered=!0,this):makeStack(t,e)},Stack.prototype.pushAll=function(t){if(0===(t=IndexedIterable(t)).size)return this;assertNotInfinite(t.size);var e=this.size,r=this._head;return t.reverse().forEach((function(t){e++,r={value:t,next:r}})),this.__ownerID?(this.size=e,this._head=r,this.__hash=void 0,this.__altered=!0,this):makeStack(e,r)},Stack.prototype.pop=function(){return this.slice(1)},Stack.prototype.unshift=function(){return this.push.apply(this,arguments)},Stack.prototype.unshiftAll=function(t){return this.pushAll(t)},Stack.prototype.shift=function(){return this.pop.apply(this,arguments)},Stack.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):emptyStack()},Stack.prototype.slice=function(t,e){if(wholeSlice(t,e,this.size))return this;var r=resolveBegin(t,this.size);if(resolveEnd(e,this.size)!==this.size)return IndexedCollection.prototype.slice.call(this,t,e);for(var n=this.size-r,i=this._head;r--;)i=i.next;return this.__ownerID?(this.size=n,this._head=i,this.__hash=void 0,this.__altered=!0,this):makeStack(n,i)},Stack.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?makeStack(this.size,this._head,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Stack.prototype.__iterate=function(t,e){if(e)return this.reverse().__iterate(t);for(var r=0,n=this._head;n&&!1!==t(n.value,r++,this);)n=n.next;return r},Stack.prototype.__iterator=function(t,e){if(e)return this.reverse().__iterator(t);var r=0,n=this._head;return new Iterator((function(){if(n){var e=n.value;return n=n.next,iteratorValue(t,r++,e)}return iteratorDone()}))},Stack.isStack=isStack;var lt,pt=\"@@__IMMUTABLE_STACK__@@\",ht=Stack.prototype;function makeStack(t,e,r,n){var i=Object.create(ht);return i.size=t,i._head=e,i.__ownerID=r,i.__hash=n,i.__altered=!1,i}function emptyStack(){return lt||(lt=makeStack(0))}function mixin(t,e){var keyCopier=function(r){t.prototype[r]=e[r]};return Object.keys(e).forEach(keyCopier),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(e).forEach(keyCopier),t}ht[pt]=!0,ht.withMutations=V.withMutations,ht.asMutable=V.asMutable,ht.asImmutable=V.asImmutable,ht.wasAltered=V.wasAltered,Iterable.Iterator=Iterator,mixin(Iterable,{toArray:function(){assertNotInfinite(this.size);var t=new Array(this.size||0);return this.valueSeq().__iterate((function(e,r){t[r]=e})),t},toIndexedSeq:function(){return new ToIndexedSequence(this)},toJS:function(){return this.toSeq().map((function(t){return t&&\"function\"==typeof t.toJS?t.toJS():t})).__toJS()},toJSON:function(){return this.toSeq().map((function(t){return t&&\"function\"==typeof t.toJSON?t.toJSON():t})).__toJS()},toKeyedSeq:function(){return new ToKeyedSequence(this,!0)},toMap:function(){return Map(this.toKeyedSeq())},toObject:function(){assertNotInfinite(this.size);var t={};return this.__iterate((function(e,r){t[r]=e})),t},toOrderedMap:function(){return OrderedMap(this.toKeyedSeq())},toOrderedSet:function(){return OrderedSet(isKeyed(this)?this.valueSeq():this)},toSet:function(){return Set(isKeyed(this)?this.valueSeq():this)},toSetSeq:function(){return new ToSetSequence(this)},toSeq:function(){return isIndexed(this)?this.toIndexedSeq():isKeyed(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return Stack(isKeyed(this)?this.valueSeq():this)},toList:function(){return List(isKeyed(this)?this.valueSeq():this)},toString:function(){return\"[Iterable]\"},__toString:function(t,e){return 0===this.size?t+e:t+\" \"+this.toSeq().map(this.__toStringMapper).join(\", \")+\" \"+e},concat:function(){return reify(this,concatFactory(this,t.call(arguments,0)))},includes:function(t){return this.some((function(e){return is(e,t)}))},entries:function(){return this.__iterator(d)},every:function(t,e){assertNotInfinite(this.size);var r=!0;return this.__iterate((function(n,i,o){if(!t.call(e,n,i,o))return r=!1,!1})),r},filter:function(t,e){return reify(this,filterFactory(this,t,e,!0))},find:function(t,e,r){var n=this.findEntry(t,e);return n?n[1]:r},forEach:function(t,e){return assertNotInfinite(this.size),this.__iterate(e?t.bind(e):t)},join:function(t){assertNotInfinite(this.size),t=void 0!==t?\"\"+t:\",\";var e=\"\",r=!0;return this.__iterate((function(n){r?r=!1:e+=t,e+=null!=n?n.toString():\"\"})),e},keys:function(){return this.__iterator(p)},map:function(t,e){return reify(this,mapFactory(this,t,e))},reduce:function(t,e,r){var n,i;return assertNotInfinite(this.size),arguments.length<2?i=!0:n=e,this.__iterate((function(e,o,a){i?(i=!1,n=e):n=t.call(r,n,e,o,a)})),n},reduceRight:function(t,e,r){var n=this.toKeyedSeq().reverse();return n.reduce.apply(n,arguments)},reverse:function(){return reify(this,reverseFactory(this,!0))},slice:function(t,e){return reify(this,sliceFactory(this,t,e,!0))},some:function(t,e){return!this.every(not(t),e)},sort:function(t){return reify(this,sortFactory(this,t))},values:function(){return this.__iterator(h)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some((function(){return!0}))},count:function(t,e){return ensureSize(t?this.toSeq().filter(t,e):this)},countBy:function(t,e){return countByFactory(this,t,e)},equals:function(t){return deepEqual(this,t)},entrySeq:function(){var t=this;if(t._cache)return new ArraySeq(t._cache);var e=t.toSeq().map(entryMapper).toIndexedSeq();return e.fromEntrySeq=function(){return t.toSeq()},e},filterNot:function(t,e){return this.filter(not(t),e)},findEntry:function(t,e,r){var n=r;return this.__iterate((function(r,i,o){if(t.call(e,r,i,o))return n=[i,r],!1})),n},findKey:function(t,e){var r=this.findEntry(t,e);return r&&r[0]},findLast:function(t,e,r){return this.toKeyedSeq().reverse().find(t,e,r)},findLastEntry:function(t,e,r){return this.toKeyedSeq().reverse().findEntry(t,e,r)},findLastKey:function(t,e){return this.toKeyedSeq().reverse().findKey(t,e)},first:function(){return this.find(returnTrue)},flatMap:function(t,e){return reify(this,flatMapFactory(this,t,e))},flatten:function(t){return reify(this,flattenFactory(this,t,!0))},fromEntrySeq:function(){return new FromEntriesSequence(this)},get:function(t,e){return this.find((function(e,r){return is(r,t)}),void 0,e)},getIn:function(t,e){for(var r,n=this,i=forceIterator(t);!(r=i.next()).done;){var o=r.value;if((n=n&&n.get?n.get(o,c):c)===c)return e}return n},groupBy:function(t,e){return groupByFactory(this,t,e)},has:function(t){return this.get(t,c)!==c},hasIn:function(t){return this.getIn(t,c)!==c},isSubset:function(t){return t=\"function\"==typeof t.includes?t:Iterable(t),this.every((function(e){return t.includes(e)}))},isSuperset:function(t){return(t=\"function\"==typeof t.isSubset?t:Iterable(t)).isSubset(this)},keyOf:function(t){return this.findKey((function(e){return is(e,t)}))},keySeq:function(){return this.toSeq().map(keyMapper).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(t){return this.toKeyedSeq().reverse().keyOf(t)},max:function(t){return maxFactory(this,t)},maxBy:function(t,e){return maxFactory(this,e,t)},min:function(t){return maxFactory(this,t?neg(t):defaultNegComparator)},minBy:function(t,e){return maxFactory(this,e?neg(e):defaultNegComparator,t)},rest:function(){return this.slice(1)},skip:function(t){return this.slice(Math.max(0,t))},skipLast:function(t){return reify(this,this.toSeq().reverse().skip(t).reverse())},skipWhile:function(t,e){return reify(this,skipWhileFactory(this,t,e,!0))},skipUntil:function(t,e){return this.skipWhile(not(t),e)},sortBy:function(t,e){return reify(this,sortFactory(this,e,t))},take:function(t){return this.slice(0,Math.max(0,t))},takeLast:function(t){return reify(this,this.toSeq().reverse().take(t).reverse())},takeWhile:function(t,e){return reify(this,takeWhileFactory(this,t,e))},takeUntil:function(t,e){return this.takeWhile(not(t),e)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=hashIterable(this))}});var dt=Iterable.prototype;dt[e]=!0,dt[g]=dt.values,dt.__toJS=dt.toArray,dt.__toStringMapper=quoteString,dt.inspect=dt.toSource=function(){return this.toString()},dt.chain=dt.flatMap,dt.contains=dt.includes,mixin(KeyedIterable,{flip:function(){return reify(this,flipFactory(this))},mapEntries:function(t,e){var r=this,n=0;return reify(this,this.toSeq().map((function(i,o){return t.call(e,[o,i],n++,r)})).fromEntrySeq())},mapKeys:function(t,e){var r=this;return reify(this,this.toSeq().flip().map((function(n,i){return t.call(e,n,i,r)})).flip())}});var yt=KeyedIterable.prototype;function keyMapper(t,e){return e}function entryMapper(t,e){return[e,t]}function not(t){return function(){return!t.apply(this,arguments)}}function neg(t){return function(){return-t.apply(this,arguments)}}function quoteString(t){return\"string\"==typeof t?JSON.stringify(t):String(t)}function defaultZipper(){return arrCopy(arguments)}function defaultNegComparator(t,e){return t<e?1:t>e?-1:0}function hashIterable(t){if(t.size===1/0)return 0;var e=isOrdered(t),r=isKeyed(t),n=e?1:0;return murmurHashOfSize(t.__iterate(r?e?function(t,e){n=31*n+hashMerge(hash(t),hash(e))|0}:function(t,e){n=n+hashMerge(hash(t),hash(e))|0}:e?function(t){n=31*n+hash(t)|0}:function(t){n=n+hash(t)|0}),n)}function murmurHashOfSize(t,e){return e=j(e,3432918353),e=j(e<<15|e>>>-15,461845907),e=j(e<<13|e>>>-13,5),e=j((e=(e+3864292196|0)^t)^e>>>16,2246822507),e=smi((e=j(e^e>>>13,3266489909))^e>>>16)}function hashMerge(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}return yt[r]=!0,yt[g]=dt.entries,yt.__toJS=dt.toObject,yt.__toStringMapper=function(t,e){return JSON.stringify(e)+\": \"+quoteString(t)},mixin(IndexedIterable,{toKeyedSeq:function(){return new ToKeyedSequence(this,!1)},filter:function(t,e){return reify(this,filterFactory(this,t,e,!1))},findIndex:function(t,e){var r=this.findEntry(t,e);return r?r[0]:-1},indexOf:function(t){var e=this.keyOf(t);return void 0===e?-1:e},lastIndexOf:function(t){var e=this.lastKeyOf(t);return void 0===e?-1:e},reverse:function(){return reify(this,reverseFactory(this,!1))},slice:function(t,e){return reify(this,sliceFactory(this,t,e,!1))},splice:function(t,e){var r=arguments.length;if(e=Math.max(0|e,0),0===r||2===r&&!e)return this;t=resolveBegin(t,t<0?this.count():this.size);var n=this.slice(0,t);return reify(this,1===r?n:n.concat(arrCopy(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var r=this.findLastEntry(t,e);return r?r[0]:-1},first:function(){return this.get(0)},flatten:function(t){return reify(this,flattenFactory(this,t,!1))},get:function(t,e){return(t=wrapIndex(this,t))<0||this.size===1/0||void 0!==this.size&&t>this.size?e:this.find((function(e,r){return r===t}),void 0,e)},has:function(t){return(t=wrapIndex(this,t))>=0&&(void 0!==this.size?this.size===1/0||t<this.size:-1!==this.indexOf(t))},interpose:function(t){return reify(this,interposeFactory(this,t))},interleave:function(){var t=[this].concat(arrCopy(arguments)),e=zipWithFactory(this.toSeq(),IndexedSeq.of,t),r=e.flatten(!0);return e.size&&(r.size=e.size*t.length),reify(this,r)},keySeq:function(){return Range(0,this.size)},last:function(){return this.get(-1)},skipWhile:function(t,e){return reify(this,skipWhileFactory(this,t,e,!1))},zip:function(){return reify(this,zipWithFactory(this,defaultZipper,[this].concat(arrCopy(arguments))))},zipWith:function(t){var e=arrCopy(arguments);return e[0]=this,reify(this,zipWithFactory(this,t,e))}}),IndexedIterable.prototype[n]=!0,IndexedIterable.prototype[i]=!0,mixin(SetIterable,{get:function(t,e){return this.has(t)?t:e},includes:function(t){return this.has(t)},keySeq:function(){return this.valueSeq()}}),SetIterable.prototype.has=dt.includes,SetIterable.prototype.contains=SetIterable.prototype.includes,mixin(KeyedSeq,KeyedIterable.prototype),mixin(IndexedSeq,IndexedIterable.prototype),mixin(SetSeq,SetIterable.prototype),mixin(KeyedCollection,KeyedIterable.prototype),mixin(IndexedCollection,IndexedIterable.prototype),mixin(SetCollection,SetIterable.prototype),{Iterable,Seq,Collection,Map,OrderedMap,List,Stack,Set,OrderedSet,Record,Range,Repeat,is,fromJS}}()},5717:t=>{\"function\"==typeof Object.create?t.exports=function inherits(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function inherits(t,e){if(e){t.super_=e;var TempCtor=function(){};TempCtor.prototype=e.prototype,t.prototype=new TempCtor,t.prototype.constructor=t}}},8552:(t,e,r)=>{var n=r(852)(r(5639),\"DataView\");t.exports=n},1989:(t,e,r)=>{var n=r(1789),i=r(401),o=r(7667),a=r(1327),s=r(1866);function Hash(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}Hash.prototype.clear=n,Hash.prototype.delete=i,Hash.prototype.get=o,Hash.prototype.has=a,Hash.prototype.set=s,t.exports=Hash},8407:(t,e,r)=>{var n=r(7040),i=r(4125),o=r(2117),a=r(7518),s=r(4705);function ListCache(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}ListCache.prototype.clear=n,ListCache.prototype.delete=i,ListCache.prototype.get=o,ListCache.prototype.has=a,ListCache.prototype.set=s,t.exports=ListCache},7071:(t,e,r)=>{var n=r(852)(r(5639),\"Map\");t.exports=n},3369:(t,e,r)=>{var n=r(4785),i=r(1285),o=r(6e3),a=r(9916),s=r(5265);function MapCache(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}MapCache.prototype.clear=n,MapCache.prototype.delete=i,MapCache.prototype.get=o,MapCache.prototype.has=a,MapCache.prototype.set=s,t.exports=MapCache},3818:(t,e,r)=>{var n=r(852)(r(5639),\"Promise\");t.exports=n},8525:(t,e,r)=>{var n=r(852)(r(5639),\"Set\");t.exports=n},8668:(t,e,r)=>{var n=r(3369),i=r(619),o=r(2385);function SetCache(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new n;++e<r;)this.add(t[e])}SetCache.prototype.add=SetCache.prototype.push=i,SetCache.prototype.has=o,t.exports=SetCache},6384:(t,e,r)=>{var n=r(8407),i=r(7465),o=r(3779),a=r(7599),s=r(4758),u=r(4309);function Stack(t){var e=this.__data__=new n(t);this.size=e.size}Stack.prototype.clear=i,Stack.prototype.delete=o,Stack.prototype.get=a,Stack.prototype.has=s,Stack.prototype.set=u,t.exports=Stack},2705:(t,e,r)=>{var n=r(5639).Symbol;t.exports=n},1149:(t,e,r)=>{var n=r(5639).Uint8Array;t.exports=n},577:(t,e,r)=>{var n=r(852)(r(5639),\"WeakMap\");t.exports=n},4963:t=>{t.exports=function arrayFilter(t,e){for(var r=-1,n=null==t?0:t.length,i=0,o=[];++r<n;){var a=t[r];e(a,r,t)&&(o[i++]=a)}return o}},4636:(t,e,r)=>{var n=r(2545),i=r(5694),o=r(1469),a=r(4144),s=r(5776),u=r(6719),c=Object.prototype.hasOwnProperty;t.exports=function arrayLikeKeys(t,e){var r=o(t),f=!r&&i(t),l=!r&&!f&&a(t),p=!r&&!f&&!l&&u(t),h=r||f||l||p,d=h?n(t.length,String):[],M=d.length;for(var w in t)!e&&!c.call(t,w)||h&&(\"length\"==w||l&&(\"offset\"==w||\"parent\"==w)||p&&(\"buffer\"==w||\"byteLength\"==w||\"byteOffset\"==w)||s(w,M))||d.push(w);return d}},9932:t=>{t.exports=function arrayMap(t,e){for(var r=-1,n=null==t?0:t.length,i=Array(n);++r<n;)i[r]=e(t[r],r,t);return i}},2488:t=>{t.exports=function arrayPush(t,e){for(var r=-1,n=e.length,i=t.length;++r<n;)t[i+r]=e[r];return t}},2663:t=>{t.exports=function arrayReduce(t,e,r,n){var i=-1,o=null==t?0:t.length;for(n&&o&&(r=t[++i]);++i<o;)r=e(r,t[i],i,t);return r}},2908:t=>{t.exports=function arraySome(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1}},4286:t=>{t.exports=function asciiToArray(t){return t.split(\"\")}},9029:t=>{var e=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;t.exports=function asciiWords(t){return t.match(e)||[]}},4865:(t,e,r)=>{var n=r(9465),i=r(7813),o=Object.prototype.hasOwnProperty;t.exports=function assignValue(t,e,r){var a=t[e];o.call(t,e)&&i(a,r)&&(void 0!==r||e in t)||n(t,e,r)}},8470:(t,e,r)=>{var n=r(7813);t.exports=function assocIndexOf(t,e){for(var r=t.length;r--;)if(n(t[r][0],e))return r;return-1}},9465:(t,e,r)=>{var n=r(8777);t.exports=function baseAssignValue(t,e,r){\"__proto__\"==e&&n?n(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}},9881:(t,e,r)=>{var n=r(7816),i=r(9291)(n);t.exports=i},1848:t=>{t.exports=function baseFindIndex(t,e,r,n){for(var i=t.length,o=r+(n?1:-1);n?o--:++o<i;)if(e(t[o],o,t))return o;return-1}},8483:(t,e,r)=>{var n=r(5063)();t.exports=n},7816:(t,e,r)=>{var n=r(8483),i=r(3674);t.exports=function baseForOwn(t,e){return t&&n(t,e,i)}},7786:(t,e,r)=>{var n=r(1811),i=r(327);t.exports=function baseGet(t,e){for(var r=0,o=(e=n(e,t)).length;null!=t&&r<o;)t=t[i(e[r++])];return r&&r==o?t:void 0}},8866:(t,e,r)=>{var n=r(2488),i=r(1469);t.exports=function baseGetAllKeys(t,e,r){var o=e(t);return i(t)?o:n(o,r(t))}},4239:(t,e,r)=>{var n=r(2705),i=r(9607),o=r(2333),a=n?n.toStringTag:void 0;t.exports=function baseGetTag(t){return null==t?void 0===t?\"[object Undefined]\":\"[object Null]\":a&&a in Object(t)?i(t):o(t)}},13:t=>{t.exports=function baseHasIn(t,e){return null!=t&&e in Object(t)}},9454:(t,e,r)=>{var n=r(4239),i=r(7005);t.exports=function baseIsArguments(t){return i(t)&&\"[object Arguments]\"==n(t)}},939:(t,e,r)=>{var n=r(2492),i=r(7005);t.exports=function baseIsEqual(t,e,r,o,a){return t===e||(null==t||null==e||!i(t)&&!i(e)?t!=t&&e!=e:n(t,e,r,o,baseIsEqual,a))}},2492:(t,e,r)=>{var n=r(6384),i=r(7114),o=r(8351),a=r(6096),s=r(8882),u=r(1469),c=r(4144),f=r(6719),l=\"[object Arguments]\",p=\"[object Array]\",h=\"[object Object]\",d=Object.prototype.hasOwnProperty;t.exports=function baseIsEqualDeep(t,e,r,M,w,g){var _=u(t),v=u(e),I=_?p:s(t),m=v?p:s(e),j=(I=I==l?h:I)==h,b=(m=m==l?h:m)==h,x=I==m;if(x&&c(t)){if(!c(e))return!1;_=!0,j=!1}if(x&&!j)return g||(g=new n),_||f(t)?i(t,e,r,M,w,g):o(t,e,I,r,M,w,g);if(!(1&r)){var A=j&&d.call(t,\"__wrapped__\"),T=b&&d.call(e,\"__wrapped__\");if(A||T){var k=A?t.value():t,B=T?e.value():e;return g||(g=new n),w(k,B,r,M,g)}}return!!x&&(g||(g=new n),a(t,e,r,M,w,g))}},2958:(t,e,r)=>{var n=r(6384),i=r(939);t.exports=function baseIsMatch(t,e,r,o){var a=r.length,s=a,u=!o;if(null==t)return!s;for(t=Object(t);a--;){var c=r[a];if(u&&c[2]?c[1]!==t[c[0]]:!(c[0]in t))return!1}for(;++a<s;){var f=(c=r[a])[0],l=t[f],p=c[1];if(u&&c[2]){if(void 0===l&&!(f in t))return!1}else{var h=new n;if(o)var d=o(l,p,f,t,e,h);if(!(void 0===d?i(p,l,3,o,h):d))return!1}}return!0}},8458:(t,e,r)=>{var n=r(3560),i=r(5346),o=r(3218),a=r(346),s=/^\\[object .+?Constructor\\]$/,u=Function.prototype,c=Object.prototype,f=u.toString,l=c.hasOwnProperty,p=RegExp(\"^\"+f.call(l).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");t.exports=function baseIsNative(t){return!(!o(t)||i(t))&&(n(t)?p:s).test(a(t))}},8749:(t,e,r)=>{var n=r(4239),i=r(1780),o=r(7005),a={};a[\"[object Float32Array]\"]=a[\"[object Float64Array]\"]=a[\"[object Int8Array]\"]=a[\"[object Int16Array]\"]=a[\"[object Int32Array]\"]=a[\"[object Uint8Array]\"]=a[\"[object Uint8ClampedArray]\"]=a[\"[object Uint16Array]\"]=a[\"[object Uint32Array]\"]=!0,a[\"[object Arguments]\"]=a[\"[object Array]\"]=a[\"[object ArrayBuffer]\"]=a[\"[object Boolean]\"]=a[\"[object DataView]\"]=a[\"[object Date]\"]=a[\"[object Error]\"]=a[\"[object Function]\"]=a[\"[object Map]\"]=a[\"[object Number]\"]=a[\"[object Object]\"]=a[\"[object RegExp]\"]=a[\"[object Set]\"]=a[\"[object String]\"]=a[\"[object WeakMap]\"]=!1,t.exports=function baseIsTypedArray(t){return o(t)&&i(t.length)&&!!a[n(t)]}},7206:(t,e,r)=>{var n=r(1573),i=r(6432),o=r(6557),a=r(1469),s=r(9601);t.exports=function baseIteratee(t){return\"function\"==typeof t?t:null==t?o:\"object\"==typeof t?a(t)?i(t[0],t[1]):n(t):s(t)}},280:(t,e,r)=>{var n=r(5726),i=r(6916),o=Object.prototype.hasOwnProperty;t.exports=function baseKeys(t){if(!n(t))return i(t);var e=[];for(var r in Object(t))o.call(t,r)&&\"constructor\"!=r&&e.push(r);return e}},1573:(t,e,r)=>{var n=r(2958),i=r(1499),o=r(2634);t.exports=function baseMatches(t){var e=i(t);return 1==e.length&&e[0][2]?o(e[0][0],e[0][1]):function(r){return r===t||n(r,t,e)}}},6432:(t,e,r)=>{var n=r(939),i=r(7361),o=r(9095),a=r(5403),s=r(9162),u=r(2634),c=r(327);t.exports=function baseMatchesProperty(t,e){return a(t)&&s(e)?u(c(t),e):function(r){var a=i(r,t);return void 0===a&&a===e?o(r,t):n(e,a,3)}}},371:t=>{t.exports=function baseProperty(t){return function(e){return null==e?void 0:e[t]}}},9152:(t,e,r)=>{var n=r(7786);t.exports=function basePropertyDeep(t){return function(e){return n(e,t)}}},8674:t=>{t.exports=function basePropertyOf(t){return function(e){return null==t?void 0:t[e]}}},4259:t=>{t.exports=function baseSlice(t,e,r){var n=-1,i=t.length;e<0&&(e=-e>i?0:i+e),(r=r>i?i:r)<0&&(r+=i),i=e>r?0:r-e>>>0,e>>>=0;for(var o=Array(i);++n<i;)o[n]=t[n+e];return o}},5076:(t,e,r)=>{var n=r(9881);t.exports=function baseSome(t,e){var r;return n(t,(function(t,n,i){return!(r=e(t,n,i))})),!!r}},2545:t=>{t.exports=function baseTimes(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}},531:(t,e,r)=>{var n=r(2705),i=r(9932),o=r(1469),a=r(3448),s=n?n.prototype:void 0,u=s?s.toString:void 0;t.exports=function baseToString(t){if(\"string\"==typeof t)return t;if(o(t))return i(t,baseToString)+\"\";if(a(t))return u?u.call(t):\"\";var e=t+\"\";return\"0\"==e&&1/t==-Infinity?\"-0\":e}},7561:(t,e,r)=>{var n=r(7990),i=/^\\s+/;t.exports=function baseTrim(t){return t?t.slice(0,n(t)+1).replace(i,\"\"):t}},1717:t=>{t.exports=function baseUnary(t){return function(e){return t(e)}}},1757:t=>{t.exports=function baseZipObject(t,e,r){for(var n=-1,i=t.length,o=e.length,a={};++n<i;){var s=n<o?e[n]:void 0;r(a,t[n],s)}return a}},4757:t=>{t.exports=function cacheHas(t,e){return t.has(e)}},1811:(t,e,r)=>{var n=r(1469),i=r(5403),o=r(5514),a=r(9833);t.exports=function castPath(t,e){return n(t)?t:i(t,e)?[t]:o(a(t))}},180:(t,e,r)=>{var n=r(4259);t.exports=function castSlice(t,e,r){var i=t.length;return r=void 0===r?i:r,!e&&r>=i?t:n(t,e,r)}},4429:(t,e,r)=>{var n=r(5639)[\"__core-js_shared__\"];t.exports=n},9291:(t,e,r)=>{var n=r(8612);t.exports=function createBaseEach(t,e){return function(r,i){if(null==r)return r;if(!n(r))return t(r,i);for(var o=r.length,a=e?o:-1,s=Object(r);(e?a--:++a<o)&&!1!==i(s[a],a,s););return r}}},5063:t=>{t.exports=function createBaseFor(t){return function(e,r,n){for(var i=-1,o=Object(e),a=n(e),s=a.length;s--;){var u=a[t?s:++i];if(!1===r(o[u],u,o))break}return e}}},8805:(t,e,r)=>{var n=r(180),i=r(2689),o=r(3140),a=r(9833);t.exports=function createCaseFirst(t){return function(e){e=a(e);var r=i(e)?o(e):void 0,s=r?r[0]:e.charAt(0),u=r?n(r,1).join(\"\"):e.slice(1);return s[t]()+u}}},5393:(t,e,r)=>{var n=r(2663),i=r(3816),o=r(8748),a=RegExp(\"['’]\",\"g\");t.exports=function createCompounder(t){return function(e){return n(o(i(e).replace(a,\"\")),t,\"\")}}},7740:(t,e,r)=>{var n=r(7206),i=r(8612),o=r(3674);t.exports=function createFind(t){return function(e,r,a){var s=Object(e);if(!i(e)){var u=n(r,3);e=o(e),r=function(t){return u(s[t],t,s)}}var c=t(e,r,a);return c>-1?s[u?e[c]:c]:void 0}}},9389:(t,e,r)=>{var n=r(8674)({À:\"A\",Á:\"A\",Â:\"A\",Ã:\"A\",Ä:\"A\",Å:\"A\",à:\"a\",á:\"a\",â:\"a\",ã:\"a\",ä:\"a\",å:\"a\",Ç:\"C\",ç:\"c\",Ð:\"D\",ð:\"d\",È:\"E\",É:\"E\",Ê:\"E\",Ë:\"E\",è:\"e\",é:\"e\",ê:\"e\",ë:\"e\",Ì:\"I\",Í:\"I\",Î:\"I\",Ï:\"I\",ì:\"i\",í:\"i\",î:\"i\",ï:\"i\",Ñ:\"N\",ñ:\"n\",Ò:\"O\",Ó:\"O\",Ô:\"O\",Õ:\"O\",Ö:\"O\",Ø:\"O\",ò:\"o\",ó:\"o\",ô:\"o\",õ:\"o\",ö:\"o\",ø:\"o\",Ù:\"U\",Ú:\"U\",Û:\"U\",Ü:\"U\",ù:\"u\",ú:\"u\",û:\"u\",ü:\"u\",Ý:\"Y\",ý:\"y\",ÿ:\"y\",Æ:\"Ae\",æ:\"ae\",Þ:\"Th\",þ:\"th\",ß:\"ss\",Ā:\"A\",Ă:\"A\",Ą:\"A\",ā:\"a\",ă:\"a\",ą:\"a\",Ć:\"C\",Ĉ:\"C\",Ċ:\"C\",Č:\"C\",ć:\"c\",ĉ:\"c\",ċ:\"c\",č:\"c\",Ď:\"D\",Đ:\"D\",ď:\"d\",đ:\"d\",Ē:\"E\",Ĕ:\"E\",Ė:\"E\",Ę:\"E\",Ě:\"E\",ē:\"e\",ĕ:\"e\",ė:\"e\",ę:\"e\",ě:\"e\",Ĝ:\"G\",Ğ:\"G\",Ġ:\"G\",Ģ:\"G\",ĝ:\"g\",ğ:\"g\",ġ:\"g\",ģ:\"g\",Ĥ:\"H\",Ħ:\"H\",ĥ:\"h\",ħ:\"h\",Ĩ:\"I\",Ī:\"I\",Ĭ:\"I\",Į:\"I\",İ:\"I\",ĩ:\"i\",ī:\"i\",ĭ:\"i\",į:\"i\",ı:\"i\",Ĵ:\"J\",ĵ:\"j\",Ķ:\"K\",ķ:\"k\",ĸ:\"k\",Ĺ:\"L\",Ļ:\"L\",Ľ:\"L\",Ŀ:\"L\",Ł:\"L\",ĺ:\"l\",ļ:\"l\",ľ:\"l\",ŀ:\"l\",ł:\"l\",Ń:\"N\",Ņ:\"N\",Ň:\"N\",Ŋ:\"N\",ń:\"n\",ņ:\"n\",ň:\"n\",ŋ:\"n\",Ō:\"O\",Ŏ:\"O\",Ő:\"O\",ō:\"o\",ŏ:\"o\",ő:\"o\",Ŕ:\"R\",Ŗ:\"R\",Ř:\"R\",ŕ:\"r\",ŗ:\"r\",ř:\"r\",Ś:\"S\",Ŝ:\"S\",Ş:\"S\",Š:\"S\",ś:\"s\",ŝ:\"s\",ş:\"s\",š:\"s\",Ţ:\"T\",Ť:\"T\",Ŧ:\"T\",ţ:\"t\",ť:\"t\",ŧ:\"t\",Ũ:\"U\",Ū:\"U\",Ŭ:\"U\",Ů:\"U\",Ű:\"U\",Ų:\"U\",ũ:\"u\",ū:\"u\",ŭ:\"u\",ů:\"u\",ű:\"u\",ų:\"u\",Ŵ:\"W\",ŵ:\"w\",Ŷ:\"Y\",ŷ:\"y\",Ÿ:\"Y\",Ź:\"Z\",Ż:\"Z\",Ž:\"Z\",ź:\"z\",ż:\"z\",ž:\"z\",Ĳ:\"IJ\",ĳ:\"ij\",Œ:\"Oe\",œ:\"oe\",ŉ:\"'n\",ſ:\"s\"});t.exports=n},8777:(t,e,r)=>{var n=r(852),i=function(){try{var t=n(Object,\"defineProperty\");return t({},\"\",{}),t}catch(t){}}();t.exports=i},7114:(t,e,r)=>{var n=r(8668),i=r(2908),o=r(4757);t.exports=function equalArrays(t,e,r,a,s,u){var c=1&r,f=t.length,l=e.length;if(f!=l&&!(c&&l>f))return!1;var p=u.get(t),h=u.get(e);if(p&&h)return p==e&&h==t;var d=-1,M=!0,w=2&r?new n:void 0;for(u.set(t,e),u.set(e,t);++d<f;){var g=t[d],_=e[d];if(a)var v=c?a(_,g,d,e,t,u):a(g,_,d,t,e,u);if(void 0!==v){if(v)continue;M=!1;break}if(w){if(!i(e,(function(t,e){if(!o(w,e)&&(g===t||s(g,t,r,a,u)))return w.push(e)}))){M=!1;break}}else if(g!==_&&!s(g,_,r,a,u)){M=!1;break}}return u.delete(t),u.delete(e),M}},8351:(t,e,r)=>{var n=r(2705),i=r(1149),o=r(7813),a=r(7114),s=r(8776),u=r(1814),c=n?n.prototype:void 0,f=c?c.valueOf:void 0;t.exports=function equalByTag(t,e,r,n,c,l,p){switch(r){case\"[object DataView]\":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case\"[object ArrayBuffer]\":return!(t.byteLength!=e.byteLength||!l(new i(t),new i(e)));case\"[object Boolean]\":case\"[object Date]\":case\"[object Number]\":return o(+t,+e);case\"[object Error]\":return t.name==e.name&&t.message==e.message;case\"[object RegExp]\":case\"[object String]\":return t==e+\"\";case\"[object Map]\":var h=s;case\"[object Set]\":var d=1&n;if(h||(h=u),t.size!=e.size&&!d)return!1;var M=p.get(t);if(M)return M==e;n|=2,p.set(t,e);var w=a(h(t),h(e),n,c,l,p);return p.delete(t),w;case\"[object Symbol]\":if(f)return f.call(t)==f.call(e)}return!1}},6096:(t,e,r)=>{var n=r(8234),i=Object.prototype.hasOwnProperty;t.exports=function equalObjects(t,e,r,o,a,s){var u=1&r,c=n(t),f=c.length;if(f!=n(e).length&&!u)return!1;for(var l=f;l--;){var p=c[l];if(!(u?p in e:i.call(e,p)))return!1}var h=s.get(t),d=s.get(e);if(h&&d)return h==e&&d==t;var M=!0;s.set(t,e),s.set(e,t);for(var w=u;++l<f;){var g=t[p=c[l]],_=e[p];if(o)var v=u?o(_,g,p,e,t,s):o(g,_,p,t,e,s);if(!(void 0===v?g===_||a(g,_,r,o,s):v)){M=!1;break}w||(w=\"constructor\"==p)}if(M&&!w){var I=t.constructor,m=e.constructor;I==m||!(\"constructor\"in t)||!(\"constructor\"in e)||\"function\"==typeof I&&I instanceof I&&\"function\"==typeof m&&m instanceof m||(M=!1)}return s.delete(t),s.delete(e),M}},1957:(t,e,r)=>{var n=\"object\"==typeof r.g&&r.g&&r.g.Object===Object&&r.g;t.exports=n},8234:(t,e,r)=>{var n=r(8866),i=r(9551),o=r(3674);t.exports=function getAllKeys(t){return n(t,o,i)}},5050:(t,e,r)=>{var n=r(7019);t.exports=function getMapData(t,e){var r=t.__data__;return n(e)?r[\"string\"==typeof e?\"string\":\"hash\"]:r.map}},1499:(t,e,r)=>{var n=r(9162),i=r(3674);t.exports=function getMatchData(t){for(var e=i(t),r=e.length;r--;){var o=e[r],a=t[o];e[r]=[o,a,n(a)]}return e}},852:(t,e,r)=>{var n=r(8458),i=r(7801);t.exports=function getNative(t,e){var r=i(t,e);return n(r)?r:void 0}},9607:(t,e,r)=>{var n=r(2705),i=Object.prototype,o=i.hasOwnProperty,a=i.toString,s=n?n.toStringTag:void 0;t.exports=function getRawTag(t){var e=o.call(t,s),r=t[s];try{t[s]=void 0;var n=!0}catch(t){}var i=a.call(t);return n&&(e?t[s]=r:delete t[s]),i}},9551:(t,e,r)=>{var n=r(4963),i=r(479),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(t){return null==t?[]:(t=Object(t),n(a(t),(function(e){return o.call(t,e)})))}:i;t.exports=s},8882:(t,e,r)=>{var n=r(8552),i=r(7071),o=r(3818),a=r(8525),s=r(577),u=r(4239),c=r(346),f=\"[object Map]\",l=\"[object Promise]\",p=\"[object Set]\",h=\"[object WeakMap]\",d=\"[object DataView]\",M=c(n),w=c(i),g=c(o),_=c(a),v=c(s),I=u;(n&&I(new n(new ArrayBuffer(1)))!=d||i&&I(new i)!=f||o&&I(o.resolve())!=l||a&&I(new a)!=p||s&&I(new s)!=h)&&(I=function(t){var e=u(t),r=\"[object Object]\"==e?t.constructor:void 0,n=r?c(r):\"\";if(n)switch(n){case M:return d;case w:return f;case g:return l;case _:return p;case v:return h}return e}),t.exports=I},7801:t=>{t.exports=function getValue(t,e){return null==t?void 0:t[e]}},222:(t,e,r)=>{var n=r(1811),i=r(5694),o=r(1469),a=r(5776),s=r(1780),u=r(327);t.exports=function hasPath(t,e,r){for(var c=-1,f=(e=n(e,t)).length,l=!1;++c<f;){var p=u(e[c]);if(!(l=null!=t&&r(t,p)))break;t=t[p]}return l||++c!=f?l:!!(f=null==t?0:t.length)&&s(f)&&a(p,f)&&(o(t)||i(t))}},2689:t=>{var e=RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\\\\ufe0e\\\\ufe0f]\");t.exports=function hasUnicode(t){return e.test(t)}},3157:t=>{var e=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;t.exports=function hasUnicodeWord(t){return e.test(t)}},1789:(t,e,r)=>{var n=r(4536);t.exports=function hashClear(){this.__data__=n?n(null):{},this.size=0}},401:t=>{t.exports=function hashDelete(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},7667:(t,e,r)=>{var n=r(4536),i=Object.prototype.hasOwnProperty;t.exports=function hashGet(t){var e=this.__data__;if(n){var r=e[t];return\"__lodash_hash_undefined__\"===r?void 0:r}return i.call(e,t)?e[t]:void 0}},1327:(t,e,r)=>{var n=r(4536),i=Object.prototype.hasOwnProperty;t.exports=function hashHas(t){var e=this.__data__;return n?void 0!==e[t]:i.call(e,t)}},1866:(t,e,r)=>{var n=r(4536);t.exports=function hashSet(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=n&&void 0===e?\"__lodash_hash_undefined__\":e,this}},5776:t=>{var e=/^(?:0|[1-9]\\d*)$/;t.exports=function isIndex(t,r){var n=typeof t;return!!(r=null==r?9007199254740991:r)&&(\"number\"==n||\"symbol\"!=n&&e.test(t))&&t>-1&&t%1==0&&t<r}},6612:(t,e,r)=>{var n=r(7813),i=r(8612),o=r(5776),a=r(3218);t.exports=function isIterateeCall(t,e,r){if(!a(r))return!1;var s=typeof e;return!!(\"number\"==s?i(r)&&o(e,r.length):\"string\"==s&&e in r)&&n(r[e],t)}},5403:(t,e,r)=>{var n=r(1469),i=r(3448),o=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,a=/^\\w*$/;t.exports=function isKey(t,e){if(n(t))return!1;var r=typeof t;return!(\"number\"!=r&&\"symbol\"!=r&&\"boolean\"!=r&&null!=t&&!i(t))||(a.test(t)||!o.test(t)||null!=e&&t in Object(e))}},7019:t=>{t.exports=function isKeyable(t){var e=typeof t;return\"string\"==e||\"number\"==e||\"symbol\"==e||\"boolean\"==e?\"__proto__\"!==t:null===t}},5346:(t,e,r)=>{var n,i=r(4429),o=(n=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+n:\"\";t.exports=function isMasked(t){return!!o&&o in t}},5726:t=>{var e=Object.prototype;t.exports=function isPrototype(t){var r=t&&t.constructor;return t===(\"function\"==typeof r&&r.prototype||e)}},9162:(t,e,r)=>{var n=r(3218);t.exports=function isStrictComparable(t){return t==t&&!n(t)}},7040:t=>{t.exports=function listCacheClear(){this.__data__=[],this.size=0}},4125:(t,e,r)=>{var n=r(8470),i=Array.prototype.splice;t.exports=function listCacheDelete(t){var e=this.__data__,r=n(e,t);return!(r<0)&&(r==e.length-1?e.pop():i.call(e,r,1),--this.size,!0)}},2117:(t,e,r)=>{var n=r(8470);t.exports=function listCacheGet(t){var e=this.__data__,r=n(e,t);return r<0?void 0:e[r][1]}},7518:(t,e,r)=>{var n=r(8470);t.exports=function listCacheHas(t){return n(this.__data__,t)>-1}},4705:(t,e,r)=>{var n=r(8470);t.exports=function listCacheSet(t,e){var r=this.__data__,i=n(r,t);return i<0?(++this.size,r.push([t,e])):r[i][1]=e,this}},4785:(t,e,r)=>{var n=r(1989),i=r(8407),o=r(7071);t.exports=function mapCacheClear(){this.size=0,this.__data__={hash:new n,map:new(o||i),string:new n}}},1285:(t,e,r)=>{var n=r(5050);t.exports=function mapCacheDelete(t){var e=n(this,t).delete(t);return this.size-=e?1:0,e}},6e3:(t,e,r)=>{var n=r(5050);t.exports=function mapCacheGet(t){return n(this,t).get(t)}},9916:(t,e,r)=>{var n=r(5050);t.exports=function mapCacheHas(t){return n(this,t).has(t)}},5265:(t,e,r)=>{var n=r(5050);t.exports=function mapCacheSet(t,e){var r=n(this,t),i=r.size;return r.set(t,e),this.size+=r.size==i?0:1,this}},8776:t=>{t.exports=function mapToArray(t){var e=-1,r=Array(t.size);return t.forEach((function(t,n){r[++e]=[n,t]})),r}},2634:t=>{t.exports=function matchesStrictComparable(t,e){return function(r){return null!=r&&(r[t]===e&&(void 0!==e||t in Object(r)))}}},4569:(t,e,r)=>{var n=r(8306);t.exports=function memoizeCapped(t){var e=n(t,(function(t){return 500===r.size&&r.clear(),t})),r=e.cache;return e}},4536:(t,e,r)=>{var n=r(852)(Object,\"create\");t.exports=n},6916:(t,e,r)=>{var n=r(5569)(Object.keys,Object);t.exports=n},1167:(t,e,r)=>{t=r.nmd(t);var n=r(1957),i=e&&!e.nodeType&&e,o=i&&t&&!t.nodeType&&t,a=o&&o.exports===i&&n.process,s=function(){try{var t=o&&o.require&&o.require(\"util\").types;return t||a&&a.binding&&a.binding(\"util\")}catch(t){}}();t.exports=s},2333:t=>{var e=Object.prototype.toString;t.exports=function objectToString(t){return e.call(t)}},5569:t=>{t.exports=function overArg(t,e){return function(r){return t(e(r))}}},5639:(t,e,r)=>{var n=r(1957),i=\"object\"==typeof self&&self&&self.Object===Object&&self,o=n||i||Function(\"return this\")();t.exports=o},619:t=>{t.exports=function setCacheAdd(t){return this.__data__.set(t,\"__lodash_hash_undefined__\"),this}},2385:t=>{t.exports=function setCacheHas(t){return this.__data__.has(t)}},1814:t=>{t.exports=function setToArray(t){var e=-1,r=Array(t.size);return t.forEach((function(t){r[++e]=t})),r}},7465:(t,e,r)=>{var n=r(8407);t.exports=function stackClear(){this.__data__=new n,this.size=0}},3779:t=>{t.exports=function stackDelete(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}},7599:t=>{t.exports=function stackGet(t){return this.__data__.get(t)}},4758:t=>{t.exports=function stackHas(t){return this.__data__.has(t)}},4309:(t,e,r)=>{var n=r(8407),i=r(7071),o=r(3369);t.exports=function stackSet(t,e){var r=this.__data__;if(r instanceof n){var a=r.__data__;if(!i||a.length<199)return a.push([t,e]),this.size=++r.size,this;r=this.__data__=new o(a)}return r.set(t,e),this.size=r.size,this}},3140:(t,e,r)=>{var n=r(4286),i=r(2689),o=r(676);t.exports=function stringToArray(t){return i(t)?o(t):n(t)}},5514:(t,e,r)=>{var n=r(4569),i=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,o=/\\\\(\\\\)?/g,a=n((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(\"\"),t.replace(i,(function(t,r,n,i){e.push(n?i.replace(o,\"$1\"):r||t)})),e}));t.exports=a},327:(t,e,r)=>{var n=r(3448);t.exports=function toKey(t){if(\"string\"==typeof t||n(t))return t;var e=t+\"\";return\"0\"==e&&1/t==-Infinity?\"-0\":e}},346:t=>{var e=Function.prototype.toString;t.exports=function toSource(t){if(null!=t){try{return e.call(t)}catch(t){}try{return t+\"\"}catch(t){}}return\"\"}},7990:t=>{var e=/\\s/;t.exports=function trimmedEndIndex(t){for(var r=t.length;r--&&e.test(t.charAt(r)););return r}},676:t=>{var e=\"\\\\ud800-\\\\udfff\",r=\"[\"+e+\"]\",n=\"[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]\",i=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",o=\"[^\"+e+\"]\",a=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",s=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",u=\"(?:\"+n+\"|\"+i+\")\"+\"?\",c=\"[\\\\ufe0e\\\\ufe0f]?\",f=c+u+(\"(?:\\\\u200d(?:\"+[o,a,s].join(\"|\")+\")\"+c+u+\")*\"),l=\"(?:\"+[o+n+\"?\",n,a,s,r].join(\"|\")+\")\",p=RegExp(i+\"(?=\"+i+\")|\"+l+f,\"g\");t.exports=function unicodeToArray(t){return t.match(p)||[]}},2757:t=>{var e=\"\\\\ud800-\\\\udfff\",r=\"\\\\u2700-\\\\u27bf\",n=\"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\",i=\"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\",o=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",a=\"[\"+o+\"]\",s=\"\\\\d+\",u=\"[\"+r+\"]\",c=\"[\"+n+\"]\",f=\"[^\"+e+o+s+r+n+i+\"]\",l=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",p=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",h=\"[\"+i+\"]\",d=\"(?:\"+c+\"|\"+f+\")\",M=\"(?:\"+h+\"|\"+f+\")\",w=\"(?:['’](?:d|ll|m|re|s|t|ve))?\",g=\"(?:['’](?:D|LL|M|RE|S|T|VE))?\",_=\"(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?\",v=\"[\\\\ufe0e\\\\ufe0f]?\",I=v+_+(\"(?:\\\\u200d(?:\"+[\"[^\"+e+\"]\",l,p].join(\"|\")+\")\"+v+_+\")*\"),m=\"(?:\"+[u,l,p].join(\"|\")+\")\"+I,j=RegExp([h+\"?\"+c+\"+\"+w+\"(?=\"+[a,h,\"$\"].join(\"|\")+\")\",M+\"+\"+g+\"(?=\"+[a,h+d,\"$\"].join(\"|\")+\")\",h+\"?\"+d+\"+\"+w,h+\"+\"+g,\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",s,m].join(\"|\"),\"g\");t.exports=function unicodeWords(t){return t.match(j)||[]}},1540:(t,e,r)=>{var n=r(8403),i=r(5393)((function(t,e,r){return e=e.toLowerCase(),t+(r?n(e):e)}));t.exports=i},8403:(t,e,r)=>{var n=r(9833),i=r(1700);t.exports=function capitalize(t){return i(n(t).toLowerCase())}},3816:(t,e,r)=>{var n=r(9389),i=r(9833),o=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,a=RegExp(\"[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]\",\"g\");t.exports=function deburr(t){return(t=i(t))&&t.replace(o,n).replace(a,\"\")}},7813:t=>{t.exports=function eq(t,e){return t===e||t!=t&&e!=e}},3311:(t,e,r)=>{var n=r(7740)(r(998));t.exports=n},998:(t,e,r)=>{var n=r(1848),i=r(7206),o=r(554),a=Math.max;t.exports=function findIndex(t,e,r){var s=null==t?0:t.length;if(!s)return-1;var u=null==r?0:o(r);return u<0&&(u=a(s+u,0)),n(t,i(e,3),u)}},7361:(t,e,r)=>{var n=r(7786);t.exports=function get(t,e,r){var i=null==t?void 0:n(t,e);return void 0===i?r:i}},9095:(t,e,r)=>{var n=r(13),i=r(222);t.exports=function hasIn(t,e){return null!=t&&i(t,e,n)}},6557:t=>{t.exports=function identity(t){return t}},5694:(t,e,r)=>{var n=r(9454),i=r(7005),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,u=n(function(){return arguments}())?n:function(t){return i(t)&&a.call(t,\"callee\")&&!s.call(t,\"callee\")};t.exports=u},1469:t=>{var e=Array.isArray;t.exports=e},8612:(t,e,r)=>{var n=r(3560),i=r(1780);t.exports=function isArrayLike(t){return null!=t&&i(t.length)&&!n(t)}},4144:(t,e,r)=>{t=r.nmd(t);var n=r(5639),i=r(5062),o=e&&!e.nodeType&&e,a=o&&t&&!t.nodeType&&t,s=a&&a.exports===o?n.Buffer:void 0,u=(s?s.isBuffer:void 0)||i;t.exports=u},3560:(t,e,r)=>{var n=r(4239),i=r(3218);t.exports=function isFunction(t){if(!i(t))return!1;var e=n(t);return\"[object Function]\"==e||\"[object GeneratorFunction]\"==e||\"[object AsyncFunction]\"==e||\"[object Proxy]\"==e}},1780:t=>{t.exports=function isLength(t){return\"number\"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},3218:t=>{t.exports=function isObject(t){var e=typeof t;return null!=t&&(\"object\"==e||\"function\"==e)}},7005:t=>{t.exports=function isObjectLike(t){return null!=t&&\"object\"==typeof t}},3448:(t,e,r)=>{var n=r(4239),i=r(7005);t.exports=function isSymbol(t){return\"symbol\"==typeof t||i(t)&&\"[object Symbol]\"==n(t)}},6719:(t,e,r)=>{var n=r(8749),i=r(1717),o=r(1167),a=o&&o.isTypedArray,s=a?i(a):n;t.exports=s},3674:(t,e,r)=>{var n=r(4636),i=r(280),o=r(8612);t.exports=function keys(t){return o(t)?n(t):i(t)}},8306:(t,e,r)=>{var n=r(3369);function memoize(t,e){if(\"function\"!=typeof t||null!=e&&\"function\"!=typeof e)throw new TypeError(\"Expected a function\");var memoized=function(){var r=arguments,n=e?e.apply(this,r):r[0],i=memoized.cache;if(i.has(n))return i.get(n);var o=t.apply(this,r);return memoized.cache=i.set(n,o)||i,o};return memoized.cache=new(memoize.Cache||n),memoized}memoize.Cache=n,t.exports=memoize},9601:(t,e,r)=>{var n=r(371),i=r(9152),o=r(5403),a=r(327);t.exports=function property(t){return o(t)?n(a(t)):i(t)}},9704:(t,e,r)=>{var n=r(2908),i=r(7206),o=r(5076),a=r(1469),s=r(6612);t.exports=function some(t,e,r){var u=a(t)?n:o;return r&&s(t,e,r)&&(e=void 0),u(t,i(e,3))}},479:t=>{t.exports=function stubArray(){return[]}},5062:t=>{t.exports=function stubFalse(){return!1}},8601:(t,e,r)=>{var n=r(4841),i=1/0;t.exports=function toFinite(t){return t?(t=n(t))===i||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},554:(t,e,r)=>{var n=r(8601);t.exports=function toInteger(t){var e=n(t),r=e%1;return e==e?r?e-r:e:0}},4841:(t,e,r)=>{var n=r(7561),i=r(3218),o=r(3448),a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;t.exports=function toNumber(t){if(\"number\"==typeof t)return t;if(o(t))return NaN;if(i(t)){var e=\"function\"==typeof t.valueOf?t.valueOf():t;t=i(e)?e+\"\":e}if(\"string\"!=typeof t)return 0===t?t:+t;t=n(t);var r=s.test(t);return r||u.test(t)?c(t.slice(2),r?2:8):a.test(t)?NaN:+t}},9833:(t,e,r)=>{var n=r(531);t.exports=function toString(t){return null==t?\"\":n(t)}},1700:(t,e,r)=>{var n=r(8805)(\"toUpperCase\");t.exports=n},8748:(t,e,r)=>{var n=r(9029),i=r(3157),o=r(9833),a=r(2757);t.exports=function words(t,e,r){return t=o(t),void 0===(e=r?void 0:e)?i(t)?a(t):n(t):t.match(e)||[]}},7287:(t,e,r)=>{var n=r(4865),i=r(1757);t.exports=function zipObject(t,e){return i(t||[],e||[],n)}},7418:t=>{\"use strict\";var e=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;t.exports=function shouldUseNative(){try{if(!Object.assign)return!1;var t=new String(\"abc\");if(t[5]=\"de\",\"5\"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e[\"_\"+String.fromCharCode(r)]=r;if(\"0123456789\"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(\"\"))return!1;var n={};return\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){n[t]=t})),\"abcdefghijklmnopqrst\"===Object.keys(Object.assign({},n)).join(\"\")}catch(t){return!1}}()?Object.assign:function(t,i){for(var o,a,s=function toObject(t){if(null==t)throw new TypeError(\"Object.assign cannot be called with null or undefined\");return Object(t)}(t),u=1;u<arguments.length;u++){for(var c in o=Object(arguments[u]))r.call(o,c)&&(s[c]=o[c]);if(e){a=e(o);for(var f=0;f<a.length;f++)n.call(o,a[f])&&(s[a[f]]=o[a[f]])}}return s}},4155:t=>{var e,r,n=t.exports={};function defaultSetTimout(){throw new Error(\"setTimeout has not been defined\")}function defaultClearTimeout(){throw new Error(\"clearTimeout has not been defined\")}function runTimeout(t){if(e===setTimeout)return setTimeout(t,0);if((e===defaultSetTimout||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(r){try{return e.call(null,t,0)}catch(r){return e.call(this,t,0)}}}!function(){try{e=\"function\"==typeof setTimeout?setTimeout:defaultSetTimout}catch(t){e=defaultSetTimout}try{r=\"function\"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(t){r=defaultClearTimeout}}();var i,o=[],a=!1,s=-1;function cleanUpNextTick(){a&&i&&(a=!1,i.length?o=i.concat(o):s=-1,o.length&&drainQueue())}function drainQueue(){if(!a){var t=runTimeout(cleanUpNextTick);a=!0;for(var e=o.length;e;){for(i=o,o=[];++s<e;)i&&i[s].run();s=-1,e=o.length}i=null,a=!1,function runClearTimeout(t){if(r===clearTimeout)return clearTimeout(t);if((r===defaultClearTimeout||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{return r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function Item(t,e){this.fun=t,this.array=e}function noop(){}n.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)e[r-1]=arguments[r];o.push(new Item(t,e)),1!==o.length||a||runTimeout(drainQueue)},Item.prototype.run=function(){this.fun.apply(null,this.array)},n.title=\"browser\",n.browser=!0,n.env={},n.argv=[],n.version=\"\",n.versions={},n.on=noop,n.addListener=noop,n.once=noop,n.off=noop,n.removeListener=noop,n.removeAllListeners=noop,n.emit=noop,n.prependListener=noop,n.prependOnceListener=noop,n.listeners=function(t){return[]},n.binding=function(t){throw new Error(\"process.binding is not supported\")},n.cwd=function(){return\"/\"},n.chdir=function(t){throw new Error(\"process.chdir is not supported\")},n.umask=function(){return 0}},1798:(t,e,r)=>{\"use strict\";var n=r(4155),i=65536,o=4294967295;var a=r(9509).Buffer,s=r.g.crypto||r.g.msCrypto;s&&s.getRandomValues?t.exports=function randomBytes(t,e){if(t>o)throw new RangeError(\"requested too many random bytes\");var r=a.allocUnsafe(t);if(t>0)if(t>i)for(var u=0;u<t;u+=i)s.getRandomValues(r.slice(u,u+i));else s.getRandomValues(r);if(\"function\"==typeof e)return n.nextTick((function(){e(null,r)}));return r}:t.exports=function oldBrowser(){throw new Error(\"Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11\")}},2408:(t,e,r)=>{\"use strict\";var n=r(7418),i=60103,o=60106;e.Fragment=60107,e.StrictMode=60108,e.Profiler=60114;var a=60109,s=60110,u=60112;e.Suspense=60113;var c=60115,f=60116;if(\"function\"==typeof Symbol&&Symbol.for){var l=Symbol.for;i=l(\"react.element\"),o=l(\"react.portal\"),e.Fragment=l(\"react.fragment\"),e.StrictMode=l(\"react.strict_mode\"),e.Profiler=l(\"react.profiler\"),a=l(\"react.provider\"),s=l(\"react.context\"),u=l(\"react.forward_ref\"),e.Suspense=l(\"react.suspense\"),c=l(\"react.memo\"),f=l(\"react.lazy\")}var p=\"function\"==typeof Symbol&&Symbol.iterator;function z(t){for(var e=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+t,r=1;r<arguments.length;r++)e+=\"&args[]=\"+encodeURIComponent(arguments[r]);return\"Minified React error #\"+t+\"; visit \"+e+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},d={};function C(t,e,r){this.props=t,this.context=e,this.refs=d,this.updater=r||h}function D(){}function E(t,e,r){this.props=t,this.context=e,this.refs=d,this.updater=r||h}C.prototype.isReactComponent={},C.prototype.setState=function(t,e){if(\"object\"!=typeof t&&\"function\"!=typeof t&&null!=t)throw Error(z(85));this.updater.enqueueSetState(this,t,e,\"setState\")},C.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,\"forceUpdate\")},D.prototype=C.prototype;var M=E.prototype=new D;M.constructor=E,n(M,C.prototype),M.isPureReactComponent=!0;var w={current:null},g=Object.prototype.hasOwnProperty,_={key:!0,ref:!0,__self:!0,__source:!0};function J(t,e,r){var n,o={},a=null,s=null;if(null!=e)for(n in void 0!==e.ref&&(s=e.ref),void 0!==e.key&&(a=\"\"+e.key),e)g.call(e,n)&&!_.hasOwnProperty(n)&&(o[n]=e[n]);var u=arguments.length-2;if(1===u)o.children=r;else if(1<u){for(var c=Array(u),f=0;f<u;f++)c[f]=arguments[f+2];o.children=c}if(t&&t.defaultProps)for(n in u=t.defaultProps)void 0===o[n]&&(o[n]=u[n]);return{$$typeof:i,type:t,key:a,ref:s,props:o,_owner:w.current}}function L(t){return\"object\"==typeof t&&null!==t&&t.$$typeof===i}var v=/\\/+/g;function N(t,e){return\"object\"==typeof t&&null!==t&&null!=t.key?function escape(t){var e={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+t.replace(/[=:]/g,(function(t){return e[t]}))}(\"\"+t.key):e.toString(36)}function O(t,e,r,n,a){var s=typeof t;\"undefined\"!==s&&\"boolean\"!==s||(t=null);var u=!1;if(null===t)u=!0;else switch(s){case\"string\":case\"number\":u=!0;break;case\"object\":switch(t.$$typeof){case i:case o:u=!0}}if(u)return a=a(u=t),t=\"\"===n?\".\"+N(u,0):n,Array.isArray(a)?(r=\"\",null!=t&&(r=t.replace(v,\"$&/\")+\"/\"),O(a,e,r,\"\",(function(t){return t}))):null!=a&&(L(a)&&(a=function K(t,e){return{$$typeof:i,type:t.type,key:e,ref:t.ref,props:t.props,_owner:t._owner}}(a,r+(!a.key||u&&u.key===a.key?\"\":(\"\"+a.key).replace(v,\"$&/\")+\"/\")+t)),e.push(a)),1;if(u=0,n=\"\"===n?\".\":n+\":\",Array.isArray(t))for(var c=0;c<t.length;c++){var f=n+N(s=t[c],c);u+=O(s,e,r,f,a)}else if(f=function y(t){return null===t||\"object\"!=typeof t?null:\"function\"==typeof(t=p&&t[p]||t[\"@@iterator\"])?t:null}(t),\"function\"==typeof f)for(t=f.call(t),c=0;!(s=t.next()).done;)u+=O(s=s.value,e,r,f=n+N(s,c++),a);else if(\"object\"===s)throw e=\"\"+t,Error(z(31,\"[object Object]\"===e?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":e));return u}function P(t,e,r){if(null==t)return t;var n=[],i=0;return O(t,n,\"\",\"\",(function(t){return e.call(r,t,i++)})),n}function Q(t){if(-1===t._status){var e=t._result;e=e(),t._status=0,t._result=e,e.then((function(e){0===t._status&&(e=e.default,t._status=1,t._result=e)}),(function(e){0===t._status&&(t._status=2,t._result=e)}))}if(1===t._status)return t._result;throw t._result}var I={current:null};function S(){var t=I.current;if(null===t)throw Error(z(321));return t}var m={ReactCurrentDispatcher:I,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:n};e.Children={map:P,forEach:function(t,e,r){P(t,(function(){e.apply(this,arguments)}),r)},count:function(t){var e=0;return P(t,(function(){e++})),e},toArray:function(t){return P(t,(function(t){return t}))||[]},only:function(t){if(!L(t))throw Error(z(143));return t}},e.Component=C,e.PureComponent=E,e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=m,e.cloneElement=function(t,e,r){if(null==t)throw Error(z(267,t));var o=n({},t.props),a=t.key,s=t.ref,u=t._owner;if(null!=e){if(void 0!==e.ref&&(s=e.ref,u=w.current),void 0!==e.key&&(a=\"\"+e.key),t.type&&t.type.defaultProps)var c=t.type.defaultProps;for(f in e)g.call(e,f)&&!_.hasOwnProperty(f)&&(o[f]=void 0===e[f]&&void 0!==c?c[f]:e[f])}var f=arguments.length-2;if(1===f)o.children=r;else if(1<f){c=Array(f);for(var l=0;l<f;l++)c[l]=arguments[l+2];o.children=c}return{$$typeof:i,type:t.type,key:a,ref:s,props:o,_owner:u}},e.createContext=function(t,e){return void 0===e&&(e=null),(t={$$typeof:s,_calculateChangedBits:e,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:a,_context:t},t.Consumer=t},e.createElement=J,e.createFactory=function(t){var e=J.bind(null,t);return e.type=t,e},e.createRef=function(){return{current:null}},e.forwardRef=function(t){return{$$typeof:u,render:t}},e.isValidElement=L,e.lazy=function(t){return{$$typeof:f,_payload:{_status:-1,_result:t},_init:Q}},e.memo=function(t,e){return{$$typeof:c,type:t,compare:void 0===e?null:e}},e.useCallback=function(t,e){return S().useCallback(t,e)},e.useContext=function(t,e){return S().useContext(t,e)},e.useDebugValue=function(){},e.useEffect=function(t,e){return S().useEffect(t,e)},e.useImperativeHandle=function(t,e,r){return S().useImperativeHandle(t,e,r)},e.useLayoutEffect=function(t,e){return S().useLayoutEffect(t,e)},e.useMemo=function(t,e){return S().useMemo(t,e)},e.useReducer=function(t,e,r){return S().useReducer(t,e,r)},e.useRef=function(t){return S().useRef(t)},e.useState=function(t){return S().useState(t)},e.version=\"17.0.2\"},7294:(t,e,r)=>{\"use strict\";t.exports=r(2408)},9509:(t,e,r)=>{var n=r(8764),i=n.Buffer;function copyProps(t,e){for(var r in t)e[r]=t[r]}function SafeBuffer(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(copyProps(n,e),e.Buffer=SafeBuffer),SafeBuffer.prototype=Object.create(i.prototype),copyProps(i,SafeBuffer),SafeBuffer.from=function(t,e,r){if(\"number\"==typeof t)throw new TypeError(\"Argument must not be a number\");return i(t,e,r)},SafeBuffer.alloc=function(t,e,r){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");var n=i(t);return void 0!==e?\"string\"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},SafeBuffer.allocUnsafe=function(t){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");return i(t)},SafeBuffer.allocUnsafeSlow=function(t){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");return n.SlowBuffer(t)}},4189:(t,e,r)=>{var n=r(9509).Buffer;function Hash(t,e){this._block=n.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}Hash.prototype.update=function(t,e){\"string\"==typeof t&&(e=e||\"utf8\",t=n.from(t,e));for(var r=this._block,i=this._blockSize,o=t.length,a=this._len,s=0;s<o;){for(var u=a%i,c=Math.min(o-s,i-u),f=0;f<c;f++)r[u+f]=t[s+f];s+=c,(a+=c)%i==0&&this._update(r)}return this._len+=o,this},Hash.prototype.digest=function(t){var e=this._len%this._blockSize;this._block[e]=128,this._block.fill(0,e+1),e>=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},Hash.prototype._update=function(){throw new Error(\"_update must be implemented by subclass\")},t.exports=Hash},9072:(t,e,r)=>{var n=t.exports=function SHA(t){t=t.toLowerCase();var e=n[t];if(!e)throw new Error(t+\" is not supported (we accept pull requests)\");return new e};n.sha=r(4448),n.sha1=r(8336),n.sha224=r(8432),n.sha256=r(7499),n.sha384=r(1686),n.sha512=r(8862)},4448:(t,e,r)=>{var n=r(5717),i=r(4189),o=r(9509).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function Sha(){this.init(),this._w=s,i.call(this,64,56)}function rotl30(t){return t<<30|t>>>2}function ft(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(Sha,i),Sha.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},Sha.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,c=0;c<16;++c)r[c]=t.readInt32BE(4*c);for(;c<80;++c)r[c]=r[c-3]^r[c-8]^r[c-14]^r[c-16];for(var f=0;f<80;++f){var l=~~(f/20),p=0|((e=n)<<5|e>>>27)+ft(l,i,o,s)+u+r[f]+a[l];u=s,s=o,o=rotl30(i),i=n,n=p}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},Sha.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=Sha},8336:(t,e,r)=>{var n=r(5717),i=r(4189),o=r(9509).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function Sha1(){this.init(),this._w=s,i.call(this,64,56)}function rotl5(t){return t<<5|t>>>27}function rotl30(t){return t<<30|t>>>2}function ft(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(Sha1,i),Sha1.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},Sha1.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,c=0;c<16;++c)r[c]=t.readInt32BE(4*c);for(;c<80;++c)r[c]=(e=r[c-3]^r[c-8]^r[c-14]^r[c-16])<<1|e>>>31;for(var f=0;f<80;++f){var l=~~(f/20),p=rotl5(n)+ft(l,i,o,s)+u+r[f]+a[l]|0;u=s,s=o,o=rotl30(i),i=n,n=p}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},Sha1.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=Sha1},8432:(t,e,r)=>{var n=r(5717),i=r(7499),o=r(4189),a=r(9509).Buffer,s=new Array(64);function Sha224(){this.init(),this._w=s,o.call(this,64,56)}n(Sha224,i),Sha224.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},Sha224.prototype._hash=function(){var t=a.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t},t.exports=Sha224},7499:(t,e,r)=>{var n=r(5717),i=r(4189),o=r(9509).Buffer,a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function Sha256(){this.init(),this._w=s,i.call(this,64,56)}function ch(t,e,r){return r^t&(e^r)}function maj(t,e,r){return t&e|r&(t|e)}function sigma0(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function sigma1(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function gamma0(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}n(Sha256,i),Sha256.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},Sha256.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,c=0|this._f,f=0|this._g,l=0|this._h,p=0;p<16;++p)r[p]=t.readInt32BE(4*p);for(;p<64;++p)r[p]=0|(((e=r[p-2])>>>17|e<<15)^(e>>>19|e<<13)^e>>>10)+r[p-7]+gamma0(r[p-15])+r[p-16];for(var h=0;h<64;++h){var d=l+sigma1(u)+ch(u,c,f)+a[h]+r[h]|0,M=sigma0(n)+maj(n,i,o)|0;l=f,f=c,c=u,u=s+d|0,s=o,o=i,i=n,n=d+M|0}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0,this._f=c+this._f|0,this._g=f+this._g|0,this._h=l+this._h|0},Sha256.prototype._hash=function(){var t=o.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},t.exports=Sha256},1686:(t,e,r)=>{var n=r(5717),i=r(8862),o=r(4189),a=r(9509).Buffer,s=new Array(160);function Sha384(){this.init(),this._w=s,o.call(this,128,112)}n(Sha384,i),Sha384.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},Sha384.prototype._hash=function(){var t=a.allocUnsafe(48);function writeInt64BE(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),t},t.exports=Sha384},8862:(t,e,r)=>{var n=r(5717),i=r(4189),o=r(9509).Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function Sha512(){this.init(),this._w=s,i.call(this,128,112)}function Ch(t,e,r){return r^t&(e^r)}function maj(t,e,r){return t&e|r&(t|e)}function sigma0(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function sigma1(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function Gamma0(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function Gamma0l(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function Gamma1(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function Gamma1l(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function getCarry(t,e){return t>>>0<e>>>0?1:0}n(Sha512,i),Sha512.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},Sha512.prototype._update=function(t){for(var e=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,o=0|this._dh,s=0|this._eh,u=0|this._fh,c=0|this._gh,f=0|this._hh,l=0|this._al,p=0|this._bl,h=0|this._cl,d=0|this._dl,M=0|this._el,w=0|this._fl,g=0|this._gl,_=0|this._hl,v=0;v<32;v+=2)e[v]=t.readInt32BE(4*v),e[v+1]=t.readInt32BE(4*v+4);for(;v<160;v+=2){var I=e[v-30],m=e[v-30+1],j=Gamma0(I,m),b=Gamma0l(m,I),x=Gamma1(I=e[v-4],m=e[v-4+1]),A=Gamma1l(m,I),T=e[v-14],k=e[v-14+1],B=e[v-32],U=e[v-32+1],Y=b+k|0,q=j+T+getCarry(Y,b)|0;q=(q=q+x+getCarry(Y=Y+A|0,A)|0)+B+getCarry(Y=Y+U|0,U)|0,e[v]=q,e[v+1]=Y}for(var R=0;R<160;R+=2){q=e[R],Y=e[R+1];var W=maj(r,n,i),G=maj(l,p,h),V=sigma0(r,l),H=sigma0(l,r),Z=sigma1(s,M),$=sigma1(M,s),X=a[R],tt=a[R+1],et=Ch(s,u,c),rt=Ch(M,w,g),nt=_+$|0,it=f+Z+getCarry(nt,_)|0;it=(it=(it=it+et+getCarry(nt=nt+rt|0,rt)|0)+X+getCarry(nt=nt+tt|0,tt)|0)+q+getCarry(nt=nt+Y|0,Y)|0;var ot=H+G|0,at=V+W+getCarry(ot,H)|0;f=c,_=g,c=u,g=w,u=s,w=M,s=o+it+getCarry(M=d+nt|0,d)|0,o=i,d=h,i=n,h=p,n=r,p=l,r=it+at+getCarry(l=nt+ot|0,nt)|0}this._al=this._al+l|0,this._bl=this._bl+p|0,this._cl=this._cl+h|0,this._dl=this._dl+d|0,this._el=this._el+M|0,this._fl=this._fl+w|0,this._gl=this._gl+g|0,this._hl=this._hl+_|0,this._ah=this._ah+r+getCarry(this._al,l)|0,this._bh=this._bh+n+getCarry(this._bl,p)|0,this._ch=this._ch+i+getCarry(this._cl,h)|0,this._dh=this._dh+o+getCarry(this._dl,d)|0,this._eh=this._eh+s+getCarry(this._el,M)|0,this._fh=this._fh+u+getCarry(this._fl,w)|0,this._gh=this._gh+c+getCarry(this._gl,g)|0,this._hh=this._hh+f+getCarry(this._hl,_)|0},Sha512.prototype._hash=function(){var t=o.allocUnsafe(64);function writeInt64BE(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),writeInt64BE(this._gh,this._gl,48),writeInt64BE(this._hh,this._hl,56),t},t.exports=Sha512},1125:(t,e,r)=>{var n=r(3685),i=r(7696);t.exports=function _defineProperty(t,e,r){return(e=i(e))in t?n(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t},t.exports.__esModule=!0,t.exports.default=t.exports},3101:(t,e,r)=>{var n=r(269),i=r(4122);function _extends(){var e;return t.exports=_extends=n?i(e=n).call(e):function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},t.exports.__esModule=!0,t.exports.default=t.exports,_extends.apply(this,arguments)}t.exports=_extends,t.exports.__esModule=!0,t.exports.default=t.exports},8504:(t,e,r)=>{var n=r(1384),i=r(474).default;t.exports=function _toPrimitive(t,e){if(\"object\"!==i(t)||null===t)return t;var r=t[n];if(void 0!==r){var o=r.call(t,e||\"default\");if(\"object\"!==i(o))return o;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)},t.exports.__esModule=!0,t.exports.default=t.exports},7696:(t,e,r)=>{var n=r(474).default,i=r(8504);t.exports=function _toPropertyKey(t){var e=i(t,\"string\");return\"symbol\"===n(e)?e:String(e)},t.exports.__esModule=!0,t.exports.default=t.exports},474:(t,e,r)=>{var n=r(6600),i=r(9759);function _typeof(e){return t.exports=_typeof=\"function\"==typeof n&&\"symbol\"==typeof i?function(t){return typeof t}:function(t){return t&&\"function\"==typeof n&&t.constructor===n&&t!==n.prototype?\"symbol\":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,_typeof(e)}t.exports=_typeof,t.exports.__esModule=!0,t.exports.default=t.exports}},e={};function __webpack_require__(r){var n=e[r];if(void 0!==n)return n.exports;var i=e[r]={id:r,loaded:!1,exports:{}};return t[r].call(i.exports,i,i.exports,__webpack_require__),i.loaded=!0,i.exports}__webpack_require__.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return __webpack_require__.d(e,{a:e}),e},__webpack_require__.d=(t,e)=>{for(var r in e)__webpack_require__.o(e,r)&&!__webpack_require__.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},__webpack_require__.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(t){if(\"object\"==typeof window)return window}}(),__webpack_require__.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),__webpack_require__.r=t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},__webpack_require__.nmd=t=>(t.paths=[],t.children||(t.children=[]),t);var r={};return(()=>{\"use strict\";__webpack_require__.d(r,{default:()=>ge});var t={};__webpack_require__.r(t),__webpack_require__.d(t,{TOGGLE_CONFIGS:()=>ce,UPDATE_CONFIGS:()=>ue,loaded:()=>loaded,toggle:()=>toggle,update:()=>update});var e={};__webpack_require__.r(e),__webpack_require__.d(e,{downloadConfig:()=>downloadConfig,getConfigByUrl:()=>getConfigByUrl});var n={};__webpack_require__.r(n),__webpack_require__.d(n,{get:()=>get});var i=__webpack_require__(7294);class StandaloneLayout extends i.Component{render(){const{getComponent:t}=this.props,e=t(\"Container\"),r=t(\"Row\"),n=t(\"Col\"),o=t(\"Topbar\",!0),a=t(\"BaseLayout\",!0),s=t(\"onlineValidatorBadge\",!0);return i.createElement(e,{className:\"swagger-ui\"},o?i.createElement(o,null):null,i.createElement(a,null),i.createElement(r,null,i.createElement(n,null,i.createElement(s,null))))}}const o=StandaloneLayout,stadalone_layout=()=>({components:{StandaloneLayout:o}});var a=__webpack_require__(1125),s=__webpack_require__.n(a),u=__webpack_require__(3393),c=__webpack_require__.n(u);__webpack_require__(7967),__webpack_require__(1540),__webpack_require__(1700),__webpack_require__(8306),__webpack_require__(3311),__webpack_require__(9704),__webpack_require__(7813),__webpack_require__(3560),__webpack_require__(8269),__webpack_require__(1798),__webpack_require__(9072);const f=function makeWindow(){var t={location:{},history:{},open:()=>{},close:()=>{},File:function(){},FormData:function(){}};if(\"undefined\"==typeof window)return t;try{t=window;for(var e of[\"File\",\"Blob\",\"FormData\"])e in window&&(t[e]=window[e])}catch(t){console.error(t)}return t}();c().Set.of(\"type\",\"format\",\"items\",\"default\",\"maximum\",\"exclusiveMaximum\",\"minimum\",\"exclusiveMinimum\",\"maxLength\",\"minLength\",\"pattern\",\"maxItems\",\"minItems\",\"uniqueItems\",\"enum\",\"multipleOf\");__webpack_require__(8764).Buffer;const parseSearch=()=>{let t={},e=f.location.search;if(!e)return{};if(\"\"!=e){let r=e.substr(1).split(\"&\");for(let e in r)Object.prototype.hasOwnProperty.call(r,e)&&(e=r[e].split(\"=\"),t[decodeURIComponent(e[0])]=e[1]&&decodeURIComponent(e[1])||\"\")}return t};class TopBar extends i.Component{constructor(t,e){super(t,e),s()(this,\"onUrlChange\",(t=>{let{target:{value:e}}=t;this.setState({url:e})})),s()(this,\"loadSpec\",(t=>{this.flushAuthData(),this.props.specActions.updateUrl(t),this.props.specActions.download(t)})),s()(this,\"onUrlSelect\",(t=>{let e=t.target.value||t.target.href;this.loadSpec(e),this.setSelectedUrl(e),t.preventDefault()})),s()(this,\"downloadUrl\",(t=>{this.loadSpec(this.state.url),t.preventDefault()})),s()(this,\"setSearch\",(t=>{let e=parseSearch();e[\"urls.primaryName\"]=t.name;const r=`${window.location.protocol}//${window.location.host}${window.location.pathname}`;var n;window&&window.history&&window.history.pushState&&window.history.replaceState(null,\"\",`${r}?${n=e,Object.keys(n).map((t=>encodeURIComponent(t)+\"=\"+encodeURIComponent(n[t]))).join(\"&\")}`)})),s()(this,\"setSelectedUrl\",(t=>{const e=this.props.getConfigs().urls||[];e&&e.length&&t&&e.forEach(((e,r)=>{e.url===t&&(this.setState({selectedIndex:r}),this.setSearch(e))}))})),s()(this,\"onFilterChange\",(t=>{let{target:{value:e}}=t;this.props.layoutActions.updateFilter(e)})),this.state={url:t.specSelectors.url(),selectedIndex:0}}UNSAFE_componentWillReceiveProps(t){this.setState({url:t.specSelectors.url()})}flushAuthData(){const{persistAuthorization:t}=this.props.getConfigs();t||this.props.authActions.restoreAuthorization({authorized:{}})}componentDidMount(){const t=this.props.getConfigs(),e=t.urls||[];if(e&&e.length){var r=this.state.selectedIndex;let n=parseSearch()[\"urls.primaryName\"]||t[\"urls.primaryName\"];n&&e.forEach(((t,e)=>{t.name===n&&(this.setState({selectedIndex:e}),r=e)})),this.loadSpec(e[r].url)}}render(){let{getComponent:t,specSelectors:e,getConfigs:r}=this.props;const n=t(\"Button\"),o=t(\"Link\"),a=t(\"Logo\");let s=\"loading\"===e.loadingStatus();const u=[\"download-url-input\"];\"failed\"===e.loadingStatus()&&u.push(\"failed\"),s&&u.push(\"loading\");const{urls:c}=r();let f=[],l=null;if(c){let t=[];c.forEach(((e,r)=>{t.push(i.createElement(\"option\",{key:r,value:e.url},e.name))})),f.push(i.createElement(\"label\",{className:\"select-label\",htmlFor:\"select\"},i.createElement(\"span\",null,\"Select a definition\"),i.createElement(\"select\",{id:\"select\",disabled:s,onChange:this.onUrlSelect,value:c[this.state.selectedIndex].url},t)))}else l=this.downloadUrl,f.push(i.createElement(\"input\",{className:u.join(\" \"),type:\"text\",onChange:this.onUrlChange,value:this.state.url,disabled:s})),f.push(i.createElement(n,{className:\"download-url-button\",onClick:this.downloadUrl},\"Explore\"));return i.createElement(\"div\",{className:\"topbar\"},i.createElement(\"div\",{className:\"wrapper\"},i.createElement(\"div\",{className:\"topbar-wrapper\"},i.createElement(o,null,i.createElement(a,null)),i.createElement(\"form\",{className:\"download-url-wrapper\",onSubmit:l},f.map(((t,e)=>(0,i.cloneElement)(t,{key:e})))))))}}const l=TopBar,components_Logo=()=>i.createElement(\"img\",{height:\"40\",src:\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDA3IDExNiI+DQogIDxkZWZzPg0KICAgIDxzdHlsZT4NCiAgICAgIC5jbHMtMSB7DQogICAgICAgIGNsaXAtcGF0aDogdXJsKCNjbGlwLVNXX1RNLWxvZ28tb24tZGFyayk7DQogICAgICB9DQoNCiAgICAgIC5jbHMtMiB7DQogICAgICAgIGZpbGw6ICNmZmY7DQogICAgICB9DQoNCiAgICAgIC5jbHMtMyB7DQogICAgICAgIGZpbGw6ICM4NWVhMmQ7DQogICAgICB9DQoNCiAgICAgIC5jbHMtNCB7DQogICAgICAgIGZpbGw6ICMxNzM2NDc7DQogICAgICB9DQogICAgPC9zdHlsZT4NCiAgICA8Y2xpcFBhdGggaWQ9ImNsaXAtU1dfVE0tbG9nby1vbi1kYXJrIj4NCiAgICAgIDxyZWN0IHdpZHRoPSI0MDciIGhlaWdodD0iMTE2Ii8+DQogICAgPC9jbGlwUGF0aD4NCiAgPC9kZWZzPg0KICA8ZyBpZD0iU1dfVE0tbG9nby1vbi1kYXJrIiBjbGFzcz0iY2xzLTEiPg0KICAgIDxnIGlkPSJTV19Jbi1Qcm9kdWN0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMC4zMDEpIj4NCiAgICAgIDxwYXRoIGlkPSJQYXRoXzI5MzYiIGRhdGEtbmFtZT0iUGF0aCAyOTM2IiBjbGFzcz0iY2xzLTIiIGQ9Ik0zNTkuMTUsNzAuNjc0aC0uN1Y2Ni45OTJoLTEuMjZ2LS42aDMuMjE5di42SDM1OS4xNVoiLz4NCiAgICAgIDxwYXRoIGlkPSJQYXRoXzI5MzciIGRhdGEtbmFtZT0iUGF0aCAyOTM3IiBjbGFzcz0iY2xzLTIiIGQ9Ik0zNjMuMjE3LDcwLjY3NCwzNjEuOTc1LDY3LjFoLS4wMjNxLjA1LjguMDUsMS40OTR2Mi4wODNoLS42MzZWNjYuMzkxaC45ODdsMS4xOSwzLjQwN2guMDE3bDEuMjI1LTMuNDA3aC45OXY0LjI4M0gzNjUuMVY2OC41NTZjMC0uMjEzLjAwNi0uNDkuMDE2LS44MzJzLjAyLS41NDkuMDI4LS42MjFoLS4wMjNsLTEuMjg2LDMuNTcxWiIvPg0KICAgICAgPHBhdGggaWQ9IlBhdGhfMjkzOCIgZGF0YS1uYW1lPSJQYXRoIDI5MzgiIGNsYXNzPSJjbHMtMyIgZD0iTTUwLjMyOCw5Ny42NjlBNDcuNjQyLDQ3LjY0MiwwLDEsMSw5Ny45NzEsNTAuMDI3LDQ3LjY0Miw0Ny42NDIsMCwwLDEsNTAuMzI4LDk3LjY2OVoiLz4NCiAgICAgIDxwYXRoIGlkPSJQYXRoXzI5MzkiIGRhdGEtbmFtZT0iUGF0aCAyOTM5IiBjbGFzcz0iY2xzLTMiIGQ9Ik01MC4zMjgsNC43NjlBNDUuMjU4LDQ1LjI1OCwwLDEsMSw1LjA3LDUwLjAyNyw0NS4yNTgsNDUuMjU4LDAsMCwxLDUwLjMyOCw0Ljc2OW0wLTQuNzY5YTUwLjAyNyw1MC4wMjcsMCwxLDAsNTAuMDI3LDUwLjAyN0E1MC4wMjcsNTAuMDI3LDAsMCwwLDUwLjMyOCwwWiIvPg0KICAgICAgPHBhdGggaWQ9IlBhdGhfMjk0MCIgZGF0YS1uYW1lPSJQYXRoIDI5NDAiIGNsYXNzPSJjbHMtNCIgZD0iTTMxLjgsMzMuODU0Yy0uMTU0LDEuNzEyLjA1OCwzLjQ4Mi0uMDU3LDUuMjEzYTQyLjY2NSw0Mi42NjUsMCwwLDEtLjY5Myw1LjE1Niw5LjUzLDkuNTMsMCwwLDEtNC4xLDUuODI5YzQuMDc5LDIuNjU0LDQuNTQsNi43NzEsNC44MSwxMC45NDYuMTM1LDIuMjUuMDc3LDQuNTIuMzA4LDYuNzUyLjE3MywxLjczMS44NDYsMi4xNzQsMi42MzYsMi4yMzEuNzMuMDIsMS40OCwwLDIuMzI3LDBWNzUuMzNjLTUuMjkuOS05LjY1Ny0uNi0xMC43MzQtNS4wNzlhMzAuNzYsMzAuNzYsMCwwLDEtLjY1NC01Yy0uMTE3LTEuNzg5LjA3Ni0zLjU3OC0uMDU4LTUuMzY3LS4zODYtNC45MDYtMS4wMi02LjU2LTUuNzEzLTYuNzkxdi02LjFBOS4xOTEsOS4xOTEsMCwwLDEsMjAuOSw0Ni44MmMyLjU3Ny0uMTM1LDMuNjc0LS45MjQsNC4yMzEtMy40NjNhMjkuMywyOS4zLDAsMCwwLC40ODEtNC4zMjksODIuMSw4Mi4xLDAsMCwxLC42LTguNDA2Yy42NzMtMy45ODIsMy4xMzYtNS45MDYsNy4yMzQtNi4xMzcsMS4xNTQtLjA1NywyLjMyNywwLDMuNjU1LDB2NS40NjRjLS41NTguMDM4LTEuMDM5LjExNS0xLjUzOS4xMTVDMzIuMjI2LDI5Ljk0OSwzMi4wNTIsMzEuMDg0LDMxLjgsMzMuODU0Wm02LjQwNiwxMi42NThoLS4wNzdhMy41MTUsMy41MTUsMCwxLDAtLjM0Niw3LjAyMWguMjMxYTMuNDYxLDMuNDYxLDAsMCwwLDMuNjU1LTMuMjUxVjUwLjA5YTMuNTIzLDMuNTIzLDAsMCwwLTMuNDYxLTMuNTc4Wm0xMi4wNjIsMGEzLjM3MywzLjM3MywwLDAsMC0zLjQ4MiwzLjI1MSwxLjc5LDEuNzksMCwwLDAsLjAyLjMyNywzLjMsMy4zLDAsMCwwLDMuNTc4LDMuNDQzLDMuMjYzLDMuMjYzLDAsMCwwLDMuNDQzLTMuNTU4LDMuMzA4LDMuMzA4LDAsMCwwLTMuNTU3LTMuNDYzWm0xMi4zNTEsMGEzLjU5MiwzLjU5MiwwLDAsMC0zLjY1NSwzLjQ4MkEzLjUyOSwzLjUyOSwwLDAsMCw2Mi41LDUzLjUzM2guMDM5YzEuNzY5LjMwOSwzLjU1OS0xLjQsMy42NzQtMy40NjJhMy41NzEsMy41NzEsMCwwLDAtMy42LTMuNTU5Wm0xNi45NDguMjg4Yy0yLjIzMi0uMS0zLjM0OC0uODQ2LTMuOS0yLjk2MmEyMS40NDcsMjEuNDQ3LDAsMCwxLS42MzUtNC4xMzZjLS4xNTQtMi41NzgtLjEzNS01LjE3NS0uMzA4LTcuNzUzLS40LTYuMTE3LTQuODI4LTguMjUyLTExLjI1NC03LjE5NXY1LjMxYzEuMDE5LDAsMS44MDgsMCwyLjYuMDE5LDEuMzY2LjAxOSwyLjQuNTM5LDIuNTM5LDIuMDU5LjEzNSwxLjM4NS4xMzUsMi43ODkuMjcsNC4xOTMuMjY5LDIuNzkuNDIyLDUuNjE4LjksOC4zNjlBOC43MTUsOC43MTUsMCwwLDAsNzMuNyw1MC4wNTJjLTMuNCwyLjI4OS00LjQwNiw1LjU1OS00LjU3OCw5LjIzNC0uMSwyLjUyLS4xNTQsNS4wNTktLjI4OSw3LjYtLjExNSwyLjMwOC0uOTIzLDMuMDU4LTMuMjUxLDMuMTE2LS42NTQuMDE5LTEuMjg5LjA3Ny0yLjAxOS4xMTV2NS40NDVjMS4zNjUsMCwyLjYxNi4wNzcsMy44NjYsMCwzLjg4Ni0uMjMxLDYuMjMzLTIuMTE3LDctNS44ODdBNDkuMDc5LDQ5LjA3OSwwLDAsMCw3NSw2My40Yy4xMzUtMS45MjMuMTE2LTMuODY2LjMwOC01Ljc3MS4yODktMi45ODIsMS42NTUtNC4yMTMsNC42MzYtNC40YTQuMDM3LDQuMDM3LDAsMCwwLC44MjgtLjE5MnYtNi4xYy0uNS0uMDU4LS44NDMtLjExNS0xLjIwOC0uMTM1WiIvPg0KICAgICAgPHBhdGggaWQ9IlBhdGhfMjk0MSIgZGF0YS1uYW1lPSJQYXRoIDI5NDEiIGNsYXNzPSJjbHMtMiIgZD0iTTE1Mi4yNzMsNTguMTIyYTExLjIyOCwxMS4yMjgsMCwwLDEtNC4zODQsOS40MjRxLTQuMzgzLDMuMzgyLTExLjksMy4zODItOC4xNCwwLTEyLjUyNC0yLjFWNjMuN2EzMi45LDMyLjksMCwwLDAsNi4xMzcsMS44NzksMzIuMywzMi4zLDAsMCwwLDYuNTc1LjY4OXE1LjMyMiwwLDguMDE1LTIuMDJhNi42MjYsNi42MjYsMCwwLDAsMi42OTItNS42Miw3LjIyMiw3LjIyMiwwLDAsMC0uOTU0LTMuOSw4Ljg4NSw4Ljg4NSwwLDAsMC0zLjE5NC0yLjgsNDQuNjM0LDQ0LjYzNCwwLDAsMC02LjgxLTIuOTExcS02LjM4Ny0yLjI4Ni05LjEyNi01LjQxN2ExMS45NTUsMTEuOTU1LDAsMCwxLTIuNzQtOC4xNzJBMTAuMTY0LDEwLjE2NCwwLDAsMSwxMjguMDM5LDI3cTMuOTc3LTMuMTMxLDEwLjUyLTMuMTMxYTMxLDMxLDAsMCwxLDEyLjU1NSwyLjVMMTQ5LjQ1NSwzMWEyOC4zODIsMjguMzgyLDAsMCwwLTExLjAyMS0yLjM4LDEwLjY2OCwxMC42NjgsMCwwLDAtNi42MDYsMS44MTYsNS45ODQsNS45ODQsMCwwLDAtMi4zOCw1LjA0MSw3LjcyMiw3LjcyMiwwLDAsMCwuODc3LDMuOSw4LjI0Miw4LjI0MiwwLDAsMCwyLjk1OSwyLjc4NiwzNi43LDM2LjcsMCwwLDAsNi4zNzEsMi44cTcuMiwyLjU2Niw5LjkxLDUuNTFBMTAuODQsMTAuODQsMCwwLDEsMTUyLjI3Myw1OC4xMjJaIi8+DQogICAgICA8cGF0aCBpZD0iUGF0aF8yOTQyIiBkYXRhLW5hbWU9IlBhdGggMjk0MiIgY2xhc3M9ImNscy0yIiBkPSJNMTg1LjI4OCw3MC4zLDE3OSw1MC4xN3EtLjU5NC0xLjg0OC0yLjIyMi04LjM5MWgtLjI1MXEtMS4yNTIsNS40NzktMi4xOTIsOC40NTNMMTY3Ljg0OSw3MC4zaC02LjAxMWwtOS4zNjEtMzQuMzE1aDUuNDQ3cTMuMzE4LDEyLjkzMSw1LjA1NywxOS42OTNhODAuMTEyLDgwLjExMiwwLDAsMSwxLjk4OCw5LjExMWguMjVxLjM0NS0xLjc4NSwxLjExMi00LjYxOHQxLjMzLTQuNDkzbDYuMjk0LTE5LjY5M2g1LjYzNWw2LjEzNywxOS42OTNhNjYuMzY5LDY2LjM2OSwwLDAsMSwyLjM3OSw5LjA0OGguMjUxYTMzLjE2MywzMy4xNjMsMCwwLDEsLjY3My0zLjQ3NXEuNTQ4LTIuMzQ3LDYuNTI4LTI1LjI2Nmg1LjM4NUwxOTEuNDU2LDcwLjNaIi8+DQogICAgICA8cGF0aCBpZD0iUGF0aF8yOTQzIiBkYXRhLW5hbWU9IlBhdGggMjk0MyIgY2xhc3M9ImNscy0yIiBkPSJNMjI1LjExNSw3MC4zbC0xLjAzMy00Ljg4NWgtLjI1YTE0LjQ0NiwxNC40NDYsMCwwLDEtNS4xMTksNC4zNjgsMTUuNjA4LDE1LjYwOCwwLDAsMS02LjM3MiwxLjE0M3EtNS4xLDAtOC0yLjYzdC0yLjktNy40ODNxMC0xMC40LDE2LjYyNi0xMC45bDUuODIzLS4xODhWNDcuNnEwLTQuMDM4LTEuNzM4LTUuOTY0VDIxNi42LDM5LjcxM2EyMi42MzMsMjIuNjMzLDAsMCwwLTkuNzA2LDIuNjNsLTEuNi0zLjk3N2EyNC40MzcsMjQuNDM3LDAsMCwxLDUuNTU3LTIuMTYsMjQuMDU2LDI0LjA1NiwwLDAsMSw2LjA1OC0uNzgzcTYuMTM2LDAsOS4xLDIuNzI0dDIuOTU5LDguNzM1VjcwLjNabS0xMS43NDEtMy42NjNBMTAuNTQ5LDEwLjU0OSwwLDAsMCwyMjEsNjMuOTc3YTkuODQ1LDkuODQ1LDAsMCwwLDIuNzcxLTcuNDUxdi0zLjFsLTUuMi4yMTlxLTYuMi4yMTktOC45MzksMS45MjZhNS44LDUuOCwwLDAsMC0yLjc0LDUuMzA2LDUuMzU0LDUuMzU0LDAsMCwwLDEuNzA3LDQuMjksNy4wODEsNy4wODEsMCwwLDAsNC43NzUsMS40NzJaIi8+DQogICAgICA8cGF0aCBpZD0iUGF0aF8yOTQ0IiBkYXRhLW5hbWU9IlBhdGggMjk0NCIgY2xhc3M9ImNscy0yIiBkPSJNMjY0LjYsMzUuOTg3djMuMjg3bC02LjM1Ni43NTJhMTEuMTYsMTEuMTYsMCwwLDEsMi4yNTUsNi44NTYsMTAuMTQ4LDEwLjE0OCwwLDAsMS0zLjQ0NCw4LjA0N3EtMy40NDQsMy05LjQ1NiwzYTE1LjczNCwxNS43MzQsMCwwLDEtMi44OC0uMjVRMjQxLjQsNTkuNDM4LDI0MS40LDYyLjFhMi4yNDIsMi4yNDIsMCwwLDAsMS4xNTksMi4wODIsOC40NTYsOC40NTYsMCwwLDAsMy45NzYuNjczaDYuMDc0cTUuNTczLDAsOC41NjMsMi4zNDhhOC4xNTgsOC4xNTgsMCwwLDEsMi45OSw2LjgyNSw5Ljc0Myw5Ljc0MywwLDAsMS00LjU3MSw4LjY4OHEtNC41NzIsMi45ODktMTMuMzM4LDIuOTktNi43MzIsMC0xMC4zNzktMi41YTguMDg3LDguMDg3LDAsMCwxLTMuNjQ3LTcuMDc2LDcuOTQ2LDcuOTQ2LDAsMCwxLDItNS40MTcsMTAuMjExLDEwLjIxMSwwLDAsMSw1LjYzNi0zLjEsNS40MjksNS40MjksMCwwLDEtMi4yMDctMS44NDcsNC44OSw0Ljg5LDAsMCwxLS44OTMtMi45MTIsNS41Myw1LjUzLDAsMCwxLDEtMy4yODgsMTAuNTI5LDEwLjUyOSwwLDAsMSwzLjE2Mi0yLjcyMyw5LjI3NSw5LjI3NSwwLDAsMS00LjMzNi0zLjcyNiwxMC45NDUsMTAuOTQ1LDAsMCwxLTEuNjc1LTYuMDEycTAtNS42MzQsMy4zODItOC42ODh0OS41OC0zLjA1MmExNy40MzksMTcuNDM5LDAsMCwxLDQuODUzLjYyNlpNMjM3LjIzMyw3Ni4wNjJhNC42Niw0LjY2LDAsMCwwLDIuMzQ4LDQuMjI3LDEyLjk3MywxMi45NzMsMCwwLDAsNi43MzIsMS40NHE2LjU0MywwLDkuNjktMS45NTZhNS45OTIsNS45OTIsMCwwLDAsMy4xNDctNS4zMDdxMC0yLjc4Ny0xLjcyMy0zLjg2N3QtNi40ODEtMS4wOGgtNi4yM2E4LjIwNSw4LjIwNSwwLDAsMC01LjUxLDEuNjksNi4wNDMsNi4wNDMsMCwwLDAtMS45NzMsNC44NTNabTIuODE4LTI5LjA4NmE2Ljk4NCw2Ljk4NCwwLDAsMCwyLjAzNSw1LjQ0OCw4LjEyMyw4LjEyMywwLDAsMCw1LjY2NywxLjg0N3E3LjYwOCwwLDcuNjA4LTcuMzg5LDAtNy43MzMtNy43LTcuNzMzYTcuNjI4LDcuNjI4LDAsMCwwLTUuNjM1LDEuOTcycS0xLjk3NiwxLjk3My0xLjk3NSw1Ljg1NVoiLz4NCiAgICAgIDxwYXRoIGlkPSJQYXRoXzI5NDUiIGRhdGEtbmFtZT0iUGF0aCAyOTQ1IiBjbGFzcz0iY2xzLTIiIGQ9Ik0yOTkuMTM2LDM1Ljk4N3YzLjI4N2wtNi4zNTYuNzUyYTExLjE2OCwxMS4xNjgsMCwwLDEsMi4yNTQsNi44NTYsMTAuMTQ1LDEwLjE0NSwwLDAsMS0zLjQ0NCw4LjA0N3EtMy40NDQsMy05LjQ1NSwzYTE1LjczNCwxNS43MzQsMCwwLDEtMi44OC0uMjVxLTMuMzIsMS43NTQtMy4zMTksNC40MTVhMi4yNDMsMi4yNDMsMCwwLDAsMS4xNTgsMi4wODIsOC40NTksOC40NTksMCwwLDAsMy45NzYuNjczaDYuMDc0cTUuNTc0LDAsOC41NjMsMi4zNDhhOC4xNTgsOC4xNTgsMCwwLDEsMi45OSw2LjgyNSw5Ljc0Myw5Ljc0MywwLDAsMS00LjU3MSw4LjY4OHEtNC41NywyLjk4OS0xMy4zMzcsMi45OS02LjczMiwwLTEwLjM3OS0yLjVhOC4wODgsOC4wODgsMCwwLDEtMy42NDgtNy4wNzYsNy45NDcsNy45NDcsMCwwLDEsMi01LjQxNywxMC4yMDcsMTAuMjA3LDAsMCwxLDUuNjM2LTMuMSw1LjQzMiw1LjQzMiwwLDAsMS0yLjIwOC0xLjg0Nyw0Ljg4OSw0Ljg4OSwwLDAsMS0uODkyLTIuOTEyLDUuNTMsNS41MywwLDAsMSwxLTMuMjg4LDEwLjUyOSwxMC41MjksMCwwLDEsMy4xNjItMi43MjMsOS4yNzEsOS4yNzEsMCwwLDEtNC4zMzYtMy43MjYsMTAuOTQ1LDEwLjk0NSwwLDAsMS0xLjY3NS02LjAxMnEwLTUuNjM0LDMuMzgxLTguNjg4dDkuNTgxLTMuMDUyYTE3LjQ0NCwxNy40NDQsMCwwLDEsNC44NTMuNjI2Wk0yNzEuNzcyLDc2LjA2MmE0LjY1OCw0LjY1OCwwLDAsMCwyLjM0OCw0LjIyNywxMi45NjksMTIuOTY5LDAsMCwwLDYuNzMxLDEuNDRxNi41NDQsMCw5LjY5MS0xLjk1NmE1Ljk5Myw1Ljk5MywwLDAsMCwzLjE0Ni01LjMwN3EwLTIuNzg3LTEuNzIyLTMuODY3dC02LjQ4MS0xLjA4aC02LjIzYTguMjA4LDguMjA4LDAsMCwwLTUuNTExLDEuNjlBNi4wNDIsNi4wNDIsMCwwLDAsMjcxLjc3Miw3Ni4wNjJabTIuODE4LTI5LjA4NmE2Ljk4NCw2Ljk4NCwwLDAsMCwyLjAzNSw1LjQ0OCw4LjEyMSw4LjEyMSwwLDAsMCw1LjY2NywxLjg0N3E3LjYwNywwLDcuNjA4LTcuMzg5LDAtNy43MzMtNy43LTcuNzMzYTcuNjI5LDcuNjI5LDAsMCwwLTUuNjM1LDEuOTcycS0xLjk3NSwxLjk3My0xLjk3NSw1Ljg1NVoiLz4NCiAgICAgIDxwYXRoIGlkPSJQYXRoXzI5NDYiIGRhdGEtbmFtZT0iUGF0aCAyOTQ2IiBjbGFzcz0iY2xzLTIiIGQ9Ik0zMTYuNzc4LDcwLjkyOHEtNy42MDgsMC0xMi4wMDctNC42MzR0LTQuNC0xMi44NjhxMC04LjMsNC4wODYtMTMuMTgxYTEzLjU3MywxMy41NzMsMCwwLDEsMTAuOTc0LTQuODg0QTEyLjkzOCwxMi45MzgsMCwwLDEsMzI1LjYzOCwzOS42cTMuNzYyLDQuMjQ3LDMuNzYyLDExLjJ2My4yODdIMzA1Ljc1N3EuMTU2LDYuMDQ0LDMuMDUzLDkuMTc0dDguMTU2LDMuMTMxYTI3LjYzMywyNy42MzMsMCwwLDAsMTAuOTU4LTIuMzE3djQuNjM0YTI3LjUsMjcuNSwwLDAsMS01LjIxMywxLjcwNiwyOS4yNTEsMjkuMjUxLDAsMCwxLTUuOTMzLjUxM1ptLTEuNDA5LTMxLjIxNWE4LjQ4OSw4LjQ4OSwwLDAsMC02LjU5MSwyLjY5MiwxMi40MTYsMTIuNDE2LDAsMCwwLTIuOSw3LjQ1MmgxNy45NHEwLTQuOTE2LTIuMTkxLTcuNTNhNy43MTQsNy43MTQsMCwwLDAtNi4yNTgtMi42MTRaIi8+DQogICAgICA8cGF0aCBpZD0iUGF0aF8yOTQ3IiBkYXRhLW5hbWU9IlBhdGggMjk0NyIgY2xhc3M9ImNscy0yIiBkPSJNMzUwLjksMzUuMzYxYTIwLjM4LDIwLjM4LDAsMCwxLDQuMS4zNzVsLS43MjEsNC44MjJhMTcuNzEyLDE3LjcxMiwwLDAsMC0zLjc1Ny0uNDdBOS4xNDIsOS4xNDIsMCwwLDAsMzQzLjQsNDMuNDdhMTIuMzI3LDEyLjMyNywwLDAsMC0yLjk1OSw4LjQyMlY3MC4zaC01LjJWMzUuOTg3aDQuMjlsLjYsNi4zNTZoLjI1YTE1LjA3MiwxNS4wNzIsMCwwLDEsNC42LTUuMTY2LDEwLjM1NiwxMC4zNTYsMCwwLDEsNS45MTktMS44MTZaIi8+DQogICAgICA8cGF0aCBpZD0iUGF0aF8yOTQ4IiBkYXRhLW5hbWU9IlBhdGggMjk0OCIgY2xhc3M9ImNscy0yIiBkPSJNMjU1Ljg1Nyw5Ni42MzhzLTMuNDMtLjM5MS00Ljg1LS4zOTFjLTIuMDU4LDAtMy4xMTEuNzM1LTMuMTExLDIuMTgsMCwxLjU2OC44ODIsMS45MzUsMy43NDgsMi43MTksMy41MjcuOTgsNC44LDEuOTExLDQuOCw0Ljc3NywwLDMuNjc1LTIuMyw1LjI2Ny01LjYxLDUuMjY3YTM1LjY4NywzNS42ODcsMCwwLDEtNS40ODctLjY2MmwuMjctMi4xOHMzLjMwNi40NDEsNS4wNDYuNDQxYzIuMDgyLDAsMy4wMzctLjkzMSwzLjAzNy0yLjcsMC0xLjQyMS0uNzU5LTEuOTEtMy4zMzEtMi41MjMtMy42MjYtLjkzLTUuMTkzLTIuMDMzLTUuMTkzLTQuOTQ4LDAtMy4zODEsMi4yMjktNC43NzYsNS41ODUtNC43NzZhMzcuMiwzNy4yLDAsMCwxLDUuMzE1LjU4N1oiLz4NCiAgICAgIDxwYXRoIGlkPSJQYXRoXzI5NDkiIGRhdGEtbmFtZT0iUGF0aCAyOTQ5IiBjbGFzcz0iY2xzLTIiIGQ9Ik0yNjIuOTY3LDk0LjE0SDI2Ny43bDMuNzQ4LDEzLjEwNkwyNzUuMiw5NC4xNGg0Ljc1MnYxNi43OEgyNzcuMlY5Ni40MmgtLjE0NWwtNC4xOTEsMTMuODE2aC0yLjg0MkwyNjUuODMxLDk2LjQyaC0uMTQ1djE0LjVoLTIuNzE5WiIvPg0KICAgICAgPHBhdGggaWQ9IlBhdGhfMjk1MCIgZGF0YS1uYW1lPSJQYXRoIDI5NTAiIGNsYXNzPSJjbHMtMiIgZD0iTTMyMi4wNTcsOTQuMTRIMzM0LjN2Mi40MjVoLTQuNzI4VjExMC45MmgtMi43NDNWOTYuNTY1aC00Ljc3N1oiLz4NCiAgICAgIDxwYXRoIGlkPSJQYXRoXzI5NTEiIGRhdGEtbmFtZT0iUGF0aCAyOTUxIiBjbGFzcz0iY2xzLTIiIGQ9Ik0zNDYuMTM3LDk0LjE0YzMuMzMyLDAsNS4xMiwxLjI0OSw1LjEyLDQuMzYxLDAsMi4wMzMtLjYzNywzLjAzNy0xLjk4NCwzLjc3MiwxLjQ0NS41NjMsMi40LDEuNTkyLDIuNCwzLjksMCwzLjQzLTIuMDgxLDQuNzUyLTUuMzM5LDQuNzUyaC02LjU2NlY5NC4xNFptLTMuNjUsMi4zNTJ2NC44aDMuNmMxLjY2NiwwLDIuNC0uODMyLDIuNC0yLjQ3NCwwLTEuNjE3LS44MzMtMi4zMjctMi41LTIuMzI3Wm0wLDcuMXY0Ljk3M2gzLjdjMS42ODksMCwyLjY5NC0uNTM5LDIuNjk0LTIuNTQ4LDAtMS45MTEtMS40MjEtMi40MjUtMi43NDQtMi40MjVaIi8+DQogICAgICA8cGF0aCBpZD0iUGF0aF8yOTUyIiBkYXRhLW5hbWU9IlBhdGggMjk1MiIgY2xhc3M9ImNscy0yIiBkPSJNMzU4LjQxNCw5NC4xNEgzNjl2Mi4zNzdoLTcuODY0djQuNzUxaDYuMzk0VjEwMy42aC02LjM5NHY0LjkyNEgzNjl2Mi40SDM1OC40MTRaIi8+DQogICAgICA8cGF0aCBpZD0iUGF0aF8yOTUzIiBkYXRhLW5hbWU9IlBhdGggMjk1MyIgY2xhc3M9ImNscy0yIiBkPSJNMzc4Ljc0Nyw5NC4xNGg1LjQxNGw0LjE2NCwxNi43OGgtMi43NDRMMzg0LjM0MiwxMDZoLTUuNzc3bC0xLjIzOSw0LjkyM2gtMi43MTlabS4zNjEsOS40NTZoNC43MDhsLTEuNzM3LTcuMTc4aC0xLjIyNVoiLz4NCiAgICAgIDxwYXRoIGlkPSJQYXRoXzI5NTQiIGRhdGEtbmFtZT0iUGF0aCAyOTU0IiBjbGFzcz0iY2xzLTIiIGQ9Ik0zOTcuMSwxMDUuOTQ3djQuOTczaC0yLjcxOVY5NC4xNGg2LjM3YzMuNywwLDUuNjgzLDIuMTIsNS42ODMsNS44NDMsMCwyLjM3Ni0uOTU2LDQuNTE5LTIuNzQ0LDUuMzUybDIuNzY5LDUuNTg1SDQwMy40N2wtMi40MjYtNC45NzNabTMuNjUxLTkuNDU1SDM5Ny4xdjcuMWgzLjdjMi4wNTcsMCwyLjg0MS0xLjg1LDIuODQxLTMuNTg5LDAtMS45LS45MzQtMy41MTEtMi44OTQtMy41MTFaIi8+DQogICAgICA8cGF0aCBpZD0iUGF0aF8yOTU1IiBkYXRhLW5hbWU9IlBhdGggMjk1NSIgY2xhc3M9ImNscy0yIiBkPSJNMjkwLjAxMyw5NC4xNGg1LjQxM2w0LjE2NCwxNi43OGgtMi43NDNMMjk1LjYwOCwxMDZoLTUuNzc3bC0xLjIzOSw0LjkyM2gtMi43MTlabS4zNjEsOS40NTZoNC43MDdsLTEuNzM3LTcuMTc4aC0xLjIyNVoiLz4NCiAgICAgIDxwYXRoIGlkPSJQYXRoXzI5NTYiIGRhdGEtbmFtZT0iUGF0aCAyOTU2IiBjbGFzcz0iY2xzLTIiIGQ9Ik0zMDguMzYyLDEwNS45NDd2NC45NzNoLTIuNzE5Vjk0LjE0aDYuMzY5YzMuNywwLDUuNjgzLDIuMTIsNS42ODMsNS44NDMsMCwyLjM3Ni0uOTU1LDQuNTE5LTIuNzQzLDUuMzUybDIuNzY4LDUuNTg1aC0yLjk4OWwtMi40MjUtNC45NzNabTMuNjUtOS40NTVoLTMuNjV2Ny4xaDMuN2MyLjA1OCwwLDIuODQxLTEuODUsMi44NDEtMy41ODlDMzE0LjksOTguMSwzMTMuOTcyLDk2LjQ5MiwzMTIuMDEyLDk2LjQ5MloiLz4NCiAgICAgIDxwYXRoIGlkPSJQYXRoXzI5NTciIGRhdGEtbmFtZT0iUGF0aCAyOTU3IiBjbGFzcz0iY2xzLTIiIGQ9Ik0xMzAuNjA2LDEwNy42NDNhMy4wMiwzLjAyLDAsMCwxLTEuMTgsMi41MzcsNS4xMTMsNS4xMTMsMCwwLDEtMy4yLjkxLDguMDMsOC4wMywwLDAsMS0zLjM3MS0uNTY0di0xLjM4M2E4Ljc5Myw4Ljc5MywwLDAsMCwxLjY1Mi41MDYsOC42NzIsOC42NzIsMCwwLDAsMS43Ny4xODYsMy41NjUsMy41NjUsMCwwLDAsMi4xNTctLjU0NCwxLjc4MywxLjc4MywwLDAsMCwuNzI1LTEuNTEyLDEuOTQ3LDEuOTQ3LDAsMCwwLS4yNTctMS4wNSwyLjM5MywyLjM5MywwLDAsMC0uODYtLjc1NCwxMi4xNzEsMTIuMTcxLDAsMCwwLTEuODMzLS43ODQsNS44NDIsNS44NDIsMCwwLDEtMi40NTYtMS40NTgsMy4yMTMsMy4yMTMsMCwwLDEtLjczOC0yLjIsMi43MzYsMi43MzYsMCwwLDEsMS4wNzEtMi4yNjcsNC40NDQsNC40NDQsMCwwLDEsMi44MzEtLjg0Myw4LjM0MSw4LjM0MSwwLDAsMSwzLjM4LjY3NWwtLjQ0NywxLjI0N2E3LjYzOSw3LjYzOSwwLDAsMC0yLjk2Ni0uNjQxLDIuODc4LDIuODc4LDAsMCwwLTEuNzc5LjQ4OSwxLjYxMiwxLjYxMiwwLDAsMC0uNjQsMS4zNTcsMi4wODEsMi4wODEsMCwwLDAsLjIzNiwxLjA0OSwyLjIzMSwyLjIzMSwwLDAsMCwuOC43NSw5Ljg3OCw5Ljg3OCwwLDAsMCwxLjcxNS43NTQsNi44LDYuOCwwLDAsMSwyLjY2NywxLjQ4MywyLjkxOSwyLjkxOSwwLDAsMSwuNzIzLDIuMDU3WiIvPg0KICAgICAgPHBhdGggaWQ9IlBhdGhfMjk1OCIgZGF0YS1uYW1lPSJQYXRoIDI5NTgiIGNsYXNzPSJjbHMtMiIgZD0iTTEzNC40NDcsMTAxLjY4NnY1Ljk5MWEyLjQxMSwyLjQxMSwwLDAsMCwuNTE1LDEuNjg2LDIuMDksMi4wOSwwLDAsMCwxLjYwOS41NTYsMi42MjksMi42MjksMCwwLDAsMi4xMi0uNzkyLDQsNCwwLDAsMCwuNjctMi41ODd2LTQuODU0aDEuNHY5LjIzNkgxMzkuNmwtLjItMS4yMzloLS4wNzVhMi43OTMsMi43OTMsMCwwLDEtMS4xOTMsMS4wNDUsNCw0LDAsMCwxLTEuNzQuMzYyLDMuNTI5LDMuNTI5LDAsMCwxLTIuNTI0LS44LDMuNDA5LDMuNDA5LDAsMCwxLS44MzktMi41NjJ2LTYuMDQyWiIvPg0KICAgICAgPHBhdGggaWQ9IlBhdGhfMjk1OSIgZGF0YS1uYW1lPSJQYXRoIDI5NTkiIGNsYXNzPSJjbHMtMiIgZD0iTTE0OC4yMDYsMTExLjA5YTMuOTkzLDMuOTkzLDAsMCwxLTEuNjQ3LS4zMzMsMy4xLDMuMSwwLDAsMS0xLjI1Mi0xLjAyM2gtLjFhMTIuMjY1LDEyLjI2NSwwLDAsMSwuMSwxLjUzM3YzLjhoLTEuNFYxMDEuNjg2aDEuMTM3bC4xOTQsMS4yNjRoLjA2N2EzLjI1NywzLjI1NywwLDAsMSwxLjI1Ni0xLjEsMy44MzEsMy44MzEsMCwwLDEsMS42NDMtLjMzNywzLjQxMywzLjQxMywwLDAsMSwyLjgzNiwxLjI1Niw2LjY4Myw2LjY4MywwLDAsMS0uMDE3LDcuMDU3LDMuNDIsMy40MiwwLDAsMS0yLjgxNywxLjI2NFptLS4yLTguMzg1YTIuNDgyLDIuNDgyLDAsMCwwLTIuMDQ4Ljc4NCw0LjA0MSw0LjA0MSwwLDAsMC0uNjQ5LDIuNDk0di4zMTJhNC42MjUsNC42MjUsMCwwLDAsLjY0OSwyLjc4NSwyLjQ2NywyLjQ2NywwLDAsMCwyLjA4Mi44MzksMi4xNjQsMi4xNjQsMCwwLDAsMS44NzUtLjk2OSw0LjYsNC42LDAsMCwwLC42NzgtMi42NzEsNC40MjgsNC40MjgsMCwwLDAtLjY3OC0yLjY1MSwyLjIzMiwyLjIzMiwwLDAsMC0xLjkxNS0uOTIzWiIvPg0KICAgICAgPHBhdGggaWQ9IlBhdGhfMjk2MCIgZGF0YS1uYW1lPSJQYXRoIDI5NjAiIGNsYXNzPSJjbHMtMiIgZD0iTTE1OS4wMzksMTExLjA5YTMuOTkzLDMuOTkzLDAsMCwxLTEuNjQ3LS4zMzMsMy4xLDMuMSwwLDAsMS0xLjI1Mi0xLjAyM2gtLjFhMTIuMjY1LDEyLjI2NSwwLDAsMSwuMSwxLjUzM3YzLjhoLTEuNFYxMDEuNjg2aDEuMTM3bC4xOTQsMS4yNjRoLjA2N2EzLjI1NywzLjI1NywwLDAsMSwxLjI1Ni0xLjEsMy44MzEsMy44MzEsMCwwLDEsMS42NDMtLjMzNywzLjQxMywzLjQxMywwLDAsMSwyLjgzNiwxLjI1Niw2LjY4Myw2LjY4MywwLDAsMS0uMDE3LDcuMDU3LDMuNDIsMy40MiwwLDAsMS0yLjgxNywxLjI2NFptLS4yLTguMzg1YTIuNDgyLDIuNDgyLDAsMCwwLTIuMDQ4Ljc4NCw0LjA0MSw0LjA0MSwwLDAsMC0uNjQ5LDIuNDk0di4zMTJhNC42MjUsNC42MjUsMCwwLDAsLjY0OSwyLjc4NSwyLjQ2NywyLjQ2NywwLDAsMCwyLjA4Mi44MzksMi4xNjQsMi4xNjQsMCwwLDAsMS44NzUtLjk2OSw0LjYsNC42LDAsMCwwLC42NzgtMi42NzEsNC40MjgsNC40MjgsMCwwLDAtLjY3OC0yLjY1MSwyLjIzMiwyLjIzMiwwLDAsMC0xLjkxMS0uOTIzWiIvPg0KICAgICAgPHBhdGggaWQ9IlBhdGhfMjk2MSIgZGF0YS1uYW1lPSJQYXRoIDI5NjEiIGNsYXNzPSJjbHMtMiIgZD0iTTE3My42MTIsMTA2LjNhNS4wOTMsNS4wOTMsMCwwLDEtMS4xMzcsMy41MjcsNC4wMDUsNC4wMDUsMCwwLDEtMy4xNDMsMS4yNjgsNC4xNzIsNC4xNzIsMCwwLDEtMi4yLS41ODEsMy44NCwzLjg0LDAsMCwxLTEuNDgzLTEuNjY5LDUuOCw1LjgsMCwwLDEtLjUyMi0yLjU0NSw1LjA4Nyw1LjA4NywwLDAsMSwxLjEyOS0zLjUxOCwzLjk5MSwzLjk5MSwwLDAsMSwzLjEzNS0xLjI2LDMuOTA3LDMuOTA3LDAsMCwxLDMuMDgsMS4yOSw1LjA3MSw1LjA3MSwwLDAsMSwxLjE0MSwzLjQ4OFptLTcuMDM2LDBhNC4zODQsNC4zODQsMCwwLDAsLjcwOCwyLjcsMi44MDksMi44MDksMCwwLDAsNC4xNjcsMCw0LjM2NSw0LjM2NSwwLDAsMCwuNzEyLTIuNyw0LjI5Myw0LjI5MywwLDAsMC0uNzEyLTIuNjc1LDIuNSwyLjUsMCwwLDAtMi4xLS45MTUsMi40NjEsMi40NjEsMCwwLDAtMi4wNzIuOSw0LjMzNCw0LjMzNCwwLDAsMC0uNywyLjY5WiIvPg0KICAgICAgPHBhdGggaWQ9IlBhdGhfMjk2MiIgZGF0YS1uYW1lPSJQYXRoIDI5NjIiIGNsYXNzPSJjbHMtMiIgZD0iTTE4MC41MjUsMTAxLjUxN2E1LjUwNiw1LjUwNiwwLDAsMSwxLjEuMWwtLjE5NCwxLjNhNC43ODYsNC43ODYsMCwwLDAtMS4wMTEtLjEyNywyLjQ2LDIuNDYsMCwwLDAtMS45MTcuOTExLDMuMzE4LDMuMzE4LDAsMCwwLS44LDIuMjY3djQuOTU1aC0xLjR2LTkuMjM2aDEuMTU0bC4xNiwxLjcxaC4wNjhhNC4wNTQsNC4wNTQsMCwwLDEsMS4yMzgtMS4zOSwyLjc4NywyLjc4NywwLDAsMSwxLjYtLjQ5WiIvPg0KICAgICAgPHBhdGggaWQ9IlBhdGhfMjk2MyIgZGF0YS1uYW1lPSJQYXRoIDI5NjMiIGNsYXNzPSJjbHMtMiIgZD0iTTE4Ny4zNjMsMTA5LjkzNmE0LjUwNiw0LjUwNiwwLDAsMCwuNzE2LS4wNTUsNC4zODcsNC4zODcsMCwwLDAsLjU0OC0uMTE0djEuMDdhMi41LDIuNSwwLDAsMS0uNjcuMTgxLDUsNSwwLDAsMS0uOC4wNzJxLTIuNjgsMC0yLjY4LTIuODIzdi01LjQ5NGgtMS4zMjNWMTAyLjFsMS4zMjMtLjU4Mi41OS0xLjk3MmguODA5djIuMTQxaDIuNjh2MS4wODdoLTIuNjh2NS40MzVhMS44NjksMS44NjksMCwwLDAsLjQsMS4yODFBMS4zNzcsMS4zNzcsMCwwLDAsMTg3LjM2MywxMDkuOTM2WiIvPg0KICAgICAgPHBhdGggaWQ9IlBhdGhfMjk2NCIgZGF0YS1uYW1lPSJQYXRoIDI5NjQiIGNsYXNzPSJjbHMtMiIgZD0iTTE5NC41MzgsMTExLjA5YTQuMjM5LDQuMjM5LDAsMCwxLTMuMjMxLTEuMjQ3LDQuODI0LDQuODI0LDAsMCwxLTEuMTg0LTMuNDYzLDUuMzU1LDUuMzU1LDAsMCwxLDEuMS0zLjU0OCwzLjY1MiwzLjY1MiwwLDAsMSwyLjk1NC0xLjMxNSwzLjQ4NCwzLjQ4NCwwLDAsMSwyLjc0NywxLjE0Miw0LjM3OCw0LjM3OCwwLDAsMSwxLjAxMSwzLjAxM3YuODg1aC02LjM2MmEzLjY2LDMuNjYsMCwwLDAsLjgyMiwyLjQ2OSwyLjg0MywyLjg0MywwLDAsMCwyLjIuODQzLDcuNDMxLDcuNDMxLDAsMCwwLDIuOTQ5LS42MjR2MS4yNDdhNy4zNzcsNy4zNzcsMCwwLDEtMS40LjQ1OSw3Ljg2Myw3Ljg2MywwLDAsMS0xLjYuMTM5Wm0tLjM3OS04LjRhMi4yODYsMi4yODYsMCwwLDAtMS43NzQuNzI1LDMuMzM3LDMuMzM3LDAsMCwwLS43NzksMi4wMDZoNC44MjhhMy4wNzIsMy4wNzIsMCwwLDAtLjU5LTIuMDI3LDIuMDc2LDIuMDc2LDAsMCwwLTEuNjg1LS43MDZaIi8+DQogICAgICA8cGF0aCBpZD0iUGF0aF8yOTY1IiBkYXRhLW5hbWU9IlBhdGggMjk2NSIgY2xhc3M9ImNscy0yIiBkPSJNMjA2Ljk1MSwxMDkuNjgzaC0uMDc2YTMuMjg3LDMuMjg3LDAsMCwxLTIuOSwxLjQwNywzLjQyNywzLjQyNywwLDAsMS0yLjgxOS0xLjIzOSw1LjQ1Miw1LjQ1MiwwLDAsMS0xLjAwNi0zLjUyMiw1LjU0Miw1LjU0MiwwLDAsMSwxLjAxMS0zLjU0OCwzLjQsMy40LDAsMCwxLDIuODE0LTEuMjY0LDMuMzYxLDMuMzYxLDAsMCwxLDIuODgzLDEuMzY1aC4xMDlsLS4wNTktLjY2NS0uMDM0LS42NDlWOTcuODA5aDEuNHYxMy4xMTNoLTEuMTM4Wm0tMi44LjIzNmEyLjU1MSwyLjU1MSwwLDAsMCwyLjA3OC0uNzc5LDMuOTQ3LDMuOTQ3LDAsMCwwLC42NDQtMi41MTZ2LS4zYTQuNjM4LDQuNjM4LDAsMCwwLS42NTMtMi44LDIuNDgxLDIuNDgxLDAsMCwwLTIuMDg2LS44MzksMi4xNCwyLjE0LDAsMCwwLTEuODgzLjk1Nyw0Ljc2LDQuNzYsMCwwLDAtLjY1MywyLjcsNC41NTQsNC41NTQsMCwwLDAsLjY0OSwyLjY3MSwyLjE5NCwyLjE5NCwwLDAsMCwxLjkwNi45MDZaIi8+DQogICAgICA8cGF0aCBpZD0iUGF0aF8yOTY2IiBkYXRhLW5hbWU9IlBhdGggMjk2NiIgY2xhc3M9ImNscy0yIiBkPSJNMjIwLjcxMiwxMDEuNTM0YTMuNDM1LDMuNDM1LDAsMCwxLDIuODI3LDEuMjQzLDYuNjUzLDYuNjUzLDAsMCwxLS4wMDksNy4wNTMsMy40MTcsMy40MTcsMCwwLDEtMi44MTgsMS4yNiw0LDQsMCwwLDEtMS42NDgtLjMzMywzLjA5NCwzLjA5NCwwLDAsMS0xLjI1MS0xLjAyM2gtLjFsLS4yOTUsMS4xODhoLTFWOTcuODA5aDEuNFYxMDFxMCwxLjA2OS0uMDY4LDEuOTIxaC4wNjhhMy4zMjIsMy4zMjIsMCwwLDEsMi44OTQtMS4zODdabS0uMiwxLjE3MWEyLjQ0LDIuNDQsMCwwLDAtMi4wNjQuODIyLDYuMzM4LDYuMzM4LDAsMCwwLC4wMTcsNS41NTMsMi40NjQsMi40NjQsMCwwLDAsMi4wODEuODM5LDIuMTU4LDIuMTU4LDAsMCwwLDEuOTIyLS45NCw0LjgyOCw0LjgyOCwwLDAsMCwuNjMyLTIuNyw0LjY0NSw0LjY0NSwwLDAsMC0uNjMyLTIuNjg5LDIuMjQyLDIuMjQyLDAsMCwwLTEuOTU5LS44ODVaIi8+DQogICAgICA8cGF0aCBpZD0iUGF0aF8yOTY3IiBkYXRhLW5hbWU9IlBhdGggMjk2NyIgY2xhc3M9ImNscy0yIiBkPSJNMjI1Ljc1OCwxMDEuNjg2aDEuNWwyLjAyMyw1LjI2N2EyMC4xODgsMjAuMTg4LDAsMCwxLC44MjYsMi42aC4wNjdxLjEwOS0uNDMxLjQ1OS0xLjQ3MXQyLjI4OC02LjRoMS41TDIzMC40NTIsMTEyLjJhNS4yNTMsNS4yNTMsMCwwLDEtMS4zNzgsMi4yMTIsMi45MzIsMi45MzIsMCwwLDEtMS45MzQuNjUzLDUuNjU5LDUuNjU5LDAsMCwxLTEuMjY0LS4xNDNWMTEzLjhhNC45LDQuOSwwLDAsMCwxLjAzNy4xLDIuMTM2LDIuMTM2LDAsMCwwLDIuMDU2LTEuNjE4bC41MTQtMS4zMTRaIi8+DQogICAgPC9nPg0KICA8L2c+DQo8L3N2Zz4NCg==\",alt:\"Swagger UI\"}),top_bar=()=>({components:{Topbar:l,Logo:components_Logo}});function isNothing(t){return null==t}var p={isNothing,isObject:function js_yaml_isObject(t){return\"object\"==typeof t&&null!==t},toArray:function toArray(t){return Array.isArray(t)?t:isNothing(t)?[]:[t]},repeat:function repeat(t,e){var r,n=\"\";for(r=0;r<e;r+=1)n+=t;return n},isNegativeZero:function isNegativeZero(t){return 0===t&&Number.NEGATIVE_INFINITY===1/t},extend:function extend(t,e){var r,n,i,o;if(e)for(r=0,n=(o=Object.keys(e)).length;r<n;r+=1)t[i=o[r]]=e[i];return t}};function formatError(t,e){var r=\"\",n=t.reason||\"(unknown reason)\";return t.mark?(t.mark.name&&(r+='in \"'+t.mark.name+'\" '),r+=\"(\"+(t.mark.line+1)+\":\"+(t.mark.column+1)+\")\",!e&&t.mark.snippet&&(r+=\"\\n\\n\"+t.mark.snippet),n+\" \"+r):n}function YAMLException$1(t,e){Error.call(this),this.name=\"YAMLException\",this.reason=t,this.mark=e,this.message=formatError(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||\"\"}YAMLException$1.prototype=Object.create(Error.prototype),YAMLException$1.prototype.constructor=YAMLException$1,YAMLException$1.prototype.toString=function toString(t){return this.name+\": \"+formatError(this,t)};var h=YAMLException$1;function getLine(t,e,r,n,i){var o=\"\",a=\"\",s=Math.floor(i/2)-1;return n-e>s&&(e=n-s+(o=\" ... \").length),r-n>s&&(r=n+s-(a=\" ...\").length),{str:o+t.slice(e,r).replace(/\\t/g,\"→\")+a,pos:n-e+o.length}}function padStart(t,e){return p.repeat(\" \",e-t.length)+t}var d=function makeSnippet(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),\"number\"!=typeof e.indent&&(e.indent=1),\"number\"!=typeof e.linesBefore&&(e.linesBefore=3),\"number\"!=typeof e.linesAfter&&(e.linesAfter=2);for(var r,n=/\\r?\\n|\\r|\\0/g,i=[0],o=[],a=-1;r=n.exec(t.buffer);)o.push(r.index),i.push(r.index+r[0].length),t.position<=r.index&&a<0&&(a=i.length-2);a<0&&(a=i.length-1);var s,u,c=\"\",f=Math.min(t.line+e.linesAfter,o.length).toString().length,l=e.maxLength-(e.indent+f+3);for(s=1;s<=e.linesBefore&&!(a-s<0);s++)u=getLine(t.buffer,i[a-s],o[a-s],t.position-(i[a]-i[a-s]),l),c=p.repeat(\" \",e.indent)+padStart((t.line-s+1).toString(),f)+\" | \"+u.str+\"\\n\"+c;for(u=getLine(t.buffer,i[a],o[a],t.position,l),c+=p.repeat(\" \",e.indent)+padStart((t.line+1).toString(),f)+\" | \"+u.str+\"\\n\",c+=p.repeat(\"-\",e.indent+f+3+u.pos)+\"^\\n\",s=1;s<=e.linesAfter&&!(a+s>=o.length);s++)u=getLine(t.buffer,i[a+s],o[a+s],t.position-(i[a]-i[a+s]),l),c+=p.repeat(\" \",e.indent)+padStart((t.line+s+1).toString(),f)+\" | \"+u.str+\"\\n\";return c.replace(/\\n$/,\"\")},M=[\"kind\",\"multi\",\"resolve\",\"construct\",\"instanceOf\",\"predicate\",\"represent\",\"representName\",\"defaultStyle\",\"styleAliases\"],w=[\"scalar\",\"sequence\",\"mapping\"];var g=function Type$1(t,e){if(e=e||{},Object.keys(e).forEach((function(e){if(-1===M.indexOf(e))throw new h('Unknown option \"'+e+'\" is met in definition of \"'+t+'\" YAML type.')})),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=function compileStyleAliases(t){var e={};return null!==t&&Object.keys(t).forEach((function(r){t[r].forEach((function(t){e[String(t)]=r}))})),e}(e.styleAliases||null),-1===w.indexOf(this.kind))throw new h('Unknown kind \"'+this.kind+'\" is specified for \"'+t+'\" YAML type.')};function compileList(t,e){var r=[];return t[e].forEach((function(t){var e=r.length;r.forEach((function(r,n){r.tag===t.tag&&r.kind===t.kind&&r.multi===t.multi&&(e=n)})),r[e]=t})),r}function Schema$1(t){return this.extend(t)}Schema$1.prototype.extend=function extend(t){var e=[],r=[];if(t instanceof g)r.push(t);else if(Array.isArray(t))r=r.concat(t);else{if(!t||!Array.isArray(t.implicit)&&!Array.isArray(t.explicit))throw new h(\"Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })\");t.implicit&&(e=e.concat(t.implicit)),t.explicit&&(r=r.concat(t.explicit))}e.forEach((function(t){if(!(t instanceof g))throw new h(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");if(t.loadKind&&\"scalar\"!==t.loadKind)throw new h(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\");if(t.multi)throw new h(\"There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.\")})),r.forEach((function(t){if(!(t instanceof g))throw new h(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\")}));var n=Object.create(Schema$1.prototype);return n.implicit=(this.implicit||[]).concat(e),n.explicit=(this.explicit||[]).concat(r),n.compiledImplicit=compileList(n,\"implicit\"),n.compiledExplicit=compileList(n,\"explicit\"),n.compiledTypeMap=function compileMap(){var t,e,r={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function collectType(t){t.multi?(r.multi[t.kind].push(t),r.multi.fallback.push(t)):r[t.kind][t.tag]=r.fallback[t.tag]=t}for(t=0,e=arguments.length;t<e;t+=1)arguments[t].forEach(collectType);return r}(n.compiledImplicit,n.compiledExplicit),n};var _=Schema$1,v=new g(\"tag:yaml.org,2002:str\",{kind:\"scalar\",construct:function(t){return null!==t?t:\"\"}}),I=new g(\"tag:yaml.org,2002:seq\",{kind:\"sequence\",construct:function(t){return null!==t?t:[]}}),m=new g(\"tag:yaml.org,2002:map\",{kind:\"mapping\",construct:function(t){return null!==t?t:{}}}),j=new _({explicit:[v,I,m]});var b=new g(\"tag:yaml.org,2002:null\",{kind:\"scalar\",resolve:function resolveYamlNull(t){if(null===t)return!0;var e=t.length;return 1===e&&\"~\"===t||4===e&&(\"null\"===t||\"Null\"===t||\"NULL\"===t)},construct:function constructYamlNull(){return null},predicate:function isNull(t){return null===t},represent:{canonical:function(){return\"~\"},lowercase:function(){return\"null\"},uppercase:function(){return\"NULL\"},camelcase:function(){return\"Null\"},empty:function(){return\"\"}},defaultStyle:\"lowercase\"});var x=new g(\"tag:yaml.org,2002:bool\",{kind:\"scalar\",resolve:function resolveYamlBoolean(t){if(null===t)return!1;var e=t.length;return 4===e&&(\"true\"===t||\"True\"===t||\"TRUE\"===t)||5===e&&(\"false\"===t||\"False\"===t||\"FALSE\"===t)},construct:function constructYamlBoolean(t){return\"true\"===t||\"True\"===t||\"TRUE\"===t},predicate:function isBoolean(t){return\"[object Boolean]\"===Object.prototype.toString.call(t)},represent:{lowercase:function(t){return t?\"true\":\"false\"},uppercase:function(t){return t?\"TRUE\":\"FALSE\"},camelcase:function(t){return t?\"True\":\"False\"}},defaultStyle:\"lowercase\"});function isOctCode(t){return 48<=t&&t<=55}function isDecCode(t){return 48<=t&&t<=57}var A=new g(\"tag:yaml.org,2002:int\",{kind:\"scalar\",resolve:function resolveYamlInteger(t){if(null===t)return!1;var e,r,n=t.length,i=0,o=!1;if(!n)return!1;if(\"-\"!==(e=t[i])&&\"+\"!==e||(e=t[++i]),\"0\"===e){if(i+1===n)return!0;if(\"b\"===(e=t[++i])){for(i++;i<n;i++)if(\"_\"!==(e=t[i])){if(\"0\"!==e&&\"1\"!==e)return!1;o=!0}return o&&\"_\"!==e}if(\"x\"===e){for(i++;i<n;i++)if(\"_\"!==(e=t[i])){if(!(48<=(r=t.charCodeAt(i))&&r<=57||65<=r&&r<=70||97<=r&&r<=102))return!1;o=!0}return o&&\"_\"!==e}if(\"o\"===e){for(i++;i<n;i++)if(\"_\"!==(e=t[i])){if(!isOctCode(t.charCodeAt(i)))return!1;o=!0}return o&&\"_\"!==e}}if(\"_\"===e)return!1;for(;i<n;i++)if(\"_\"!==(e=t[i])){if(!isDecCode(t.charCodeAt(i)))return!1;o=!0}return!(!o||\"_\"===e)},construct:function constructYamlInteger(t){var e,r=t,n=1;if(-1!==r.indexOf(\"_\")&&(r=r.replace(/_/g,\"\")),\"-\"!==(e=r[0])&&\"+\"!==e||(\"-\"===e&&(n=-1),e=(r=r.slice(1))[0]),\"0\"===r)return 0;if(\"0\"===e){if(\"b\"===r[1])return n*parseInt(r.slice(2),2);if(\"x\"===r[1])return n*parseInt(r.slice(2),16);if(\"o\"===r[1])return n*parseInt(r.slice(2),8)}return n*parseInt(r,10)},predicate:function isInteger(t){return\"[object Number]\"===Object.prototype.toString.call(t)&&t%1==0&&!p.isNegativeZero(t)},represent:{binary:function(t){return t>=0?\"0b\"+t.toString(2):\"-0b\"+t.toString(2).slice(1)},octal:function(t){return t>=0?\"0o\"+t.toString(8):\"-0o\"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?\"0x\"+t.toString(16).toUpperCase():\"-0x\"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:\"decimal\",styleAliases:{binary:[2,\"bin\"],octal:[8,\"oct\"],decimal:[10,\"dec\"],hexadecimal:[16,\"hex\"]}}),T=new RegExp(\"^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");var k=/^[-+]?[0-9]+e/;var B=new g(\"tag:yaml.org,2002:float\",{kind:\"scalar\",resolve:function resolveYamlFloat(t){return null!==t&&!(!T.test(t)||\"_\"===t[t.length-1])},construct:function constructYamlFloat(t){var e,r;return r=\"-\"===(e=t.replace(/_/g,\"\").toLowerCase())[0]?-1:1,\"+-\".indexOf(e[0])>=0&&(e=e.slice(1)),\".inf\"===e?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:\".nan\"===e?NaN:r*parseFloat(e,10)},predicate:function isFloat(t){return\"[object Number]\"===Object.prototype.toString.call(t)&&(t%1!=0||p.isNegativeZero(t))},represent:function representYamlFloat(t,e){var r;if(isNaN(t))switch(e){case\"lowercase\":return\".nan\";case\"uppercase\":return\".NAN\";case\"camelcase\":return\".NaN\"}else if(Number.POSITIVE_INFINITY===t)switch(e){case\"lowercase\":return\".inf\";case\"uppercase\":return\".INF\";case\"camelcase\":return\".Inf\"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case\"lowercase\":return\"-.inf\";case\"uppercase\":return\"-.INF\";case\"camelcase\":return\"-.Inf\"}else if(p.isNegativeZero(t))return\"-0.0\";return r=t.toString(10),k.test(r)?r.replace(\"e\",\".e\"):r},defaultStyle:\"lowercase\"}),U=j.extend({implicit:[b,x,A,B]}),Y=U,q=new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"),R=new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\\\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\\\.([0-9]*))?(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$\");var W=new g(\"tag:yaml.org,2002:timestamp\",{kind:\"scalar\",resolve:function resolveYamlTimestamp(t){return null!==t&&(null!==q.exec(t)||null!==R.exec(t))},construct:function constructYamlTimestamp(t){var e,r,n,i,o,a,s,u,c=0,f=null;if(null===(e=q.exec(t))&&(e=R.exec(t)),null===e)throw new Error(\"Date resolve error\");if(r=+e[1],n=+e[2]-1,i=+e[3],!e[4])return new Date(Date.UTC(r,n,i));if(o=+e[4],a=+e[5],s=+e[6],e[7]){for(c=e[7].slice(0,3);c.length<3;)c+=\"0\";c=+c}return e[9]&&(f=6e4*(60*+e[10]+ +(e[11]||0)),\"-\"===e[9]&&(f=-f)),u=new Date(Date.UTC(r,n,i,o,a,s,c)),f&&u.setTime(u.getTime()-f),u},instanceOf:Date,represent:function representYamlTimestamp(t){return t.toISOString()}});var G=new g(\"tag:yaml.org,2002:merge\",{kind:\"scalar\",resolve:function resolveYamlMerge(t){return\"<<\"===t||null===t}}),V=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r\";var H=new g(\"tag:yaml.org,2002:binary\",{kind:\"scalar\",resolve:function resolveYamlBinary(t){if(null===t)return!1;var e,r,n=0,i=t.length,o=V;for(r=0;r<i;r++)if(!((e=o.indexOf(t.charAt(r)))>64)){if(e<0)return!1;n+=6}return n%8==0},construct:function constructYamlBinary(t){var e,r,n=t.replace(/[\\r\\n=]/g,\"\"),i=n.length,o=V,a=0,s=[];for(e=0;e<i;e++)e%4==0&&e&&(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)),a=a<<6|o.indexOf(n.charAt(e));return 0===(r=i%4*6)?(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)):18===r?(s.push(a>>10&255),s.push(a>>2&255)):12===r&&s.push(a>>4&255),new Uint8Array(s)},predicate:function isBinary(t){return\"[object Uint8Array]\"===Object.prototype.toString.call(t)},represent:function representYamlBinary(t){var e,r,n=\"\",i=0,o=t.length,a=V;for(e=0;e<o;e++)e%3==0&&e&&(n+=a[i>>18&63],n+=a[i>>12&63],n+=a[i>>6&63],n+=a[63&i]),i=(i<<8)+t[e];return 0===(r=o%3)?(n+=a[i>>18&63],n+=a[i>>12&63],n+=a[i>>6&63],n+=a[63&i]):2===r?(n+=a[i>>10&63],n+=a[i>>4&63],n+=a[i<<2&63],n+=a[64]):1===r&&(n+=a[i>>2&63],n+=a[i<<4&63],n+=a[64],n+=a[64]),n}}),Z=Object.prototype.hasOwnProperty,$=Object.prototype.toString;var X=new g(\"tag:yaml.org,2002:omap\",{kind:\"sequence\",resolve:function resolveYamlOmap(t){if(null===t)return!0;var e,r,n,i,o,a=[],s=t;for(e=0,r=s.length;e<r;e+=1){if(n=s[e],o=!1,\"[object Object]\"!==$.call(n))return!1;for(i in n)if(Z.call(n,i)){if(o)return!1;o=!0}if(!o)return!1;if(-1!==a.indexOf(i))return!1;a.push(i)}return!0},construct:function constructYamlOmap(t){return null!==t?t:[]}}),tt=Object.prototype.toString;var et=new g(\"tag:yaml.org,2002:pairs\",{kind:\"sequence\",resolve:function resolveYamlPairs(t){if(null===t)return!0;var e,r,n,i,o,a=t;for(o=new Array(a.length),e=0,r=a.length;e<r;e+=1){if(n=a[e],\"[object Object]\"!==tt.call(n))return!1;if(1!==(i=Object.keys(n)).length)return!1;o[e]=[i[0],n[i[0]]]}return!0},construct:function constructYamlPairs(t){if(null===t)return[];var e,r,n,i,o,a=t;for(o=new Array(a.length),e=0,r=a.length;e<r;e+=1)n=a[e],i=Object.keys(n),o[e]=[i[0],n[i[0]]];return o}}),rt=Object.prototype.hasOwnProperty;var nt=new g(\"tag:yaml.org,2002:set\",{kind:\"mapping\",resolve:function resolveYamlSet(t){if(null===t)return!0;var e,r=t;for(e in r)if(rt.call(r,e)&&null!==r[e])return!1;return!0},construct:function constructYamlSet(t){return null!==t?t:{}}}),it=Y.extend({implicit:[W,G],explicit:[H,X,et,nt]}),ot=Object.prototype.hasOwnProperty,at=1,st=2,ut=3,ct=4,lt=1,pt=2,ht=3,dt=/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/,yt=/[\\x85\\u2028\\u2029]/,Mt=/[,\\[\\]\\{\\}]/,wt=/^(?:!|!!|![a-z\\-]+!)$/i,gt=/^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;function _class(t){return Object.prototype.toString.call(t)}function is_EOL(t){return 10===t||13===t}function is_WHITE_SPACE(t){return 9===t||32===t}function is_WS_OR_EOL(t){return 9===t||32===t||10===t||13===t}function is_FLOW_INDICATOR(t){return 44===t||91===t||93===t||123===t||125===t}function fromHexCode(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function simpleEscapeSequence(t){return 48===t?\"\\0\":97===t?\"\u0007\":98===t?\"\\b\":116===t||9===t?\"\\t\":110===t?\"\\n\":118===t?\"\\v\":102===t?\"\\f\":114===t?\"\\r\":101===t?\"\u001b\":32===t?\" \":34===t?'\"':47===t?\"/\":92===t?\"\\\\\":78===t?\"\":95===t?\" \":76===t?\"\\u2028\":80===t?\"\\u2029\":\"\"}function charFromCodepoint(t){return t<=65535?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023))}for(var Lt=new Array(256),_t=new Array(256),vt=0;vt<256;vt++)Lt[vt]=simpleEscapeSequence(vt)?1:0,_t[vt]=simpleEscapeSequence(vt);function State$1(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||it,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function generateError(t,e){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return r.snippet=d(r),new h(e,r)}function throwError(t,e){throw generateError(t,e)}function throwWarning(t,e){t.onWarning&&t.onWarning.call(null,generateError(t,e))}var St={YAML:function handleYamlDirective(t,e,r){var n,i,o;null!==t.version&&throwError(t,\"duplication of %YAML directive\"),1!==r.length&&throwError(t,\"YAML directive accepts exactly one argument\"),null===(n=/^([0-9]+)\\.([0-9]+)$/.exec(r[0]))&&throwError(t,\"ill-formed argument of the YAML directive\"),i=parseInt(n[1],10),o=parseInt(n[2],10),1!==i&&throwError(t,\"unacceptable YAML version of the document\"),t.version=r[0],t.checkLineBreaks=o<2,1!==o&&2!==o&&throwWarning(t,\"unsupported YAML version of the document\")},TAG:function handleTagDirective(t,e,r){var n,i;2!==r.length&&throwError(t,\"TAG directive accepts exactly two arguments\"),n=r[0],i=r[1],wt.test(n)||throwError(t,\"ill-formed tag handle (first argument) of the TAG directive\"),ot.call(t.tagMap,n)&&throwError(t,'there is a previously declared suffix for \"'+n+'\" tag handle'),gt.test(i)||throwError(t,\"ill-formed tag prefix (second argument) of the TAG directive\");try{i=decodeURIComponent(i)}catch(e){throwError(t,\"tag prefix is malformed: \"+i)}t.tagMap[n]=i}};function captureSegment(t,e,r,n){var i,o,a,s;if(e<r){if(s=t.input.slice(e,r),n)for(i=0,o=s.length;i<o;i+=1)9===(a=s.charCodeAt(i))||32<=a&&a<=1114111||throwError(t,\"expected valid JSON character\");else dt.test(s)&&throwError(t,\"the stream contains non-printable characters\");t.result+=s}}function mergeMappings(t,e,r,n){var i,o,a,s;for(p.isObject(r)||throwError(t,\"cannot merge mappings; the provided source object is unacceptable\"),a=0,s=(i=Object.keys(r)).length;a<s;a+=1)o=i[a],ot.call(e,o)||(e[o]=r[o],n[o]=!0)}function storeMappingPair(t,e,r,n,i,o,a,s,u){var c,f;if(Array.isArray(i))for(c=0,f=(i=Array.prototype.slice.call(i)).length;c<f;c+=1)Array.isArray(i[c])&&throwError(t,\"nested arrays are not supported inside keys\"),\"object\"==typeof i&&\"[object Object]\"===_class(i[c])&&(i[c]=\"[object Object]\");if(\"object\"==typeof i&&\"[object Object]\"===_class(i)&&(i=\"[object Object]\"),i=String(i),null===e&&(e={}),\"tag:yaml.org,2002:merge\"===n)if(Array.isArray(o))for(c=0,f=o.length;c<f;c+=1)mergeMappings(t,e,o[c],r);else mergeMappings(t,e,o,r);else t.json||ot.call(r,i)||!ot.call(e,i)||(t.line=a||t.line,t.lineStart=s||t.lineStart,t.position=u||t.position,throwError(t,\"duplicated mapping key\")),\"__proto__\"===i?Object.defineProperty(e,i,{configurable:!0,enumerable:!0,writable:!0,value:o}):e[i]=o,delete r[i];return e}function readLineBreak(t){var e;10===(e=t.input.charCodeAt(t.position))?t.position++:13===e?(t.position++,10===t.input.charCodeAt(t.position)&&t.position++):throwError(t,\"a line break is expected\"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function skipSeparationSpace(t,e,r){for(var n=0,i=t.input.charCodeAt(t.position);0!==i;){for(;is_WHITE_SPACE(i);)9===i&&-1===t.firstTabInLine&&(t.firstTabInLine=t.position),i=t.input.charCodeAt(++t.position);if(e&&35===i)do{i=t.input.charCodeAt(++t.position)}while(10!==i&&13!==i&&0!==i);if(!is_EOL(i))break;for(readLineBreak(t),i=t.input.charCodeAt(t.position),n++,t.lineIndent=0;32===i;)t.lineIndent++,i=t.input.charCodeAt(++t.position)}return-1!==r&&0!==n&&t.lineIndent<r&&throwWarning(t,\"deficient indentation\"),n}function testDocumentSeparator(t){var e,r=t.position;return!(45!==(e=t.input.charCodeAt(r))&&46!==e||e!==t.input.charCodeAt(r+1)||e!==t.input.charCodeAt(r+2)||(r+=3,0!==(e=t.input.charCodeAt(r))&&!is_WS_OR_EOL(e)))}function writeFoldedLines(t,e){1===e?t.result+=\" \":e>1&&(t.result+=p.repeat(\"\\n\",e-1))}function readBlockSequence(t,e){var r,n,i=t.tag,o=t.anchor,a=[],s=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=a),n=t.input.charCodeAt(t.position);0!==n&&(-1!==t.firstTabInLine&&(t.position=t.firstTabInLine,throwError(t,\"tab characters must not be used in indentation\")),45===n)&&is_WS_OR_EOL(t.input.charCodeAt(t.position+1));)if(s=!0,t.position++,skipSeparationSpace(t,!0,-1)&&t.lineIndent<=e)a.push(null),n=t.input.charCodeAt(t.position);else if(r=t.line,composeNode(t,e,ut,!1,!0),a.push(t.result),skipSeparationSpace(t,!0,-1),n=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&0!==n)throwError(t,\"bad indentation of a sequence entry\");else if(t.lineIndent<e)break;return!!s&&(t.tag=i,t.anchor=o,t.kind=\"sequence\",t.result=a,!0)}function readTagProperty(t){var e,r,n,i,o=!1,a=!1;if(33!==(i=t.input.charCodeAt(t.position)))return!1;if(null!==t.tag&&throwError(t,\"duplication of a tag property\"),60===(i=t.input.charCodeAt(++t.position))?(o=!0,i=t.input.charCodeAt(++t.position)):33===i?(a=!0,r=\"!!\",i=t.input.charCodeAt(++t.position)):r=\"!\",e=t.position,o){do{i=t.input.charCodeAt(++t.position)}while(0!==i&&62!==i);t.position<t.length?(n=t.input.slice(e,t.position),i=t.input.charCodeAt(++t.position)):throwError(t,\"unexpected end of the stream within a verbatim tag\")}else{for(;0!==i&&!is_WS_OR_EOL(i);)33===i&&(a?throwError(t,\"tag suffix cannot contain exclamation marks\"):(r=t.input.slice(e-1,t.position+1),wt.test(r)||throwError(t,\"named tag handle cannot contain such characters\"),a=!0,e=t.position+1)),i=t.input.charCodeAt(++t.position);n=t.input.slice(e,t.position),Mt.test(n)&&throwError(t,\"tag suffix cannot contain flow indicator characters\")}n&&!gt.test(n)&&throwError(t,\"tag name cannot contain such characters: \"+n);try{n=decodeURIComponent(n)}catch(e){throwError(t,\"tag name is malformed: \"+n)}return o?t.tag=n:ot.call(t.tagMap,r)?t.tag=t.tagMap[r]+n:\"!\"===r?t.tag=\"!\"+n:\"!!\"===r?t.tag=\"tag:yaml.org,2002:\"+n:throwError(t,'undeclared tag handle \"'+r+'\"'),!0}function readAnchorProperty(t){var e,r;if(38!==(r=t.input.charCodeAt(t.position)))return!1;for(null!==t.anchor&&throwError(t,\"duplication of an anchor property\"),r=t.input.charCodeAt(++t.position),e=t.position;0!==r&&!is_WS_OR_EOL(r)&&!is_FLOW_INDICATOR(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&throwError(t,\"name of an anchor node must contain at least one character\"),t.anchor=t.input.slice(e,t.position),!0}function composeNode(t,e,r,n,i){var o,a,s,u,c,f,l,h,d,M=1,w=!1,g=!1;if(null!==t.listener&&t.listener(\"open\",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,o=a=s=ct===r||ut===r,n&&skipSeparationSpace(t,!0,-1)&&(w=!0,t.lineIndent>e?M=1:t.lineIndent===e?M=0:t.lineIndent<e&&(M=-1)),1===M)for(;readTagProperty(t)||readAnchorProperty(t);)skipSeparationSpace(t,!0,-1)?(w=!0,s=o,t.lineIndent>e?M=1:t.lineIndent===e?M=0:t.lineIndent<e&&(M=-1)):s=!1;if(s&&(s=w||i),1!==M&&ct!==r||(h=at===r||st===r?e:e+1,d=t.position-t.lineStart,1===M?s&&(readBlockSequence(t,d)||function readBlockMapping(t,e,r){var n,i,o,a,s,u,c,f=t.tag,l=t.anchor,p={},h=Object.create(null),d=null,M=null,w=null,g=!1,_=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=p),c=t.input.charCodeAt(t.position);0!==c;){if(g||-1===t.firstTabInLine||(t.position=t.firstTabInLine,throwError(t,\"tab characters must not be used in indentation\")),n=t.input.charCodeAt(t.position+1),o=t.line,63!==c&&58!==c||!is_WS_OR_EOL(n)){if(a=t.line,s=t.lineStart,u=t.position,!composeNode(t,r,st,!1,!0))break;if(t.line===o){for(c=t.input.charCodeAt(t.position);is_WHITE_SPACE(c);)c=t.input.charCodeAt(++t.position);if(58===c)is_WS_OR_EOL(c=t.input.charCodeAt(++t.position))||throwError(t,\"a whitespace character is expected after the key-value separator within a block mapping\"),g&&(storeMappingPair(t,p,h,d,M,null,a,s,u),d=M=w=null),_=!0,g=!1,i=!1,d=t.tag,M=t.result;else{if(!_)return t.tag=f,t.anchor=l,!0;throwError(t,\"can not read an implicit mapping pair; a colon is missed\")}}else{if(!_)return t.tag=f,t.anchor=l,!0;throwError(t,\"can not read a block mapping entry; a multiline key may not be an implicit key\")}}else 63===c?(g&&(storeMappingPair(t,p,h,d,M,null,a,s,u),d=M=w=null),_=!0,g=!0,i=!0):g?(g=!1,i=!0):throwError(t,\"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\"),t.position+=1,c=n;if((t.line===o||t.lineIndent>e)&&(g&&(a=t.line,s=t.lineStart,u=t.position),composeNode(t,e,ct,!0,i)&&(g?M=t.result:w=t.result),g||(storeMappingPair(t,p,h,d,M,w,a,s,u),d=M=w=null),skipSeparationSpace(t,!0,-1),c=t.input.charCodeAt(t.position)),(t.line===o||t.lineIndent>e)&&0!==c)throwError(t,\"bad indentation of a mapping entry\");else if(t.lineIndent<e)break}return g&&storeMappingPair(t,p,h,d,M,null,a,s,u),_&&(t.tag=f,t.anchor=l,t.kind=\"mapping\",t.result=p),_}(t,d,h))||function readFlowCollection(t,e){var r,n,i,o,a,s,u,c,f,l,p,h,d=!0,M=t.tag,w=t.anchor,g=Object.create(null);if(91===(h=t.input.charCodeAt(t.position)))a=93,c=!1,o=[];else{if(123!==h)return!1;a=125,c=!0,o={}}for(null!==t.anchor&&(t.anchorMap[t.anchor]=o),h=t.input.charCodeAt(++t.position);0!==h;){if(skipSeparationSpace(t,!0,e),(h=t.input.charCodeAt(t.position))===a)return t.position++,t.tag=M,t.anchor=w,t.kind=c?\"mapping\":\"sequence\",t.result=o,!0;d?44===h&&throwError(t,\"expected the node content, but found ','\"):throwError(t,\"missed comma between flow collection entries\"),p=null,s=u=!1,63===h&&is_WS_OR_EOL(t.input.charCodeAt(t.position+1))&&(s=u=!0,t.position++,skipSeparationSpace(t,!0,e)),r=t.line,n=t.lineStart,i=t.position,composeNode(t,e,at,!1,!0),l=t.tag,f=t.result,skipSeparationSpace(t,!0,e),h=t.input.charCodeAt(t.position),!u&&t.line!==r||58!==h||(s=!0,h=t.input.charCodeAt(++t.position),skipSeparationSpace(t,!0,e),composeNode(t,e,at,!1,!0),p=t.result),c?storeMappingPair(t,o,g,l,f,p,r,n,i):s?o.push(storeMappingPair(t,null,g,l,f,p,r,n,i)):o.push(f),skipSeparationSpace(t,!0,e),44===(h=t.input.charCodeAt(t.position))?(d=!0,h=t.input.charCodeAt(++t.position)):d=!1}throwError(t,\"unexpected end of the stream within a flow collection\")}(t,h)?g=!0:(a&&function readBlockScalar(t,e){var r,n,i,o,a,s=lt,u=!1,c=!1,f=e,l=0,h=!1;if(124===(o=t.input.charCodeAt(t.position)))n=!1;else{if(62!==o)return!1;n=!0}for(t.kind=\"scalar\",t.result=\"\";0!==o;)if(43===(o=t.input.charCodeAt(++t.position))||45===o)lt===s?s=43===o?ht:pt:throwError(t,\"repeat of a chomping mode identifier\");else{if(!((i=48<=(a=o)&&a<=57?a-48:-1)>=0))break;0===i?throwError(t,\"bad explicit indentation width of a block scalar; it cannot be less than one\"):c?throwError(t,\"repeat of an indentation width identifier\"):(f=e+i-1,c=!0)}if(is_WHITE_SPACE(o)){do{o=t.input.charCodeAt(++t.position)}while(is_WHITE_SPACE(o));if(35===o)do{o=t.input.charCodeAt(++t.position)}while(!is_EOL(o)&&0!==o)}for(;0!==o;){for(readLineBreak(t),t.lineIndent=0,o=t.input.charCodeAt(t.position);(!c||t.lineIndent<f)&&32===o;)t.lineIndent++,o=t.input.charCodeAt(++t.position);if(!c&&t.lineIndent>f&&(f=t.lineIndent),is_EOL(o))l++;else{if(t.lineIndent<f){s===ht?t.result+=p.repeat(\"\\n\",u?1+l:l):s===lt&&u&&(t.result+=\"\\n\");break}for(n?is_WHITE_SPACE(o)?(h=!0,t.result+=p.repeat(\"\\n\",u?1+l:l)):h?(h=!1,t.result+=p.repeat(\"\\n\",l+1)):0===l?u&&(t.result+=\" \"):t.result+=p.repeat(\"\\n\",l):t.result+=p.repeat(\"\\n\",u?1+l:l),u=!0,c=!0,l=0,r=t.position;!is_EOL(o)&&0!==o;)o=t.input.charCodeAt(++t.position);captureSegment(t,r,t.position,!1)}}return!0}(t,h)||function readSingleQuotedScalar(t,e){var r,n,i;if(39!==(r=t.input.charCodeAt(t.position)))return!1;for(t.kind=\"scalar\",t.result=\"\",t.position++,n=i=t.position;0!==(r=t.input.charCodeAt(t.position));)if(39===r){if(captureSegment(t,n,t.position,!0),39!==(r=t.input.charCodeAt(++t.position)))return!0;n=t.position,t.position++,i=t.position}else is_EOL(r)?(captureSegment(t,n,i,!0),writeFoldedLines(t,skipSeparationSpace(t,!1,e)),n=i=t.position):t.position===t.lineStart&&testDocumentSeparator(t)?throwError(t,\"unexpected end of the document within a single quoted scalar\"):(t.position++,i=t.position);throwError(t,\"unexpected end of the stream within a single quoted scalar\")}(t,h)||function readDoubleQuotedScalar(t,e){var r,n,i,o,a,s,u;if(34!==(s=t.input.charCodeAt(t.position)))return!1;for(t.kind=\"scalar\",t.result=\"\",t.position++,r=n=t.position;0!==(s=t.input.charCodeAt(t.position));){if(34===s)return captureSegment(t,r,t.position,!0),t.position++,!0;if(92===s){if(captureSegment(t,r,t.position,!0),is_EOL(s=t.input.charCodeAt(++t.position)))skipSeparationSpace(t,!1,e);else if(s<256&&Lt[s])t.result+=_t[s],t.position++;else if((a=120===(u=s)?2:117===u?4:85===u?8:0)>0){for(i=a,o=0;i>0;i--)(a=fromHexCode(s=t.input.charCodeAt(++t.position)))>=0?o=(o<<4)+a:throwError(t,\"expected hexadecimal character\");t.result+=charFromCodepoint(o),t.position++}else throwError(t,\"unknown escape sequence\");r=n=t.position}else is_EOL(s)?(captureSegment(t,r,n,!0),writeFoldedLines(t,skipSeparationSpace(t,!1,e)),r=n=t.position):t.position===t.lineStart&&testDocumentSeparator(t)?throwError(t,\"unexpected end of the document within a double quoted scalar\"):(t.position++,n=t.position)}throwError(t,\"unexpected end of the stream within a double quoted scalar\")}(t,h)?g=!0:!function readAlias(t){var e,r,n;if(42!==(n=t.input.charCodeAt(t.position)))return!1;for(n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!is_WS_OR_EOL(n)&&!is_FLOW_INDICATOR(n);)n=t.input.charCodeAt(++t.position);return t.position===e&&throwError(t,\"name of an alias node must contain at least one character\"),r=t.input.slice(e,t.position),ot.call(t.anchorMap,r)||throwError(t,'unidentified alias \"'+r+'\"'),t.result=t.anchorMap[r],skipSeparationSpace(t,!0,-1),!0}(t)?function readPlainScalar(t,e,r){var n,i,o,a,s,u,c,f,l=t.kind,p=t.result;if(is_WS_OR_EOL(f=t.input.charCodeAt(t.position))||is_FLOW_INDICATOR(f)||35===f||38===f||42===f||33===f||124===f||62===f||39===f||34===f||37===f||64===f||96===f)return!1;if((63===f||45===f)&&(is_WS_OR_EOL(n=t.input.charCodeAt(t.position+1))||r&&is_FLOW_INDICATOR(n)))return!1;for(t.kind=\"scalar\",t.result=\"\",i=o=t.position,a=!1;0!==f;){if(58===f){if(is_WS_OR_EOL(n=t.input.charCodeAt(t.position+1))||r&&is_FLOW_INDICATOR(n))break}else if(35===f){if(is_WS_OR_EOL(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&testDocumentSeparator(t)||r&&is_FLOW_INDICATOR(f))break;if(is_EOL(f)){if(s=t.line,u=t.lineStart,c=t.lineIndent,skipSeparationSpace(t,!1,-1),t.lineIndent>=e){a=!0,f=t.input.charCodeAt(t.position);continue}t.position=o,t.line=s,t.lineStart=u,t.lineIndent=c;break}}a&&(captureSegment(t,i,o,!1),writeFoldedLines(t,t.line-s),i=o=t.position,a=!1),is_WHITE_SPACE(f)||(o=t.position+1),f=t.input.charCodeAt(++t.position)}return captureSegment(t,i,o,!1),!!t.result||(t.kind=l,t.result=p,!1)}(t,h,at===r)&&(g=!0,null===t.tag&&(t.tag=\"?\")):(g=!0,null===t.tag&&null===t.anchor||throwError(t,\"alias node should not have any properties\")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===M&&(g=s&&readBlockSequence(t,d))),null===t.tag)null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);else if(\"?\"===t.tag){for(null!==t.result&&\"scalar\"!==t.kind&&throwError(t,'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"'+t.kind+'\"'),u=0,c=t.implicitTypes.length;u<c;u+=1)if((l=t.implicitTypes[u]).resolve(t.result)){t.result=l.construct(t.result),t.tag=l.tag,null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);break}}else if(\"!\"!==t.tag){if(ot.call(t.typeMap[t.kind||\"fallback\"],t.tag))l=t.typeMap[t.kind||\"fallback\"][t.tag];else for(l=null,u=0,c=(f=t.typeMap.multi[t.kind||\"fallback\"]).length;u<c;u+=1)if(t.tag.slice(0,f[u].tag.length)===f[u].tag){l=f[u];break}l||throwError(t,\"unknown tag !<\"+t.tag+\">\"),null!==t.result&&l.kind!==t.kind&&throwError(t,\"unacceptable node kind for !<\"+t.tag+'> tag; it should be \"'+l.kind+'\", not \"'+t.kind+'\"'),l.resolve(t.result,t.tag)?(t.result=l.construct(t.result,t.tag),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):throwError(t,\"cannot resolve a node with !<\"+t.tag+\"> explicit tag\")}return null!==t.listener&&t.listener(\"close\",t),null!==t.tag||null!==t.anchor||g}function readDocument(t){var e,r,n,i,o=t.position,a=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);0!==(i=t.input.charCodeAt(t.position))&&(skipSeparationSpace(t,!0,-1),i=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==i));){for(a=!0,i=t.input.charCodeAt(++t.position),e=t.position;0!==i&&!is_WS_OR_EOL(i);)i=t.input.charCodeAt(++t.position);for(n=[],(r=t.input.slice(e,t.position)).length<1&&throwError(t,\"directive name must not be less than one character in length\");0!==i;){for(;is_WHITE_SPACE(i);)i=t.input.charCodeAt(++t.position);if(35===i){do{i=t.input.charCodeAt(++t.position)}while(0!==i&&!is_EOL(i));break}if(is_EOL(i))break;for(e=t.position;0!==i&&!is_WS_OR_EOL(i);)i=t.input.charCodeAt(++t.position);n.push(t.input.slice(e,t.position))}0!==i&&readLineBreak(t),ot.call(St,r)?St[r](t,r,n):throwWarning(t,'unknown document directive \"'+r+'\"')}skipSeparationSpace(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,skipSeparationSpace(t,!0,-1)):a&&throwError(t,\"directives end mark is expected\"),composeNode(t,t.lineIndent-1,ct,!1,!0),skipSeparationSpace(t,!0,-1),t.checkLineBreaks&&yt.test(t.input.slice(o,t.position))&&throwWarning(t,\"non-ASCII line breaks are interpreted as content\"),t.documents.push(t.result),t.position===t.lineStart&&testDocumentSeparator(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,skipSeparationSpace(t,!0,-1)):t.position<t.length-1&&throwError(t,\"end of the stream or a document separator is expected\")}function loadDocuments(t,e){e=e||{},0!==(t=String(t)).length&&(10!==t.charCodeAt(t.length-1)&&13!==t.charCodeAt(t.length-1)&&(t+=\"\\n\"),65279===t.charCodeAt(0)&&(t=t.slice(1)));var r=new State$1(t,e),n=t.indexOf(\"\\0\");for(-1!==n&&(r.position=n,throwError(r,\"null byte is not allowed in input\")),r.input+=\"\\0\";32===r.input.charCodeAt(r.position);)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)readDocument(r);return r.documents}var It={loadAll:function loadAll$1(t,e,r){null!==e&&\"object\"==typeof e&&void 0===r&&(r=e,e=null);var n=loadDocuments(t,r);if(\"function\"!=typeof e)return n;for(var i=0,o=n.length;i<o;i+=1)e(n[i])},load:function load$1(t,e){var r=loadDocuments(t,e);if(0!==r.length){if(1===r.length)return r[0];throw new h(\"expected a single document in the stream, but found more\")}}},mt=Object.prototype.toString,Nt=Object.prototype.hasOwnProperty,jt=65279,bt=9,xt=10,Dt=13,Ct=32,Et=33,Ot=34,At=35,Tt=37,zt=38,kt=39,Bt=42,Ut=44,Yt=45,Ft=58,qt=61,Rt=62,Qt=63,Pt=64,Wt=91,Gt=93,Vt=96,Kt=123,Ht=124,Jt=125,Zt={0:\"\\\\0\",7:\"\\\\a\",8:\"\\\\b\",9:\"\\\\t\",10:\"\\\\n\",11:\"\\\\v\",12:\"\\\\f\",13:\"\\\\r\",27:\"\\\\e\",34:'\\\\\"',92:\"\\\\\\\\\",133:\"\\\\N\",160:\"\\\\_\",8232:\"\\\\L\",8233:\"\\\\P\"},$t=[\"y\",\"Y\",\"yes\",\"Yes\",\"YES\",\"on\",\"On\",\"ON\",\"n\",\"N\",\"no\",\"No\",\"NO\",\"off\",\"Off\",\"OFF\"],Xt=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;function encodeHex(t){var e,r,n;if(e=t.toString(16).toUpperCase(),t<=255)r=\"x\",n=2;else if(t<=65535)r=\"u\",n=4;else{if(!(t<=4294967295))throw new h(\"code point within a string may not be greater than 0xFFFFFFFF\");r=\"U\",n=8}return\"\\\\\"+r+p.repeat(\"0\",n-e.length)+e}var te=1,ee=2;function State(t){this.schema=t.schema||it,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=p.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=function compileStyleMap(t,e){var r,n,i,o,a,s,u;if(null===e)return{};for(r={},i=0,o=(n=Object.keys(e)).length;i<o;i+=1)a=n[i],s=String(e[a]),\"!!\"===a.slice(0,2)&&(a=\"tag:yaml.org,2002:\"+a.slice(2)),(u=t.compiledTypeMap.fallback[a])&&Nt.call(u.styleAliases,s)&&(s=u.styleAliases[s]),r[a]=s;return r}(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.quotingType='\"'===t.quotingType?ee:te,this.forceQuotes=t.forceQuotes||!1,this.replacer=\"function\"==typeof t.replacer?t.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result=\"\",this.duplicates=[],this.usedDuplicates=null}function indentString(t,e){for(var r,n=p.repeat(\" \",e),i=0,o=-1,a=\"\",s=t.length;i<s;)-1===(o=t.indexOf(\"\\n\",i))?(r=t.slice(i),i=s):(r=t.slice(i,o+1),i=o+1),r.length&&\"\\n\"!==r&&(a+=n),a+=r;return a}function generateNextLine(t,e){return\"\\n\"+p.repeat(\" \",t.indent*e)}function isWhitespace(t){return t===Ct||t===bt}function isPrintable(t){return 32<=t&&t<=126||161<=t&&t<=55295&&8232!==t&&8233!==t||57344<=t&&t<=65533&&t!==jt||65536<=t&&t<=1114111}function isNsCharOrWhitespace(t){return isPrintable(t)&&t!==jt&&t!==Dt&&t!==xt}function isPlainSafe(t,e,r){var n=isNsCharOrWhitespace(t),i=n&&!isWhitespace(t);return(r?n:n&&t!==Ut&&t!==Wt&&t!==Gt&&t!==Kt&&t!==Jt)&&t!==At&&!(e===Ft&&!i)||isNsCharOrWhitespace(e)&&!isWhitespace(e)&&t===At||e===Ft&&i}function codePointAt(t,e){var r,n=t.charCodeAt(e);return n>=55296&&n<=56319&&e+1<t.length&&(r=t.charCodeAt(e+1))>=56320&&r<=57343?1024*(n-55296)+r-56320+65536:n}function needIndentIndicator(t){return/^\\n* /.test(t)}var re=1,ne=2,ie=3,oe=4,ae=5;function chooseScalarStyle(t,e,r,n,i,o,a,s){var u,c=0,f=null,l=!1,p=!1,h=-1!==n,d=-1,M=function isPlainSafeFirst(t){return isPrintable(t)&&t!==jt&&!isWhitespace(t)&&t!==Yt&&t!==Qt&&t!==Ft&&t!==Ut&&t!==Wt&&t!==Gt&&t!==Kt&&t!==Jt&&t!==At&&t!==zt&&t!==Bt&&t!==Et&&t!==Ht&&t!==qt&&t!==Rt&&t!==kt&&t!==Ot&&t!==Tt&&t!==Pt&&t!==Vt}(codePointAt(t,0))&&function isPlainSafeLast(t){return!isWhitespace(t)&&t!==Ft}(codePointAt(t,t.length-1));if(e||a)for(u=0;u<t.length;c>=65536?u+=2:u++){if(!isPrintable(c=codePointAt(t,u)))return ae;M=M&&isPlainSafe(c,f,s),f=c}else{for(u=0;u<t.length;c>=65536?u+=2:u++){if((c=codePointAt(t,u))===xt)l=!0,h&&(p=p||u-d-1>n&&\" \"!==t[d+1],d=u);else if(!isPrintable(c))return ae;M=M&&isPlainSafe(c,f,s),f=c}p=p||h&&u-d-1>n&&\" \"!==t[d+1]}return l||p?r>9&&needIndentIndicator(t)?ae:a?o===ee?ae:ne:p?oe:ie:!M||a||i(t)?o===ee?ae:ne:re}function writeScalar(t,e,r,n,i){t.dump=function(){if(0===e.length)return t.quotingType===ee?'\"\"':\"''\";if(!t.noCompatMode&&(-1!==$t.indexOf(e)||Xt.test(e)))return t.quotingType===ee?'\"'+e+'\"':\"'\"+e+\"'\";var o=t.indent*Math.max(1,r),a=-1===t.lineWidth?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-o),s=n||t.flowLevel>-1&&r>=t.flowLevel;switch(chooseScalarStyle(e,s,t.indent,a,(function testAmbiguity(e){return function testImplicitResolving(t,e){var r,n;for(r=0,n=t.implicitTypes.length;r<n;r+=1)if(t.implicitTypes[r].resolve(e))return!0;return!1}(t,e)}),t.quotingType,t.forceQuotes&&!n,i)){case re:return e;case ne:return\"'\"+e.replace(/'/g,\"''\")+\"'\";case ie:return\"|\"+blockHeader(e,t.indent)+dropEndingNewline(indentString(e,o));case oe:return\">\"+blockHeader(e,t.indent)+dropEndingNewline(indentString(function foldString(t,e){var r,n,i=/(\\n+)([^\\n]*)/g,o=(s=t.indexOf(\"\\n\"),s=-1!==s?s:t.length,i.lastIndex=s,foldLine(t.slice(0,s),e)),a=\"\\n\"===t[0]||\" \"===t[0];var s;for(;n=i.exec(t);){var u=n[1],c=n[2];r=\" \"===c[0],o+=u+(a||r||\"\"===c?\"\":\"\\n\")+foldLine(c,e),a=r}return o}(e,a),o));case ae:return'\"'+function escapeString(t){for(var e,r=\"\",n=0,i=0;i<t.length;n>=65536?i+=2:i++)n=codePointAt(t,i),!(e=Zt[n])&&isPrintable(n)?(r+=t[i],n>=65536&&(r+=t[i+1])):r+=e||encodeHex(n);return r}(e)+'\"';default:throw new h(\"impossible error: invalid scalar style\")}}()}function blockHeader(t,e){var r=needIndentIndicator(t)?String(e):\"\",n=\"\\n\"===t[t.length-1];return r+(n&&(\"\\n\"===t[t.length-2]||\"\\n\"===t)?\"+\":n?\"\":\"-\")+\"\\n\"}function dropEndingNewline(t){return\"\\n\"===t[t.length-1]?t.slice(0,-1):t}function foldLine(t,e){if(\"\"===t||\" \"===t[0])return t;for(var r,n,i=/ [^ ]/g,o=0,a=0,s=0,u=\"\";r=i.exec(t);)(s=r.index)-o>e&&(n=a>o?a:s,u+=\"\\n\"+t.slice(o,n),o=n+1),a=s;return u+=\"\\n\",t.length-o>e&&a>o?u+=t.slice(o,a)+\"\\n\"+t.slice(a+1):u+=t.slice(o),u.slice(1)}function writeBlockSequence(t,e,r,n){var i,o,a,s=\"\",u=t.tag;for(i=0,o=r.length;i<o;i+=1)a=r[i],t.replacer&&(a=t.replacer.call(r,String(i),a)),(writeNode(t,e+1,a,!0,!0,!1,!0)||void 0===a&&writeNode(t,e+1,null,!0,!0,!1,!0))&&(n&&\"\"===s||(s+=generateNextLine(t,e)),t.dump&&xt===t.dump.charCodeAt(0)?s+=\"-\":s+=\"- \",s+=t.dump);t.tag=u,t.dump=s||\"[]\"}function detectType(t,e,r){var n,i,o,a,s,u;for(o=0,a=(i=r?t.explicitTypes:t.implicitTypes).length;o<a;o+=1)if(((s=i[o]).instanceOf||s.predicate)&&(!s.instanceOf||\"object\"==typeof e&&e instanceof s.instanceOf)&&(!s.predicate||s.predicate(e))){if(r?s.multi&&s.representName?t.tag=s.representName(e):t.tag=s.tag:t.tag=\"?\",s.represent){if(u=t.styleMap[s.tag]||s.defaultStyle,\"[object Function]\"===mt.call(s.represent))n=s.represent(e,u);else{if(!Nt.call(s.represent,u))throw new h(\"!<\"+s.tag+'> tag resolver accepts not \"'+u+'\" style');n=s.represent[u](e,u)}t.dump=n}return!0}return!1}function writeNode(t,e,r,n,i,o,a){t.tag=null,t.dump=r,detectType(t,r,!1)||detectType(t,r,!0);var s,u=mt.call(t.dump),c=n;n&&(n=t.flowLevel<0||t.flowLevel>e);var f,l,p=\"[object Object]\"===u||\"[object Array]\"===u;if(p&&(l=-1!==(f=t.duplicates.indexOf(r))),(null!==t.tag&&\"?\"!==t.tag||l||2!==t.indent&&e>0)&&(i=!1),l&&t.usedDuplicates[f])t.dump=\"*ref_\"+f;else{if(p&&l&&!t.usedDuplicates[f]&&(t.usedDuplicates[f]=!0),\"[object Object]\"===u)n&&0!==Object.keys(t.dump).length?(!function writeBlockMapping(t,e,r,n){var i,o,a,s,u,c,f=\"\",l=t.tag,p=Object.keys(r);if(!0===t.sortKeys)p.sort();else if(\"function\"==typeof t.sortKeys)p.sort(t.sortKeys);else if(t.sortKeys)throw new h(\"sortKeys must be a boolean or a function\");for(i=0,o=p.length;i<o;i+=1)c=\"\",n&&\"\"===f||(c+=generateNextLine(t,e)),s=r[a=p[i]],t.replacer&&(s=t.replacer.call(r,a,s)),writeNode(t,e+1,a,!0,!0,!0)&&((u=null!==t.tag&&\"?\"!==t.tag||t.dump&&t.dump.length>1024)&&(t.dump&&xt===t.dump.charCodeAt(0)?c+=\"?\":c+=\"? \"),c+=t.dump,u&&(c+=generateNextLine(t,e)),writeNode(t,e+1,s,!0,u)&&(t.dump&&xt===t.dump.charCodeAt(0)?c+=\":\":c+=\": \",f+=c+=t.dump));t.tag=l,t.dump=f||\"{}\"}(t,e,t.dump,i),l&&(t.dump=\"&ref_\"+f+t.dump)):(!function writeFlowMapping(t,e,r){var n,i,o,a,s,u=\"\",c=t.tag,f=Object.keys(r);for(n=0,i=f.length;n<i;n+=1)s=\"\",\"\"!==u&&(s+=\", \"),t.condenseFlow&&(s+='\"'),a=r[o=f[n]],t.replacer&&(a=t.replacer.call(r,o,a)),writeNode(t,e,o,!1,!1)&&(t.dump.length>1024&&(s+=\"? \"),s+=t.dump+(t.condenseFlow?'\"':\"\")+\":\"+(t.condenseFlow?\"\":\" \"),writeNode(t,e,a,!1,!1)&&(u+=s+=t.dump));t.tag=c,t.dump=\"{\"+u+\"}\"}(t,e,t.dump),l&&(t.dump=\"&ref_\"+f+\" \"+t.dump));else if(\"[object Array]\"===u)n&&0!==t.dump.length?(t.noArrayIndent&&!a&&e>0?writeBlockSequence(t,e-1,t.dump,i):writeBlockSequence(t,e,t.dump,i),l&&(t.dump=\"&ref_\"+f+t.dump)):(!function writeFlowSequence(t,e,r){var n,i,o,a=\"\",s=t.tag;for(n=0,i=r.length;n<i;n+=1)o=r[n],t.replacer&&(o=t.replacer.call(r,String(n),o)),(writeNode(t,e,o,!1,!1)||void 0===o&&writeNode(t,e,null,!1,!1))&&(\"\"!==a&&(a+=\",\"+(t.condenseFlow?\"\":\" \")),a+=t.dump);t.tag=s,t.dump=\"[\"+a+\"]\"}(t,e,t.dump),l&&(t.dump=\"&ref_\"+f+\" \"+t.dump));else{if(\"[object String]\"!==u){if(\"[object Undefined]\"===u)return!1;if(t.skipInvalid)return!1;throw new h(\"unacceptable kind of an object to dump \"+u)}\"?\"!==t.tag&&writeScalar(t,t.dump,e,o,c)}null!==t.tag&&\"?\"!==t.tag&&(s=encodeURI(\"!\"===t.tag[0]?t.tag.slice(1):t.tag).replace(/!/g,\"%21\"),s=\"!\"===t.tag[0]?\"!\"+s:\"tag:yaml.org,2002:\"===s.slice(0,18)?\"!!\"+s.slice(18):\"!<\"+s+\">\",t.dump=s+\" \"+t.dump)}return!0}function getDuplicateReferences(t,e){var r,n,i=[],o=[];for(inspectNode(t,i,o),r=0,n=o.length;r<n;r+=1)e.duplicates.push(i[o[r]]);e.usedDuplicates=new Array(n)}function inspectNode(t,e,r){var n,i,o;if(null!==t&&\"object\"==typeof t)if(-1!==(i=e.indexOf(t)))-1===r.indexOf(i)&&r.push(i);else if(e.push(t),Array.isArray(t))for(i=0,o=t.length;i<o;i+=1)inspectNode(t[i],e,r);else for(i=0,o=(n=Object.keys(t)).length;i<o;i+=1)inspectNode(t[n[i]],e,r)}function renamed(t,e){return function(){throw new Error(\"Function yaml.\"+t+\" is removed in js-yaml 4. Use yaml.\"+e+\" instead, which is now safe by default.\")}}const se={Type:g,Schema:_,FAILSAFE_SCHEMA:j,JSON_SCHEMA:U,CORE_SCHEMA:Y,DEFAULT_SCHEMA:it,load:It.load,loadAll:It.loadAll,dump:{dump:function dump$1(t,e){var r=new State(e=e||{});r.noRefs||getDuplicateReferences(t,r);var n=t;return r.replacer&&(n=r.replacer.call({\"\":n},\"\",n)),writeNode(r,0,n,!0,!0)?r.dump+\"\\n\":\"\"}}.dump,YAMLException:h,types:{binary:H,float:B,map:m,null:b,pairs:et,set:nt,timestamp:W,bool:x,int:A,merge:G,omap:X,seq:I,str:v},safeLoad:renamed(\"safeLoad\",\"load\"),safeLoadAll:renamed(\"safeLoadAll\",\"loadAll\"),safeDump:renamed(\"safeDump\",\"dump\")},parseYamlConfig=(t,e)=>{try{return se.load(t)}catch(t){return e&&e.errActions.newThrownErr(new Error(t)),{}}},ue=\"configs_update\",ce=\"configs_toggle\";function update(t,e){return{type:ue,payload:{[t]:e}}}function toggle(t){return{type:ce,payload:t}}const loaded=()=>()=>{},downloadConfig=t=>e=>{const{fn:{fetch:r}}=e;return r(t)},getConfigByUrl=(t,e)=>r=>{let{specActions:n}=r;if(t)return n.downloadConfig(t).then(next,next);function next(r){r instanceof Error||r.status>=400?(n.updateLoadingStatus(\"failedConfig\"),n.updateLoadingStatus(\"failedConfig\"),n.updateUrl(\"\"),console.error(r.statusText+\" \"+t.url),e(null)):e(parseYamlConfig(r.text))}},get=(t,e)=>t.getIn(Array.isArray(e)?e:[e]),fe={[ue]:(t,e)=>t.merge((0,u.fromJS)(e.payload)),[ce]:(t,e)=>{const r=e.payload,n=t.get(r);return t.set(r,!n)}},le={getLocalConfig:()=>parseYamlConfig('---\\nurl: \"https://petstore.swagger.io/v2/swagger.json\"\\ndom_id: \"#swagger-ui\"\\nvalidatorUrl: \"https://validator.swagger.io/validator\"\\n')};var pe=__webpack_require__(7287),he=__webpack_require__.n(pe),de=__webpack_require__(3101),ye=__webpack_require__.n(de);const Me=console.error,withErrorBoundary=t=>e=>{const{getComponent:r,fn:n}=t(),o=r(\"ErrorBoundary\"),a=n.getDisplayName(e);class WithErrorBoundary extends i.Component{render(){return i.createElement(o,{targetName:a,getComponent:r,fn:n},i.createElement(e,ye()({},this.props,this.context)))}}var s;return WithErrorBoundary.displayName=`WithErrorBoundary(${a})`,(s=e).prototype&&s.prototype.isReactComponent&&(WithErrorBoundary.prototype.mapStateToProps=e.prototype.mapStateToProps),WithErrorBoundary},fallback=t=>{let{name:e}=t;return i.createElement(\"div\",{className:\"fallback\"},\"😱 \",i.createElement(\"i\",null,\"Could not render \",\"t\"===e?\"this component\":e,\", see the console.\"))};class ErrorBoundary extends i.Component{static getDerivedStateFromError(t){return{hasError:!0,error:t}}constructor(){super(...arguments),this.state={hasError:!1,error:null}}componentDidCatch(t,e){this.props.fn.componentDidCatch(t,e)}render(){const{getComponent:t,targetName:e,children:r}=this.props;if(this.state.hasError){const r=t(\"Fallback\");return i.createElement(r,{name:e})}return r}}ErrorBoundary.defaultProps={targetName:\"this component\",getComponent:()=>fallback,fn:{componentDidCatch:Me},children:null};const we=ErrorBoundary,ge=[top_bar,function configsPlugin(){return{statePlugins:{spec:{actions:e,selectors:le},configs:{reducers:fe,actions:t,selectors:n}}}},stadalone_layout,function(){let{componentList:t=[],fullOverride:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return r=>{let{getSystem:n}=r;const i=e?t:[\"App\",\"BaseLayout\",\"VersionPragmaFilter\",\"InfoContainer\",\"ServersContainer\",\"SchemesContainer\",\"AuthorizeBtnContainer\",\"FilterContainer\",\"Operations\",\"OperationContainer\",\"parameters\",\"responses\",\"OperationServers\",\"Models\",\"ModelWrapper\",...t],o=he()(i,Array(i.length).fill(((t,e)=>{let{fn:r}=e;return r.withErrorBoundary(t)})));return{fn:{componentDidCatch:Me,withErrorBoundary:withErrorBoundary(n)},components:{ErrorBoundary:we,Fallback:fallback},wrapComponents:o}}}({fullOverride:!0,componentList:[\"Topbar\",\"StandaloneLayout\",\"onlineValidatorBadge\"]})]})(),r=r.default})()));\n//# sourceMappingURL=swagger-ui-standalone-preset.js.map"
  },
  {
    "path": "docs/swagger/swagger-ui.css",
    "content": ".swagger-ui{color:#3b4151;font-family:sans-serif/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */}.swagger-ui html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.15}.swagger-ui body{margin:0}.swagger-ui article,.swagger-ui aside,.swagger-ui footer,.swagger-ui header,.swagger-ui nav,.swagger-ui section{display:block}.swagger-ui h1{font-size:2em;margin:.67em 0}.swagger-ui figcaption,.swagger-ui figure,.swagger-ui main{display:block}.swagger-ui figure{margin:1em 40px}.swagger-ui hr{box-sizing:content-box;height:0;overflow:visible}.swagger-ui pre{font-family:monospace,monospace;font-size:1em}.swagger-ui a{-webkit-text-decoration-skip:objects;background-color:transparent}.swagger-ui abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.swagger-ui b,.swagger-ui strong{font-weight:inherit;font-weight:bolder}.swagger-ui code,.swagger-ui kbd,.swagger-ui samp{font-family:monospace,monospace;font-size:1em}.swagger-ui dfn{font-style:italic}.swagger-ui mark{background-color:#ff0;color:#000}.swagger-ui small{font-size:80%}.swagger-ui sub,.swagger-ui sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.swagger-ui sub{bottom:-.25em}.swagger-ui sup{top:-.5em}.swagger-ui audio,.swagger-ui video{display:inline-block}.swagger-ui audio:not([controls]){display:none;height:0}.swagger-ui img{border-style:none}.swagger-ui svg:not(:root){overflow:hidden}.swagger-ui button,.swagger-ui input,.swagger-ui optgroup,.swagger-ui select,.swagger-ui textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}.swagger-ui button,.swagger-ui input{overflow:visible}.swagger-ui button,.swagger-ui select{text-transform:none}.swagger-ui [type=reset],.swagger-ui [type=submit],.swagger-ui button,.swagger-ui html [type=button]{-webkit-appearance:button}.swagger-ui [type=button]::-moz-focus-inner,.swagger-ui [type=reset]::-moz-focus-inner,.swagger-ui [type=submit]::-moz-focus-inner,.swagger-ui button::-moz-focus-inner{border-style:none;padding:0}.swagger-ui [type=button]:-moz-focusring,.swagger-ui [type=reset]:-moz-focusring,.swagger-ui [type=submit]:-moz-focusring,.swagger-ui button:-moz-focusring{outline:1px dotted ButtonText}.swagger-ui fieldset{padding:.35em .75em .625em}.swagger-ui legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}.swagger-ui progress{display:inline-block;vertical-align:baseline}.swagger-ui textarea{overflow:auto}.swagger-ui [type=checkbox],.swagger-ui [type=radio]{box-sizing:border-box;padding:0}.swagger-ui [type=number]::-webkit-inner-spin-button,.swagger-ui [type=number]::-webkit-outer-spin-button{height:auto}.swagger-ui [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.swagger-ui [type=search]::-webkit-search-cancel-button,.swagger-ui [type=search]::-webkit-search-decoration{-webkit-appearance:none}.swagger-ui ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.swagger-ui details,.swagger-ui menu{display:block}.swagger-ui summary{display:list-item}.swagger-ui canvas{display:inline-block}.swagger-ui [hidden],.swagger-ui template{display:none}.swagger-ui .debug *{outline:1px solid gold}.swagger-ui .debug-white *{outline:1px solid #fff}.swagger-ui .debug-black *{outline:1px solid #000}.swagger-ui .debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat 0 0}.swagger-ui .debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat 0 0}.swagger-ui .debug-grid-8-solid{background:#fff url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat 0 0}.swagger-ui .debug-grid-16-solid{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat 0 0}.swagger-ui .border-box,.swagger-ui a,.swagger-ui article,.swagger-ui body,.swagger-ui code,.swagger-ui dd,.swagger-ui div,.swagger-ui dl,.swagger-ui dt,.swagger-ui fieldset,.swagger-ui footer,.swagger-ui form,.swagger-ui h1,.swagger-ui h2,.swagger-ui h3,.swagger-ui h4,.swagger-ui h5,.swagger-ui h6,.swagger-ui header,.swagger-ui html,.swagger-ui input[type=email],.swagger-ui input[type=number],.swagger-ui input[type=password],.swagger-ui input[type=tel],.swagger-ui input[type=text],.swagger-ui input[type=url],.swagger-ui legend,.swagger-ui li,.swagger-ui main,.swagger-ui ol,.swagger-ui p,.swagger-ui pre,.swagger-ui section,.swagger-ui table,.swagger-ui td,.swagger-ui textarea,.swagger-ui th,.swagger-ui tr,.swagger-ui ul{box-sizing:border-box}.swagger-ui .aspect-ratio{height:0;position:relative}.swagger-ui .aspect-ratio--16x9{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1{padding-bottom:100%}.swagger-ui .aspect-ratio--object{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}@media screen and (min-width:30em){.swagger-ui .aspect-ratio-ns{height:0;position:relative}.swagger-ui .aspect-ratio--16x9-ns{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16-ns{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3-ns{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4-ns{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4-ns{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6-ns{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5-ns{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8-ns{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5-ns{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7-ns{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1-ns{padding-bottom:100%}.swagger-ui .aspect-ratio--object-ns{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .aspect-ratio-m{height:0;position:relative}.swagger-ui .aspect-ratio--16x9-m{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16-m{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3-m{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4-m{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4-m{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6-m{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5-m{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8-m{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5-m{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7-m{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1-m{padding-bottom:100%}.swagger-ui .aspect-ratio--object-m{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:60em){.swagger-ui .aspect-ratio-l{height:0;position:relative}.swagger-ui .aspect-ratio--16x9-l{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16-l{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3-l{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4-l{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4-l{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6-l{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5-l{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8-l{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5-l{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7-l{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1-l{padding-bottom:100%}.swagger-ui .aspect-ratio--object-l{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}.swagger-ui img{max-width:100%}.swagger-ui .cover{background-size:cover!important}.swagger-ui .contain{background-size:contain!important}@media screen and (min-width:30em){.swagger-ui .cover-ns{background-size:cover!important}.swagger-ui .contain-ns{background-size:contain!important}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .cover-m{background-size:cover!important}.swagger-ui .contain-m{background-size:contain!important}}@media screen and (min-width:60em){.swagger-ui .cover-l{background-size:cover!important}.swagger-ui .contain-l{background-size:contain!important}}.swagger-ui .bg-center{background-position:50%;background-repeat:no-repeat}.swagger-ui .bg-top{background-position:top;background-repeat:no-repeat}.swagger-ui .bg-right{background-position:100%;background-repeat:no-repeat}.swagger-ui .bg-bottom{background-position:bottom;background-repeat:no-repeat}.swagger-ui .bg-left{background-position:0;background-repeat:no-repeat}@media screen and (min-width:30em){.swagger-ui .bg-center-ns{background-position:50%;background-repeat:no-repeat}.swagger-ui .bg-top-ns{background-position:top;background-repeat:no-repeat}.swagger-ui .bg-right-ns{background-position:100%;background-repeat:no-repeat}.swagger-ui .bg-bottom-ns{background-position:bottom;background-repeat:no-repeat}.swagger-ui .bg-left-ns{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .bg-center-m{background-position:50%;background-repeat:no-repeat}.swagger-ui .bg-top-m{background-position:top;background-repeat:no-repeat}.swagger-ui .bg-right-m{background-position:100%;background-repeat:no-repeat}.swagger-ui .bg-bottom-m{background-position:bottom;background-repeat:no-repeat}.swagger-ui .bg-left-m{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:60em){.swagger-ui .bg-center-l{background-position:50%;background-repeat:no-repeat}.swagger-ui .bg-top-l{background-position:top;background-repeat:no-repeat}.swagger-ui .bg-right-l{background-position:100%;background-repeat:no-repeat}.swagger-ui .bg-bottom-l{background-position:bottom;background-repeat:no-repeat}.swagger-ui .bg-left-l{background-position:0;background-repeat:no-repeat}}.swagger-ui .outline{outline:1px solid}.swagger-ui .outline-transparent{outline:1px solid transparent}.swagger-ui .outline-0{outline:0}@media screen and (min-width:30em){.swagger-ui .outline-ns{outline:1px solid}.swagger-ui .outline-transparent-ns{outline:1px solid transparent}.swagger-ui .outline-0-ns{outline:0}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .outline-m{outline:1px solid}.swagger-ui .outline-transparent-m{outline:1px solid transparent}.swagger-ui .outline-0-m{outline:0}}@media screen and (min-width:60em){.swagger-ui .outline-l{outline:1px solid}.swagger-ui .outline-transparent-l{outline:1px solid transparent}.swagger-ui .outline-0-l{outline:0}}.swagger-ui .ba{border-style:solid;border-width:1px}.swagger-ui .bt{border-top-style:solid;border-top-width:1px}.swagger-ui .br{border-right-style:solid;border-right-width:1px}.swagger-ui .bb{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl{border-left-style:solid;border-left-width:1px}.swagger-ui .bn{border-style:none;border-width:0}@media screen and (min-width:30em){.swagger-ui .ba-ns{border-style:solid;border-width:1px}.swagger-ui .bt-ns{border-top-style:solid;border-top-width:1px}.swagger-ui .br-ns{border-right-style:solid;border-right-width:1px}.swagger-ui .bb-ns{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl-ns{border-left-style:solid;border-left-width:1px}.swagger-ui .bn-ns{border-style:none;border-width:0}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .ba-m{border-style:solid;border-width:1px}.swagger-ui .bt-m{border-top-style:solid;border-top-width:1px}.swagger-ui .br-m{border-right-style:solid;border-right-width:1px}.swagger-ui .bb-m{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl-m{border-left-style:solid;border-left-width:1px}.swagger-ui .bn-m{border-style:none;border-width:0}}@media screen and (min-width:60em){.swagger-ui .ba-l{border-style:solid;border-width:1px}.swagger-ui .bt-l{border-top-style:solid;border-top-width:1px}.swagger-ui .br-l{border-right-style:solid;border-right-width:1px}.swagger-ui .bb-l{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl-l{border-left-style:solid;border-left-width:1px}.swagger-ui .bn-l{border-style:none;border-width:0}}.swagger-ui .b--black{border-color:#000}.swagger-ui .b--near-black{border-color:#111}.swagger-ui .b--dark-gray{border-color:#333}.swagger-ui .b--mid-gray{border-color:#555}.swagger-ui .b--gray{border-color:#777}.swagger-ui .b--silver{border-color:#999}.swagger-ui .b--light-silver{border-color:#aaa}.swagger-ui .b--moon-gray{border-color:#ccc}.swagger-ui .b--light-gray{border-color:#eee}.swagger-ui .b--near-white{border-color:#f4f4f4}.swagger-ui .b--white{border-color:#fff}.swagger-ui .b--white-90{border-color:hsla(0,0%,100%,.9)}.swagger-ui .b--white-80{border-color:hsla(0,0%,100%,.8)}.swagger-ui .b--white-70{border-color:hsla(0,0%,100%,.7)}.swagger-ui .b--white-60{border-color:hsla(0,0%,100%,.6)}.swagger-ui .b--white-50{border-color:hsla(0,0%,100%,.5)}.swagger-ui .b--white-40{border-color:hsla(0,0%,100%,.4)}.swagger-ui .b--white-30{border-color:hsla(0,0%,100%,.3)}.swagger-ui .b--white-20{border-color:hsla(0,0%,100%,.2)}.swagger-ui .b--white-10{border-color:hsla(0,0%,100%,.1)}.swagger-ui .b--white-05{border-color:hsla(0,0%,100%,.05)}.swagger-ui .b--white-025{border-color:hsla(0,0%,100%,.025)}.swagger-ui .b--white-0125{border-color:hsla(0,0%,100%,.013)}.swagger-ui .b--black-90{border-color:rgba(0,0,0,.9)}.swagger-ui .b--black-80{border-color:rgba(0,0,0,.8)}.swagger-ui .b--black-70{border-color:rgba(0,0,0,.7)}.swagger-ui .b--black-60{border-color:rgba(0,0,0,.6)}.swagger-ui .b--black-50{border-color:rgba(0,0,0,.5)}.swagger-ui .b--black-40{border-color:rgba(0,0,0,.4)}.swagger-ui .b--black-30{border-color:rgba(0,0,0,.3)}.swagger-ui .b--black-20{border-color:rgba(0,0,0,.2)}.swagger-ui .b--black-10{border-color:rgba(0,0,0,.1)}.swagger-ui .b--black-05{border-color:rgba(0,0,0,.05)}.swagger-ui .b--black-025{border-color:rgba(0,0,0,.025)}.swagger-ui .b--black-0125{border-color:rgba(0,0,0,.013)}.swagger-ui .b--dark-red{border-color:#e7040f}.swagger-ui .b--red{border-color:#ff4136}.swagger-ui .b--light-red{border-color:#ff725c}.swagger-ui .b--orange{border-color:#ff6300}.swagger-ui .b--gold{border-color:#ffb700}.swagger-ui .b--yellow{border-color:gold}.swagger-ui .b--light-yellow{border-color:#fbf1a9}.swagger-ui .b--purple{border-color:#5e2ca5}.swagger-ui .b--light-purple{border-color:#a463f2}.swagger-ui .b--dark-pink{border-color:#d5008f}.swagger-ui .b--hot-pink{border-color:#ff41b4}.swagger-ui .b--pink{border-color:#ff80cc}.swagger-ui .b--light-pink{border-color:#ffa3d7}.swagger-ui .b--dark-green{border-color:#137752}.swagger-ui .b--green{border-color:#19a974}.swagger-ui .b--light-green{border-color:#9eebcf}.swagger-ui .b--navy{border-color:#001b44}.swagger-ui .b--dark-blue{border-color:#00449e}.swagger-ui .b--blue{border-color:#357edd}.swagger-ui .b--light-blue{border-color:#96ccff}.swagger-ui .b--lightest-blue{border-color:#cdecff}.swagger-ui .b--washed-blue{border-color:#f6fffe}.swagger-ui .b--washed-green{border-color:#e8fdf5}.swagger-ui .b--washed-yellow{border-color:#fffceb}.swagger-ui .b--washed-red{border-color:#ffdfdf}.swagger-ui .b--transparent{border-color:transparent}.swagger-ui .b--inherit{border-color:inherit}.swagger-ui .br0{border-radius:0}.swagger-ui .br1{border-radius:.125rem}.swagger-ui .br2{border-radius:.25rem}.swagger-ui .br3{border-radius:.5rem}.swagger-ui .br4{border-radius:1rem}.swagger-ui .br-100{border-radius:100%}.swagger-ui .br-pill{border-radius:9999px}.swagger-ui .br--bottom{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right{border-bottom-left-radius:0;border-top-left-radius:0}.swagger-ui .br--left{border-bottom-right-radius:0;border-top-right-radius:0}@media screen and (min-width:30em){.swagger-ui .br0-ns{border-radius:0}.swagger-ui .br1-ns{border-radius:.125rem}.swagger-ui .br2-ns{border-radius:.25rem}.swagger-ui .br3-ns{border-radius:.5rem}.swagger-ui .br4-ns{border-radius:1rem}.swagger-ui .br-100-ns{border-radius:100%}.swagger-ui .br-pill-ns{border-radius:9999px}.swagger-ui .br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top-ns{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right-ns{border-bottom-left-radius:0;border-top-left-radius:0}.swagger-ui .br--left-ns{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .br0-m{border-radius:0}.swagger-ui .br1-m{border-radius:.125rem}.swagger-ui .br2-m{border-radius:.25rem}.swagger-ui .br3-m{border-radius:.5rem}.swagger-ui .br4-m{border-radius:1rem}.swagger-ui .br-100-m{border-radius:100%}.swagger-ui .br-pill-m{border-radius:9999px}.swagger-ui .br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top-m{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right-m{border-bottom-left-radius:0;border-top-left-radius:0}.swagger-ui .br--left-m{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:60em){.swagger-ui .br0-l{border-radius:0}.swagger-ui .br1-l{border-radius:.125rem}.swagger-ui .br2-l{border-radius:.25rem}.swagger-ui .br3-l{border-radius:.5rem}.swagger-ui .br4-l{border-radius:1rem}.swagger-ui .br-100-l{border-radius:100%}.swagger-ui .br-pill-l{border-radius:9999px}.swagger-ui .br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top-l{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right-l{border-bottom-left-radius:0;border-top-left-radius:0}.swagger-ui .br--left-l{border-bottom-right-radius:0;border-top-right-radius:0}}.swagger-ui .b--dotted{border-style:dotted}.swagger-ui .b--dashed{border-style:dashed}.swagger-ui .b--solid{border-style:solid}.swagger-ui .b--none{border-style:none}@media screen and (min-width:30em){.swagger-ui .b--dotted-ns{border-style:dotted}.swagger-ui .b--dashed-ns{border-style:dashed}.swagger-ui .b--solid-ns{border-style:solid}.swagger-ui .b--none-ns{border-style:none}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .b--dotted-m{border-style:dotted}.swagger-ui .b--dashed-m{border-style:dashed}.swagger-ui .b--solid-m{border-style:solid}.swagger-ui .b--none-m{border-style:none}}@media screen and (min-width:60em){.swagger-ui .b--dotted-l{border-style:dotted}.swagger-ui .b--dashed-l{border-style:dashed}.swagger-ui .b--solid-l{border-style:solid}.swagger-ui .b--none-l{border-style:none}}.swagger-ui .bw0{border-width:0}.swagger-ui .bw1{border-width:.125rem}.swagger-ui .bw2{border-width:.25rem}.swagger-ui .bw3{border-width:.5rem}.swagger-ui .bw4{border-width:1rem}.swagger-ui .bw5{border-width:2rem}.swagger-ui .bt-0{border-top-width:0}.swagger-ui .br-0{border-right-width:0}.swagger-ui .bb-0{border-bottom-width:0}.swagger-ui .bl-0{border-left-width:0}@media screen and (min-width:30em){.swagger-ui .bw0-ns{border-width:0}.swagger-ui .bw1-ns{border-width:.125rem}.swagger-ui .bw2-ns{border-width:.25rem}.swagger-ui .bw3-ns{border-width:.5rem}.swagger-ui .bw4-ns{border-width:1rem}.swagger-ui .bw5-ns{border-width:2rem}.swagger-ui .bt-0-ns{border-top-width:0}.swagger-ui .br-0-ns{border-right-width:0}.swagger-ui .bb-0-ns{border-bottom-width:0}.swagger-ui .bl-0-ns{border-left-width:0}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .bw0-m{border-width:0}.swagger-ui .bw1-m{border-width:.125rem}.swagger-ui .bw2-m{border-width:.25rem}.swagger-ui .bw3-m{border-width:.5rem}.swagger-ui .bw4-m{border-width:1rem}.swagger-ui .bw5-m{border-width:2rem}.swagger-ui .bt-0-m{border-top-width:0}.swagger-ui .br-0-m{border-right-width:0}.swagger-ui .bb-0-m{border-bottom-width:0}.swagger-ui .bl-0-m{border-left-width:0}}@media screen and (min-width:60em){.swagger-ui .bw0-l{border-width:0}.swagger-ui .bw1-l{border-width:.125rem}.swagger-ui .bw2-l{border-width:.25rem}.swagger-ui .bw3-l{border-width:.5rem}.swagger-ui .bw4-l{border-width:1rem}.swagger-ui .bw5-l{border-width:2rem}.swagger-ui .bt-0-l{border-top-width:0}.swagger-ui .br-0-l{border-right-width:0}.swagger-ui .bb-0-l{border-bottom-width:0}.swagger-ui .bl-0-l{border-left-width:0}}.swagger-ui .shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}@media screen and (min-width:30em){.swagger-ui .shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:60em){.swagger-ui .shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}.swagger-ui .pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.swagger-ui .top-0{top:0}.swagger-ui .right-0{right:0}.swagger-ui .bottom-0{bottom:0}.swagger-ui .left-0{left:0}.swagger-ui .top-1{top:1rem}.swagger-ui .right-1{right:1rem}.swagger-ui .bottom-1{bottom:1rem}.swagger-ui .left-1{left:1rem}.swagger-ui .top-2{top:2rem}.swagger-ui .right-2{right:2rem}.swagger-ui .bottom-2{bottom:2rem}.swagger-ui .left-2{left:2rem}.swagger-ui .top--1{top:-1rem}.swagger-ui .right--1{right:-1rem}.swagger-ui .bottom--1{bottom:-1rem}.swagger-ui .left--1{left:-1rem}.swagger-ui .top--2{top:-2rem}.swagger-ui .right--2{right:-2rem}.swagger-ui .bottom--2{bottom:-2rem}.swagger-ui .left--2{left:-2rem}.swagger-ui .absolute--fill{bottom:0;left:0;right:0;top:0}@media screen and (min-width:30em){.swagger-ui .top-0-ns{top:0}.swagger-ui .left-0-ns{left:0}.swagger-ui .right-0-ns{right:0}.swagger-ui .bottom-0-ns{bottom:0}.swagger-ui .top-1-ns{top:1rem}.swagger-ui .left-1-ns{left:1rem}.swagger-ui .right-1-ns{right:1rem}.swagger-ui .bottom-1-ns{bottom:1rem}.swagger-ui .top-2-ns{top:2rem}.swagger-ui .left-2-ns{left:2rem}.swagger-ui .right-2-ns{right:2rem}.swagger-ui .bottom-2-ns{bottom:2rem}.swagger-ui .top--1-ns{top:-1rem}.swagger-ui .right--1-ns{right:-1rem}.swagger-ui .bottom--1-ns{bottom:-1rem}.swagger-ui .left--1-ns{left:-1rem}.swagger-ui .top--2-ns{top:-2rem}.swagger-ui .right--2-ns{right:-2rem}.swagger-ui .bottom--2-ns{bottom:-2rem}.swagger-ui .left--2-ns{left:-2rem}.swagger-ui .absolute--fill-ns{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .top-0-m{top:0}.swagger-ui .left-0-m{left:0}.swagger-ui .right-0-m{right:0}.swagger-ui .bottom-0-m{bottom:0}.swagger-ui .top-1-m{top:1rem}.swagger-ui .left-1-m{left:1rem}.swagger-ui .right-1-m{right:1rem}.swagger-ui .bottom-1-m{bottom:1rem}.swagger-ui .top-2-m{top:2rem}.swagger-ui .left-2-m{left:2rem}.swagger-ui .right-2-m{right:2rem}.swagger-ui .bottom-2-m{bottom:2rem}.swagger-ui .top--1-m{top:-1rem}.swagger-ui .right--1-m{right:-1rem}.swagger-ui .bottom--1-m{bottom:-1rem}.swagger-ui .left--1-m{left:-1rem}.swagger-ui .top--2-m{top:-2rem}.swagger-ui .right--2-m{right:-2rem}.swagger-ui .bottom--2-m{bottom:-2rem}.swagger-ui .left--2-m{left:-2rem}.swagger-ui .absolute--fill-m{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:60em){.swagger-ui .top-0-l{top:0}.swagger-ui .left-0-l{left:0}.swagger-ui .right-0-l{right:0}.swagger-ui .bottom-0-l{bottom:0}.swagger-ui .top-1-l{top:1rem}.swagger-ui .left-1-l{left:1rem}.swagger-ui .right-1-l{right:1rem}.swagger-ui .bottom-1-l{bottom:1rem}.swagger-ui .top-2-l{top:2rem}.swagger-ui .left-2-l{left:2rem}.swagger-ui .right-2-l{right:2rem}.swagger-ui .bottom-2-l{bottom:2rem}.swagger-ui .top--1-l{top:-1rem}.swagger-ui .right--1-l{right:-1rem}.swagger-ui .bottom--1-l{bottom:-1rem}.swagger-ui .left--1-l{left:-1rem}.swagger-ui .top--2-l{top:-2rem}.swagger-ui .right--2-l{right:-2rem}.swagger-ui .bottom--2-l{bottom:-2rem}.swagger-ui .left--2-l{left:-2rem}.swagger-ui .absolute--fill-l{bottom:0;left:0;right:0;top:0}}.swagger-ui .cf:after,.swagger-ui .cf:before{content:\" \";display:table}.swagger-ui .cf:after{clear:both}.swagger-ui .cf{zoom:1}.swagger-ui .cl{clear:left}.swagger-ui .cr{clear:right}.swagger-ui .cb{clear:both}.swagger-ui .cn{clear:none}@media screen and (min-width:30em){.swagger-ui .cl-ns{clear:left}.swagger-ui .cr-ns{clear:right}.swagger-ui .cb-ns{clear:both}.swagger-ui .cn-ns{clear:none}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .cl-m{clear:left}.swagger-ui .cr-m{clear:right}.swagger-ui .cb-m{clear:both}.swagger-ui .cn-m{clear:none}}@media screen and (min-width:60em){.swagger-ui .cl-l{clear:left}.swagger-ui .cr-l{clear:right}.swagger-ui .cb-l{clear:both}.swagger-ui .cn-l{clear:none}}.swagger-ui .flex{display:flex}.swagger-ui .inline-flex{display:inline-flex}.swagger-ui .flex-auto{flex:1 1 auto;min-height:0;min-width:0}.swagger-ui .flex-none{flex:none}.swagger-ui .flex-column{flex-direction:column}.swagger-ui .flex-row{flex-direction:row}.swagger-ui .flex-wrap{flex-wrap:wrap}.swagger-ui .flex-nowrap{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse{flex-direction:column-reverse}.swagger-ui .flex-row-reverse{flex-direction:row-reverse}.swagger-ui .items-start{align-items:flex-start}.swagger-ui .items-end{align-items:flex-end}.swagger-ui .items-center{align-items:center}.swagger-ui .items-baseline{align-items:baseline}.swagger-ui .items-stretch{align-items:stretch}.swagger-ui .self-start{align-self:flex-start}.swagger-ui .self-end{align-self:flex-end}.swagger-ui .self-center{align-self:center}.swagger-ui .self-baseline{align-self:baseline}.swagger-ui .self-stretch{align-self:stretch}.swagger-ui .justify-start{justify-content:flex-start}.swagger-ui .justify-end{justify-content:flex-end}.swagger-ui .justify-center{justify-content:center}.swagger-ui .justify-between{justify-content:space-between}.swagger-ui .justify-around{justify-content:space-around}.swagger-ui .content-start{align-content:flex-start}.swagger-ui .content-end{align-content:flex-end}.swagger-ui .content-center{align-content:center}.swagger-ui .content-between{align-content:space-between}.swagger-ui .content-around{align-content:space-around}.swagger-ui .content-stretch{align-content:stretch}.swagger-ui .order-0{order:0}.swagger-ui .order-1{order:1}.swagger-ui .order-2{order:2}.swagger-ui .order-3{order:3}.swagger-ui .order-4{order:4}.swagger-ui .order-5{order:5}.swagger-ui .order-6{order:6}.swagger-ui .order-7{order:7}.swagger-ui .order-8{order:8}.swagger-ui .order-last{order:99999}.swagger-ui .flex-grow-0{flex-grow:0}.swagger-ui .flex-grow-1{flex-grow:1}.swagger-ui .flex-shrink-0{flex-shrink:0}.swagger-ui .flex-shrink-1{flex-shrink:1}@media screen and (min-width:30em){.swagger-ui .flex-ns{display:flex}.swagger-ui .inline-flex-ns{display:inline-flex}.swagger-ui .flex-auto-ns{flex:1 1 auto;min-height:0;min-width:0}.swagger-ui .flex-none-ns{flex:none}.swagger-ui .flex-column-ns{flex-direction:column}.swagger-ui .flex-row-ns{flex-direction:row}.swagger-ui .flex-wrap-ns{flex-wrap:wrap}.swagger-ui .flex-nowrap-ns{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse-ns{flex-direction:column-reverse}.swagger-ui .flex-row-reverse-ns{flex-direction:row-reverse}.swagger-ui .items-start-ns{align-items:flex-start}.swagger-ui .items-end-ns{align-items:flex-end}.swagger-ui .items-center-ns{align-items:center}.swagger-ui .items-baseline-ns{align-items:baseline}.swagger-ui .items-stretch-ns{align-items:stretch}.swagger-ui .self-start-ns{align-self:flex-start}.swagger-ui .self-end-ns{align-self:flex-end}.swagger-ui .self-center-ns{align-self:center}.swagger-ui .self-baseline-ns{align-self:baseline}.swagger-ui .self-stretch-ns{align-self:stretch}.swagger-ui .justify-start-ns{justify-content:flex-start}.swagger-ui .justify-end-ns{justify-content:flex-end}.swagger-ui .justify-center-ns{justify-content:center}.swagger-ui .justify-between-ns{justify-content:space-between}.swagger-ui .justify-around-ns{justify-content:space-around}.swagger-ui .content-start-ns{align-content:flex-start}.swagger-ui .content-end-ns{align-content:flex-end}.swagger-ui .content-center-ns{align-content:center}.swagger-ui .content-between-ns{align-content:space-between}.swagger-ui .content-around-ns{align-content:space-around}.swagger-ui .content-stretch-ns{align-content:stretch}.swagger-ui .order-0-ns{order:0}.swagger-ui .order-1-ns{order:1}.swagger-ui .order-2-ns{order:2}.swagger-ui .order-3-ns{order:3}.swagger-ui .order-4-ns{order:4}.swagger-ui .order-5-ns{order:5}.swagger-ui .order-6-ns{order:6}.swagger-ui .order-7-ns{order:7}.swagger-ui .order-8-ns{order:8}.swagger-ui .order-last-ns{order:99999}.swagger-ui .flex-grow-0-ns{flex-grow:0}.swagger-ui .flex-grow-1-ns{flex-grow:1}.swagger-ui .flex-shrink-0-ns{flex-shrink:0}.swagger-ui .flex-shrink-1-ns{flex-shrink:1}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .flex-m{display:flex}.swagger-ui .inline-flex-m{display:inline-flex}.swagger-ui .flex-auto-m{flex:1 1 auto;min-height:0;min-width:0}.swagger-ui .flex-none-m{flex:none}.swagger-ui .flex-column-m{flex-direction:column}.swagger-ui .flex-row-m{flex-direction:row}.swagger-ui .flex-wrap-m{flex-wrap:wrap}.swagger-ui .flex-nowrap-m{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse-m{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse-m{flex-direction:column-reverse}.swagger-ui .flex-row-reverse-m{flex-direction:row-reverse}.swagger-ui .items-start-m{align-items:flex-start}.swagger-ui .items-end-m{align-items:flex-end}.swagger-ui .items-center-m{align-items:center}.swagger-ui .items-baseline-m{align-items:baseline}.swagger-ui .items-stretch-m{align-items:stretch}.swagger-ui .self-start-m{align-self:flex-start}.swagger-ui .self-end-m{align-self:flex-end}.swagger-ui .self-center-m{align-self:center}.swagger-ui .self-baseline-m{align-self:baseline}.swagger-ui .self-stretch-m{align-self:stretch}.swagger-ui .justify-start-m{justify-content:flex-start}.swagger-ui .justify-end-m{justify-content:flex-end}.swagger-ui .justify-center-m{justify-content:center}.swagger-ui .justify-between-m{justify-content:space-between}.swagger-ui .justify-around-m{justify-content:space-around}.swagger-ui .content-start-m{align-content:flex-start}.swagger-ui .content-end-m{align-content:flex-end}.swagger-ui .content-center-m{align-content:center}.swagger-ui .content-between-m{align-content:space-between}.swagger-ui .content-around-m{align-content:space-around}.swagger-ui .content-stretch-m{align-content:stretch}.swagger-ui .order-0-m{order:0}.swagger-ui .order-1-m{order:1}.swagger-ui .order-2-m{order:2}.swagger-ui .order-3-m{order:3}.swagger-ui .order-4-m{order:4}.swagger-ui .order-5-m{order:5}.swagger-ui .order-6-m{order:6}.swagger-ui .order-7-m{order:7}.swagger-ui .order-8-m{order:8}.swagger-ui .order-last-m{order:99999}.swagger-ui .flex-grow-0-m{flex-grow:0}.swagger-ui .flex-grow-1-m{flex-grow:1}.swagger-ui .flex-shrink-0-m{flex-shrink:0}.swagger-ui .flex-shrink-1-m{flex-shrink:1}}@media screen and (min-width:60em){.swagger-ui .flex-l{display:flex}.swagger-ui .inline-flex-l{display:inline-flex}.swagger-ui .flex-auto-l{flex:1 1 auto;min-height:0;min-width:0}.swagger-ui .flex-none-l{flex:none}.swagger-ui .flex-column-l{flex-direction:column}.swagger-ui .flex-row-l{flex-direction:row}.swagger-ui .flex-wrap-l{flex-wrap:wrap}.swagger-ui .flex-nowrap-l{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse-l{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse-l{flex-direction:column-reverse}.swagger-ui .flex-row-reverse-l{flex-direction:row-reverse}.swagger-ui .items-start-l{align-items:flex-start}.swagger-ui .items-end-l{align-items:flex-end}.swagger-ui .items-center-l{align-items:center}.swagger-ui .items-baseline-l{align-items:baseline}.swagger-ui .items-stretch-l{align-items:stretch}.swagger-ui .self-start-l{align-self:flex-start}.swagger-ui .self-end-l{align-self:flex-end}.swagger-ui .self-center-l{align-self:center}.swagger-ui .self-baseline-l{align-self:baseline}.swagger-ui .self-stretch-l{align-self:stretch}.swagger-ui .justify-start-l{justify-content:flex-start}.swagger-ui .justify-end-l{justify-content:flex-end}.swagger-ui .justify-center-l{justify-content:center}.swagger-ui .justify-between-l{justify-content:space-between}.swagger-ui .justify-around-l{justify-content:space-around}.swagger-ui .content-start-l{align-content:flex-start}.swagger-ui .content-end-l{align-content:flex-end}.swagger-ui .content-center-l{align-content:center}.swagger-ui .content-between-l{align-content:space-between}.swagger-ui .content-around-l{align-content:space-around}.swagger-ui .content-stretch-l{align-content:stretch}.swagger-ui .order-0-l{order:0}.swagger-ui .order-1-l{order:1}.swagger-ui .order-2-l{order:2}.swagger-ui .order-3-l{order:3}.swagger-ui .order-4-l{order:4}.swagger-ui .order-5-l{order:5}.swagger-ui .order-6-l{order:6}.swagger-ui .order-7-l{order:7}.swagger-ui .order-8-l{order:8}.swagger-ui .order-last-l{order:99999}.swagger-ui .flex-grow-0-l{flex-grow:0}.swagger-ui .flex-grow-1-l{flex-grow:1}.swagger-ui .flex-shrink-0-l{flex-shrink:0}.swagger-ui .flex-shrink-1-l{flex-shrink:1}}.swagger-ui .dn{display:none}.swagger-ui .di{display:inline}.swagger-ui .db{display:block}.swagger-ui .dib{display:inline-block}.swagger-ui .dit{display:inline-table}.swagger-ui .dt{display:table}.swagger-ui .dtc{display:table-cell}.swagger-ui .dt-row{display:table-row}.swagger-ui .dt-row-group{display:table-row-group}.swagger-ui .dt-column{display:table-column}.swagger-ui .dt-column-group{display:table-column-group}.swagger-ui .dt--fixed{table-layout:fixed;width:100%}@media screen and (min-width:30em){.swagger-ui .dn-ns{display:none}.swagger-ui .di-ns{display:inline}.swagger-ui .db-ns{display:block}.swagger-ui .dib-ns{display:inline-block}.swagger-ui .dit-ns{display:inline-table}.swagger-ui .dt-ns{display:table}.swagger-ui .dtc-ns{display:table-cell}.swagger-ui .dt-row-ns{display:table-row}.swagger-ui .dt-row-group-ns{display:table-row-group}.swagger-ui .dt-column-ns{display:table-column}.swagger-ui .dt-column-group-ns{display:table-column-group}.swagger-ui .dt--fixed-ns{table-layout:fixed;width:100%}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .dn-m{display:none}.swagger-ui .di-m{display:inline}.swagger-ui .db-m{display:block}.swagger-ui .dib-m{display:inline-block}.swagger-ui .dit-m{display:inline-table}.swagger-ui .dt-m{display:table}.swagger-ui .dtc-m{display:table-cell}.swagger-ui .dt-row-m{display:table-row}.swagger-ui .dt-row-group-m{display:table-row-group}.swagger-ui .dt-column-m{display:table-column}.swagger-ui .dt-column-group-m{display:table-column-group}.swagger-ui .dt--fixed-m{table-layout:fixed;width:100%}}@media screen and (min-width:60em){.swagger-ui .dn-l{display:none}.swagger-ui .di-l{display:inline}.swagger-ui .db-l{display:block}.swagger-ui .dib-l{display:inline-block}.swagger-ui .dit-l{display:inline-table}.swagger-ui .dt-l{display:table}.swagger-ui .dtc-l{display:table-cell}.swagger-ui .dt-row-l{display:table-row}.swagger-ui .dt-row-group-l{display:table-row-group}.swagger-ui .dt-column-l{display:table-column}.swagger-ui .dt-column-group-l{display:table-column-group}.swagger-ui .dt--fixed-l{table-layout:fixed;width:100%}}.swagger-ui .fl{_display:inline;float:left}.swagger-ui .fr{_display:inline;float:right}.swagger-ui .fn{float:none}@media screen and (min-width:30em){.swagger-ui .fl-ns{_display:inline;float:left}.swagger-ui .fr-ns{_display:inline;float:right}.swagger-ui .fn-ns{float:none}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .fl-m{_display:inline;float:left}.swagger-ui .fr-m{_display:inline;float:right}.swagger-ui .fn-m{float:none}}@media screen and (min-width:60em){.swagger-ui .fl-l{_display:inline;float:left}.swagger-ui .fr-l{_display:inline;float:right}.swagger-ui .fn-l{float:none}}.swagger-ui .sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica,helvetica neue,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.swagger-ui .serif{font-family:georgia,serif}.swagger-ui .system-sans-serif{font-family:sans-serif}.swagger-ui .system-serif{font-family:serif}.swagger-ui .code,.swagger-ui code{font-family:Consolas,monaco,monospace}.swagger-ui .courier{font-family:Courier Next,courier,monospace}.swagger-ui .helvetica{font-family:helvetica neue,helvetica,sans-serif}.swagger-ui .avenir{font-family:avenir next,avenir,sans-serif}.swagger-ui .athelas{font-family:athelas,georgia,serif}.swagger-ui .georgia{font-family:georgia,serif}.swagger-ui .times{font-family:times,serif}.swagger-ui .bodoni{font-family:Bodoni MT,serif}.swagger-ui .calisto{font-family:Calisto MT,serif}.swagger-ui .garamond{font-family:garamond,serif}.swagger-ui .baskerville{font-family:baskerville,serif}.swagger-ui .i{font-style:italic}.swagger-ui .fs-normal{font-style:normal}@media screen and (min-width:30em){.swagger-ui .i-ns{font-style:italic}.swagger-ui .fs-normal-ns{font-style:normal}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .i-m{font-style:italic}.swagger-ui .fs-normal-m{font-style:normal}}@media screen and (min-width:60em){.swagger-ui .i-l{font-style:italic}.swagger-ui .fs-normal-l{font-style:normal}}.swagger-ui .normal{font-weight:400}.swagger-ui .b{font-weight:700}.swagger-ui .fw1{font-weight:100}.swagger-ui .fw2{font-weight:200}.swagger-ui .fw3{font-weight:300}.swagger-ui .fw4{font-weight:400}.swagger-ui .fw5{font-weight:500}.swagger-ui .fw6{font-weight:600}.swagger-ui .fw7{font-weight:700}.swagger-ui .fw8{font-weight:800}.swagger-ui .fw9{font-weight:900}@media screen and (min-width:30em){.swagger-ui .normal-ns{font-weight:400}.swagger-ui .b-ns{font-weight:700}.swagger-ui .fw1-ns{font-weight:100}.swagger-ui .fw2-ns{font-weight:200}.swagger-ui .fw3-ns{font-weight:300}.swagger-ui .fw4-ns{font-weight:400}.swagger-ui .fw5-ns{font-weight:500}.swagger-ui .fw6-ns{font-weight:600}.swagger-ui .fw7-ns{font-weight:700}.swagger-ui .fw8-ns{font-weight:800}.swagger-ui .fw9-ns{font-weight:900}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .normal-m{font-weight:400}.swagger-ui .b-m{font-weight:700}.swagger-ui .fw1-m{font-weight:100}.swagger-ui .fw2-m{font-weight:200}.swagger-ui .fw3-m{font-weight:300}.swagger-ui .fw4-m{font-weight:400}.swagger-ui .fw5-m{font-weight:500}.swagger-ui .fw6-m{font-weight:600}.swagger-ui .fw7-m{font-weight:700}.swagger-ui .fw8-m{font-weight:800}.swagger-ui .fw9-m{font-weight:900}}@media screen and (min-width:60em){.swagger-ui .normal-l{font-weight:400}.swagger-ui .b-l{font-weight:700}.swagger-ui .fw1-l{font-weight:100}.swagger-ui .fw2-l{font-weight:200}.swagger-ui .fw3-l{font-weight:300}.swagger-ui .fw4-l{font-weight:400}.swagger-ui .fw5-l{font-weight:500}.swagger-ui .fw6-l{font-weight:600}.swagger-ui .fw7-l{font-weight:700}.swagger-ui .fw8-l{font-weight:800}.swagger-ui .fw9-l{font-weight:900}}.swagger-ui .input-reset{-webkit-appearance:none;-moz-appearance:none}.swagger-ui .button-reset::-moz-focus-inner,.swagger-ui .input-reset::-moz-focus-inner{border:0;padding:0}.swagger-ui .h1{height:1rem}.swagger-ui .h2{height:2rem}.swagger-ui .h3{height:4rem}.swagger-ui .h4{height:8rem}.swagger-ui .h5{height:16rem}.swagger-ui .h-25{height:25%}.swagger-ui .h-50{height:50%}.swagger-ui .h-75{height:75%}.swagger-ui .h-100{height:100%}.swagger-ui .min-h-100{min-height:100%}.swagger-ui .vh-25{height:25vh}.swagger-ui .vh-50{height:50vh}.swagger-ui .vh-75{height:75vh}.swagger-ui .vh-100{height:100vh}.swagger-ui .min-vh-100{min-height:100vh}.swagger-ui .h-auto{height:auto}.swagger-ui .h-inherit{height:inherit}@media screen and (min-width:30em){.swagger-ui .h1-ns{height:1rem}.swagger-ui .h2-ns{height:2rem}.swagger-ui .h3-ns{height:4rem}.swagger-ui .h4-ns{height:8rem}.swagger-ui .h5-ns{height:16rem}.swagger-ui .h-25-ns{height:25%}.swagger-ui .h-50-ns{height:50%}.swagger-ui .h-75-ns{height:75%}.swagger-ui .h-100-ns{height:100%}.swagger-ui .min-h-100-ns{min-height:100%}.swagger-ui .vh-25-ns{height:25vh}.swagger-ui .vh-50-ns{height:50vh}.swagger-ui .vh-75-ns{height:75vh}.swagger-ui .vh-100-ns{height:100vh}.swagger-ui .min-vh-100-ns{min-height:100vh}.swagger-ui .h-auto-ns{height:auto}.swagger-ui .h-inherit-ns{height:inherit}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .h1-m{height:1rem}.swagger-ui .h2-m{height:2rem}.swagger-ui .h3-m{height:4rem}.swagger-ui .h4-m{height:8rem}.swagger-ui .h5-m{height:16rem}.swagger-ui .h-25-m{height:25%}.swagger-ui .h-50-m{height:50%}.swagger-ui .h-75-m{height:75%}.swagger-ui .h-100-m{height:100%}.swagger-ui .min-h-100-m{min-height:100%}.swagger-ui .vh-25-m{height:25vh}.swagger-ui .vh-50-m{height:50vh}.swagger-ui .vh-75-m{height:75vh}.swagger-ui .vh-100-m{height:100vh}.swagger-ui .min-vh-100-m{min-height:100vh}.swagger-ui .h-auto-m{height:auto}.swagger-ui .h-inherit-m{height:inherit}}@media screen and (min-width:60em){.swagger-ui .h1-l{height:1rem}.swagger-ui .h2-l{height:2rem}.swagger-ui .h3-l{height:4rem}.swagger-ui .h4-l{height:8rem}.swagger-ui .h5-l{height:16rem}.swagger-ui .h-25-l{height:25%}.swagger-ui .h-50-l{height:50%}.swagger-ui .h-75-l{height:75%}.swagger-ui .h-100-l{height:100%}.swagger-ui .min-h-100-l{min-height:100%}.swagger-ui .vh-25-l{height:25vh}.swagger-ui .vh-50-l{height:50vh}.swagger-ui .vh-75-l{height:75vh}.swagger-ui .vh-100-l{height:100vh}.swagger-ui .min-vh-100-l{min-height:100vh}.swagger-ui .h-auto-l{height:auto}.swagger-ui .h-inherit-l{height:inherit}}.swagger-ui .tracked{letter-spacing:.1em}.swagger-ui .tracked-tight{letter-spacing:-.05em}.swagger-ui .tracked-mega{letter-spacing:.25em}@media screen and (min-width:30em){.swagger-ui .tracked-ns{letter-spacing:.1em}.swagger-ui .tracked-tight-ns{letter-spacing:-.05em}.swagger-ui .tracked-mega-ns{letter-spacing:.25em}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .tracked-m{letter-spacing:.1em}.swagger-ui .tracked-tight-m{letter-spacing:-.05em}.swagger-ui .tracked-mega-m{letter-spacing:.25em}}@media screen and (min-width:60em){.swagger-ui .tracked-l{letter-spacing:.1em}.swagger-ui .tracked-tight-l{letter-spacing:-.05em}.swagger-ui .tracked-mega-l{letter-spacing:.25em}}.swagger-ui .lh-solid{line-height:1}.swagger-ui .lh-title{line-height:1.25}.swagger-ui .lh-copy{line-height:1.5}@media screen and (min-width:30em){.swagger-ui .lh-solid-ns{line-height:1}.swagger-ui .lh-title-ns{line-height:1.25}.swagger-ui .lh-copy-ns{line-height:1.5}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .lh-solid-m{line-height:1}.swagger-ui .lh-title-m{line-height:1.25}.swagger-ui .lh-copy-m{line-height:1.5}}@media screen and (min-width:60em){.swagger-ui .lh-solid-l{line-height:1}.swagger-ui .lh-title-l{line-height:1.25}.swagger-ui .lh-copy-l{line-height:1.5}}.swagger-ui .link{-webkit-text-decoration:none;text-decoration:none}.swagger-ui .link,.swagger-ui .link:active,.swagger-ui .link:focus,.swagger-ui .link:hover,.swagger-ui .link:link,.swagger-ui .link:visited{transition:color .15s ease-in}.swagger-ui .link:focus{outline:1px dotted currentColor}.swagger-ui .list{list-style-type:none}.swagger-ui .mw-100{max-width:100%}.swagger-ui .mw1{max-width:1rem}.swagger-ui .mw2{max-width:2rem}.swagger-ui .mw3{max-width:4rem}.swagger-ui .mw4{max-width:8rem}.swagger-ui .mw5{max-width:16rem}.swagger-ui .mw6{max-width:32rem}.swagger-ui .mw7{max-width:48rem}.swagger-ui .mw8{max-width:64rem}.swagger-ui .mw9{max-width:96rem}.swagger-ui .mw-none{max-width:none}@media screen and (min-width:30em){.swagger-ui .mw-100-ns{max-width:100%}.swagger-ui .mw1-ns{max-width:1rem}.swagger-ui .mw2-ns{max-width:2rem}.swagger-ui .mw3-ns{max-width:4rem}.swagger-ui .mw4-ns{max-width:8rem}.swagger-ui .mw5-ns{max-width:16rem}.swagger-ui .mw6-ns{max-width:32rem}.swagger-ui .mw7-ns{max-width:48rem}.swagger-ui .mw8-ns{max-width:64rem}.swagger-ui .mw9-ns{max-width:96rem}.swagger-ui .mw-none-ns{max-width:none}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .mw-100-m{max-width:100%}.swagger-ui .mw1-m{max-width:1rem}.swagger-ui .mw2-m{max-width:2rem}.swagger-ui .mw3-m{max-width:4rem}.swagger-ui .mw4-m{max-width:8rem}.swagger-ui .mw5-m{max-width:16rem}.swagger-ui .mw6-m{max-width:32rem}.swagger-ui .mw7-m{max-width:48rem}.swagger-ui .mw8-m{max-width:64rem}.swagger-ui .mw9-m{max-width:96rem}.swagger-ui .mw-none-m{max-width:none}}@media screen and (min-width:60em){.swagger-ui .mw-100-l{max-width:100%}.swagger-ui .mw1-l{max-width:1rem}.swagger-ui .mw2-l{max-width:2rem}.swagger-ui .mw3-l{max-width:4rem}.swagger-ui .mw4-l{max-width:8rem}.swagger-ui .mw5-l{max-width:16rem}.swagger-ui .mw6-l{max-width:32rem}.swagger-ui .mw7-l{max-width:48rem}.swagger-ui .mw8-l{max-width:64rem}.swagger-ui .mw9-l{max-width:96rem}.swagger-ui .mw-none-l{max-width:none}}.swagger-ui .w1{width:1rem}.swagger-ui .w2{width:2rem}.swagger-ui .w3{width:4rem}.swagger-ui .w4{width:8rem}.swagger-ui .w5{width:16rem}.swagger-ui .w-10{width:10%}.swagger-ui .w-20{width:20%}.swagger-ui .w-25{width:25%}.swagger-ui .w-30{width:30%}.swagger-ui .w-33{width:33%}.swagger-ui .w-34{width:34%}.swagger-ui .w-40{width:40%}.swagger-ui .w-50{width:50%}.swagger-ui .w-60{width:60%}.swagger-ui .w-70{width:70%}.swagger-ui .w-75{width:75%}.swagger-ui .w-80{width:80%}.swagger-ui .w-90{width:90%}.swagger-ui .w-100{width:100%}.swagger-ui .w-third{width:33.3333333333%}.swagger-ui .w-two-thirds{width:66.6666666667%}.swagger-ui .w-auto{width:auto}@media screen and (min-width:30em){.swagger-ui .w1-ns{width:1rem}.swagger-ui .w2-ns{width:2rem}.swagger-ui .w3-ns{width:4rem}.swagger-ui .w4-ns{width:8rem}.swagger-ui .w5-ns{width:16rem}.swagger-ui .w-10-ns{width:10%}.swagger-ui .w-20-ns{width:20%}.swagger-ui .w-25-ns{width:25%}.swagger-ui .w-30-ns{width:30%}.swagger-ui .w-33-ns{width:33%}.swagger-ui .w-34-ns{width:34%}.swagger-ui .w-40-ns{width:40%}.swagger-ui .w-50-ns{width:50%}.swagger-ui .w-60-ns{width:60%}.swagger-ui .w-70-ns{width:70%}.swagger-ui .w-75-ns{width:75%}.swagger-ui .w-80-ns{width:80%}.swagger-ui .w-90-ns{width:90%}.swagger-ui .w-100-ns{width:100%}.swagger-ui .w-third-ns{width:33.3333333333%}.swagger-ui .w-two-thirds-ns{width:66.6666666667%}.swagger-ui .w-auto-ns{width:auto}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .w1-m{width:1rem}.swagger-ui .w2-m{width:2rem}.swagger-ui .w3-m{width:4rem}.swagger-ui .w4-m{width:8rem}.swagger-ui .w5-m{width:16rem}.swagger-ui .w-10-m{width:10%}.swagger-ui .w-20-m{width:20%}.swagger-ui .w-25-m{width:25%}.swagger-ui .w-30-m{width:30%}.swagger-ui .w-33-m{width:33%}.swagger-ui .w-34-m{width:34%}.swagger-ui .w-40-m{width:40%}.swagger-ui .w-50-m{width:50%}.swagger-ui .w-60-m{width:60%}.swagger-ui .w-70-m{width:70%}.swagger-ui .w-75-m{width:75%}.swagger-ui .w-80-m{width:80%}.swagger-ui .w-90-m{width:90%}.swagger-ui .w-100-m{width:100%}.swagger-ui .w-third-m{width:33.3333333333%}.swagger-ui .w-two-thirds-m{width:66.6666666667%}.swagger-ui .w-auto-m{width:auto}}@media screen and (min-width:60em){.swagger-ui .w1-l{width:1rem}.swagger-ui .w2-l{width:2rem}.swagger-ui .w3-l{width:4rem}.swagger-ui .w4-l{width:8rem}.swagger-ui .w5-l{width:16rem}.swagger-ui .w-10-l{width:10%}.swagger-ui .w-20-l{width:20%}.swagger-ui .w-25-l{width:25%}.swagger-ui .w-30-l{width:30%}.swagger-ui .w-33-l{width:33%}.swagger-ui .w-34-l{width:34%}.swagger-ui .w-40-l{width:40%}.swagger-ui .w-50-l{width:50%}.swagger-ui .w-60-l{width:60%}.swagger-ui .w-70-l{width:70%}.swagger-ui .w-75-l{width:75%}.swagger-ui .w-80-l{width:80%}.swagger-ui .w-90-l{width:90%}.swagger-ui .w-100-l{width:100%}.swagger-ui .w-third-l{width:33.3333333333%}.swagger-ui .w-two-thirds-l{width:66.6666666667%}.swagger-ui .w-auto-l{width:auto}}.swagger-ui .overflow-visible{overflow:visible}.swagger-ui .overflow-hidden{overflow:hidden}.swagger-ui .overflow-scroll{overflow:scroll}.swagger-ui .overflow-auto{overflow:auto}.swagger-ui .overflow-x-visible{overflow-x:visible}.swagger-ui .overflow-x-hidden{overflow-x:hidden}.swagger-ui .overflow-x-scroll{overflow-x:scroll}.swagger-ui .overflow-x-auto{overflow-x:auto}.swagger-ui .overflow-y-visible{overflow-y:visible}.swagger-ui .overflow-y-hidden{overflow-y:hidden}.swagger-ui .overflow-y-scroll{overflow-y:scroll}.swagger-ui .overflow-y-auto{overflow-y:auto}@media screen and (min-width:30em){.swagger-ui .overflow-visible-ns{overflow:visible}.swagger-ui .overflow-hidden-ns{overflow:hidden}.swagger-ui .overflow-scroll-ns{overflow:scroll}.swagger-ui .overflow-auto-ns{overflow:auto}.swagger-ui .overflow-x-visible-ns{overflow-x:visible}.swagger-ui .overflow-x-hidden-ns{overflow-x:hidden}.swagger-ui .overflow-x-scroll-ns{overflow-x:scroll}.swagger-ui .overflow-x-auto-ns{overflow-x:auto}.swagger-ui .overflow-y-visible-ns{overflow-y:visible}.swagger-ui .overflow-y-hidden-ns{overflow-y:hidden}.swagger-ui .overflow-y-scroll-ns{overflow-y:scroll}.swagger-ui .overflow-y-auto-ns{overflow-y:auto}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .overflow-visible-m{overflow:visible}.swagger-ui .overflow-hidden-m{overflow:hidden}.swagger-ui .overflow-scroll-m{overflow:scroll}.swagger-ui .overflow-auto-m{overflow:auto}.swagger-ui .overflow-x-visible-m{overflow-x:visible}.swagger-ui .overflow-x-hidden-m{overflow-x:hidden}.swagger-ui .overflow-x-scroll-m{overflow-x:scroll}.swagger-ui .overflow-x-auto-m{overflow-x:auto}.swagger-ui .overflow-y-visible-m{overflow-y:visible}.swagger-ui .overflow-y-hidden-m{overflow-y:hidden}.swagger-ui .overflow-y-scroll-m{overflow-y:scroll}.swagger-ui .overflow-y-auto-m{overflow-y:auto}}@media screen and (min-width:60em){.swagger-ui .overflow-visible-l{overflow:visible}.swagger-ui .overflow-hidden-l{overflow:hidden}.swagger-ui .overflow-scroll-l{overflow:scroll}.swagger-ui .overflow-auto-l{overflow:auto}.swagger-ui .overflow-x-visible-l{overflow-x:visible}.swagger-ui .overflow-x-hidden-l{overflow-x:hidden}.swagger-ui .overflow-x-scroll-l{overflow-x:scroll}.swagger-ui .overflow-x-auto-l{overflow-x:auto}.swagger-ui .overflow-y-visible-l{overflow-y:visible}.swagger-ui .overflow-y-hidden-l{overflow-y:hidden}.swagger-ui .overflow-y-scroll-l{overflow-y:scroll}.swagger-ui .overflow-y-auto-l{overflow-y:auto}}.swagger-ui .static{position:static}.swagger-ui .relative{position:relative}.swagger-ui .absolute{position:absolute}.swagger-ui .fixed{position:fixed}@media screen and (min-width:30em){.swagger-ui .static-ns{position:static}.swagger-ui .relative-ns{position:relative}.swagger-ui .absolute-ns{position:absolute}.swagger-ui .fixed-ns{position:fixed}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .static-m{position:static}.swagger-ui .relative-m{position:relative}.swagger-ui .absolute-m{position:absolute}.swagger-ui .fixed-m{position:fixed}}@media screen and (min-width:60em){.swagger-ui .static-l{position:static}.swagger-ui .relative-l{position:relative}.swagger-ui .absolute-l{position:absolute}.swagger-ui .fixed-l{position:fixed}}.swagger-ui .o-100{opacity:1}.swagger-ui .o-90{opacity:.9}.swagger-ui .o-80{opacity:.8}.swagger-ui .o-70{opacity:.7}.swagger-ui .o-60{opacity:.6}.swagger-ui .o-50{opacity:.5}.swagger-ui .o-40{opacity:.4}.swagger-ui .o-30{opacity:.3}.swagger-ui .o-20{opacity:.2}.swagger-ui .o-10{opacity:.1}.swagger-ui .o-05{opacity:.05}.swagger-ui .o-025{opacity:.025}.swagger-ui .o-0{opacity:0}.swagger-ui .rotate-45{transform:rotate(45deg)}.swagger-ui .rotate-90{transform:rotate(90deg)}.swagger-ui .rotate-135{transform:rotate(135deg)}.swagger-ui .rotate-180{transform:rotate(180deg)}.swagger-ui .rotate-225{transform:rotate(225deg)}.swagger-ui .rotate-270{transform:rotate(270deg)}.swagger-ui .rotate-315{transform:rotate(315deg)}@media screen and (min-width:30em){.swagger-ui .rotate-45-ns{transform:rotate(45deg)}.swagger-ui .rotate-90-ns{transform:rotate(90deg)}.swagger-ui .rotate-135-ns{transform:rotate(135deg)}.swagger-ui .rotate-180-ns{transform:rotate(180deg)}.swagger-ui .rotate-225-ns{transform:rotate(225deg)}.swagger-ui .rotate-270-ns{transform:rotate(270deg)}.swagger-ui .rotate-315-ns{transform:rotate(315deg)}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .rotate-45-m{transform:rotate(45deg)}.swagger-ui .rotate-90-m{transform:rotate(90deg)}.swagger-ui .rotate-135-m{transform:rotate(135deg)}.swagger-ui .rotate-180-m{transform:rotate(180deg)}.swagger-ui .rotate-225-m{transform:rotate(225deg)}.swagger-ui .rotate-270-m{transform:rotate(270deg)}.swagger-ui .rotate-315-m{transform:rotate(315deg)}}@media screen and (min-width:60em){.swagger-ui .rotate-45-l{transform:rotate(45deg)}.swagger-ui .rotate-90-l{transform:rotate(90deg)}.swagger-ui .rotate-135-l{transform:rotate(135deg)}.swagger-ui .rotate-180-l{transform:rotate(180deg)}.swagger-ui .rotate-225-l{transform:rotate(225deg)}.swagger-ui .rotate-270-l{transform:rotate(270deg)}.swagger-ui .rotate-315-l{transform:rotate(315deg)}}.swagger-ui .black-90{color:rgba(0,0,0,.9)}.swagger-ui .black-80{color:rgba(0,0,0,.8)}.swagger-ui .black-70{color:rgba(0,0,0,.7)}.swagger-ui .black-60{color:rgba(0,0,0,.6)}.swagger-ui .black-50{color:rgba(0,0,0,.5)}.swagger-ui .black-40{color:rgba(0,0,0,.4)}.swagger-ui .black-30{color:rgba(0,0,0,.3)}.swagger-ui .black-20{color:rgba(0,0,0,.2)}.swagger-ui .black-10{color:rgba(0,0,0,.1)}.swagger-ui .black-05{color:rgba(0,0,0,.05)}.swagger-ui .white-90{color:hsla(0,0%,100%,.9)}.swagger-ui .white-80{color:hsla(0,0%,100%,.8)}.swagger-ui .white-70{color:hsla(0,0%,100%,.7)}.swagger-ui .white-60{color:hsla(0,0%,100%,.6)}.swagger-ui .white-50{color:hsla(0,0%,100%,.5)}.swagger-ui .white-40{color:hsla(0,0%,100%,.4)}.swagger-ui .white-30{color:hsla(0,0%,100%,.3)}.swagger-ui .white-20{color:hsla(0,0%,100%,.2)}.swagger-ui .white-10{color:hsla(0,0%,100%,.1)}.swagger-ui .black{color:#000}.swagger-ui .near-black{color:#111}.swagger-ui .dark-gray{color:#333}.swagger-ui .mid-gray{color:#555}.swagger-ui .gray{color:#777}.swagger-ui .silver{color:#999}.swagger-ui .light-silver{color:#aaa}.swagger-ui .moon-gray{color:#ccc}.swagger-ui .light-gray{color:#eee}.swagger-ui .near-white{color:#f4f4f4}.swagger-ui .white{color:#fff}.swagger-ui .dark-red{color:#e7040f}.swagger-ui .red{color:#ff4136}.swagger-ui .light-red{color:#ff725c}.swagger-ui .orange{color:#ff6300}.swagger-ui .gold{color:#ffb700}.swagger-ui .yellow{color:gold}.swagger-ui .light-yellow{color:#fbf1a9}.swagger-ui .purple{color:#5e2ca5}.swagger-ui .light-purple{color:#a463f2}.swagger-ui .dark-pink{color:#d5008f}.swagger-ui .hot-pink{color:#ff41b4}.swagger-ui .pink{color:#ff80cc}.swagger-ui .light-pink{color:#ffa3d7}.swagger-ui .dark-green{color:#137752}.swagger-ui .green{color:#19a974}.swagger-ui .light-green{color:#9eebcf}.swagger-ui .navy{color:#001b44}.swagger-ui .dark-blue{color:#00449e}.swagger-ui .blue{color:#357edd}.swagger-ui .light-blue{color:#96ccff}.swagger-ui .lightest-blue{color:#cdecff}.swagger-ui .washed-blue{color:#f6fffe}.swagger-ui .washed-green{color:#e8fdf5}.swagger-ui .washed-yellow{color:#fffceb}.swagger-ui .washed-red{color:#ffdfdf}.swagger-ui .color-inherit{color:inherit}.swagger-ui .bg-black-90{background-color:rgba(0,0,0,.9)}.swagger-ui .bg-black-80{background-color:rgba(0,0,0,.8)}.swagger-ui .bg-black-70{background-color:rgba(0,0,0,.7)}.swagger-ui .bg-black-60{background-color:rgba(0,0,0,.6)}.swagger-ui .bg-black-50{background-color:rgba(0,0,0,.5)}.swagger-ui .bg-black-40{background-color:rgba(0,0,0,.4)}.swagger-ui .bg-black-30{background-color:rgba(0,0,0,.3)}.swagger-ui .bg-black-20{background-color:rgba(0,0,0,.2)}.swagger-ui .bg-black-10{background-color:rgba(0,0,0,.1)}.swagger-ui .bg-black-05{background-color:rgba(0,0,0,.05)}.swagger-ui .bg-white-90{background-color:hsla(0,0%,100%,.9)}.swagger-ui .bg-white-80{background-color:hsla(0,0%,100%,.8)}.swagger-ui .bg-white-70{background-color:hsla(0,0%,100%,.7)}.swagger-ui .bg-white-60{background-color:hsla(0,0%,100%,.6)}.swagger-ui .bg-white-50{background-color:hsla(0,0%,100%,.5)}.swagger-ui .bg-white-40{background-color:hsla(0,0%,100%,.4)}.swagger-ui .bg-white-30{background-color:hsla(0,0%,100%,.3)}.swagger-ui .bg-white-20{background-color:hsla(0,0%,100%,.2)}.swagger-ui .bg-white-10{background-color:hsla(0,0%,100%,.1)}.swagger-ui .bg-black{background-color:#000}.swagger-ui .bg-near-black{background-color:#111}.swagger-ui .bg-dark-gray{background-color:#333}.swagger-ui .bg-mid-gray{background-color:#555}.swagger-ui .bg-gray{background-color:#777}.swagger-ui .bg-silver{background-color:#999}.swagger-ui .bg-light-silver{background-color:#aaa}.swagger-ui .bg-moon-gray{background-color:#ccc}.swagger-ui .bg-light-gray{background-color:#eee}.swagger-ui .bg-near-white{background-color:#f4f4f4}.swagger-ui .bg-white{background-color:#fff}.swagger-ui .bg-transparent{background-color:transparent}.swagger-ui .bg-dark-red{background-color:#e7040f}.swagger-ui .bg-red{background-color:#ff4136}.swagger-ui .bg-light-red{background-color:#ff725c}.swagger-ui .bg-orange{background-color:#ff6300}.swagger-ui .bg-gold{background-color:#ffb700}.swagger-ui .bg-yellow{background-color:gold}.swagger-ui .bg-light-yellow{background-color:#fbf1a9}.swagger-ui .bg-purple{background-color:#5e2ca5}.swagger-ui .bg-light-purple{background-color:#a463f2}.swagger-ui .bg-dark-pink{background-color:#d5008f}.swagger-ui .bg-hot-pink{background-color:#ff41b4}.swagger-ui .bg-pink{background-color:#ff80cc}.swagger-ui .bg-light-pink{background-color:#ffa3d7}.swagger-ui .bg-dark-green{background-color:#137752}.swagger-ui .bg-green{background-color:#19a974}.swagger-ui .bg-light-green{background-color:#9eebcf}.swagger-ui .bg-navy{background-color:#001b44}.swagger-ui .bg-dark-blue{background-color:#00449e}.swagger-ui .bg-blue{background-color:#357edd}.swagger-ui .bg-light-blue{background-color:#96ccff}.swagger-ui .bg-lightest-blue{background-color:#cdecff}.swagger-ui .bg-washed-blue{background-color:#f6fffe}.swagger-ui .bg-washed-green{background-color:#e8fdf5}.swagger-ui .bg-washed-yellow{background-color:#fffceb}.swagger-ui .bg-washed-red{background-color:#ffdfdf}.swagger-ui .bg-inherit{background-color:inherit}.swagger-ui .hover-black:focus,.swagger-ui .hover-black:hover{color:#000}.swagger-ui .hover-near-black:focus,.swagger-ui .hover-near-black:hover{color:#111}.swagger-ui .hover-dark-gray:focus,.swagger-ui .hover-dark-gray:hover{color:#333}.swagger-ui .hover-mid-gray:focus,.swagger-ui .hover-mid-gray:hover{color:#555}.swagger-ui .hover-gray:focus,.swagger-ui .hover-gray:hover{color:#777}.swagger-ui .hover-silver:focus,.swagger-ui .hover-silver:hover{color:#999}.swagger-ui .hover-light-silver:focus,.swagger-ui .hover-light-silver:hover{color:#aaa}.swagger-ui .hover-moon-gray:focus,.swagger-ui .hover-moon-gray:hover{color:#ccc}.swagger-ui .hover-light-gray:focus,.swagger-ui .hover-light-gray:hover{color:#eee}.swagger-ui .hover-near-white:focus,.swagger-ui .hover-near-white:hover{color:#f4f4f4}.swagger-ui .hover-white:focus,.swagger-ui .hover-white:hover{color:#fff}.swagger-ui .hover-black-90:focus,.swagger-ui .hover-black-90:hover{color:rgba(0,0,0,.9)}.swagger-ui .hover-black-80:focus,.swagger-ui .hover-black-80:hover{color:rgba(0,0,0,.8)}.swagger-ui .hover-black-70:focus,.swagger-ui .hover-black-70:hover{color:rgba(0,0,0,.7)}.swagger-ui .hover-black-60:focus,.swagger-ui .hover-black-60:hover{color:rgba(0,0,0,.6)}.swagger-ui .hover-black-50:focus,.swagger-ui .hover-black-50:hover{color:rgba(0,0,0,.5)}.swagger-ui .hover-black-40:focus,.swagger-ui .hover-black-40:hover{color:rgba(0,0,0,.4)}.swagger-ui .hover-black-30:focus,.swagger-ui .hover-black-30:hover{color:rgba(0,0,0,.3)}.swagger-ui .hover-black-20:focus,.swagger-ui .hover-black-20:hover{color:rgba(0,0,0,.2)}.swagger-ui .hover-black-10:focus,.swagger-ui .hover-black-10:hover{color:rgba(0,0,0,.1)}.swagger-ui .hover-white-90:focus,.swagger-ui .hover-white-90:hover{color:hsla(0,0%,100%,.9)}.swagger-ui .hover-white-80:focus,.swagger-ui .hover-white-80:hover{color:hsla(0,0%,100%,.8)}.swagger-ui .hover-white-70:focus,.swagger-ui .hover-white-70:hover{color:hsla(0,0%,100%,.7)}.swagger-ui .hover-white-60:focus,.swagger-ui .hover-white-60:hover{color:hsla(0,0%,100%,.6)}.swagger-ui .hover-white-50:focus,.swagger-ui .hover-white-50:hover{color:hsla(0,0%,100%,.5)}.swagger-ui .hover-white-40:focus,.swagger-ui .hover-white-40:hover{color:hsla(0,0%,100%,.4)}.swagger-ui .hover-white-30:focus,.swagger-ui .hover-white-30:hover{color:hsla(0,0%,100%,.3)}.swagger-ui .hover-white-20:focus,.swagger-ui .hover-white-20:hover{color:hsla(0,0%,100%,.2)}.swagger-ui .hover-white-10:focus,.swagger-ui .hover-white-10:hover{color:hsla(0,0%,100%,.1)}.swagger-ui .hover-inherit:focus,.swagger-ui .hover-inherit:hover{color:inherit}.swagger-ui .hover-bg-black:focus,.swagger-ui .hover-bg-black:hover{background-color:#000}.swagger-ui .hover-bg-near-black:focus,.swagger-ui .hover-bg-near-black:hover{background-color:#111}.swagger-ui .hover-bg-dark-gray:focus,.swagger-ui .hover-bg-dark-gray:hover{background-color:#333}.swagger-ui .hover-bg-mid-gray:focus,.swagger-ui .hover-bg-mid-gray:hover{background-color:#555}.swagger-ui .hover-bg-gray:focus,.swagger-ui .hover-bg-gray:hover{background-color:#777}.swagger-ui .hover-bg-silver:focus,.swagger-ui .hover-bg-silver:hover{background-color:#999}.swagger-ui .hover-bg-light-silver:focus,.swagger-ui .hover-bg-light-silver:hover{background-color:#aaa}.swagger-ui .hover-bg-moon-gray:focus,.swagger-ui .hover-bg-moon-gray:hover{background-color:#ccc}.swagger-ui .hover-bg-light-gray:focus,.swagger-ui .hover-bg-light-gray:hover{background-color:#eee}.swagger-ui .hover-bg-near-white:focus,.swagger-ui .hover-bg-near-white:hover{background-color:#f4f4f4}.swagger-ui .hover-bg-white:focus,.swagger-ui .hover-bg-white:hover{background-color:#fff}.swagger-ui .hover-bg-transparent:focus,.swagger-ui .hover-bg-transparent:hover{background-color:transparent}.swagger-ui .hover-bg-black-90:focus,.swagger-ui .hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.swagger-ui .hover-bg-black-80:focus,.swagger-ui .hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.swagger-ui .hover-bg-black-70:focus,.swagger-ui .hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.swagger-ui .hover-bg-black-60:focus,.swagger-ui .hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.swagger-ui .hover-bg-black-50:focus,.swagger-ui .hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.swagger-ui .hover-bg-black-40:focus,.swagger-ui .hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.swagger-ui .hover-bg-black-30:focus,.swagger-ui .hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.swagger-ui .hover-bg-black-20:focus,.swagger-ui .hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.swagger-ui .hover-bg-black-10:focus,.swagger-ui .hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.swagger-ui .hover-bg-white-90:focus,.swagger-ui .hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.swagger-ui .hover-bg-white-80:focus,.swagger-ui .hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.swagger-ui .hover-bg-white-70:focus,.swagger-ui .hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.swagger-ui .hover-bg-white-60:focus,.swagger-ui .hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.swagger-ui .hover-bg-white-50:focus,.swagger-ui .hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.swagger-ui .hover-bg-white-40:focus,.swagger-ui .hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.swagger-ui .hover-bg-white-30:focus,.swagger-ui .hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.swagger-ui .hover-bg-white-20:focus,.swagger-ui .hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.swagger-ui .hover-bg-white-10:focus,.swagger-ui .hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.swagger-ui .hover-dark-red:focus,.swagger-ui .hover-dark-red:hover{color:#e7040f}.swagger-ui .hover-red:focus,.swagger-ui .hover-red:hover{color:#ff4136}.swagger-ui .hover-light-red:focus,.swagger-ui .hover-light-red:hover{color:#ff725c}.swagger-ui .hover-orange:focus,.swagger-ui .hover-orange:hover{color:#ff6300}.swagger-ui .hover-gold:focus,.swagger-ui .hover-gold:hover{color:#ffb700}.swagger-ui .hover-yellow:focus,.swagger-ui .hover-yellow:hover{color:gold}.swagger-ui .hover-light-yellow:focus,.swagger-ui .hover-light-yellow:hover{color:#fbf1a9}.swagger-ui .hover-purple:focus,.swagger-ui .hover-purple:hover{color:#5e2ca5}.swagger-ui .hover-light-purple:focus,.swagger-ui .hover-light-purple:hover{color:#a463f2}.swagger-ui .hover-dark-pink:focus,.swagger-ui .hover-dark-pink:hover{color:#d5008f}.swagger-ui .hover-hot-pink:focus,.swagger-ui .hover-hot-pink:hover{color:#ff41b4}.swagger-ui .hover-pink:focus,.swagger-ui .hover-pink:hover{color:#ff80cc}.swagger-ui .hover-light-pink:focus,.swagger-ui .hover-light-pink:hover{color:#ffa3d7}.swagger-ui .hover-dark-green:focus,.swagger-ui .hover-dark-green:hover{color:#137752}.swagger-ui .hover-green:focus,.swagger-ui .hover-green:hover{color:#19a974}.swagger-ui .hover-light-green:focus,.swagger-ui .hover-light-green:hover{color:#9eebcf}.swagger-ui .hover-navy:focus,.swagger-ui .hover-navy:hover{color:#001b44}.swagger-ui .hover-dark-blue:focus,.swagger-ui .hover-dark-blue:hover{color:#00449e}.swagger-ui .hover-blue:focus,.swagger-ui .hover-blue:hover{color:#357edd}.swagger-ui .hover-light-blue:focus,.swagger-ui .hover-light-blue:hover{color:#96ccff}.swagger-ui .hover-lightest-blue:focus,.swagger-ui .hover-lightest-blue:hover{color:#cdecff}.swagger-ui .hover-washed-blue:focus,.swagger-ui .hover-washed-blue:hover{color:#f6fffe}.swagger-ui .hover-washed-green:focus,.swagger-ui .hover-washed-green:hover{color:#e8fdf5}.swagger-ui .hover-washed-yellow:focus,.swagger-ui .hover-washed-yellow:hover{color:#fffceb}.swagger-ui .hover-washed-red:focus,.swagger-ui .hover-washed-red:hover{color:#ffdfdf}.swagger-ui .hover-bg-dark-red:focus,.swagger-ui .hover-bg-dark-red:hover{background-color:#e7040f}.swagger-ui .hover-bg-red:focus,.swagger-ui .hover-bg-red:hover{background-color:#ff4136}.swagger-ui .hover-bg-light-red:focus,.swagger-ui .hover-bg-light-red:hover{background-color:#ff725c}.swagger-ui .hover-bg-orange:focus,.swagger-ui .hover-bg-orange:hover{background-color:#ff6300}.swagger-ui .hover-bg-gold:focus,.swagger-ui .hover-bg-gold:hover{background-color:#ffb700}.swagger-ui .hover-bg-yellow:focus,.swagger-ui .hover-bg-yellow:hover{background-color:gold}.swagger-ui .hover-bg-light-yellow:focus,.swagger-ui .hover-bg-light-yellow:hover{background-color:#fbf1a9}.swagger-ui .hover-bg-purple:focus,.swagger-ui .hover-bg-purple:hover{background-color:#5e2ca5}.swagger-ui .hover-bg-light-purple:focus,.swagger-ui .hover-bg-light-purple:hover{background-color:#a463f2}.swagger-ui .hover-bg-dark-pink:focus,.swagger-ui .hover-bg-dark-pink:hover{background-color:#d5008f}.swagger-ui .hover-bg-hot-pink:focus,.swagger-ui .hover-bg-hot-pink:hover{background-color:#ff41b4}.swagger-ui .hover-bg-pink:focus,.swagger-ui .hover-bg-pink:hover{background-color:#ff80cc}.swagger-ui .hover-bg-light-pink:focus,.swagger-ui .hover-bg-light-pink:hover{background-color:#ffa3d7}.swagger-ui .hover-bg-dark-green:focus,.swagger-ui .hover-bg-dark-green:hover{background-color:#137752}.swagger-ui .hover-bg-green:focus,.swagger-ui .hover-bg-green:hover{background-color:#19a974}.swagger-ui .hover-bg-light-green:focus,.swagger-ui .hover-bg-light-green:hover{background-color:#9eebcf}.swagger-ui .hover-bg-navy:focus,.swagger-ui .hover-bg-navy:hover{background-color:#001b44}.swagger-ui .hover-bg-dark-blue:focus,.swagger-ui .hover-bg-dark-blue:hover{background-color:#00449e}.swagger-ui .hover-bg-blue:focus,.swagger-ui .hover-bg-blue:hover{background-color:#357edd}.swagger-ui .hover-bg-light-blue:focus,.swagger-ui .hover-bg-light-blue:hover{background-color:#96ccff}.swagger-ui .hover-bg-lightest-blue:focus,.swagger-ui .hover-bg-lightest-blue:hover{background-color:#cdecff}.swagger-ui .hover-bg-washed-blue:focus,.swagger-ui .hover-bg-washed-blue:hover{background-color:#f6fffe}.swagger-ui .hover-bg-washed-green:focus,.swagger-ui .hover-bg-washed-green:hover{background-color:#e8fdf5}.swagger-ui .hover-bg-washed-yellow:focus,.swagger-ui .hover-bg-washed-yellow:hover{background-color:#fffceb}.swagger-ui .hover-bg-washed-red:focus,.swagger-ui .hover-bg-washed-red:hover{background-color:#ffdfdf}.swagger-ui .hover-bg-inherit:focus,.swagger-ui .hover-bg-inherit:hover{background-color:inherit}.swagger-ui .pa0{padding:0}.swagger-ui .pa1{padding:.25rem}.swagger-ui .pa2{padding:.5rem}.swagger-ui .pa3{padding:1rem}.swagger-ui .pa4{padding:2rem}.swagger-ui .pa5{padding:4rem}.swagger-ui .pa6{padding:8rem}.swagger-ui .pa7{padding:16rem}.swagger-ui .pl0{padding-left:0}.swagger-ui .pl1{padding-left:.25rem}.swagger-ui .pl2{padding-left:.5rem}.swagger-ui .pl3{padding-left:1rem}.swagger-ui .pl4{padding-left:2rem}.swagger-ui .pl5{padding-left:4rem}.swagger-ui .pl6{padding-left:8rem}.swagger-ui .pl7{padding-left:16rem}.swagger-ui .pr0{padding-right:0}.swagger-ui .pr1{padding-right:.25rem}.swagger-ui .pr2{padding-right:.5rem}.swagger-ui .pr3{padding-right:1rem}.swagger-ui .pr4{padding-right:2rem}.swagger-ui .pr5{padding-right:4rem}.swagger-ui .pr6{padding-right:8rem}.swagger-ui .pr7{padding-right:16rem}.swagger-ui .pb0{padding-bottom:0}.swagger-ui .pb1{padding-bottom:.25rem}.swagger-ui .pb2{padding-bottom:.5rem}.swagger-ui .pb3{padding-bottom:1rem}.swagger-ui .pb4{padding-bottom:2rem}.swagger-ui .pb5{padding-bottom:4rem}.swagger-ui .pb6{padding-bottom:8rem}.swagger-ui .pb7{padding-bottom:16rem}.swagger-ui .pt0{padding-top:0}.swagger-ui .pt1{padding-top:.25rem}.swagger-ui .pt2{padding-top:.5rem}.swagger-ui .pt3{padding-top:1rem}.swagger-ui .pt4{padding-top:2rem}.swagger-ui .pt5{padding-top:4rem}.swagger-ui .pt6{padding-top:8rem}.swagger-ui .pt7{padding-top:16rem}.swagger-ui .pv0{padding-bottom:0;padding-top:0}.swagger-ui .pv1{padding-bottom:.25rem;padding-top:.25rem}.swagger-ui .pv2{padding-bottom:.5rem;padding-top:.5rem}.swagger-ui .pv3{padding-bottom:1rem;padding-top:1rem}.swagger-ui .pv4{padding-bottom:2rem;padding-top:2rem}.swagger-ui .pv5{padding-bottom:4rem;padding-top:4rem}.swagger-ui .pv6{padding-bottom:8rem;padding-top:8rem}.swagger-ui .pv7{padding-bottom:16rem;padding-top:16rem}.swagger-ui .ph0{padding-left:0;padding-right:0}.swagger-ui .ph1{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0{margin:0}.swagger-ui .ma1{margin:.25rem}.swagger-ui .ma2{margin:.5rem}.swagger-ui .ma3{margin:1rem}.swagger-ui .ma4{margin:2rem}.swagger-ui .ma5{margin:4rem}.swagger-ui .ma6{margin:8rem}.swagger-ui .ma7{margin:16rem}.swagger-ui .ml0{margin-left:0}.swagger-ui .ml1{margin-left:.25rem}.swagger-ui .ml2{margin-left:.5rem}.swagger-ui .ml3{margin-left:1rem}.swagger-ui .ml4{margin-left:2rem}.swagger-ui .ml5{margin-left:4rem}.swagger-ui .ml6{margin-left:8rem}.swagger-ui .ml7{margin-left:16rem}.swagger-ui .mr0{margin-right:0}.swagger-ui .mr1{margin-right:.25rem}.swagger-ui .mr2{margin-right:.5rem}.swagger-ui .mr3{margin-right:1rem}.swagger-ui .mr4{margin-right:2rem}.swagger-ui .mr5{margin-right:4rem}.swagger-ui .mr6{margin-right:8rem}.swagger-ui .mr7{margin-right:16rem}.swagger-ui .mb0{margin-bottom:0}.swagger-ui .mb1{margin-bottom:.25rem}.swagger-ui .mb2{margin-bottom:.5rem}.swagger-ui .mb3{margin-bottom:1rem}.swagger-ui .mb4{margin-bottom:2rem}.swagger-ui .mb5{margin-bottom:4rem}.swagger-ui .mb6{margin-bottom:8rem}.swagger-ui .mb7{margin-bottom:16rem}.swagger-ui .mt0{margin-top:0}.swagger-ui .mt1{margin-top:.25rem}.swagger-ui .mt2{margin-top:.5rem}.swagger-ui .mt3{margin-top:1rem}.swagger-ui .mt4{margin-top:2rem}.swagger-ui .mt5{margin-top:4rem}.swagger-ui .mt6{margin-top:8rem}.swagger-ui .mt7{margin-top:16rem}.swagger-ui .mv0{margin-bottom:0;margin-top:0}.swagger-ui .mv1{margin-bottom:.25rem;margin-top:.25rem}.swagger-ui .mv2{margin-bottom:.5rem;margin-top:.5rem}.swagger-ui .mv3{margin-bottom:1rem;margin-top:1rem}.swagger-ui .mv4{margin-bottom:2rem;margin-top:2rem}.swagger-ui .mv5{margin-bottom:4rem;margin-top:4rem}.swagger-ui .mv6{margin-bottom:8rem;margin-top:8rem}.swagger-ui .mv7{margin-bottom:16rem;margin-top:16rem}.swagger-ui .mh0{margin-left:0;margin-right:0}.swagger-ui .mh1{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7{margin-left:16rem;margin-right:16rem}@media screen and (min-width:30em){.swagger-ui .pa0-ns{padding:0}.swagger-ui .pa1-ns{padding:.25rem}.swagger-ui .pa2-ns{padding:.5rem}.swagger-ui .pa3-ns{padding:1rem}.swagger-ui .pa4-ns{padding:2rem}.swagger-ui .pa5-ns{padding:4rem}.swagger-ui .pa6-ns{padding:8rem}.swagger-ui .pa7-ns{padding:16rem}.swagger-ui .pl0-ns{padding-left:0}.swagger-ui .pl1-ns{padding-left:.25rem}.swagger-ui .pl2-ns{padding-left:.5rem}.swagger-ui .pl3-ns{padding-left:1rem}.swagger-ui .pl4-ns{padding-left:2rem}.swagger-ui .pl5-ns{padding-left:4rem}.swagger-ui .pl6-ns{padding-left:8rem}.swagger-ui .pl7-ns{padding-left:16rem}.swagger-ui .pr0-ns{padding-right:0}.swagger-ui .pr1-ns{padding-right:.25rem}.swagger-ui .pr2-ns{padding-right:.5rem}.swagger-ui .pr3-ns{padding-right:1rem}.swagger-ui .pr4-ns{padding-right:2rem}.swagger-ui .pr5-ns{padding-right:4rem}.swagger-ui .pr6-ns{padding-right:8rem}.swagger-ui .pr7-ns{padding-right:16rem}.swagger-ui .pb0-ns{padding-bottom:0}.swagger-ui .pb1-ns{padding-bottom:.25rem}.swagger-ui .pb2-ns{padding-bottom:.5rem}.swagger-ui .pb3-ns{padding-bottom:1rem}.swagger-ui .pb4-ns{padding-bottom:2rem}.swagger-ui .pb5-ns{padding-bottom:4rem}.swagger-ui .pb6-ns{padding-bottom:8rem}.swagger-ui .pb7-ns{padding-bottom:16rem}.swagger-ui .pt0-ns{padding-top:0}.swagger-ui .pt1-ns{padding-top:.25rem}.swagger-ui .pt2-ns{padding-top:.5rem}.swagger-ui .pt3-ns{padding-top:1rem}.swagger-ui .pt4-ns{padding-top:2rem}.swagger-ui .pt5-ns{padding-top:4rem}.swagger-ui .pt6-ns{padding-top:8rem}.swagger-ui .pt7-ns{padding-top:16rem}.swagger-ui .pv0-ns{padding-bottom:0;padding-top:0}.swagger-ui .pv1-ns{padding-bottom:.25rem;padding-top:.25rem}.swagger-ui .pv2-ns{padding-bottom:.5rem;padding-top:.5rem}.swagger-ui .pv3-ns{padding-bottom:1rem;padding-top:1rem}.swagger-ui .pv4-ns{padding-bottom:2rem;padding-top:2rem}.swagger-ui .pv5-ns{padding-bottom:4rem;padding-top:4rem}.swagger-ui .pv6-ns{padding-bottom:8rem;padding-top:8rem}.swagger-ui .pv7-ns{padding-bottom:16rem;padding-top:16rem}.swagger-ui .ph0-ns{padding-left:0;padding-right:0}.swagger-ui .ph1-ns{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2-ns{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3-ns{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4-ns{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5-ns{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6-ns{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7-ns{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0-ns{margin:0}.swagger-ui .ma1-ns{margin:.25rem}.swagger-ui .ma2-ns{margin:.5rem}.swagger-ui .ma3-ns{margin:1rem}.swagger-ui .ma4-ns{margin:2rem}.swagger-ui .ma5-ns{margin:4rem}.swagger-ui .ma6-ns{margin:8rem}.swagger-ui .ma7-ns{margin:16rem}.swagger-ui .ml0-ns{margin-left:0}.swagger-ui .ml1-ns{margin-left:.25rem}.swagger-ui .ml2-ns{margin-left:.5rem}.swagger-ui .ml3-ns{margin-left:1rem}.swagger-ui .ml4-ns{margin-left:2rem}.swagger-ui .ml5-ns{margin-left:4rem}.swagger-ui .ml6-ns{margin-left:8rem}.swagger-ui .ml7-ns{margin-left:16rem}.swagger-ui .mr0-ns{margin-right:0}.swagger-ui .mr1-ns{margin-right:.25rem}.swagger-ui .mr2-ns{margin-right:.5rem}.swagger-ui .mr3-ns{margin-right:1rem}.swagger-ui .mr4-ns{margin-right:2rem}.swagger-ui .mr5-ns{margin-right:4rem}.swagger-ui .mr6-ns{margin-right:8rem}.swagger-ui .mr7-ns{margin-right:16rem}.swagger-ui .mb0-ns{margin-bottom:0}.swagger-ui .mb1-ns{margin-bottom:.25rem}.swagger-ui .mb2-ns{margin-bottom:.5rem}.swagger-ui .mb3-ns{margin-bottom:1rem}.swagger-ui .mb4-ns{margin-bottom:2rem}.swagger-ui .mb5-ns{margin-bottom:4rem}.swagger-ui .mb6-ns{margin-bottom:8rem}.swagger-ui .mb7-ns{margin-bottom:16rem}.swagger-ui .mt0-ns{margin-top:0}.swagger-ui .mt1-ns{margin-top:.25rem}.swagger-ui .mt2-ns{margin-top:.5rem}.swagger-ui .mt3-ns{margin-top:1rem}.swagger-ui .mt4-ns{margin-top:2rem}.swagger-ui .mt5-ns{margin-top:4rem}.swagger-ui .mt6-ns{margin-top:8rem}.swagger-ui .mt7-ns{margin-top:16rem}.swagger-ui .mv0-ns{margin-bottom:0;margin-top:0}.swagger-ui .mv1-ns{margin-bottom:.25rem;margin-top:.25rem}.swagger-ui .mv2-ns{margin-bottom:.5rem;margin-top:.5rem}.swagger-ui .mv3-ns{margin-bottom:1rem;margin-top:1rem}.swagger-ui .mv4-ns{margin-bottom:2rem;margin-top:2rem}.swagger-ui .mv5-ns{margin-bottom:4rem;margin-top:4rem}.swagger-ui .mv6-ns{margin-bottom:8rem;margin-top:8rem}.swagger-ui .mv7-ns{margin-bottom:16rem;margin-top:16rem}.swagger-ui .mh0-ns{margin-left:0;margin-right:0}.swagger-ui .mh1-ns{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2-ns{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3-ns{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4-ns{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5-ns{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6-ns{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7-ns{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .pa0-m{padding:0}.swagger-ui .pa1-m{padding:.25rem}.swagger-ui .pa2-m{padding:.5rem}.swagger-ui .pa3-m{padding:1rem}.swagger-ui .pa4-m{padding:2rem}.swagger-ui .pa5-m{padding:4rem}.swagger-ui .pa6-m{padding:8rem}.swagger-ui .pa7-m{padding:16rem}.swagger-ui .pl0-m{padding-left:0}.swagger-ui .pl1-m{padding-left:.25rem}.swagger-ui .pl2-m{padding-left:.5rem}.swagger-ui .pl3-m{padding-left:1rem}.swagger-ui .pl4-m{padding-left:2rem}.swagger-ui .pl5-m{padding-left:4rem}.swagger-ui .pl6-m{padding-left:8rem}.swagger-ui .pl7-m{padding-left:16rem}.swagger-ui .pr0-m{padding-right:0}.swagger-ui .pr1-m{padding-right:.25rem}.swagger-ui .pr2-m{padding-right:.5rem}.swagger-ui .pr3-m{padding-right:1rem}.swagger-ui .pr4-m{padding-right:2rem}.swagger-ui .pr5-m{padding-right:4rem}.swagger-ui .pr6-m{padding-right:8rem}.swagger-ui .pr7-m{padding-right:16rem}.swagger-ui .pb0-m{padding-bottom:0}.swagger-ui .pb1-m{padding-bottom:.25rem}.swagger-ui .pb2-m{padding-bottom:.5rem}.swagger-ui .pb3-m{padding-bottom:1rem}.swagger-ui .pb4-m{padding-bottom:2rem}.swagger-ui .pb5-m{padding-bottom:4rem}.swagger-ui .pb6-m{padding-bottom:8rem}.swagger-ui .pb7-m{padding-bottom:16rem}.swagger-ui .pt0-m{padding-top:0}.swagger-ui .pt1-m{padding-top:.25rem}.swagger-ui .pt2-m{padding-top:.5rem}.swagger-ui .pt3-m{padding-top:1rem}.swagger-ui .pt4-m{padding-top:2rem}.swagger-ui .pt5-m{padding-top:4rem}.swagger-ui .pt6-m{padding-top:8rem}.swagger-ui .pt7-m{padding-top:16rem}.swagger-ui .pv0-m{padding-bottom:0;padding-top:0}.swagger-ui .pv1-m{padding-bottom:.25rem;padding-top:.25rem}.swagger-ui .pv2-m{padding-bottom:.5rem;padding-top:.5rem}.swagger-ui .pv3-m{padding-bottom:1rem;padding-top:1rem}.swagger-ui .pv4-m{padding-bottom:2rem;padding-top:2rem}.swagger-ui .pv5-m{padding-bottom:4rem;padding-top:4rem}.swagger-ui .pv6-m{padding-bottom:8rem;padding-top:8rem}.swagger-ui .pv7-m{padding-bottom:16rem;padding-top:16rem}.swagger-ui .ph0-m{padding-left:0;padding-right:0}.swagger-ui .ph1-m{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2-m{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3-m{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4-m{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5-m{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6-m{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7-m{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0-m{margin:0}.swagger-ui .ma1-m{margin:.25rem}.swagger-ui .ma2-m{margin:.5rem}.swagger-ui .ma3-m{margin:1rem}.swagger-ui .ma4-m{margin:2rem}.swagger-ui .ma5-m{margin:4rem}.swagger-ui .ma6-m{margin:8rem}.swagger-ui .ma7-m{margin:16rem}.swagger-ui .ml0-m{margin-left:0}.swagger-ui .ml1-m{margin-left:.25rem}.swagger-ui .ml2-m{margin-left:.5rem}.swagger-ui .ml3-m{margin-left:1rem}.swagger-ui .ml4-m{margin-left:2rem}.swagger-ui .ml5-m{margin-left:4rem}.swagger-ui .ml6-m{margin-left:8rem}.swagger-ui .ml7-m{margin-left:16rem}.swagger-ui .mr0-m{margin-right:0}.swagger-ui .mr1-m{margin-right:.25rem}.swagger-ui .mr2-m{margin-right:.5rem}.swagger-ui .mr3-m{margin-right:1rem}.swagger-ui .mr4-m{margin-right:2rem}.swagger-ui .mr5-m{margin-right:4rem}.swagger-ui .mr6-m{margin-right:8rem}.swagger-ui .mr7-m{margin-right:16rem}.swagger-ui .mb0-m{margin-bottom:0}.swagger-ui .mb1-m{margin-bottom:.25rem}.swagger-ui .mb2-m{margin-bottom:.5rem}.swagger-ui .mb3-m{margin-bottom:1rem}.swagger-ui .mb4-m{margin-bottom:2rem}.swagger-ui .mb5-m{margin-bottom:4rem}.swagger-ui .mb6-m{margin-bottom:8rem}.swagger-ui .mb7-m{margin-bottom:16rem}.swagger-ui .mt0-m{margin-top:0}.swagger-ui .mt1-m{margin-top:.25rem}.swagger-ui .mt2-m{margin-top:.5rem}.swagger-ui .mt3-m{margin-top:1rem}.swagger-ui .mt4-m{margin-top:2rem}.swagger-ui .mt5-m{margin-top:4rem}.swagger-ui .mt6-m{margin-top:8rem}.swagger-ui .mt7-m{margin-top:16rem}.swagger-ui .mv0-m{margin-bottom:0;margin-top:0}.swagger-ui .mv1-m{margin-bottom:.25rem;margin-top:.25rem}.swagger-ui .mv2-m{margin-bottom:.5rem;margin-top:.5rem}.swagger-ui .mv3-m{margin-bottom:1rem;margin-top:1rem}.swagger-ui .mv4-m{margin-bottom:2rem;margin-top:2rem}.swagger-ui .mv5-m{margin-bottom:4rem;margin-top:4rem}.swagger-ui .mv6-m{margin-bottom:8rem;margin-top:8rem}.swagger-ui .mv7-m{margin-bottom:16rem;margin-top:16rem}.swagger-ui .mh0-m{margin-left:0;margin-right:0}.swagger-ui .mh1-m{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2-m{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3-m{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4-m{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5-m{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6-m{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7-m{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:60em){.swagger-ui .pa0-l{padding:0}.swagger-ui .pa1-l{padding:.25rem}.swagger-ui .pa2-l{padding:.5rem}.swagger-ui .pa3-l{padding:1rem}.swagger-ui .pa4-l{padding:2rem}.swagger-ui .pa5-l{padding:4rem}.swagger-ui .pa6-l{padding:8rem}.swagger-ui .pa7-l{padding:16rem}.swagger-ui .pl0-l{padding-left:0}.swagger-ui .pl1-l{padding-left:.25rem}.swagger-ui .pl2-l{padding-left:.5rem}.swagger-ui .pl3-l{padding-left:1rem}.swagger-ui .pl4-l{padding-left:2rem}.swagger-ui .pl5-l{padding-left:4rem}.swagger-ui .pl6-l{padding-left:8rem}.swagger-ui .pl7-l{padding-left:16rem}.swagger-ui .pr0-l{padding-right:0}.swagger-ui .pr1-l{padding-right:.25rem}.swagger-ui .pr2-l{padding-right:.5rem}.swagger-ui .pr3-l{padding-right:1rem}.swagger-ui .pr4-l{padding-right:2rem}.swagger-ui .pr5-l{padding-right:4rem}.swagger-ui .pr6-l{padding-right:8rem}.swagger-ui .pr7-l{padding-right:16rem}.swagger-ui .pb0-l{padding-bottom:0}.swagger-ui .pb1-l{padding-bottom:.25rem}.swagger-ui .pb2-l{padding-bottom:.5rem}.swagger-ui .pb3-l{padding-bottom:1rem}.swagger-ui .pb4-l{padding-bottom:2rem}.swagger-ui .pb5-l{padding-bottom:4rem}.swagger-ui .pb6-l{padding-bottom:8rem}.swagger-ui .pb7-l{padding-bottom:16rem}.swagger-ui .pt0-l{padding-top:0}.swagger-ui .pt1-l{padding-top:.25rem}.swagger-ui .pt2-l{padding-top:.5rem}.swagger-ui .pt3-l{padding-top:1rem}.swagger-ui .pt4-l{padding-top:2rem}.swagger-ui .pt5-l{padding-top:4rem}.swagger-ui .pt6-l{padding-top:8rem}.swagger-ui .pt7-l{padding-top:16rem}.swagger-ui .pv0-l{padding-bottom:0;padding-top:0}.swagger-ui .pv1-l{padding-bottom:.25rem;padding-top:.25rem}.swagger-ui .pv2-l{padding-bottom:.5rem;padding-top:.5rem}.swagger-ui .pv3-l{padding-bottom:1rem;padding-top:1rem}.swagger-ui .pv4-l{padding-bottom:2rem;padding-top:2rem}.swagger-ui .pv5-l{padding-bottom:4rem;padding-top:4rem}.swagger-ui .pv6-l{padding-bottom:8rem;padding-top:8rem}.swagger-ui .pv7-l{padding-bottom:16rem;padding-top:16rem}.swagger-ui .ph0-l{padding-left:0;padding-right:0}.swagger-ui .ph1-l{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2-l{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3-l{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4-l{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5-l{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6-l{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7-l{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0-l{margin:0}.swagger-ui .ma1-l{margin:.25rem}.swagger-ui .ma2-l{margin:.5rem}.swagger-ui .ma3-l{margin:1rem}.swagger-ui .ma4-l{margin:2rem}.swagger-ui .ma5-l{margin:4rem}.swagger-ui .ma6-l{margin:8rem}.swagger-ui .ma7-l{margin:16rem}.swagger-ui .ml0-l{margin-left:0}.swagger-ui .ml1-l{margin-left:.25rem}.swagger-ui .ml2-l{margin-left:.5rem}.swagger-ui .ml3-l{margin-left:1rem}.swagger-ui .ml4-l{margin-left:2rem}.swagger-ui .ml5-l{margin-left:4rem}.swagger-ui .ml6-l{margin-left:8rem}.swagger-ui .ml7-l{margin-left:16rem}.swagger-ui .mr0-l{margin-right:0}.swagger-ui .mr1-l{margin-right:.25rem}.swagger-ui .mr2-l{margin-right:.5rem}.swagger-ui .mr3-l{margin-right:1rem}.swagger-ui .mr4-l{margin-right:2rem}.swagger-ui .mr5-l{margin-right:4rem}.swagger-ui .mr6-l{margin-right:8rem}.swagger-ui .mr7-l{margin-right:16rem}.swagger-ui .mb0-l{margin-bottom:0}.swagger-ui .mb1-l{margin-bottom:.25rem}.swagger-ui .mb2-l{margin-bottom:.5rem}.swagger-ui .mb3-l{margin-bottom:1rem}.swagger-ui .mb4-l{margin-bottom:2rem}.swagger-ui .mb5-l{margin-bottom:4rem}.swagger-ui .mb6-l{margin-bottom:8rem}.swagger-ui .mb7-l{margin-bottom:16rem}.swagger-ui .mt0-l{margin-top:0}.swagger-ui .mt1-l{margin-top:.25rem}.swagger-ui .mt2-l{margin-top:.5rem}.swagger-ui .mt3-l{margin-top:1rem}.swagger-ui .mt4-l{margin-top:2rem}.swagger-ui .mt5-l{margin-top:4rem}.swagger-ui .mt6-l{margin-top:8rem}.swagger-ui .mt7-l{margin-top:16rem}.swagger-ui .mv0-l{margin-bottom:0;margin-top:0}.swagger-ui .mv1-l{margin-bottom:.25rem;margin-top:.25rem}.swagger-ui .mv2-l{margin-bottom:.5rem;margin-top:.5rem}.swagger-ui .mv3-l{margin-bottom:1rem;margin-top:1rem}.swagger-ui .mv4-l{margin-bottom:2rem;margin-top:2rem}.swagger-ui .mv5-l{margin-bottom:4rem;margin-top:4rem}.swagger-ui .mv6-l{margin-bottom:8rem;margin-top:8rem}.swagger-ui .mv7-l{margin-bottom:16rem;margin-top:16rem}.swagger-ui .mh0-l{margin-left:0;margin-right:0}.swagger-ui .mh1-l{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2-l{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3-l{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4-l{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5-l{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6-l{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7-l{margin-left:16rem;margin-right:16rem}}.swagger-ui .na1{margin:-.25rem}.swagger-ui .na2{margin:-.5rem}.swagger-ui .na3{margin:-1rem}.swagger-ui .na4{margin:-2rem}.swagger-ui .na5{margin:-4rem}.swagger-ui .na6{margin:-8rem}.swagger-ui .na7{margin:-16rem}.swagger-ui .nl1{margin-left:-.25rem}.swagger-ui .nl2{margin-left:-.5rem}.swagger-ui .nl3{margin-left:-1rem}.swagger-ui .nl4{margin-left:-2rem}.swagger-ui .nl5{margin-left:-4rem}.swagger-ui .nl6{margin-left:-8rem}.swagger-ui .nl7{margin-left:-16rem}.swagger-ui .nr1{margin-right:-.25rem}.swagger-ui .nr2{margin-right:-.5rem}.swagger-ui .nr3{margin-right:-1rem}.swagger-ui .nr4{margin-right:-2rem}.swagger-ui .nr5{margin-right:-4rem}.swagger-ui .nr6{margin-right:-8rem}.swagger-ui .nr7{margin-right:-16rem}.swagger-ui .nb1{margin-bottom:-.25rem}.swagger-ui .nb2{margin-bottom:-.5rem}.swagger-ui .nb3{margin-bottom:-1rem}.swagger-ui .nb4{margin-bottom:-2rem}.swagger-ui .nb5{margin-bottom:-4rem}.swagger-ui .nb6{margin-bottom:-8rem}.swagger-ui .nb7{margin-bottom:-16rem}.swagger-ui .nt1{margin-top:-.25rem}.swagger-ui .nt2{margin-top:-.5rem}.swagger-ui .nt3{margin-top:-1rem}.swagger-ui .nt4{margin-top:-2rem}.swagger-ui .nt5{margin-top:-4rem}.swagger-ui .nt6{margin-top:-8rem}.swagger-ui .nt7{margin-top:-16rem}@media screen and (min-width:30em){.swagger-ui .na1-ns{margin:-.25rem}.swagger-ui .na2-ns{margin:-.5rem}.swagger-ui .na3-ns{margin:-1rem}.swagger-ui .na4-ns{margin:-2rem}.swagger-ui .na5-ns{margin:-4rem}.swagger-ui .na6-ns{margin:-8rem}.swagger-ui .na7-ns{margin:-16rem}.swagger-ui .nl1-ns{margin-left:-.25rem}.swagger-ui .nl2-ns{margin-left:-.5rem}.swagger-ui .nl3-ns{margin-left:-1rem}.swagger-ui .nl4-ns{margin-left:-2rem}.swagger-ui .nl5-ns{margin-left:-4rem}.swagger-ui .nl6-ns{margin-left:-8rem}.swagger-ui .nl7-ns{margin-left:-16rem}.swagger-ui .nr1-ns{margin-right:-.25rem}.swagger-ui .nr2-ns{margin-right:-.5rem}.swagger-ui .nr3-ns{margin-right:-1rem}.swagger-ui .nr4-ns{margin-right:-2rem}.swagger-ui .nr5-ns{margin-right:-4rem}.swagger-ui .nr6-ns{margin-right:-8rem}.swagger-ui .nr7-ns{margin-right:-16rem}.swagger-ui .nb1-ns{margin-bottom:-.25rem}.swagger-ui .nb2-ns{margin-bottom:-.5rem}.swagger-ui .nb3-ns{margin-bottom:-1rem}.swagger-ui .nb4-ns{margin-bottom:-2rem}.swagger-ui .nb5-ns{margin-bottom:-4rem}.swagger-ui .nb6-ns{margin-bottom:-8rem}.swagger-ui .nb7-ns{margin-bottom:-16rem}.swagger-ui .nt1-ns{margin-top:-.25rem}.swagger-ui .nt2-ns{margin-top:-.5rem}.swagger-ui .nt3-ns{margin-top:-1rem}.swagger-ui .nt4-ns{margin-top:-2rem}.swagger-ui .nt5-ns{margin-top:-4rem}.swagger-ui .nt6-ns{margin-top:-8rem}.swagger-ui .nt7-ns{margin-top:-16rem}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .na1-m{margin:-.25rem}.swagger-ui .na2-m{margin:-.5rem}.swagger-ui .na3-m{margin:-1rem}.swagger-ui .na4-m{margin:-2rem}.swagger-ui .na5-m{margin:-4rem}.swagger-ui .na6-m{margin:-8rem}.swagger-ui .na7-m{margin:-16rem}.swagger-ui .nl1-m{margin-left:-.25rem}.swagger-ui .nl2-m{margin-left:-.5rem}.swagger-ui .nl3-m{margin-left:-1rem}.swagger-ui .nl4-m{margin-left:-2rem}.swagger-ui .nl5-m{margin-left:-4rem}.swagger-ui .nl6-m{margin-left:-8rem}.swagger-ui .nl7-m{margin-left:-16rem}.swagger-ui .nr1-m{margin-right:-.25rem}.swagger-ui .nr2-m{margin-right:-.5rem}.swagger-ui .nr3-m{margin-right:-1rem}.swagger-ui .nr4-m{margin-right:-2rem}.swagger-ui .nr5-m{margin-right:-4rem}.swagger-ui .nr6-m{margin-right:-8rem}.swagger-ui .nr7-m{margin-right:-16rem}.swagger-ui .nb1-m{margin-bottom:-.25rem}.swagger-ui .nb2-m{margin-bottom:-.5rem}.swagger-ui .nb3-m{margin-bottom:-1rem}.swagger-ui .nb4-m{margin-bottom:-2rem}.swagger-ui .nb5-m{margin-bottom:-4rem}.swagger-ui .nb6-m{margin-bottom:-8rem}.swagger-ui .nb7-m{margin-bottom:-16rem}.swagger-ui .nt1-m{margin-top:-.25rem}.swagger-ui .nt2-m{margin-top:-.5rem}.swagger-ui .nt3-m{margin-top:-1rem}.swagger-ui .nt4-m{margin-top:-2rem}.swagger-ui .nt5-m{margin-top:-4rem}.swagger-ui .nt6-m{margin-top:-8rem}.swagger-ui .nt7-m{margin-top:-16rem}}@media screen and (min-width:60em){.swagger-ui .na1-l{margin:-.25rem}.swagger-ui .na2-l{margin:-.5rem}.swagger-ui .na3-l{margin:-1rem}.swagger-ui .na4-l{margin:-2rem}.swagger-ui .na5-l{margin:-4rem}.swagger-ui .na6-l{margin:-8rem}.swagger-ui .na7-l{margin:-16rem}.swagger-ui .nl1-l{margin-left:-.25rem}.swagger-ui .nl2-l{margin-left:-.5rem}.swagger-ui .nl3-l{margin-left:-1rem}.swagger-ui .nl4-l{margin-left:-2rem}.swagger-ui .nl5-l{margin-left:-4rem}.swagger-ui .nl6-l{margin-left:-8rem}.swagger-ui .nl7-l{margin-left:-16rem}.swagger-ui .nr1-l{margin-right:-.25rem}.swagger-ui .nr2-l{margin-right:-.5rem}.swagger-ui .nr3-l{margin-right:-1rem}.swagger-ui .nr4-l{margin-right:-2rem}.swagger-ui .nr5-l{margin-right:-4rem}.swagger-ui .nr6-l{margin-right:-8rem}.swagger-ui .nr7-l{margin-right:-16rem}.swagger-ui .nb1-l{margin-bottom:-.25rem}.swagger-ui .nb2-l{margin-bottom:-.5rem}.swagger-ui .nb3-l{margin-bottom:-1rem}.swagger-ui .nb4-l{margin-bottom:-2rem}.swagger-ui .nb5-l{margin-bottom:-4rem}.swagger-ui .nb6-l{margin-bottom:-8rem}.swagger-ui .nb7-l{margin-bottom:-16rem}.swagger-ui .nt1-l{margin-top:-.25rem}.swagger-ui .nt2-l{margin-top:-.5rem}.swagger-ui .nt3-l{margin-top:-1rem}.swagger-ui .nt4-l{margin-top:-2rem}.swagger-ui .nt5-l{margin-top:-4rem}.swagger-ui .nt6-l{margin-top:-8rem}.swagger-ui .nt7-l{margin-top:-16rem}}.swagger-ui .collapse{border-collapse:collapse;border-spacing:0}.swagger-ui .striped--light-silver:nth-child(odd){background-color:#aaa}.swagger-ui .striped--moon-gray:nth-child(odd){background-color:#ccc}.swagger-ui .striped--light-gray:nth-child(odd){background-color:#eee}.swagger-ui .striped--near-white:nth-child(odd){background-color:#f4f4f4}.swagger-ui .stripe-light:nth-child(odd){background-color:hsla(0,0%,100%,.1)}.swagger-ui .stripe-dark:nth-child(odd){background-color:rgba(0,0,0,.1)}.swagger-ui .strike{-webkit-text-decoration:line-through;text-decoration:line-through}.swagger-ui .underline{-webkit-text-decoration:underline;text-decoration:underline}.swagger-ui .no-underline{-webkit-text-decoration:none;text-decoration:none}@media screen and (min-width:30em){.swagger-ui .strike-ns{-webkit-text-decoration:line-through;text-decoration:line-through}.swagger-ui .underline-ns{-webkit-text-decoration:underline;text-decoration:underline}.swagger-ui .no-underline-ns{-webkit-text-decoration:none;text-decoration:none}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .strike-m{-webkit-text-decoration:line-through;text-decoration:line-through}.swagger-ui .underline-m{-webkit-text-decoration:underline;text-decoration:underline}.swagger-ui .no-underline-m{-webkit-text-decoration:none;text-decoration:none}}@media screen and (min-width:60em){.swagger-ui .strike-l{-webkit-text-decoration:line-through;text-decoration:line-through}.swagger-ui .underline-l{-webkit-text-decoration:underline;text-decoration:underline}.swagger-ui .no-underline-l{-webkit-text-decoration:none;text-decoration:none}}.swagger-ui .tl{text-align:left}.swagger-ui .tr{text-align:right}.swagger-ui .tc{text-align:center}.swagger-ui .tj{text-align:justify}@media screen and (min-width:30em){.swagger-ui .tl-ns{text-align:left}.swagger-ui .tr-ns{text-align:right}.swagger-ui .tc-ns{text-align:center}.swagger-ui .tj-ns{text-align:justify}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .tl-m{text-align:left}.swagger-ui .tr-m{text-align:right}.swagger-ui .tc-m{text-align:center}.swagger-ui .tj-m{text-align:justify}}@media screen and (min-width:60em){.swagger-ui .tl-l{text-align:left}.swagger-ui .tr-l{text-align:right}.swagger-ui .tc-l{text-align:center}.swagger-ui .tj-l{text-align:justify}}.swagger-ui .ttc{text-transform:capitalize}.swagger-ui .ttl{text-transform:lowercase}.swagger-ui .ttu{text-transform:uppercase}.swagger-ui .ttn{text-transform:none}@media screen and (min-width:30em){.swagger-ui .ttc-ns{text-transform:capitalize}.swagger-ui .ttl-ns{text-transform:lowercase}.swagger-ui .ttu-ns{text-transform:uppercase}.swagger-ui .ttn-ns{text-transform:none}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .ttc-m{text-transform:capitalize}.swagger-ui .ttl-m{text-transform:lowercase}.swagger-ui .ttu-m{text-transform:uppercase}.swagger-ui .ttn-m{text-transform:none}}@media screen and (min-width:60em){.swagger-ui .ttc-l{text-transform:capitalize}.swagger-ui .ttl-l{text-transform:lowercase}.swagger-ui .ttu-l{text-transform:uppercase}.swagger-ui .ttn-l{text-transform:none}}.swagger-ui .f-6,.swagger-ui .f-headline{font-size:6rem}.swagger-ui .f-5,.swagger-ui .f-subheadline{font-size:5rem}.swagger-ui .f1{font-size:3rem}.swagger-ui .f2{font-size:2.25rem}.swagger-ui .f3{font-size:1.5rem}.swagger-ui .f4{font-size:1.25rem}.swagger-ui .f5{font-size:1rem}.swagger-ui .f6{font-size:.875rem}.swagger-ui .f7{font-size:.75rem}@media screen and (min-width:30em){.swagger-ui .f-6-ns,.swagger-ui .f-headline-ns{font-size:6rem}.swagger-ui .f-5-ns,.swagger-ui .f-subheadline-ns{font-size:5rem}.swagger-ui .f1-ns{font-size:3rem}.swagger-ui .f2-ns{font-size:2.25rem}.swagger-ui .f3-ns{font-size:1.5rem}.swagger-ui .f4-ns{font-size:1.25rem}.swagger-ui .f5-ns{font-size:1rem}.swagger-ui .f6-ns{font-size:.875rem}.swagger-ui .f7-ns{font-size:.75rem}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .f-6-m,.swagger-ui .f-headline-m{font-size:6rem}.swagger-ui .f-5-m,.swagger-ui .f-subheadline-m{font-size:5rem}.swagger-ui .f1-m{font-size:3rem}.swagger-ui .f2-m{font-size:2.25rem}.swagger-ui .f3-m{font-size:1.5rem}.swagger-ui .f4-m{font-size:1.25rem}.swagger-ui .f5-m{font-size:1rem}.swagger-ui .f6-m{font-size:.875rem}.swagger-ui .f7-m{font-size:.75rem}}@media screen and (min-width:60em){.swagger-ui .f-6-l,.swagger-ui .f-headline-l{font-size:6rem}.swagger-ui .f-5-l,.swagger-ui .f-subheadline-l{font-size:5rem}.swagger-ui .f1-l{font-size:3rem}.swagger-ui .f2-l{font-size:2.25rem}.swagger-ui .f3-l{font-size:1.5rem}.swagger-ui .f4-l{font-size:1.25rem}.swagger-ui .f5-l{font-size:1rem}.swagger-ui .f6-l{font-size:.875rem}.swagger-ui .f7-l{font-size:.75rem}}.swagger-ui .measure{max-width:30em}.swagger-ui .measure-wide{max-width:34em}.swagger-ui .measure-narrow{max-width:20em}.swagger-ui .indent{margin-bottom:0;margin-top:0;text-indent:1em}.swagger-ui .small-caps{font-feature-settings:\"smcp\";font-variant:small-caps}.swagger-ui .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (min-width:30em){.swagger-ui .measure-ns{max-width:30em}.swagger-ui .measure-wide-ns{max-width:34em}.swagger-ui .measure-narrow-ns{max-width:20em}.swagger-ui .indent-ns{margin-bottom:0;margin-top:0;text-indent:1em}.swagger-ui .small-caps-ns{font-feature-settings:\"smcp\";font-variant:small-caps}.swagger-ui .truncate-ns{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .measure-m{max-width:30em}.swagger-ui .measure-wide-m{max-width:34em}.swagger-ui .measure-narrow-m{max-width:20em}.swagger-ui .indent-m{margin-bottom:0;margin-top:0;text-indent:1em}.swagger-ui .small-caps-m{font-feature-settings:\"smcp\";font-variant:small-caps}.swagger-ui .truncate-m{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:60em){.swagger-ui .measure-l{max-width:30em}.swagger-ui .measure-wide-l{max-width:34em}.swagger-ui .measure-narrow-l{max-width:20em}.swagger-ui .indent-l{margin-bottom:0;margin-top:0;text-indent:1em}.swagger-ui .small-caps-l{font-feature-settings:\"smcp\";font-variant:small-caps}.swagger-ui .truncate-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.swagger-ui .overflow-container{overflow-y:scroll}.swagger-ui .center{margin-left:auto;margin-right:auto}.swagger-ui .mr-auto{margin-right:auto}.swagger-ui .ml-auto{margin-left:auto}@media screen and (min-width:30em){.swagger-ui .center-ns{margin-left:auto;margin-right:auto}.swagger-ui .mr-auto-ns{margin-right:auto}.swagger-ui .ml-auto-ns{margin-left:auto}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .center-m{margin-left:auto;margin-right:auto}.swagger-ui .mr-auto-m{margin-right:auto}.swagger-ui .ml-auto-m{margin-left:auto}}@media screen and (min-width:60em){.swagger-ui .center-l{margin-left:auto;margin-right:auto}.swagger-ui .mr-auto-l{margin-right:auto}.swagger-ui .ml-auto-l{margin-left:auto}}.swagger-ui .clip{position:fixed!important;_position:absolute!important}.swagger-ui .clip{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}@media screen and (min-width:30em){.swagger-ui .clip-ns{position:fixed!important;_position:absolute!important}.swagger-ui .clip-ns{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .clip-m{position:fixed!important;_position:absolute!important}.swagger-ui .clip-m{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}@media screen and (min-width:60em){.swagger-ui .clip-l{position:fixed!important;_position:absolute!important}.swagger-ui .clip-l{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}.swagger-ui .ws-normal{white-space:normal}.swagger-ui .nowrap{white-space:nowrap}.swagger-ui .pre{white-space:pre}@media screen and (min-width:30em){.swagger-ui .ws-normal-ns{white-space:normal}.swagger-ui .nowrap-ns{white-space:nowrap}.swagger-ui .pre-ns{white-space:pre}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .ws-normal-m{white-space:normal}.swagger-ui .nowrap-m{white-space:nowrap}.swagger-ui .pre-m{white-space:pre}}@media screen and (min-width:60em){.swagger-ui .ws-normal-l{white-space:normal}.swagger-ui .nowrap-l{white-space:nowrap}.swagger-ui .pre-l{white-space:pre}}.swagger-ui .v-base{vertical-align:baseline}.swagger-ui .v-mid{vertical-align:middle}.swagger-ui .v-top{vertical-align:top}.swagger-ui .v-btm{vertical-align:bottom}@media screen and (min-width:30em){.swagger-ui .v-base-ns{vertical-align:baseline}.swagger-ui .v-mid-ns{vertical-align:middle}.swagger-ui .v-top-ns{vertical-align:top}.swagger-ui .v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em)and (max-width:60em){.swagger-ui .v-base-m{vertical-align:baseline}.swagger-ui .v-mid-m{vertical-align:middle}.swagger-ui .v-top-m{vertical-align:top}.swagger-ui .v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.swagger-ui .v-base-l{vertical-align:baseline}.swagger-ui .v-mid-l{vertical-align:middle}.swagger-ui .v-top-l{vertical-align:top}.swagger-ui .v-btm-l{vertical-align:bottom}}.swagger-ui .dim{opacity:1;transition:opacity .15s ease-in}.swagger-ui .dim:focus,.swagger-ui .dim:hover{opacity:.5;transition:opacity .15s ease-in}.swagger-ui .dim:active{opacity:.8;transition:opacity .15s ease-out}.swagger-ui .glow{transition:opacity .15s ease-in}.swagger-ui .glow:focus,.swagger-ui .glow:hover{opacity:1;transition:opacity .15s ease-in}.swagger-ui .hide-child .child{opacity:0;transition:opacity .15s ease-in}.swagger-ui .hide-child:active .child,.swagger-ui .hide-child:focus .child,.swagger-ui .hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.swagger-ui .underline-hover:focus,.swagger-ui .underline-hover:hover{-webkit-text-decoration:underline;text-decoration:underline}.swagger-ui .grow{-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-out}.swagger-ui .grow:focus,.swagger-ui .grow:hover{transform:scale(1.05)}.swagger-ui .grow:active{transform:scale(.9)}.swagger-ui .grow-large{-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-in-out}.swagger-ui .grow-large:focus,.swagger-ui .grow-large:hover{transform:scale(1.2)}.swagger-ui .grow-large:active{transform:scale(.95)}.swagger-ui .pointer:hover{cursor:pointer}.swagger-ui .shadow-hover{cursor:pointer;position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.swagger-ui .shadow-hover:after{border-radius:inherit;box-shadow:0 0 16px 2px rgba(0,0,0,.2);content:\"\";height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .5s cubic-bezier(.165,.84,.44,1);width:100%;z-index:-1}.swagger-ui .shadow-hover:focus:after,.swagger-ui .shadow-hover:hover:after{opacity:1}.swagger-ui .bg-animate,.swagger-ui .bg-animate:focus,.swagger-ui .bg-animate:hover{transition:background-color .15s ease-in-out}.swagger-ui .z-0{z-index:0}.swagger-ui .z-1{z-index:1}.swagger-ui .z-2{z-index:2}.swagger-ui .z-3{z-index:3}.swagger-ui .z-4{z-index:4}.swagger-ui .z-5{z-index:5}.swagger-ui .z-999{z-index:999}.swagger-ui .z-9999{z-index:9999}.swagger-ui .z-max{z-index:2147483647}.swagger-ui .z-inherit{z-index:inherit}.swagger-ui .z-initial,.swagger-ui .z-unset{z-index:auto}.swagger-ui .nested-copy-line-height ol,.swagger-ui .nested-copy-line-height p,.swagger-ui .nested-copy-line-height ul{line-height:1.5}.swagger-ui .nested-headline-line-height h1,.swagger-ui .nested-headline-line-height h2,.swagger-ui .nested-headline-line-height h3,.swagger-ui .nested-headline-line-height h4,.swagger-ui .nested-headline-line-height h5,.swagger-ui .nested-headline-line-height h6{line-height:1.25}.swagger-ui .nested-list-reset ol,.swagger-ui .nested-list-reset ul{list-style-type:none;margin-left:0;padding-left:0}.swagger-ui .nested-copy-indent p+p{margin-bottom:0;margin-top:0;text-indent:.1em}.swagger-ui .nested-copy-seperator p+p{margin-top:1.5em}.swagger-ui .nested-img img{display:block;max-width:100%;width:100%}.swagger-ui .nested-links a{color:#357edd;transition:color .15s ease-in}.swagger-ui .nested-links a:focus,.swagger-ui .nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.swagger-ui .wrapper{box-sizing:border-box;margin:0 auto;max-width:1460px;padding:0 20px;width:100%}.swagger-ui .opblock-tag-section{display:flex;flex-direction:column}.swagger-ui .try-out.btn-group{display:flex;flex:.1 2 auto;padding:0}.swagger-ui .try-out__btn{margin-left:1.25rem}.swagger-ui .opblock-tag{align-items:center;border-bottom:1px solid rgba(59,65,81,.3);cursor:pointer;display:flex;padding:10px 20px 10px 10px;transition:all .2s}.swagger-ui .opblock-tag:hover{background:rgba(0,0,0,.02)}.swagger-ui .opblock-tag{color:#3b4151;font-family:sans-serif;font-size:24px;margin:0 0 5px}.swagger-ui .opblock-tag.no-desc span{flex:1}.swagger-ui .opblock-tag svg{transition:all .4s}.swagger-ui .opblock-tag small{color:#3b4151;flex:2;font-family:sans-serif;font-size:14px;font-weight:400;padding:0 10px}.swagger-ui .opblock-tag>div{flex:1 1 150px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:640px){.swagger-ui .opblock-tag small,.swagger-ui .opblock-tag>div{flex:1}}.swagger-ui .opblock-tag .info__externaldocs{text-align:right}.swagger-ui .parameter__type{color:#3b4151;font-family:monospace;font-size:12px;font-weight:600;padding:5px 0}.swagger-ui .parameter-controls{margin-top:.75em}.swagger-ui .examples__title{display:block;font-size:1.1em;font-weight:700;margin-bottom:.75em}.swagger-ui .examples__section{margin-top:1.5em}.swagger-ui .examples__section-header{font-size:.9rem;font-weight:700;margin-bottom:.5rem}.swagger-ui .examples-select{display:inline-block;margin-bottom:.75em}.swagger-ui .examples-select .examples-select-element{width:100%}.swagger-ui .examples-select__section-label{font-size:.9rem;font-weight:700;margin-right:.5rem}.swagger-ui .example__section{margin-top:1.5em}.swagger-ui .example__section-header{font-size:.9rem;font-weight:700;margin-bottom:.5rem}.swagger-ui .view-line-link{cursor:pointer;margin:0 5px;position:relative;top:3px;transition:all .5s;width:20px}.swagger-ui .opblock{border:1px solid #000;border-radius:4px;box-shadow:0 0 3px rgba(0,0,0,.19);margin:0 0 15px}.swagger-ui .opblock .tab-header{display:flex;flex:1}.swagger-ui .opblock .tab-header .tab-item{cursor:pointer;padding:0 40px}.swagger-ui .opblock .tab-header .tab-item:first-of-type{padding:0 40px 0 0}.swagger-ui .opblock .tab-header .tab-item.active h4 span{position:relative}.swagger-ui .opblock .tab-header .tab-item.active h4 span:after{background:gray;bottom:-15px;content:\"\";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:120%}.swagger-ui .opblock.is-open .opblock-summary{border-bottom:1px solid #000}.swagger-ui .opblock .opblock-section-header{align-items:center;background:hsla(0,0%,100%,.8);box-shadow:0 1px 2px rgba(0,0,0,.1);display:flex;min-height:50px;padding:8px 20px}.swagger-ui .opblock .opblock-section-header>label{align-items:center;color:#3b4151;display:flex;font-family:sans-serif;font-size:12px;font-weight:700;margin:0 0 0 auto}.swagger-ui .opblock .opblock-section-header>label>span{padding:0 10px 0 0}.swagger-ui .opblock .opblock-section-header h4{color:#3b4151;flex:1;font-family:sans-serif;font-size:14px;margin:0}.swagger-ui .opblock .opblock-summary-method{background:#000;border-radius:3px;color:#fff;font-family:sans-serif;font-size:14px;font-weight:700;min-width:80px;padding:6px 0;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.1)}.swagger-ui .opblock .opblock-summary-operation-id,.swagger-ui .opblock .opblock-summary-path,.swagger-ui .opblock .opblock-summary-path__deprecated{align-items:center;color:#3b4151;display:flex;font-family:monospace;font-size:16px;font-weight:600;padding:0 10px;word-break:break-word}@media(max-width:768px){.swagger-ui .opblock .opblock-summary-operation-id,.swagger-ui .opblock .opblock-summary-path,.swagger-ui .opblock .opblock-summary-path__deprecated{font-size:12px}}.swagger-ui .opblock .opblock-summary-path{flex-shrink:0;max-width:calc(100% - 110px - 15rem)}@media(max-width:640px){.swagger-ui .opblock .opblock-summary-path{flex-shrink:1;max-width:100%}}.swagger-ui .opblock .opblock-summary-path__deprecated{-webkit-text-decoration:line-through;text-decoration:line-through}.swagger-ui .opblock .opblock-summary-operation-id{font-size:14px}.swagger-ui .opblock .opblock-summary-description{color:#3b4151;flex:1 1 auto;font-family:sans-serif;font-size:13px;word-break:break-word}.swagger-ui .opblock .opblock-summary{align-items:center;cursor:pointer;display:flex;padding:5px}.swagger-ui .opblock .opblock-summary .view-line-link{cursor:pointer;margin:0;position:relative;top:2px;transition:all .5s;width:0}.swagger-ui .opblock .opblock-summary:hover .view-line-link{margin:0 5px;width:18px}.swagger-ui .opblock .opblock-summary:hover .view-line-link.copy-to-clipboard{width:24px}.swagger-ui .opblock.opblock-post{background:rgba(73,204,144,.1);border-color:#49cc90}.swagger-ui .opblock.opblock-post .opblock-summary-method{background:#49cc90}.swagger-ui .opblock.opblock-post .opblock-summary{border-color:#49cc90}.swagger-ui .opblock.opblock-post .tab-header .tab-item.active h4 span:after{background:#49cc90}.swagger-ui .opblock.opblock-put{background:rgba(252,161,48,.1);border-color:#fca130}.swagger-ui .opblock.opblock-put .opblock-summary-method{background:#fca130}.swagger-ui .opblock.opblock-put .opblock-summary{border-color:#fca130}.swagger-ui .opblock.opblock-put .tab-header .tab-item.active h4 span:after{background:#fca130}.swagger-ui .opblock.opblock-delete{background:rgba(249,62,62,.1);border-color:#f93e3e}.swagger-ui .opblock.opblock-delete .opblock-summary-method{background:#f93e3e}.swagger-ui .opblock.opblock-delete .opblock-summary{border-color:#f93e3e}.swagger-ui .opblock.opblock-delete .tab-header .tab-item.active h4 span:after{background:#f93e3e}.swagger-ui .opblock.opblock-get{background:rgba(97,175,254,.1);border-color:#61affe}.swagger-ui .opblock.opblock-get .opblock-summary-method{background:#61affe}.swagger-ui .opblock.opblock-get .opblock-summary{border-color:#61affe}.swagger-ui .opblock.opblock-get .tab-header .tab-item.active h4 span:after{background:#61affe}.swagger-ui .opblock.opblock-patch{background:rgba(80,227,194,.1);border-color:#50e3c2}.swagger-ui .opblock.opblock-patch .opblock-summary-method{background:#50e3c2}.swagger-ui .opblock.opblock-patch .opblock-summary{border-color:#50e3c2}.swagger-ui .opblock.opblock-patch .tab-header .tab-item.active h4 span:after{background:#50e3c2}.swagger-ui .opblock.opblock-head{background:rgba(144,18,254,.1);border-color:#9012fe}.swagger-ui .opblock.opblock-head .opblock-summary-method{background:#9012fe}.swagger-ui .opblock.opblock-head .opblock-summary{border-color:#9012fe}.swagger-ui .opblock.opblock-head .tab-header .tab-item.active h4 span:after{background:#9012fe}.swagger-ui .opblock.opblock-options{background:rgba(13,90,167,.1);border-color:#0d5aa7}.swagger-ui .opblock.opblock-options .opblock-summary-method{background:#0d5aa7}.swagger-ui .opblock.opblock-options .opblock-summary{border-color:#0d5aa7}.swagger-ui .opblock.opblock-options .tab-header .tab-item.active h4 span:after{background:#0d5aa7}.swagger-ui .opblock.opblock-deprecated{background:hsla(0,0%,92%,.1);border-color:#ebebeb;opacity:.6}.swagger-ui .opblock.opblock-deprecated .opblock-summary-method{background:#ebebeb}.swagger-ui .opblock.opblock-deprecated .opblock-summary{border-color:#ebebeb}.swagger-ui .opblock.opblock-deprecated .tab-header .tab-item.active h4 span:after{background:#ebebeb}.swagger-ui .opblock .opblock-schemes{padding:8px 20px}.swagger-ui .opblock .opblock-schemes .schemes-title{padding:0 10px 0 0}.swagger-ui .filter .operation-filter-input{border:2px solid #d8dde7;margin:20px 0;padding:10px;width:100%}.swagger-ui .download-url-wrapper .failed,.swagger-ui .filter .failed{color:red}.swagger-ui .download-url-wrapper .loading,.swagger-ui .filter .loading{color:#aaa}.swagger-ui .model-example{margin-top:1em}.swagger-ui .tab{display:flex;list-style:none;padding:0}.swagger-ui .tab li{color:#3b4151;cursor:pointer;font-family:sans-serif;font-size:12px;min-width:60px;padding:0}.swagger-ui .tab li:first-of-type{padding-left:0;padding-right:12px;position:relative}.swagger-ui .tab li:first-of-type:after{background:rgba(0,0,0,.2);content:\"\";height:100%;position:absolute;right:6px;top:0;width:1px}.swagger-ui .tab li.active{font-weight:700}.swagger-ui .tab li button.tablinks{background:none;border:0;color:inherit;font-family:inherit;font-weight:inherit;padding:0}.swagger-ui .opblock-description-wrapper,.swagger-ui .opblock-external-docs-wrapper,.swagger-ui .opblock-title_normal{color:#3b4151;font-family:sans-serif;font-size:12px;margin:0 0 5px;padding:15px 20px}.swagger-ui .opblock-description-wrapper h4,.swagger-ui .opblock-external-docs-wrapper h4,.swagger-ui .opblock-title_normal h4{color:#3b4151;font-family:sans-serif;font-size:12px;margin:0 0 5px}.swagger-ui .opblock-description-wrapper p,.swagger-ui .opblock-external-docs-wrapper p,.swagger-ui .opblock-title_normal p{color:#3b4151;font-family:sans-serif;font-size:14px;margin:0}.swagger-ui .opblock-external-docs-wrapper h4{padding-left:0}.swagger-ui .execute-wrapper{padding:20px;text-align:right}.swagger-ui .execute-wrapper .btn{padding:8px 40px;width:100%}.swagger-ui .body-param-options{display:flex;flex-direction:column}.swagger-ui .body-param-options .body-param-edit{padding:10px 0}.swagger-ui .body-param-options label{padding:8px 0}.swagger-ui .body-param-options label select{margin:3px 0 0}.swagger-ui .responses-inner{padding:20px}.swagger-ui .responses-inner h4,.swagger-ui .responses-inner h5{color:#3b4151;font-family:sans-serif;font-size:12px;margin:10px 0 5px}.swagger-ui .responses-inner .curl{white-space:normal}.swagger-ui .response-col_status{color:#3b4151;font-family:sans-serif;font-size:14px}.swagger-ui .response-col_status .response-undocumented{color:#909090;font-family:monospace;font-size:11px;font-weight:600}.swagger-ui .response-col_links{color:#3b4151;font-family:sans-serif;font-size:14px;max-width:40em;padding-left:2em}.swagger-ui .response-col_links .response-undocumented{color:#909090;font-family:monospace;font-size:11px;font-weight:600}.swagger-ui .response-col_links .operation-link{margin-bottom:1.5em}.swagger-ui .response-col_links .operation-link .description{margin-bottom:.5em}.swagger-ui .opblock-body .opblock-loading-animation{display:block;margin:3em auto}.swagger-ui .opblock-body pre.microlight{word-wrap:break-word;background:#333;border-radius:4px;color:#fff;font-family:monospace;font-size:12px;font-weight:600;-webkit-hyphens:auto;hyphens:auto;margin:0;padding:10px;white-space:pre-wrap;word-break:break-all;word-break:break-word}.swagger-ui .opblock-body pre.microlight .headerline{display:block}.swagger-ui .highlight-code{position:relative}.swagger-ui .highlight-code>.microlight{max-height:400px;min-height:6em;overflow-y:auto}.swagger-ui .highlight-code>.microlight code{white-space:pre-wrap!important}.swagger-ui .highlight-code>.microlight code{word-break:break-all}.swagger-ui .curl-command{position:relative}.swagger-ui .download-contents{align-items:center;background:#7d8293;border:none;border-radius:4px;bottom:10px;color:#fff;display:flex;font-family:sans-serif;font-size:14px;font-weight:600;height:30px;justify-content:center;padding:5px;position:absolute;right:10px;text-align:center}.swagger-ui .scheme-container{background:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.15);margin:0 0 20px;padding:30px 0}.swagger-ui .scheme-container .schemes{align-items:flex-end;display:flex}.swagger-ui .scheme-container .schemes>label{color:#3b4151;display:flex;flex-direction:column;font-family:sans-serif;font-size:12px;font-weight:700;margin:-20px 15px 0 0}.swagger-ui .scheme-container .schemes>label select{min-width:130px;text-transform:uppercase}.swagger-ui .loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;margin-top:1em;min-height:1px;padding:40px 0 60px}.swagger-ui .loading-container .loading{position:relative}.swagger-ui .loading-container .loading:after{color:#3b4151;content:\"loading\";font-family:sans-serif;font-size:10px;font-weight:700;left:50%;position:absolute;text-transform:uppercase;top:50%;transform:translate(-50%,-50%)}.swagger-ui .loading-container .loading:before{animation:rotation 1s linear infinite,opacity .5s;backface-visibility:hidden;border:2px solid rgba(85,85,85,.1);border-radius:100%;border-top-color:rgba(0,0,0,.6);content:\"\";display:block;height:60px;left:50%;margin:-30px;opacity:1;position:absolute;top:50%;width:60px}@keyframes rotation{to{transform:rotate(1turn)}}.swagger-ui .response-controls{display:flex;padding-top:1em}.swagger-ui .response-control-media-type{margin-right:1em}.swagger-ui .response-control-media-type--accept-controller select{border-color:green}.swagger-ui .response-control-media-type__accept-message{color:green;font-size:.7em}.swagger-ui .response-control-examples__title,.swagger-ui .response-control-media-type__title{display:block;font-size:.7em;margin-bottom:.2em}@keyframes blinker{50%{opacity:0}}.swagger-ui .hidden{display:none}.swagger-ui .no-margin{border:none;height:auto;margin:0;padding:0}.swagger-ui .float-right{float:right}.swagger-ui .svg-assets{height:0;position:absolute;width:0}.swagger-ui section h3{color:#3b4151;font-family:sans-serif}.swagger-ui a.nostyle{display:inline}.swagger-ui a.nostyle,.swagger-ui a.nostyle:visited{color:inherit;cursor:pointer;text-decoration:inherit}.swagger-ui .fallback{color:#aaa;padding:1em}.swagger-ui .version-pragma{height:100%;padding:5em 0}.swagger-ui .version-pragma__message{display:flex;font-size:1.2em;height:100%;justify-content:center;line-height:1.5em;padding:0 .6em;text-align:center}.swagger-ui .version-pragma__message>div{flex:1;max-width:55ch}.swagger-ui .version-pragma__message code{background-color:#dedede;padding:4px 4px 2px;white-space:pre}.swagger-ui .opblock-link{font-weight:400}.swagger-ui .opblock-link.shown{font-weight:700}.swagger-ui span.token-string{color:#555}.swagger-ui span.token-not-formatted{color:#555;font-weight:700}.swagger-ui .btn{background:transparent;border:2px solid gray;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.1);color:#3b4151;font-family:sans-serif;font-size:14px;font-weight:700;padding:5px 23px;transition:all .3s}.swagger-ui .btn.btn-sm{font-size:12px;padding:4px 23px}.swagger-ui .btn[disabled]{cursor:not-allowed;opacity:.3}.swagger-ui .btn:hover{box-shadow:0 0 5px rgba(0,0,0,.3)}.swagger-ui .btn.cancel{background-color:transparent;border-color:#ff6060;color:#ff6060;font-family:sans-serif}.swagger-ui .btn.authorize{background-color:transparent;border-color:#49cc90;color:#49cc90;display:inline;line-height:1}.swagger-ui .btn.authorize span{float:left;padding:4px 20px 0 0}.swagger-ui .btn.authorize svg{fill:#49cc90}.swagger-ui .btn.execute{background-color:#4990e2;border-color:#4990e2;color:#fff}.swagger-ui .btn-group{display:flex;padding:30px}.swagger-ui .btn-group .btn{flex:1}.swagger-ui .btn-group .btn:first-child{border-radius:4px 0 0 4px}.swagger-ui .btn-group .btn:last-child{border-radius:0 4px 4px 0}.swagger-ui .authorization__btn{background:none;border:none;padding:0 0 0 10px}.swagger-ui .authorization__btn .locked{opacity:1}.swagger-ui .authorization__btn .unlocked{opacity:.4}.swagger-ui .model-box-control,.swagger-ui .models-control,.swagger-ui .opblock-summary-control{all:inherit;border-bottom:0;cursor:pointer;flex:1;padding:0}.swagger-ui .model-box-control:focus,.swagger-ui .models-control:focus,.swagger-ui .opblock-summary-control:focus{outline:auto}.swagger-ui .expand-methods,.swagger-ui .expand-operation{background:none;border:none}.swagger-ui .expand-methods svg,.swagger-ui .expand-operation svg{height:20px;width:20px}.swagger-ui .expand-methods{padding:0 10px}.swagger-ui .expand-methods:hover svg{fill:#404040}.swagger-ui .expand-methods svg{fill:#707070;transition:all .3s}.swagger-ui button{cursor:pointer}.swagger-ui button.invalid{animation:shake .4s 1;background:#feebeb;border-color:#f93e3e}.swagger-ui .copy-to-clipboard{align-items:center;background:#7d8293;border:none;border-radius:4px;bottom:10px;display:flex;height:30px;justify-content:center;position:absolute;right:100px;width:30px}.swagger-ui .copy-to-clipboard button{background:url(\"data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"15\\\" aria-hidden=\\\"true\\\"><path fill=\\\"%23fff\\\" fill-rule=\\\"evenodd\\\" d=\\\"M4 12h4v1H4v-1zm5-6H4v1h5V6zm2 3V7l-3 3 3 3v-2h5V9h-5zM6.5 8H4v1h2.5V8zM4 11h2.5v-1H4v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H3c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V5H3v9h10v-2zM4 4h8c0-.55-.45-1-1-1h-1c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H5c-.55 0-1 .45-1 1z\\\"/></svg>\") 50% no-repeat;border:none;flex-grow:1;flex-shrink:1;height:25px}.swagger-ui .copy-to-clipboard:active{background:#5e626f}.swagger-ui .opblock-control-arrow{background:none;border:none;text-align:center}.swagger-ui .curl-command .copy-to-clipboard{bottom:5px;height:20px;right:10px;width:20px}.swagger-ui .curl-command .copy-to-clipboard button{height:18px}.swagger-ui .opblock .opblock-summary .view-line-link.copy-to-clipboard{height:26px;position:static}.swagger-ui select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#f7f7f7 url(\"data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 20 20\\\"><path d=\\\"M13.418 7.859a.695.695 0 0 1 .978 0 .68.68 0 0 1 0 .969l-3.908 3.83a.697.697 0 0 1-.979 0l-3.908-3.83a.68.68 0 0 1 0-.969.695.695 0 0 1 .978 0L10 11l3.418-3.141z\\\"/></svg>\") right 10px center no-repeat;background-size:20px;border:2px solid #41444e;border-radius:4px;box-shadow:0 1px 2px 0 rgba(0,0,0,.25);color:#3b4151;font-family:sans-serif;font-size:14px;font-weight:700;padding:5px 40px 5px 10px}.swagger-ui select[multiple]{background:#f7f7f7;margin:5px 0;padding:5px}.swagger-ui select.invalid{animation:shake .4s 1;background:#feebeb;border-color:#f93e3e}.swagger-ui .opblock-body select{min-width:230px}@media(max-width:768px){.swagger-ui .opblock-body select{min-width:180px}}@media(max-width:640px){.swagger-ui .opblock-body select{min-width:100%;width:100%}}.swagger-ui label{color:#3b4151;font-family:sans-serif;font-size:12px;font-weight:700;margin:0 0 5px}.swagger-ui input[type=email],.swagger-ui input[type=file],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text]{line-height:1}@media(max-width:768px){.swagger-ui input[type=email],.swagger-ui input[type=file],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text]{max-width:175px}}.swagger-ui input[type=email],.swagger-ui input[type=file],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text],.swagger-ui textarea{background:#fff;border:1px solid #d9d9d9;border-radius:4px;margin:5px 0;min-width:100px;padding:8px 10px}.swagger-ui input[type=email].invalid,.swagger-ui input[type=file].invalid,.swagger-ui input[type=password].invalid,.swagger-ui input[type=search].invalid,.swagger-ui input[type=text].invalid,.swagger-ui textarea.invalid{animation:shake .4s 1;background:#feebeb;border-color:#f93e3e}.swagger-ui input[disabled],.swagger-ui select[disabled],.swagger-ui textarea[disabled]{background-color:#fafafa;color:#888;cursor:not-allowed}.swagger-ui select[disabled]{border-color:#888}.swagger-ui textarea[disabled]{background-color:#41444e;color:#fff}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.swagger-ui textarea{background:hsla(0,0%,100%,.8);border:none;border-radius:4px;color:#3b4151;font-family:monospace;font-size:12px;font-weight:600;min-height:280px;outline:none;padding:10px;width:100%}.swagger-ui textarea:focus{border:2px solid #61affe}.swagger-ui textarea.curl{background:#41444e;border-radius:4px;color:#fff;font-family:monospace;font-size:12px;font-weight:600;margin:0;min-height:100px;padding:10px;resize:none}.swagger-ui .checkbox{color:#303030;padding:5px 0 10px;transition:opacity .5s}.swagger-ui .checkbox label{display:flex}.swagger-ui .checkbox p{font-weight:400!important;margin:0!important}.swagger-ui .checkbox p{color:#3b4151;font-family:monospace;font-style:italic;font-weight:600}.swagger-ui .checkbox input[type=checkbox]{display:none}.swagger-ui .checkbox input[type=checkbox]+label>.item{background:#e8e8e8;border-radius:1px;box-shadow:0 0 0 2px #e8e8e8;cursor:pointer;display:inline-block;flex:none;height:16px;margin:0 8px 0 0;padding:5px;position:relative;top:3px;width:16px}.swagger-ui .checkbox input[type=checkbox]+label>.item:active{transform:scale(.9)}.swagger-ui .checkbox input[type=checkbox]:checked+label>.item{background:#e8e8e8 url(\"data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"10\\\" height=\\\"8\\\" viewBox=\\\"3 7 10 8\\\"><path fill=\\\"%2341474E\\\" fill-rule=\\\"evenodd\\\" d=\\\"M6.333 15 3 11.667l1.333-1.334 2 2L11.667 7 13 8.333z\\\"/></svg>\") 50% no-repeat}.swagger-ui .dialog-ux{bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999}.swagger-ui .dialog-ux .backdrop-ux{background:rgba(0,0,0,.8);bottom:0;left:0;position:fixed;right:0;top:0}.swagger-ui .dialog-ux .modal-ux{background:#fff;border:1px solid #ebebeb;border-radius:4px;box-shadow:0 10px 30px 0 rgba(0,0,0,.2);left:50%;max-width:650px;min-width:300px;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%;z-index:9999}.swagger-ui .dialog-ux .modal-ux-content{max-height:540px;overflow-y:auto;padding:20px}.swagger-ui .dialog-ux .modal-ux-content p{color:#41444e;color:#3b4151;font-family:sans-serif;font-size:12px;margin:0 0 5px}.swagger-ui .dialog-ux .modal-ux-content h4{color:#3b4151;font-family:sans-serif;font-size:18px;font-weight:600;margin:15px 0 0}.swagger-ui .dialog-ux .modal-ux-header{align-items:center;border-bottom:1px solid #ebebeb;display:flex;padding:12px 0}.swagger-ui .dialog-ux .modal-ux-header .close-modal{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0 10px}.swagger-ui .dialog-ux .modal-ux-header h3{color:#3b4151;flex:1;font-family:sans-serif;font-size:20px;font-weight:600;margin:0;padding:0 20px}.swagger-ui .model{color:#3b4151;font-family:monospace;font-size:12px;font-weight:300;font-weight:600}.swagger-ui .model .deprecated span,.swagger-ui .model .deprecated td{color:#a0a0a0!important}.swagger-ui .model .deprecated>td:first-of-type{-webkit-text-decoration:line-through;text-decoration:line-through}.swagger-ui .model-toggle{cursor:pointer;display:inline-block;font-size:10px;margin:auto .3em;position:relative;top:6px;transform:rotate(90deg);transform-origin:50% 50%;transition:transform .15s ease-in}.swagger-ui .model-toggle.collapsed{transform:rotate(0deg)}.swagger-ui .model-toggle:after{background:url(\"data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"24\\\" height=\\\"24\\\"><path d=\\\"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\\\"/></svg>\") 50% no-repeat;background-size:100%;content:\"\";display:block;height:20px;width:20px}.swagger-ui .model-jump-to-path{cursor:pointer;position:relative}.swagger-ui .model-jump-to-path .view-line-link{cursor:pointer;position:absolute;top:-.4em}.swagger-ui .model-title{position:relative}.swagger-ui .model-title:hover .model-hint{visibility:visible}.swagger-ui .model-hint{background:rgba(0,0,0,.7);border-radius:4px;color:#ebebeb;padding:.1em .5em;position:absolute;top:-1.8em;visibility:hidden;white-space:nowrap}.swagger-ui .model p{margin:0 0 1em}.swagger-ui .model .property{color:#999;font-style:italic}.swagger-ui .model .property.primitive{color:#6b6b6b}.swagger-ui .model .external-docs,.swagger-ui table.model tr.description{color:#666;font-weight:400}.swagger-ui table.model tr.description td:first-child,.swagger-ui table.model tr.property-row.required td:first-child{font-weight:700}.swagger-ui table.model tr.property-row td{vertical-align:top}.swagger-ui table.model tr.property-row td:first-child{padding-right:.2em}.swagger-ui table.model tr.property-row .star{color:red}.swagger-ui table.model tr.extension{color:#777}.swagger-ui table.model tr.extension td:last-child{vertical-align:top}.swagger-ui table.model tr.external-docs td:first-child{font-weight:700}.swagger-ui table.model tr .renderedMarkdown p:first-child{margin-top:0}.swagger-ui section.models{border:1px solid rgba(59,65,81,.3);border-radius:4px;margin:30px 0}.swagger-ui section.models .pointer{cursor:pointer}.swagger-ui section.models.is-open{padding:0 0 20px}.swagger-ui section.models.is-open h4{border-bottom:1px solid rgba(59,65,81,.3);margin:0 0 5px}.swagger-ui section.models h4{align-items:center;color:#606060;cursor:pointer;display:flex;font-family:sans-serif;font-size:16px;margin:0;padding:10px 20px 10px 10px;transition:all .2s}.swagger-ui section.models h4 svg{transition:all .4s}.swagger-ui section.models h4 span{flex:1}.swagger-ui section.models h4:hover{background:rgba(0,0,0,.02)}.swagger-ui section.models h5{color:#707070;font-family:sans-serif;font-size:16px;margin:0 0 10px}.swagger-ui section.models .model-jump-to-path{position:relative;top:5px}.swagger-ui section.models .model-container{background:rgba(0,0,0,.05);border-radius:4px;margin:0 20px 15px;position:relative;transition:all .5s}.swagger-ui section.models .model-container:hover{background:rgba(0,0,0,.07)}.swagger-ui section.models .model-container:first-of-type{margin:20px}.swagger-ui section.models .model-container:last-of-type{margin:0 20px}.swagger-ui section.models .model-container .models-jump-to-path{opacity:.65;position:absolute;right:5px;top:8px}.swagger-ui section.models .model-box{background:none}.swagger-ui .model-box{background:rgba(0,0,0,.1);border-radius:4px;display:inline-block;padding:10px}.swagger-ui .model-box .model-jump-to-path{position:relative;top:4px}.swagger-ui .model-box.deprecated{opacity:.5}.swagger-ui .model-title{color:#505050;font-family:sans-serif;font-size:16px}.swagger-ui .model-title img{bottom:0;margin-left:1em;position:relative}.swagger-ui .model-deprecated-warning{color:#f93e3e;font-family:sans-serif;font-size:16px;font-weight:600;margin-right:1em}.swagger-ui span>span.model .brace-close{padding:0 0 0 10px}.swagger-ui .prop-name{display:inline-block;margin-right:1em}.swagger-ui .prop-type{color:#55a}.swagger-ui .prop-enum{display:block}.swagger-ui .prop-format{color:#606060}.swagger-ui .servers>label{color:#3b4151;font-family:sans-serif;font-size:12px;margin:-20px 15px 0 0}.swagger-ui .servers>label select{max-width:100%;min-width:130px;width:100%}.swagger-ui .servers h4.message{padding-bottom:2em}.swagger-ui .servers table tr{width:30em}.swagger-ui .servers table td{display:inline-block;max-width:15em;padding-bottom:10px;padding-top:10px;vertical-align:middle}.swagger-ui .servers table td:first-of-type{padding-right:1em}.swagger-ui .servers table td input{height:100%;width:100%}.swagger-ui .servers .computed-url{margin:2em 0}.swagger-ui .servers .computed-url code{display:inline-block;font-size:16px;margin:0 1em;padding:4px}.swagger-ui .servers-title{font-size:12px;font-weight:700}.swagger-ui .operation-servers h4.message{margin-bottom:2em}.swagger-ui table{border-collapse:collapse;padding:0 10px;width:100%}.swagger-ui table.model tbody tr td{padding:0;vertical-align:top}.swagger-ui table.model tbody tr td:first-of-type{padding:0 0 0 2em;width:174px}.swagger-ui table.headers td{color:#3b4151;font-family:monospace;font-size:12px;font-weight:300;font-weight:600;vertical-align:middle}.swagger-ui table.headers .header-example{color:#999;font-style:italic}.swagger-ui table tbody tr td{padding:10px 0 0;vertical-align:top}.swagger-ui table tbody tr td:first-of-type{min-width:6em;padding:10px 0}.swagger-ui table thead tr td,.swagger-ui table thead tr th{border-bottom:1px solid rgba(59,65,81,.2);color:#3b4151;font-family:sans-serif;font-size:12px;font-weight:700;padding:12px 0;text-align:left}.swagger-ui .parameters-col_description{margin-bottom:2em;width:99%}.swagger-ui .parameters-col_description input{max-width:340px;width:100%}.swagger-ui .parameters-col_description select{border-width:1px}.swagger-ui .parameters-col_description .markdown p,.swagger-ui .parameters-col_description .renderedMarkdown p{margin:0}.swagger-ui .parameter__name{color:#3b4151;font-family:sans-serif;font-size:16px;font-weight:400;margin-right:.75em}.swagger-ui .parameter__name.required{font-weight:700}.swagger-ui .parameter__name.required span{color:red}.swagger-ui .parameter__name.required:after{color:rgba(255,0,0,.6);content:\"required\";font-size:10px;padding:5px;position:relative;top:-6px}.swagger-ui .parameter__extension,.swagger-ui .parameter__in{color:gray;font-family:monospace;font-size:12px;font-style:italic;font-weight:600}.swagger-ui .parameter__deprecated{color:red;font-family:monospace;font-size:12px;font-style:italic;font-weight:600}.swagger-ui .parameter__empty_value_toggle{display:block;font-size:13px;padding-bottom:12px;padding-top:5px}.swagger-ui .parameter__empty_value_toggle input{margin-right:7px;width:auto}.swagger-ui .parameter__empty_value_toggle.disabled{opacity:.7}.swagger-ui .table-container{padding:20px}.swagger-ui .response-col_description{width:99%}.swagger-ui .response-col_description .markdown p,.swagger-ui .response-col_description .renderedMarkdown p{margin:0}.swagger-ui .response-col_links{min-width:6em}.swagger-ui .response__extension{color:gray;font-family:monospace;font-size:12px;font-style:italic;font-weight:600}.swagger-ui .topbar{background-color:#1b1b1b;padding:10px 0}.swagger-ui .topbar .topbar-wrapper,.swagger-ui .topbar a{align-items:center;display:flex}.swagger-ui .topbar a{color:#fff;flex:1;font-family:sans-serif;font-size:1.5em;font-weight:700;max-width:300px;-webkit-text-decoration:none;text-decoration:none}.swagger-ui .topbar a span{margin:0;padding:0 10px}.swagger-ui .topbar .download-url-wrapper{display:flex;flex:3;justify-content:flex-end}.swagger-ui .topbar .download-url-wrapper input[type=text]{border:2px solid #62a03f;border-radius:4px 0 0 4px;margin:0;outline:none;width:100%}.swagger-ui .topbar .download-url-wrapper .select-label{align-items:center;color:#f0f0f0;display:flex;margin:0;max-width:600px;width:100%}.swagger-ui .topbar .download-url-wrapper .select-label span{flex:1;font-size:16px;padding:0 10px 0 0;text-align:right}.swagger-ui .topbar .download-url-wrapper .select-label select{border:2px solid #62a03f;box-shadow:none;flex:2;outline:none;width:100%}.swagger-ui .topbar .download-url-wrapper .download-url-button{background:#62a03f;border:none;border-radius:0 4px 4px 0;color:#fff;font-family:sans-serif;font-size:16px;font-weight:700;padding:4px 30px}.swagger-ui .info{margin:50px 0}.swagger-ui .info.failed-config{margin-left:auto;margin-right:auto;max-width:880px;text-align:center}.swagger-ui .info hgroup.main{margin:0 0 20px}.swagger-ui .info hgroup.main a{font-size:12px}.swagger-ui .info pre{font-size:14px}.swagger-ui .info li,.swagger-ui .info p,.swagger-ui .info table{color:#3b4151;font-family:sans-serif;font-size:14px}.swagger-ui .info h1,.swagger-ui .info h2,.swagger-ui .info h3,.swagger-ui .info h4,.swagger-ui .info h5{color:#3b4151;font-family:sans-serif}.swagger-ui .info a{color:#4990e2;font-family:sans-serif;font-size:14px;transition:all .4s}.swagger-ui .info a:hover{color:#1f69c0}.swagger-ui .info>div{margin:0 0 5px}.swagger-ui .info .base-url{font-weight:300!important}.swagger-ui .info .base-url{color:#3b4151;font-family:monospace;font-size:12px;font-weight:600;margin:0}.swagger-ui .info .title{color:#3b4151;font-family:sans-serif;font-size:36px;margin:0}.swagger-ui .info .title small{background:#7d8492;border-radius:57px;display:inline-block;font-size:10px;margin:0 0 0 5px;padding:2px 4px;position:relative;top:-5px;vertical-align:super}.swagger-ui .info .title small.version-stamp{background-color:#89bf04}.swagger-ui .info .title small pre{color:#fff;font-family:sans-serif;margin:0;padding:0}.swagger-ui .auth-btn-wrapper{display:flex;justify-content:center;padding:10px 0}.swagger-ui .auth-btn-wrapper .btn-done{margin-right:1em}.swagger-ui .auth-wrapper{display:flex;flex:1;justify-content:flex-end}.swagger-ui .auth-wrapper .authorize{margin-left:10px;margin-right:10px;padding-right:20px}.swagger-ui .auth-container{border-bottom:1px solid #ebebeb;margin:0 0 10px;padding:10px 20px}.swagger-ui .auth-container:last-of-type{border:0;margin:0;padding:10px 20px}.swagger-ui .auth-container h4{margin:5px 0 15px!important}.swagger-ui .auth-container .wrapper{margin:0;padding:0}.swagger-ui .auth-container input[type=password],.swagger-ui .auth-container input[type=text]{min-width:230px}.swagger-ui .auth-container .errors{background-color:#fee;border-radius:4px;color:red;color:#3b4151;font-family:monospace;font-size:12px;font-weight:600;margin:1em;padding:10px}.swagger-ui .auth-container .errors b{margin-right:1em;text-transform:capitalize}.swagger-ui .scopes h2{color:#3b4151;font-family:sans-serif;font-size:14px}.swagger-ui .scopes h2 a{color:#4990e2;cursor:pointer;font-size:12px;padding-left:10px;-webkit-text-decoration:underline;text-decoration:underline}.swagger-ui .scope-def{padding:0 0 20px}.swagger-ui .errors-wrapper{animation:scaleUp .5s;background:rgba(249,62,62,.1);border:2px solid #f93e3e;border-radius:4px;margin:20px;padding:10px 20px}.swagger-ui .errors-wrapper .error-wrapper{margin:0 0 10px}.swagger-ui .errors-wrapper .errors h4{color:#3b4151;font-family:monospace;font-size:14px;font-weight:600;margin:0}.swagger-ui .errors-wrapper .errors small{color:#606060}.swagger-ui .errors-wrapper .errors .message{white-space:pre-line}.swagger-ui .errors-wrapper .errors .message.thrown{max-width:100%}.swagger-ui .errors-wrapper .errors .error-line{cursor:pointer;-webkit-text-decoration:underline;text-decoration:underline}.swagger-ui .errors-wrapper hgroup{align-items:center;display:flex}.swagger-ui .errors-wrapper hgroup h4{color:#3b4151;flex:1;font-family:sans-serif;font-size:20px;margin:0}@keyframes scaleUp{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.swagger-ui .Resizer.vertical.disabled{display:none}.swagger-ui .markdown p,.swagger-ui .markdown pre,.swagger-ui .renderedMarkdown p,.swagger-ui .renderedMarkdown pre{margin:1em auto;word-break:break-all;word-break:break-word}.swagger-ui .markdown pre,.swagger-ui .renderedMarkdown pre{background:none;color:#000;font-weight:400;padding:0;white-space:pre-wrap}.swagger-ui .markdown code,.swagger-ui .renderedMarkdown code{background:rgba(0,0,0,.05);border-radius:4px;color:#9012fe;font-family:monospace;font-size:14px;font-weight:600;padding:5px 7px}.swagger-ui .markdown pre>code,.swagger-ui .renderedMarkdown pre>code{display:block}.swagger-ui .json-schema-2020-12{background-color:rgba(0,0,0,.05);border-radius:4px;margin:0 20px 15px;padding:12px 0 12px 20px}.swagger-ui .json-schema-2020-12:first-of-type{margin:20px}.swagger-ui .json-schema-2020-12:last-of-type{margin:0 20px}.swagger-ui .json-schema-2020-12--embedded{background-color:inherit;padding-bottom:0;padding-left:inherit;padding-right:inherit;padding-top:0}.swagger-ui .json-schema-2020-12-body{border-left:1px dashed rgba(0,0,0,.1);margin:2px 0}.swagger-ui .json-schema-2020-12-body--collapsed{display:none}.swagger-ui .json-schema-2020-12-accordion{border:none;outline:none;padding-left:0}.swagger-ui .json-schema-2020-12-accordion__children{display:inline-block}.swagger-ui .json-schema-2020-12-accordion__icon{display:inline-block;height:18px;vertical-align:bottom;width:18px}.swagger-ui .json-schema-2020-12-accordion__icon--expanded{transform:rotate(-90deg);transform-origin:50% 50%;transition:transform .15s ease-in}.swagger-ui .json-schema-2020-12-accordion__icon--collapsed{transform:rotate(0deg);transform-origin:50% 50%;transition:transform .15s ease-in}.swagger-ui .json-schema-2020-12-accordion__icon svg{height:20px;width:20px}.swagger-ui .json-schema-2020-12-expand-deep-button{border:none;color:#505050;color:#afaeae;font-family:sans-serif;font-size:12px;padding-right:0}.swagger-ui .json-schema-2020-12-keyword{margin:5px 0}.swagger-ui .json-schema-2020-12-keyword__children{border-left:1px dashed rgba(0,0,0,.1);margin:0 0 0 20px;padding:0}.swagger-ui .json-schema-2020-12-keyword__children--collapsed{display:none}.swagger-ui .json-schema-2020-12-keyword__name{font-size:12px;font-weight:700;margin-left:20px}.swagger-ui .json-schema-2020-12-keyword__name--primary{color:#3b4151;font-style:normal}.swagger-ui .json-schema-2020-12-keyword__name--secondary{color:#6b6b6b;font-style:italic}.swagger-ui .json-schema-2020-12-keyword__value{color:#6b6b6b;font-size:12px;font-style:italic;font-weight:400}.swagger-ui .json-schema-2020-12-keyword__value--primary{color:#3b4151;font-style:normal}.swagger-ui .json-schema-2020-12-keyword__value--secondary{color:#6b6b6b;font-style:italic}.swagger-ui .json-schema-2020-12-keyword__value--const,.swagger-ui .json-schema-2020-12-keyword__value--warning{border:1px dashed #6b6b6b;border-radius:4px;color:#3b4151;color:#6b6b6b;display:inline-block;font-family:monospace;font-style:normal;font-weight:600;line-height:1.5;margin-left:10px;padding:1px 4px}.swagger-ui .json-schema-2020-12-keyword__value--warning{border:1px dashed red;color:red}.swagger-ui .json-schema-2020-12-keyword__name--secondary+.json-schema-2020-12-keyword__value--secondary:before{content:\"=\"}.swagger-ui .json-schema-2020-12__attribute{color:#3b4151;font-family:monospace;font-size:12px;padding-left:10px;text-transform:lowercase}.swagger-ui .json-schema-2020-12__attribute--primary{color:#55a}.swagger-ui .json-schema-2020-12__attribute--muted{color:gray}.swagger-ui .json-schema-2020-12__attribute--warning{color:red}.swagger-ui .json-schema-2020-12-keyword--\\$vocabulary ul{border-left:1px dashed rgba(0,0,0,.1);margin:0 0 0 20px}.swagger-ui .json-schema-2020-12-\\$vocabulary-uri{margin-left:35px}.swagger-ui .json-schema-2020-12-\\$vocabulary-uri--disabled{-webkit-text-decoration:line-through;text-decoration:line-through}.swagger-ui .json-schema-2020-12-keyword--description{color:#6b6b6b;font-size:12px;margin-left:20px}.swagger-ui .json-schema-2020-12-keyword--description p{margin:0}.swagger-ui .json-schema-2020-12__title{color:#505050;display:inline-block;font-family:sans-serif;font-size:12px;font-weight:700;line-height:normal}.swagger-ui .json-schema-2020-12__title .json-schema-2020-12-keyword__name{margin:0}.swagger-ui .json-schema-2020-12-property{margin:7px 0}.swagger-ui .json-schema-2020-12-property .json-schema-2020-12__title{color:#3b4151;font-family:monospace;font-size:12px;font-weight:600;vertical-align:middle}.swagger-ui .json-schema-2020-12-keyword--properties>ul{border:none;margin:0;padding:0}.swagger-ui .json-schema-2020-12-property{list-style-type:none}.swagger-ui .json-schema-2020-12-property--required>.json-schema-2020-12:first-of-type>.json-schema-2020-12-head .json-schema-2020-12__title:after{color:red;content:\"*\";font-weight:700}.swagger-ui .json-schema-2020-12-keyword--patternProperties ul{border:none;margin:0;padding:0}.swagger-ui .json-schema-2020-12-keyword--patternProperties .json-schema-2020-12__title:first-of-type:after,.swagger-ui .json-schema-2020-12-keyword--patternProperties .json-schema-2020-12__title:first-of-type:before{color:#55a;content:\"/\"}.swagger-ui .json-schema-2020-12-keyword--enum>ul{display:inline-block;margin:0;padding:0}.swagger-ui .json-schema-2020-12-keyword--enum>ul li{display:inline;list-style-type:none}.swagger-ui .json-schema-2020-12__constraint{background-color:#805ad5;border-radius:4px;color:#3b4151;color:#fff;font-family:monospace;font-weight:600;line-height:1.5;margin-left:10px;padding:1px 3px}.swagger-ui .json-schema-2020-12__constraint--string{background-color:#d69e2e;color:#fff}.swagger-ui .json-schema-2020-12-keyword--dependentRequired>ul{display:inline-block;margin:0;padding:0}.swagger-ui .json-schema-2020-12-keyword--dependentRequired>ul li{display:inline;list-style-type:none}.swagger-ui .model-box .json-schema-2020-12:not(.json-schema-2020-12--embedded)>.json-schema-2020-12-head .json-schema-2020-12__title:first-of-type{font-size:16px}.swagger-ui .model-box>.json-schema-2020-12{margin:0}.swagger-ui .model-box .json-schema-2020-12{background-color:transparent;padding:0}.swagger-ui .model-box .json-schema-2020-12-accordion,.swagger-ui .model-box .json-schema-2020-12-expand-deep-button{background-color:transparent}.swagger-ui .models .json-schema-2020-12:not(.json-schema-2020-12--embedded)>.json-schema-2020-12-head .json-schema-2020-12__title:first-of-type{font-size:16px}\n\n/*# sourceMappingURL=swagger-ui.css.map*/"
  },
  {
    "path": "download-onnxruntime-linux.sh",
    "content": "#!/usr/bin/env bash\n\ncd \"$(dirname \"$0\")\" || exit\n\necho\necho \"Select onnxruntime version to download:\"\nRAW_LIST=$(curl -s -H \"Accept: application/vnd.github+json\" \\\n  -H \"X-GitHub-Api-Version: 2022-11-28\" \\\n  https://api.github.com/repos/microsoft/onnxruntime/releases/latest \\\n  | grep browser_download_url \\\n  | grep tgz \\\n  | grep linux \\\n  | awk '{print $2}' \\\n  | tr -d '\"')\n\nselect item in $RAW_LIST; do\n  FILENAME=$(basename \"$item\")\n\n  rm -f \"$FILENAME\"\n\n  echo\n  echo \"Downloading $item\"\n  echo\n\n  wget \"$item\"\n\n  sudo mkdir -p /usr/local/onnxruntime\n  sudo tar vzxf \"$FILENAME\" -C /usr/local/onnxruntime --strip-components=1\n  sudo sh -c 'echo \"/usr/local/onnxruntime/lib\" > /etc/ld.so.conf.d/onnxruntime.conf'\n  sudo ldconfig\n\n  rm -f \"$FILENAME\"\n\n  echo\n  echo \"Done\"\n  echo\n\n  exit 0\ndone\n"
  },
  {
    "path": "src/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 3.22.0)\nproject(onnxruntime_server LANGUAGES CXX)\n\nset(CMAKE_CXX_STANDARD 17)\n\nset(SOURCE_FILES\n        task/task.cpp\n        task/create_session.cpp\n        task/execute_session.cpp\n        task/destroy_session.cpp\n        task/list_session.cpp\n        task/get_session.cpp\n\n        onnx/version.cpp\n        onnx/providers.cpp\n        onnx/session_key.cpp\n        onnx/session_key_with_option.cpp\n        onnx/session.cpp\n        onnx/session_manager.cpp\n        onnx/value_info.cpp\n        onnx/execution/input_value.cpp\n        onnx/execution/context.cpp\n\n        transport/server.cpp\n        transport/tcp/tcp_session.cpp\n        transport/http/http_session_base.cpp\n        transport/http/http_session.cpp\n        transport/http/http_server.cpp\n        transport/http/swagger_serve.cpp\n        transport/http/swagger/swagger_index_html.cpp\n        transport/http/swagger/swagger_openapi_yaml.cpp\n)\n\nfind_package(PkgConfig REQUIRED)\n\n# cuda, onnxruntime\nfind_package(CUDAToolkit)\nif (NOT CUDAToolkit_FOUND)\n    set(CUDAToolkit_ROOT \"/usr/local/cuda\")\n    find_package(CUDAToolkit)\nendif ()\n\nif (CUDAToolkit_FOUND)\n    message(STATUS \"CUDA library found.\")\n    if (NOT CMAKE_CUDA_COMPILER)\n        find_program(CMAKE_CUDA_COMPILER nvcc PATHS \"${CUDAToolkit_BIN_DIR}\" NO_DEFAULT_PATH)\n    endif ()\n    enable_language(CUDA)\n    pkg_search_module(ONNX_RUNTIME IMPORTED_TARGET libonnxruntime_cuda)\n    if (NOT ONNX_RUNTIME_FOUND)\n        list(APPEND CMAKE_MODULE_PATH \"${CMAKE_CURRENT_SOURCE_DIR}/../cmake\" \"${CMAKE_CURRENT_SOURCE_DIR}/cmake\")\n        find_package(ONNXRuntime COMPONENTS cuda REQUIRED)\n    endif ()\n\n    if (ONNX_RUNTIME_WITH_CUDA_PROVIDER)\n        message(STATUS \"ONNX Runtime with CUDA provider found. Enabling CUDA support.\")\n        add_definitions(-DHAS_CUDA)\n        set(SOURCE_FILES ${SOURCE_FILES} onnx/cuda/session_options.cpp)\n    endif ()\nelse ()\n    message(STATUS \"CUDA library not found.\")\n    pkg_check_modules(ONNX_RUNTIME IMPORTED_TARGET libonnxruntime)\n    if (NOT ONNX_RUNTIME_FOUND)\n        list(APPEND CMAKE_MODULE_PATH \"${CMAKE_CURRENT_SOURCE_DIR}/../cmake\" \"${CMAKE_CURRENT_SOURCE_DIR}/cmake\")\n        find_package(ONNXRuntime REQUIRED)\n    endif ()\nendif ()\n\n# boost\n#set(Boost_USE_STATIC_LIBS ON)\nif (WIN32)\n    find_package(Boost COMPONENTS serialization system filesystem program_options thread asio beast REQUIRED)\nelse ()\n    find_package(Boost COMPONENTS serialization filesystem program_options thread REQUIRED)\nendif ()\n\n# openssl\nif (NOT NO_ONNXRUNTIME_SERVER_OPENSSL)\n    #set(OPENSSL_USE_STATIC_LIBS ON)\n    find_package(OpenSSL)\n    if (OPENSSL_FOUND)\n        add_definitions(-DHAS_OPENSSL)\n        set(SOURCE_FILES ${SOURCE_FILES} transport/http/https_server.cpp transport/http/https_session.cpp)\n    endif ()\nendif ()\n\nif (WIN32)\n    add_compile_definitions(_WIN32_WINNT=0x0A00)\nendif ()\n\ninclude_directories(${Boost_INCLUDE_DIR} ${ONNX_RUNTIME_INCLUDE_DIRS} ${OPENSSL_INCLUDE_DIR})\nlink_directories(${Boost_LIBRARY_DIRS} ${ONNX_RUNTIME_LIBRARY_DIRS} ${OPENSSL_LIBRARY_DIRS})\n\nadd_library(${PROJECT_NAME} STATIC SHARED ${SOURCE_FILES})\ntarget_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES} ${ONNX_RUNTIME_LIBRARIES} ${OPENSSL_LIBRARIES})\n\nadd_library(${PROJECT_NAME}_static STATIC $<TARGET_OBJECTS:${PROJECT_NAME}>)\ntarget_link_libraries(${PROJECT_NAME}_static ${Boost_LIBRARIES} ${ONNX_RUNTIME_LIBRARIES} ${OPENSSL_LIBRARIES})\n\nadd_subdirectory(standalone)\n\n# test\nif (NOT NO_ONNXRUNTIME_SERVER_TEST)\n    find_package(GTest)\n    if (GTEST_FOUND AND NOT CMAKE_BUILD_TYPE STREQUAL \"Release\")\n        enable_testing()\n        add_subdirectory(test)\n    endif ()\nendif ()\n\n# install\nif (NOT NO_ONNXRUNTIME_SERVER_INSTALL AND NOT WIN32)\n    set_target_properties(${PROJECT_NAME}_standalone PROPERTIES OUTPUT_NAME ${PROJECT_NAME})\n    set_target_properties(${PROJECT_NAME}_static PROPERTIES OUTPUT_NAME ${PROJECT_NAME})\n\n    install(TARGETS ${PROJECT_NAME}_standalone DESTINATION bin)\n    install(TARGETS ${PROJECT_NAME} DESTINATION lib)\n    install(TARGETS ${PROJECT_NAME}_static DESTINATION lib RENAME ${PROJECT_NAME})\n    install(FILES onnxruntime_server.hpp DESTINATION include)\n    install(FILES transport/http/http_server.hpp DESTINATION include/transport/http)\n    install(FILES transport/tcp/tcp_server.hpp DESTINATION include/transport/tcp)\n    install(DIRECTORY utils DESTINATION include/utils)\nendif ()"
  },
  {
    "path": "src/onnx/cuda/session_options.cpp",
    "content": "//\n// Created by kibae on 23. 9. 5.\n//\n#include \"session_options.hpp\"\n\n#include <set>\n\nnamespace {\n\nstd::string to_provider_string(const json &v) {\n\tif (v.is_boolean())\n\t\treturn v.get<bool>() ? \"1\" : \"0\";\n\tif (v.is_number_integer())\n\t\treturn std::to_string(v.get<int64_t>());\n\tif (v.is_number_unsigned())\n\t\treturn std::to_string(v.get<uint64_t>());\n\tif (v.is_string())\n\t\treturn v.get<std::string>();\n\treturn v.dump();\n}\n\n// Apply all caller-supplied CUDA provider options in a single UpdateCUDAProviderOptions call.\n//\n// Why a single call: ORT V2's UpdateCUDAProviderOptions silently resets sibling keys that share\n// an internal options group (e.g. updating arena_extend_strategy alone reverts gpu_mem_limit to\n// its default). Calling it once with the full key/value set is the only way to apply multiple\n// keys safely. The trade-off is that any single invalid key aborts the whole batch; that is\n// acceptable here because ORT's error message identifies the offending key, so the caller can\n// see exactly what was rejected.\nvoid update_all(OrtCUDAProviderOptionsV2 *cuda_options, const std::vector<std::string> &keys,\n\t\t\t\tconst std::vector<std::string> &values) {\n\tif (keys.empty())\n\t\treturn;\n\tstd::vector<const char *> ck;\n\tstd::vector<const char *> cv;\n\tck.reserve(keys.size());\n\tcv.reserve(values.size());\n\tfor (size_t i = 0; i < keys.size(); ++i) {\n\t\tck.push_back(keys[i].c_str());\n\t\tcv.push_back(values[i].c_str());\n\t}\n\tOrtStatus *st = Ort::GetApi().UpdateCUDAProviderOptions(cuda_options, ck.data(), cv.data(), ck.size());\n\tif (st != nullptr) {\n\t\tconst char *err = Ort::GetApi().GetErrorMessage(st);\n\t\tstd::string msg = err ? err : \"unknown error\";\n\t\tOrt::GetApi().ReleaseStatus(st);\n\t\tthrow onnxruntime_server::runtime_error(std::string(\"Failed to update CUDA provider options: \") + msg);\n\t}\n}\n\n// Convert the readback value (always a string from ORT) back to the most natural JSON type so\n// the response shape matches what callers typically send: integers as integers, \"true\"/\"false\"\n// as booleans, anything else as a string.\njson infer_readback_value(const std::string &raw) {\n\tif (raw == \"true\")\n\t\treturn true;\n\tif (raw == \"false\")\n\t\treturn false;\n\tif (!raw.empty()) {\n\t\tbool numeric = (raw[0] == '-' || (raw[0] >= '0' && raw[0] <= '9'));\n\t\tif (numeric) {\n\t\t\tfor (size_t i = 1; i < raw.size(); ++i) {\n\t\t\t\tif (raw[i] < '0' || raw[i] > '9') {\n\t\t\t\t\tnumeric = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (numeric) {\n\t\t\t\ttry {\n\t\t\t\t\treturn json(std::stoll(raw));\n\t\t\t\t} catch (...) {\n\t\t\t\t\t// fall through to string\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn raw;\n}\n\n// Parse \"key1=value1;key2=value2\" produced by GetCUDAProviderOptionsAsString.\njson parse_options_string(const std::string &s) {\n\tjson out = json::object();\n\tsize_t pos = 0;\n\twhile (pos < s.size()) {\n\t\tauto eq = s.find('=', pos);\n\t\tif (eq == std::string::npos)\n\t\t\tbreak;\n\t\tauto sc = s.find(';', eq);\n\t\tif (sc == std::string::npos)\n\t\t\tsc = s.size();\n\t\tauto k = s.substr(pos, eq - pos);\n\t\tauto v = s.substr(eq + 1, sc - eq - 1);\n\t\tif (!k.empty())\n\t\t\tout[k] = infer_readback_value(v);\n\t\tpos = sc + 1;\n\t}\n\treturn out;\n}\n\n} // namespace\n\n// Apply CUDA provider options.\n//\n// Validation policy mirrors apply_session_options(): we forward every shape-valid input entry to\n// ORT one key at a time; ORT decides whether to accept it. The echoed object is built from\n// GetCUDAProviderOptionsAsString readback (the ground truth of what ORT stored), filtered to the\n// keys the caller actually supplied (plus device_id, which is always meaningful).\njson append_cuda_session_options(OrtSessionOptions *session_options, const json &option) {\n\tauto cuda = option[\"cuda\"];\n\n\tOrtCUDAProviderOptionsV2 *cuda_options = nullptr;\n\tOrt::ThrowOnError(Ort::GetApi().CreateCUDAProviderOptions(&cuda_options));\n\n\t// Track which keys the caller asked about — these are the keys we will echo from readback.\n\t// device_id is always included for backward compatibility with the previous response shape.\n\tstd::set<std::string> requested_keys;\n\trequested_keys.insert(\"device_id\");\n\n\tstd::vector<std::string> keys;\n\tstd::vector<std::string> values;\n\tif (cuda.is_object()) {\n\t\tfor (auto it = cuda.begin(); it != cuda.end(); ++it) {\n\t\t\tkeys.push_back(it.key());\n\t\t\tvalues.push_back(to_provider_string(it.value()));\n\t\t\trequested_keys.insert(it.key());\n\t\t}\n\t} else if (cuda.is_number_integer()) {\n\t\tkeys.push_back(\"device_id\");\n\t\tvalues.push_back(std::to_string(cuda.get<int>()));\n\t}\n\t// cuda == true or false: nothing to update; default V2 options are used.\n\n\ttry {\n\t\tupdate_all(cuda_options, keys, values);\n\t} catch (...) {\n\t\tOrt::GetApi().ReleaseCUDAProviderOptions(cuda_options);\n\t\tthrow;\n\t}\n\n\tOrtStatus *append_status =\n\t\tOrt::GetApi().SessionOptionsAppendExecutionProvider_CUDA_V2(session_options, cuda_options);\n\tif (append_status != nullptr) {\n\t\tconst char *err = Ort::GetApi().GetErrorMessage(append_status);\n\t\tstd::string msg = err ? err : \"unknown error\";\n\t\tOrt::GetApi().ReleaseStatus(append_status);\n\t\tOrt::GetApi().ReleaseCUDAProviderOptions(cuda_options);\n\t\tthrow onnxruntime_server::runtime_error(std::string(\"Failed to append CUDA EP: \") + msg);\n\t}\n\n\t// Readback the full options string and echo only the keys the caller cared about.\n\t// The whole readback section is wrapped in a try/catch so that an exception in any of the\n\t// allocations (std::bad_alloc, json construction) cannot leak the ORT allocator buffer or the\n\t// cuda_options handle.\n\tjson result = json::object();\n\ttry {\n\t\tOrtAllocator *allocator = nullptr;\n\t\tOrtStatus *alloc_st = Ort::GetApi().GetAllocatorWithDefaultOptions(&allocator);\n\t\tif (alloc_st != nullptr) {\n\t\t\tOrt::GetApi().ReleaseStatus(alloc_st);\n\t\t} else {\n\t\t\tchar *cstr = nullptr;\n\t\t\tOrtStatus *st = Ort::GetApi().GetCUDAProviderOptionsAsString(cuda_options, allocator, &cstr);\n\t\t\tif (st != nullptr) {\n\t\t\t\tOrt::GetApi().ReleaseStatus(st);\n\t\t\t} else if (cstr != nullptr) {\n\t\t\t\ttry {\n\t\t\t\t\tauto all = parse_options_string(std::string(cstr));\n\t\t\t\t\tfor (auto it = all.begin(); it != all.end(); ++it) {\n\t\t\t\t\t\tif (requested_keys.count(it.key()))\n\t\t\t\t\t\t\tresult[it.key()] = it.value();\n\t\t\t\t\t}\n\t\t\t\t} catch (...) {\n\t\t\t\t\tallocator->Free(allocator, cstr);\n\t\t\t\t\tthrow;\n\t\t\t\t}\n\t\t\t\tallocator->Free(allocator, cstr);\n\t\t\t}\n\t\t}\n\t} catch (...) {\n\t\tOrt::GetApi().ReleaseCUDAProviderOptions(cuda_options);\n\t\tthrow;\n\t}\n\n\tOrt::GetApi().ReleaseCUDAProviderOptions(cuda_options);\n\n\treturn result;\n}\n"
  },
  {
    "path": "src/onnx/cuda/session_options.hpp",
    "content": "//\n// Created by kibae on 23. 9. 10.\n//\n\n#ifndef ONNXRUNTIME_SERVER_SESSION_OPTIONS_HPP\n#define ONNXRUNTIME_SERVER_SESSION_OPTIONS_HPP\n\n#include \"../../onnxruntime_server.hpp\"\n\njson append_cuda_session_options(OrtSessionOptions *session_options, const json &option);\n\n#endif // ONNXRUNTIME_SERVER_SESSION_OPTIONS_HPP\n"
  },
  {
    "path": "src/onnx/execution/context.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/02.\n//\n\n#include \"../../onnxruntime_server.hpp\"\n\nOrts::onnx::execution::context::context(std::shared_ptr<Orts::onnx::session> session, const json &json_str)\n\t: memory_info(Ort::MemoryInfo::CreateCpu(OrtArenaAllocator, OrtMemTypeDefault)), session(session) {\n\tassert(session != nullptr);\n\n\tjson dataset = json_str;\n\n\tif (!dataset.is_object() && dataset.is_string())\n\t\tdataset = json::parse(dataset.get<std::string>());\n\n\t// check dataset is object\n\tif (!dataset.is_object()) {\n\t\tthrow bad_request_error(\"Top-level JSON dataset is not object\");\n\t}\n\n\tfor (auto input : session->inputs()) {\n\t\tif (!dataset[input.name].is_array())\n\t\t\tthrow bad_request_error(\"Input \" + input.name + \" is not array\");\n\n\t\t// batch first. first dimension is batch size\n\t\tstd::vector<json::value_type> json_values;\n\t\tflat_json_values(dataset[input.name], &json_values);\n\n\t\tstd::vector<int64_t> input_shape;\n\t\tcalcShape(dataset[input.name], input.shape.size(), &input_shape);\n\t\tinput.set_input_shape(input_shape);\n\n\t\tinputs[input.name] = new Orts::onnx::execution::input_value(memory_info, input, json_values);\n\t}\n}\n\nOrts::onnx::execution::context::~context() {\n\tfor (auto &p : inputs) {\n\t\tdelete p.second;\n\t}\n}\n\nvoid Orts::onnx::execution::context::calcShape(\n\tconst json::value_type &data, int count, std::vector<int64_t> *input_shape\n) {\n\tbool is_first_val = true;\n\tif (data.is_array() && count != 0) {\n\t\tfor (auto &item : data) {\n\t\t\tif (is_first_val) {\n\t\t\t\tis_first_val = false;\n\t\t\t\tinput_shape->push_back(data.size());\n\t\t\t\tcalcShape(item, count - 1, input_shape);\n\t\t\t} else\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (input_shape->size() == count - 1) {\n\t\tinput_shape->push_back(1);\n\t}\n}\n\nvoid Orts::onnx::execution::context::flat_json_values(\n\tconst json::value_type &data, std::vector<json::value_type> *json_values\n) {\n\tif (data.is_array()) {\n\t\tfor (auto &item : data) {\n\t\t\tflat_json_values(item, json_values);\n\t\t}\n\t} else {\n\t\tjson_values->push_back(data);\n\t}\n}\n\nstd::vector<Ort::Value> Orts::onnx::execution::context::run() {\n\tstd::vector<Ort::Value> input_values;\n\tinput_values.reserve(inputs.size());\n\n\t// Fix: iterate in session-defined order, not map alphabetical order\n\tfor (auto &input_info : session->inputs()) {\n\t\tinput_values.emplace_back(std::move(inputs[input_info.name]->tensors));\n\t}\n\n\treturn this->session->run(memory_info, input_values);\n}\n\njson Orts::onnx::execution::context::tensors_to_json(std::vector<Ort::Value> &tensors) {\n\tauto infos = session->outputs();\n\tjson::object_t output;\n\tfor (int i = 0; i < tensors.size(); i++) {\n\t\tauto &info = infos[i];\n\t\tauto &item = tensors[i];\n\n\t\toutput[info.name] = info.get_tensor_data(item);\n\t}\n\n\treturn output;\n}\n"
  },
  {
    "path": "src/onnx/execution/input_value.cpp",
    "content": "//\r\n// Created by Kibae Shin on 2023/09/02.\r\n//\r\n#include \"../../onnxruntime_server.hpp\"\r\n\r\nOrts::onnx::execution::input_value::~input_value() {\r\n\tfor (auto &p : deallocators) {\r\n\t\tp();\r\n\t}\r\n}\r\n\r\n#define SHAPE_ARG info.input_shape.data(), info.shape.size()\r\n#define ORT_VALUE_RETURN(t)                                                                                            \\\r\n\t{                                                                                                                  \\\r\n\t\tauto *values = new std::vector<t>();                                                                           \\\r\n\t\tfor (auto &val : json_value)                                                                                   \\\r\n\t\t\tvalues->emplace_back((t)val.get<t>());                                                                     \\\r\n                                                                                                                       \\\r\n\t\ttensors = Ort::Value::CreateTensor<t>(memory_info, values->data(), values->size(), SHAPE_ARG);                 \\\r\n\t\tdeallocators.emplace_back([values]() { delete values; });                                                      \\\r\n\t\tbreak;                                                                                                         \\\r\n\t}\r\n\r\nOrts::onnx::execution::input_value::input_value(\r\n\tconst Ort::MemoryInfo &memory_info, const value_info &info, const json::value_type &json_value\r\n) {\r\n\tswitch (info.element_type) {\r\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT: // maps to c type float\r\n\t\tORT_VALUE_RETURN(float_t);\r\n\t\t/*\r\n\t\t{\r\n\t\t\t// for debugging\r\n\t\t\tauto *values = new std::vector<float_t>();\r\n\t\t\tfor (auto &val : json_value)\r\n\t\t\t\tvalues->emplace_back((float_t)val.get<float_t>());\r\n\r\n\t\t\ttensors = Ort::Value::CreateTensor<float_t>(memory_info, values->data(), values->size(), SHAPE_ARG);\r\n\t\t\tdeallocators.emplace_back([values]() { delete values; });\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\t*/\r\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_DOUBLE: // maps to c type double\r\n\t\tORT_VALUE_RETURN(double_t);\r\n\r\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_INT8: // maps to c type int8_t\r\n\t\tORT_VALUE_RETURN(int8_t);\r\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_INT16: // maps to c type int16_t\r\n\t\tORT_VALUE_RETURN(int16_t);\r\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_INT32: // maps to c type int32_t\r\n\t\tORT_VALUE_RETURN(int32_t);\r\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_INT64: // maps to c type int64_t\r\n\t\tORT_VALUE_RETURN(int64_t);\r\n\r\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT8: // maps to c type uint8_t\r\n\t\tORT_VALUE_RETURN(uint8_t);\r\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT16: // maps to c type uint16_t\r\n\t\tORT_VALUE_RETURN(uint16_t);\r\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT32: // maps to c type uint32_t\r\n\t\tORT_VALUE_RETURN(uint32_t);\r\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT64: // maps to c type uint64_t\r\n\t\tORT_VALUE_RETURN(uint64_t);\r\n\r\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_BOOL: //\r\n\t{\r\n\t\t// Because std::vector<bool> stores in bits to save memory, it doesn't have a .data() method,\r\n\t\t// so we use std::vector<char>.\r\n\t\tauto values = new bool[json_value.size()];\r\n\t\tfor (size_t i = 0; i < json_value.size(); i++)\r\n\t\t\tvalues[i] = json_value[i].get<bool>();\r\n\r\n\t\ttensors = Ort::Value::CreateTensor<bool>(\r\n\t\t\tmemory_info, values, json_value.size(), batched_shape(info.shape, json_value.size()).data(),\r\n\t\t\tinfo.shape.size()\r\n\t\t);\r\n\t\tdeallocators.emplace_back([values]() { delete[] values; });\r\n\t\tbreak;\r\n\t}\r\n\r\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_BFLOAT16: // Non-IEEE floating-point format based on IEEE754 single-precision\r\n\t{\r\n\t\tauto *values = new std::vector<Ort::BFloat16_t>();\r\n\t\tfor (auto &val : json_value)\r\n\t\t\tvalues->emplace_back(val.get<float>());\r\n\r\n\t\ttensors = Ort::Value::CreateTensor<Ort::BFloat16_t>(memory_info, values->data(), values->size(), SHAPE_ARG);\r\n\t\tdeallocators.emplace_back([values]() { delete values; });\r\n\t\tbreak;\r\n\t}\r\n\r\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT16: //\r\n\t{\r\n\t\tauto *values = new std::vector<Ort::Float16_t>();\r\n\t\tfor (auto &val : json_value)\r\n\t\t\tvalues->emplace_back(val.get<float>());\r\n\r\n\t\ttensors = Ort::Value::CreateTensor<Ort::Float16_t>(memory_info, values->data(), values->size(), SHAPE_ARG);\r\n\t\tdeallocators.emplace_back([values]() { delete values; });\r\n\t\tbreak;\r\n\t}\r\n\r\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_STRING: // maps to c++ type std::string\r\n\t{\r\n\t\tauto *values = new std::vector<std::string>();\r\n\t\tfor (auto &val : json_value)\r\n\t\t\tvalues->emplace_back(val.get<std::string>());\r\n\r\n\t\t// cannot use Ort::Value::CreateTensor<> generic\r\n\t\ttensors = Ort::Value::CreateTensor(\r\n\t\t\tmemory_info, values->data(), values->size() * sizeof(std::string), SHAPE_ARG,\r\n\t\t\tONNX_TENSOR_ELEMENT_DATA_TYPE_STRING\r\n\t\t);\r\n\t\tdeallocators.emplace_back([values]() { delete values; });\r\n\t\tbreak;\r\n\t}\r\n\r\n\tdefault:\r\n\t\tthrow bad_request_error(\"Not supported type: \" + info.type_name());\r\n\t}\r\n}\r\n\r\n#undef ORT_VALUE_RETURN\r\n#undef SHAPE_ARG\r\n\r\nstd::vector<int64_t>\r\nonnxruntime_server::onnx::execution::input_value::batched_shape(const std::vector<int64_t> &shape, size_t value_count) {\r\n\t// check shape contains -1\r\n\tif (std::find(shape.begin(), shape.end(), -1) == shape.end())\r\n\t\treturn shape;\r\n\r\n\t// calculate batch size\r\n\tstd::vector<int64_t> shape_copy = shape;\r\n\tint64_t batch = (int64_t)value_count;\r\n\tfor (auto &s : shape_copy) {\r\n\t\tif (s != -1)\r\n\t\t\tbatch = (int64_t)std::max((double)1, std::ceil((double)batch / (double)s));\r\n\t}\r\n\r\n\t// replace -1 with batch size\r\n\tfor (auto &s : shape_copy) {\r\n\t\tif (s == -1) {\r\n\t\t\ts = batch;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\treturn shape_copy;\r\n}\r\n"
  },
  {
    "path": "src/onnx/providers.cpp",
    "content": "//\n// Created by Kibae Shin on 25. 8. 14..\n//\n\n#include \"../onnxruntime_server.hpp\"\n\nonnxruntime_server::onnx::providers::providers() {\n\t_providers = Ort::GetAvailableProviders();\n\t_has_cuda = std::find(_providers.begin(), _providers.end(), \"CUDAExecutionProvider\") != _providers.end();\n}\n\nconst onnxruntime_server::onnx::providers onnxruntime_server::onnx::providers::available_providers;\n"
  },
  {
    "path": "src/onnx/session.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/01.\n//\n\n#include <utility>\n\n#include \"../onnxruntime_server.hpp\"\n\n#ifdef HAS_CUDA\n#include \"cuda/session_options.hpp\"\n#endif\n\nnamespace {\n\n#ifdef _WIN32\nstd::wstring to_wide(const std::string &s) {\n\tint size_needed = MultiByteToWideChar(CP_ACP, 0, s.c_str(), -1, NULL, 0);\n\tstd::wstring wstr(size_needed, 0);\n\tMultiByteToWideChar(CP_ACP, 0, s.c_str(), -1, &wstr[0], size_needed);\n\treturn wstr;\n}\n#endif\n\nvoid register_extension(Ort::SessionOptions &session_options, const std::string &path) {\n#ifdef _WIN32\n\tauto wpath = to_wide(path);\n\tauto p = wpath.c_str();\n#else\n\tauto p = path.c_str();\n#endif\n\tOrtStatus *status = Ort::GetApi().RegisterCustomOpsLibrary_V2(session_options, p);\n\tif (status != nullptr) {\n\t\tconst char *err = Ort::GetApi().GetErrorMessage(status);\n\t\tstd::string msg = err ? err : \"unknown error\";\n\t\tOrt::GetApi().ReleaseStatus(status);\n\t\tthrow onnxruntime_server::runtime_error(\n\t\t\tstd::string(\"Failed to register ORT extensions (\") + path + \"): \" + msg\n\t\t);\n\t}\n}\n\nGraphOptimizationLevel parse_graph_opt_level(const std::string &v, bool &valid) {\n\tvalid = true;\n\tif (v == \"disable\" || v == \"disabled\" || v == \"off\")\n\t\treturn ORT_DISABLE_ALL;\n\tif (v == \"basic\")\n\t\treturn ORT_ENABLE_BASIC;\n\tif (v == \"extended\")\n\t\treturn ORT_ENABLE_EXTENDED;\n\tif (v == \"all\")\n\t\treturn ORT_ENABLE_ALL;\n\tvalid = false;\n\treturn ORT_ENABLE_ALL;\n}\n\nExecutionMode parse_execution_mode(const std::string &v, bool &valid) {\n\tvalid = true;\n\tif (v == \"parallel\")\n\t\treturn ORT_PARALLEL;\n\tif (v == \"sequential\")\n\t\treturn ORT_SEQUENTIAL;\n\tvalid = false;\n\treturn ORT_SEQUENTIAL;\n}\n\n// Apply session-level options.\n//\n// Validation policy: we only check JSON shape (types, our enum string mapping). We do NOT\n// re-implement ORT's own value validation (allowed ranges, defaults, etc.) — that knowledge\n// belongs to ORT and would force us to track every ORT version's rules. Instead, every shape-\n// valid value is forwarded to ORT, and the setter's outcome decides the echo:\n//   - setter succeeds  -> echo the value (or the readback value where an API exists)\n//   - setter throws    -> skip silently, do not echo (the option was rejected by ORT)\n// Where ORT exposes a readback (currently config_entries via GetSessionConfigEntry), the echo\n// uses the readback value so it reflects what ORT actually stored, not what we sent.\ntemplate <typename F>\nbool try_apply(F &&f) {\n\ttry {\n\t\tf();\n\t\treturn true;\n\t} catch (const Ort::Exception &) {\n\t\treturn false;\n\t} catch (const std::exception &) {\n\t\treturn false;\n\t}\n}\n\njson apply_session_options(Ort::SessionOptions &session_options, const json &input) {\n\tjson applied = json::object();\n\tif (!input.is_object())\n\t\treturn applied;\n\n\tif (input.contains(\"intra_op_num_threads\") && input[\"intra_op_num_threads\"].is_number_integer()) {\n\t\tauto v = input[\"intra_op_num_threads\"].get<int>();\n\t\tif (try_apply([&] { session_options.SetIntraOpNumThreads(v); }))\n\t\t\tapplied[\"intra_op_num_threads\"] = v;\n\t}\n\n\tif (input.contains(\"inter_op_num_threads\") && input[\"inter_op_num_threads\"].is_number_integer()) {\n\t\tauto v = input[\"inter_op_num_threads\"].get<int>();\n\t\tif (try_apply([&] { session_options.SetInterOpNumThreads(v); }))\n\t\t\tapplied[\"inter_op_num_threads\"] = v;\n\t}\n\n\tif (input.contains(\"execution_mode\") && input[\"execution_mode\"].is_string()) {\n\t\tbool valid = false;\n\t\tauto s = input[\"execution_mode\"].get<std::string>();\n\t\tauto mode = parse_execution_mode(s, valid);\n\t\tif (valid && try_apply([&] { session_options.SetExecutionMode(mode); }))\n\t\t\tapplied[\"execution_mode\"] = (mode == ORT_PARALLEL) ? \"parallel\" : \"sequential\";\n\t}\n\n\tif (input.contains(\"graph_optimization_level\") && input[\"graph_optimization_level\"].is_string()) {\n\t\tbool valid = false;\n\t\tauto s = input[\"graph_optimization_level\"].get<std::string>();\n\t\tauto lvl = parse_graph_opt_level(s, valid);\n\t\tif (valid && try_apply([&] { session_options.SetGraphOptimizationLevel(lvl); }))\n\t\t\tapplied[\"graph_optimization_level\"] = s;\n\t}\n\n\tif (input.contains(\"enable_cpu_mem_arena\") && input[\"enable_cpu_mem_arena\"].is_boolean()) {\n\t\tauto v = input[\"enable_cpu_mem_arena\"].get<bool>();\n\t\tif (try_apply([&] {\n\t\t\t\tif (v)\n\t\t\t\t\tsession_options.EnableCpuMemArena();\n\t\t\t\telse\n\t\t\t\t\tsession_options.DisableCpuMemArena();\n\t\t\t}))\n\t\t\tapplied[\"enable_cpu_mem_arena\"] = v;\n\t}\n\n\tif (input.contains(\"enable_mem_pattern\") && input[\"enable_mem_pattern\"].is_boolean()) {\n\t\tauto v = input[\"enable_mem_pattern\"].get<bool>();\n\t\tif (try_apply([&] {\n\t\t\t\tif (v)\n\t\t\t\t\tsession_options.EnableMemPattern();\n\t\t\t\telse\n\t\t\t\t\tsession_options.DisableMemPattern();\n\t\t\t}))\n\t\t\tapplied[\"enable_mem_pattern\"] = v;\n\t}\n\n\tif (input.contains(\"log_severity_level\") && input[\"log_severity_level\"].is_number_integer()) {\n\t\tauto v = input[\"log_severity_level\"].get<int>();\n\t\tif (try_apply([&] { session_options.SetLogSeverityLevel(v); }))\n\t\t\tapplied[\"log_severity_level\"] = v;\n\t}\n\n\tif (input.contains(\"logid\") && input[\"logid\"].is_string()) {\n\t\tauto v = input[\"logid\"].get<std::string>();\n\t\tif (try_apply([&] { session_options.SetLogId(v.c_str()); }))\n\t\t\tapplied[\"logid\"] = v;\n\t}\n\n\tif (input.contains(\"enable_profiling\") && input[\"enable_profiling\"].is_boolean() &&\n\t\tinput[\"enable_profiling\"].get<bool>()) {\n\t\tstd::string prefix;\n\t\tif (input.contains(\"profile_file_prefix\") && input[\"profile_file_prefix\"].is_string())\n\t\t\tprefix = input[\"profile_file_prefix\"].get<std::string>();\n\t\tbool ok = try_apply([&] {\n#ifdef _WIN32\n\t\t\tauto wprefix = to_wide(prefix);\n\t\t\tsession_options.EnableProfiling(wprefix.c_str());\n#else\n\t\t\tsession_options.EnableProfiling(prefix.c_str());\n#endif\n\t\t});\n\t\tif (ok) {\n\t\t\tapplied[\"enable_profiling\"] = true;\n\t\t\tapplied[\"profile_file_prefix\"] = prefix;\n\t\t}\n\t}\n\n\tif (input.contains(\"optimized_model_filepath\") && input[\"optimized_model_filepath\"].is_string()) {\n\t\tauto s = input[\"optimized_model_filepath\"].get<std::string>();\n\t\tbool ok = try_apply([&] {\n#ifdef _WIN32\n\t\t\tauto ws = to_wide(s);\n\t\t\tsession_options.SetOptimizedModelFilePath(ws.c_str());\n#else\n\t\t\tsession_options.SetOptimizedModelFilePath(s.c_str());\n#endif\n\t\t});\n\t\tif (ok)\n\t\t\tapplied[\"optimized_model_filepath\"] = s;\n\t}\n\n\tif (input.contains(\"free_dimension_overrides\") && input[\"free_dimension_overrides\"].is_object()) {\n\t\tjson normalized = json::object();\n\t\tfor (auto it = input[\"free_dimension_overrides\"].begin();\n\t\t\t it != input[\"free_dimension_overrides\"].end(); ++it) {\n\t\t\tif (!it.value().is_number_integer())\n\t\t\t\tcontinue;\n\t\t\tauto dim = it.value().get<int64_t>();\n\t\t\tauto name = it.key();\n\t\t\tif (try_apply([&] { session_options.AddFreeDimensionOverrideByName(name.c_str(), dim); }))\n\t\t\t\tnormalized[name] = dim;\n\t\t}\n\t\tif (!normalized.empty())\n\t\t\tapplied[\"free_dimension_overrides\"] = normalized;\n\t}\n\n\t// config_entries: AddSessionConfigEntry accepts any string key, so we readback each entry\n\t// via GetSessionConfigEntry to ensure the echo reflects what ORT actually stored.\n\tif (input.contains(\"config_entries\") && input[\"config_entries\"].is_object()) {\n\t\tjson normalized = json::object();\n\t\tfor (auto it = input[\"config_entries\"].begin(); it != input[\"config_entries\"].end(); ++it) {\n\t\t\tstd::string sv;\n\t\t\tif (it.value().is_string())\n\t\t\t\tsv = it.value().get<std::string>();\n\t\t\telse if (it.value().is_boolean())\n\t\t\t\tsv = it.value().get<bool>() ? \"1\" : \"0\";\n\t\t\telse if (it.value().is_number_integer())\n\t\t\t\tsv = std::to_string(it.value().get<int64_t>());\n\t\t\telse\n\t\t\t\tcontinue;\n\t\t\tauto key = it.key();\n\t\t\tif (!try_apply([&] { session_options.AddConfigEntry(key.c_str(), sv.c_str()); }))\n\t\t\t\tcontinue;\n\n\t\t\tsize_t needed = 0;\n\t\t\tOrtStatus *st = Ort::GetApi().GetSessionConfigEntry(\n\t\t\t\tsession_options, key.c_str(), nullptr, &needed\n\t\t\t);\n\t\t\tif (st != nullptr) {\n\t\t\t\tOrt::GetApi().ReleaseStatus(st);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tstd::string out(needed, '\\0');\n\t\t\tst = Ort::GetApi().GetSessionConfigEntry(\n\t\t\t\tsession_options, key.c_str(), out.data(), &needed\n\t\t\t);\n\t\t\tif (st != nullptr) {\n\t\t\t\tOrt::GetApi().ReleaseStatus(st);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!out.empty() && out.back() == '\\0')\n\t\t\t\tout.pop_back();\n\t\t\tnormalized[key] = out;\n\t\t}\n\t\tif (!normalized.empty())\n\t\t\tapplied[\"config_entries\"] = normalized;\n\t}\n\n\treturn applied;\n}\n\n} // namespace\n\njson Orts::onnx::session::collect_extensions(const json &option) {\n\tjson result = json::array();\n\tif (!option.is_object())\n\t\treturn result;\n\tauto add = [&](const std::string &path) {\n\t\tfor (auto &e : result) {\n\t\t\tif (e.is_string() && e.get<std::string>() == path)\n\t\t\t\treturn;\n\t\t}\n\t\tresult.push_back(path);\n\t};\n\tif (option.contains(\"extensions\") && option[\"extensions\"].is_array()) {\n\t\tfor (auto &e : option[\"extensions\"]) {\n\t\t\tif (e.is_string())\n\t\t\t\tadd(e.get<std::string>());\n\t\t}\n\t}\n\tif (option.contains(\"ortextensions_path\") && option[\"ortextensions_path\"].is_string())\n\t\tadd(option[\"ortextensions_path\"].get<std::string>());\n\treturn result;\n}\n\nOrts::onnx::session::session(session_key key, const json &option)\n\t: session_options(), created_at(std::chrono::system_clock::now()), allocator(), key(std::move(key)) {\n\t_option[\"cuda\"] = false;\n\n\t// session-level options (apply before EP/extension registration)\n\tif (option.contains(\"session_options\") && option[\"session_options\"].is_object()) {\n\t\tauto applied = apply_session_options(session_options, option[\"session_options\"]);\n\t\tif (!applied.empty())\n\t\t\t_option[\"session_options\"] = applied;\n\t}\n\n\t// register custom op libraries: extensions array + legacy ortextensions_path, deduplicated\n\tauto extensions = collect_extensions(option);\n\tif (!extensions.empty()) {\n\t\tfor (auto &e : extensions)\n\t\t\tregister_extension(session_options, e.get<std::string>());\n\t\t_option[\"extensions\"] = extensions;\n\t}\n\n\tif (providers::available_providers.has_cuda() && option.contains(\"cuda\") && (\n\t\t    !option[\"cuda\"].is_boolean() || option[\"cuda\"].get<bool>())) {\n#ifdef HAS_CUDA\n\t\t_option[\"cuda\"] = append_cuda_session_options(session_options, option);\n#else\n\t\tthrow runtime_error(\"CUDA is not supported\");\n#endif\n\t}\n\n\tif (option.contains(\"input_shape\") && option[\"input_shape\"].is_object())\n\t\t_option[\"input_shape\"] = option[\"input_shape\"];\n\tif (option.contains(\"output_shape\") && option[\"output_shape\"].is_object())\n\t\t_option[\"output_shape\"] = option[\"output_shape\"];\n}\n\nOrts::onnx::session::session(session_key key, const std::string &path, const json &option)\n\t: session(std::move(key), option) {\n#ifdef _WIN32\n\tint size_needed = MultiByteToWideChar(CP_ACP, 0, path.c_str(), -1, NULL, 0);\n\tstd::wstring wstr(size_needed, 0);\n\tMultiByteToWideChar(CP_ACP, 0, path.c_str(), -1, &wstr[0], size_needed);\n\n\tauto model_path = wstr.c_str();\n#else\n\tauto model_path = path.c_str();\n#endif\n\n\tort_session = new Ort::Session(env, model_path, session_options);\n\tinit();\n}\n\nOrts::onnx::session::session(\n\tsession_key key, const char *model_data, const size_t model_data_length, const json &option\n)\n\t: session(std::move(key), option) {\n\tort_session = new Ort::Session(env, model_data, model_data_length, session_options);\n\tinit();\n}\n\nvoid Orts::onnx::session::init() {\n\tassert(ort_session != nullptr);\n\n\t// input metadata\n\tinputCount = ort_session->GetInputCount();\n\tfor (size_t i = 0; i < inputCount; i++) {\n\t\tauto name = ort_session->GetInputNameAllocated(i, allocator);\n\t\t_inputNames.emplace_back(name.get());\n\n\t\tauto info = ort_session->GetInputTypeInfo(i);\n\t\tauto tensorType = info.GetTensorTypeAndShapeInfo();\n\t\tauto shape = tensorType.GetShape();\n\t\t_inputs.emplace_back(name.get(), tensorType.GetElementType(), shape);\n\n\t\toverride_shape(\"input_shape\", _inputs.back());\n\t}\n\t_option.erase(\"input_shape\");\n\tfor (auto &name: _inputNames)\n\t\tinputNames.push_back(name.c_str());\n\n\t// output metadata\n\toutputCount = ort_session->GetOutputCount();\n\tfor (size_t i = 0; i < outputCount; i++) {\n\t\tauto name = ort_session->GetOutputNameAllocated(i, allocator);\n\t\t_outputNames.emplace_back(name.get());\n\n\t\tauto info = ort_session->GetOutputTypeInfo(i);\n\t\tauto tensorType = info.GetTensorTypeAndShapeInfo();\n\t\tauto shape = tensorType.GetShape();\n\t\t_outputs.emplace_back(name.get(), tensorType.GetElementType(), shape);\n\n\t\toverride_shape(\"output_shape\", _outputs.back());\n\t}\n\t_option.erase(\"output_shape\");\n\tfor (auto &name: _outputNames)\n\t\toutputNames.push_back(name.c_str());\n\n\tPLOG(L_DEBUG) << \"Session created: \" << key.model_name << \"/\" << key.model_version << std::endl;\n}\n\nvoid onnxruntime_server::onnx::session::override_shape(const char *option_key, value_info &value) {\n\tif (_option.contains(option_key) && _option[option_key].contains(value.name)) {\n\t\tauto override_shape = _option[option_key][value.name];\n\t\tif (override_shape.is_array()) {\n\t\t\tif (override_shape.size() != value.shape.size())\n\t\t\t\tthrow runtime_error(std::string(option_key) + \" override size mismatch: \" + override_shape.dump());\n\n\t\t\tfor (auto p = 0; p < value.shape.size(); p++) {\n\t\t\t\tif (p < override_shape.size())\n\t\t\t\t\tvalue.shape[p] = override_shape[p].get<int64_t>();\n\t\t\t}\n\t\t}\n\t}\n}\n\nOrts::onnx::session::~session() {\n\tdelete ort_session;\n}\n\nvoid Orts::onnx::session::touch() {\n\tlast_executed_at = std::chrono::system_clock::now();\n\texecution_count++;\n}\n\nconst std::vector<Orts::onnx::value_info> &Orts::onnx::session::inputs() const {\n\treturn _inputs;\n}\n\nconst std::vector<Orts::onnx::value_info> &Orts::onnx::session::outputs() const {\n\treturn _outputs;\n}\n\nstd::vector<Ort::Value>\nOrts::onnx::session::run(const Ort::MemoryInfo &memory_info, const std::vector<Ort::Value> &input_values) {\n\tassert(ort_session != nullptr);\n\n\tif (input_values.empty() || input_values.size() != inputCount) {\n\t\tthrow runtime_error(\"params size is not same as: \" + std::to_string(inputCount));\n\t}\n\n\tOrt::RunOptions options;\n\n\treturn ort_session->Run(\n\t\toptions, inputNames.data(), input_values.data(), inputCount, outputNames.data(), outputCount\n\t);\n}\n\njson onnxruntime_server::onnx::session::to_json() const {\n\tjson::object_t dict;\n\tdict[\"model\"] = key.model_name;\n\tdict[\"version\"] = key.model_version;\n\tdict[\"created_at\"] = std::chrono::system_clock::to_time_t(created_at);\n\tdict[\"last_executed_at\"] = std::chrono::system_clock::to_time_t(last_executed_at);\n\tdict[\"execution_count\"] = execution_count;\n\n\tjson::object_t inputs;\n\tfor (auto &input: _inputs) {\n\t\tinputs[input.name] = input.type_to_string();\n\t}\n\tdict[\"inputs\"] = inputs;\n\n\tjson::object_t outputs;\n\tfor (auto &output: _outputs) {\n\t\toutputs[output.name] = output.type_to_string();\n\t}\n\tdict[\"outputs\"] = outputs;\n\tdict[\"option\"] = _option;\n\n\treturn dict;\n}\n"
  },
  {
    "path": "src/onnx/session_key.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/01.\n//\n\n#include <regex>\n#include <utility>\n\n#include \"../onnxruntime_server.hpp\"\n\nOrts::onnx::session_key::session_key(std::string model_name, std::string model_version)\n\t: model_name(std::move(model_name)), model_version(std::move(model_version)) {\n\t// check model_name is_valid_model_name\n\tif (!is_valid_model_name(this->model_name)) {\n\t\tthrow runtime_error(\"Invalid model name: \" + this->model_name + \" Must be \\\"a-z, A-Z, 0-9, '-', '_'.\\\"\");\n\t}\n\n\t// check model_version is_valid_model_version\n\tif (!is_valid_model_version(this->model_version)) {\n\t\tthrow runtime_error(\n\t\t\t\"Invalid model version: \" + this->model_version + \" Must be \\\"a-z, A-Z, 0-9, '-', '_', '/'.\\\"\"\n\t\t);\n\t}\n}\n\nbool Orts::onnx::session_key::operator<(const Orts::onnx::session_key &other) const {\n\tif (model_name < other.model_name)\n\t\treturn true;\n\tif (model_name > other.model_name)\n\t\treturn false;\n\treturn model_version < other.model_version;\n}\n\nbool onnxruntime_server::onnx::session_key::is_valid_model_name(const std::string &model_key) {\n\tif (model_key.empty())\n\t\treturn false;\n\t// model_key must alnum, -, -\n\treturn std::all_of(model_key.begin(), model_key.end(), [](char c) {\n\t\treturn std::isalnum(c) || c == '_' || c == '-';\n\t});\n}\n\nbool onnxruntime_server::onnx::session_key::is_valid_model_version(const std::string &model_version) {\n\tif (model_version.empty())\n\t\treturn false;\n\t// model_version must alnum, -, -, /\n\treturn std::all_of(model_version.begin(), model_version.end(), [](char c) {\n\t\treturn std::isalnum(c) || c == '_' || c == '-' || c == '/';\n\t});\n}\n"
  },
  {
    "path": "src/onnx/session_key_with_option.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/01.\n//\n\n#include <regex>\n\n#include \"../onnxruntime_server.hpp\"\n\nnamespace {\n\nstd::regex space_re(R\"(\\s+)\");\nstd::regex trim_re(R\"(^\\s*|\\s*$)\");\n\nstd::string key_rule = R\"(([-_a-zA-Z0-9]+):([-_/a-zA-Z0-9]+)(\\(([^)]+)\\))?)\";\nstd::regex key_re(key_rule);\n\n// option key supports dotted notation (e.g. cuda.device_id, session_options.intra_op_num_threads)\nstd::string option_rule = R\"(([_a-zA-Z0-9][_a-zA-Z0-9.]*)\\s*=\\s*([^,\\s]+))\";\nstd::regex option_re(option_rule);\n\nstd::regex int_re(R\"(^-?[0-9]+$)\");\n\nconst std::string EXTENSIONS_KEY = \"extensions\";\nconst std::string LEGACY_EXTENSION_KEY = \"ortextensions_path\";\n\njson infer_value(const std::string &raw) {\n\tif (raw == \"true\")\n\t\treturn true;\n\tif (raw == \"false\")\n\t\treturn false;\n\tif (std::regex_match(raw, int_re)) {\n\t\ttry {\n\t\t\treturn json(std::stoll(raw));\n\t\t} catch (...) {\n\t\t\treturn raw;\n\t\t}\n\t}\n\treturn raw;\n}\n\nstd::vector<std::string> split_dot(const std::string &k) {\n\tstd::vector<std::string> parts;\n\tstd::string cur;\n\tfor (char c : k) {\n\t\tif (c == '.') {\n\t\t\tif (!cur.empty())\n\t\t\t\tparts.push_back(cur);\n\t\t\tcur.clear();\n\t\t} else {\n\t\t\tcur += c;\n\t\t}\n\t}\n\tif (!cur.empty())\n\t\tparts.push_back(cur);\n\treturn parts;\n}\n\nvoid set_nested(json &option, const std::vector<std::string> &path, const json &value) {\n\tjson *cur = &option;\n\tfor (size_t i = 0; i + 1 < path.size(); ++i) {\n\t\tif (!cur->is_object())\n\t\t\t*cur = json::object();\n\t\tif (!cur->contains(path[i]) || !(*cur)[path[i]].is_object())\n\t\t\t(*cur)[path[i]] = json::object();\n\t\tcur = &(*cur)[path[i]];\n\t}\n\tif (!cur->is_object())\n\t\t*cur = json::object();\n\t(*cur)[path.back()] = value;\n}\n\nvoid append_extension(json &option, const std::string &path) {\n\tif (!option.contains(EXTENSIONS_KEY) || !option[EXTENSIONS_KEY].is_array())\n\t\toption[EXTENSIONS_KEY] = json::array();\n\tauto &arr = option[EXTENSIONS_KEY];\n\tfor (auto &e : arr) {\n\t\tif (e.is_string() && e.get<std::string>() == path)\n\t\t\treturn;\n\t}\n\tarr.push_back(path);\n}\n\n} // namespace\n\nstd::vector<Orts::onnx::session_key_with_option>\nonnxruntime_server::onnx::session_key_with_option::parse(const std::string &model_key_list) {\n\t// model_key_list is a space separated list of model_name:model_version[(opt1=val1, opt2=val2)]\n\t// option keys may be dotted (cuda.device_id, session_options.intra_op_num_threads) producing nested objects.\n\t// extensions/ortextensions_path keys accumulate into an \"extensions\" array (deduplicated).\n\t// option entries that don't match the grammar are silently skipped.\n\tstd::vector<Orts::onnx::session_key_with_option> models;\n\tstd::string list = std::regex_replace(std::regex_replace(model_key_list, space_re, \" \"), trim_re, \"\");\n\tif (list.empty())\n\t\treturn models;\n\n\tstd::smatch keys;\n\twhile (std::regex_search(list, keys, key_re)) {\n\t\tjson option = json::object();\n\n\t\tauto option_str = keys[4].str();\n\t\tif (!option_str.empty()) {\n\t\t\tstd::smatch options;\n\t\t\twhile (std::regex_search(option_str, options, option_re)) {\n\t\t\t\tauto raw_key = options[1].str();\n\t\t\t\tauto raw_val = options[2].str();\n\t\t\t\tauto value = infer_value(raw_val);\n\n\t\t\t\tauto parts = split_dot(raw_key);\n\t\t\t\tif (parts.empty()) {\n\t\t\t\t\toption_str = options.suffix().str();\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (parts.size() == 1 &&\n\t\t\t\t\t(parts[0] == EXTENSIONS_KEY || parts[0] == LEGACY_EXTENSION_KEY) &&\n\t\t\t\t\tvalue.is_string()) {\n\t\t\t\t\tappend_extension(option, value.get<std::string>());\n\t\t\t\t} else {\n\t\t\t\t\tset_nested(option, parts, value);\n\t\t\t\t}\n\n\t\t\t\toption_str = options.suffix().str();\n\t\t\t}\n\t\t}\n\n\t\tmodels.emplace_back(keys[1].str(), keys[2].str(), option);\n\n\t\tlist = keys.suffix().str();\n\t}\n\n\tif (!list.empty())\n\t\tthrow runtime_error(\"Invalid model key list: \" + model_key_list);\n\n\treturn models;\n}\n"
  },
  {
    "path": "src/onnx/session_manager.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/01.\n//\n\n#include \"../onnxruntime_server.hpp\"\n\nusing namespace onnxruntime_server::onnx;\n\nsession_manager::session_manager(const model_bin_getter_t &model_bin_getter, long num_threads)\n\t: model_bin_getter(model_bin_getter), thread_pool(num_threads) {\n\tassert(model_bin_getter != nullptr);\n}\n\nsession_manager::~session_manager() {\n\tthread_pool.flush();\n}\n\nsession_ptr session_manager::get_session(const std::string &model_name, const std::string &model_version) {\n\tconst auto key = session_key(model_name, model_version);\n\treturn get_session(key);\n}\n\nsession_ptr session_manager::get_session(const session_key &key) {\n\tstd::lock_guard<std::recursive_mutex> lock(mutex);\n\tauto it = sessions.find(key);\n\tif (it == sessions.end())\n\t\treturn nullptr;\n\treturn it->second;\n}\n\nsession_ptr session_manager::create_session(\n\tconst std::string &model_name, const std::string &model_version, const json &option, const char *model_data,\n\tsize_t model_data_length\n) {\n\tauto key = session_key(model_name, model_version);\n\n\tsession_ptr session = nullptr;\n\tstd::lock_guard<std::recursive_mutex> lock(mutex);\n\n\tconst auto current_session = get_session(key);\n\tif (current_session != nullptr)\n\t\tthrow conflict_error(\"session already exists\");\n\n\tif (model_data != nullptr && model_data_length > 0) {\n\t\tsession = std::make_shared<onnx::session>(key, model_data, model_data_length, option);\n\t} else if (option.contains(\"path\") && option[\"path\"].is_string()) {\n\t\tsession = std::make_shared<onnx::session>(key, option[\"path\"].get<std::string>(), option);\n\t} else {\n\t\tauto model_bin = model_bin_getter(model_name, model_version);\n\t\tmodel_data = model_bin.data();\n\t\tmodel_data_length = model_bin.size();\n\t\tsession = std::make_shared<onnx::session>(key, model_data, model_data_length, option);\n\t}\n\tsessions.emplace(key, session);\n\treturn session;\n}\n\nvoid session_manager::remove_session(const std::string &model_name, const std::string &model_version) {\n\tauto key = session_key(model_name, model_version);\n\tremove_session(key);\n}\n\nvoid session_manager::remove_session(const session_key &key) {\n\tstd::lock_guard<std::recursive_mutex> lock(mutex);\n\tauto it = sessions.find(key);\n\tif (it == sessions.end()) {\n\t\tthrow not_found_error(\"session not found\");\n\t}\n\tsessions.erase(it);\n}\n"
  },
  {
    "path": "src/onnx/value_info.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/02.\n//\n\n#include \"../onnxruntime_server.hpp\"\n\nOrts::onnx::value_info::value_info(std::string name, ONNXTensorElementDataType element_type, std::vector<int64_t> shape)\n\t: name(std::move(name)), element_type(element_type), shape(std::move(shape)) {\n}\n\nvoid Orts::onnx::value_info::set_input_shape(std::vector<int64_t> input_shape) {\n\tthis->input_shape = move(input_shape);\n}\n\nstd::string Orts::onnx::value_info::type_name() const {\n\treturn value_info::type_name(element_type);\n}\n\nstd::string Orts::onnx::value_info::type_to_string() const {\n\tstd::string str;\n\tfor (auto &dim : shape) {\n\t\tif (!str.empty())\n\t\t\tstr += \",\";\n\t\tstr += std::to_string(dim);\n\t}\n\treturn type_name() + \"[\" + str + \"]\";\n}\n\nconst char *Orts::onnx::value_info::type_name(const ONNXTensorElementDataType element_type) {\n\tswitch (element_type) {\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UNDEFINED:\n\t\treturn \"undefined\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT: // maps to c type float\n\t\treturn \"float32\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT4: //\n\t\treturn \"uint4\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_INT4: //\n\t\treturn \"int4\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT8: // maps to c type uint8_t\n\t\treturn \"uint8\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_INT8: // maps to c type int8_t\n\t\treturn \"int8\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT16: // maps to c type uint16_t\n\t\treturn \"uint16\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_INT16: // maps to c type int16_t\n\t\treturn \"int16\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_INT32: // maps to c type int32_t\n\t\treturn \"int32\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_INT64: // maps to c type int64_t\n\t\treturn \"int64\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_STRING: // maps to c++ type std::string\n\t\treturn \"string\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_BOOL:\n\t\treturn \"boolean\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E5M2:\n\t\treturn \"float8e5m2\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E5M2FNUZ:\n\t\treturn \"float8e5m2fnuz\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E4M3FN:\n\t\treturn \"float8e4m3fn\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E4M3FNUZ:\n\t\treturn \"float8e4m3fnuz\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT16:\n\t\treturn \"float16\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_DOUBLE: // maps to c type double\n\t\treturn \"float64\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT32: // maps to c type uint32_t\n\t\treturn \"uint32\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT64: // maps to c type uint64_t\n\t\treturn \"uint64\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_COMPLEX64: // complex with float32 real and imaginary components\n\t\treturn \"complex64(Not Supported)\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_COMPLEX128: // complex with float64 real and imaginary components\n\t\treturn \"complex128(Not Supported)\";\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_BFLOAT16: // Non-IEEE floating-point format based on IEEE754 single-precision\n\t\treturn \"bfloat16\";\n\tdefault:\n\t\treturn \"unknown\";\n\t}\n}\n\njson::array_t values_fit_shape(json::array_t &values, std::vector<int64_t> &shape, size_t depth) {\n\tdepth--;\n\tif (depth <= 0)\n\t\treturn values;\n\n\tauto dim = shape[depth];\n\tjson::array_t result;\n\n\tfor (size_t i = 0; i < values.size(); i += dim) {\n\t\tjson::array_t row;\n\t\tfor (size_t p = i; p < i + dim; p++) {\n\t\t\trow.emplace_back(values[p]);\n\t\t}\n\t\tresult.emplace_back(row);\n\t}\n\n\treturn values_fit_shape(result, shape, depth);\n}\n\n#define GET_TENSOR_DATA(TYPE)                                                                                          \\\n\t{                                                                                                                  \\\n\t\tauto data = tensors.GetTensorData<TYPE>();                                                                     \\\n\t\tfor (size_t i = 0; i < size; i++)                                                                              \\\n\t\t\tvalues.emplace_back(data[i]);                                                                              \\\n\t\tbreak;                                                                                                         \\\n\t}\n\n#define GET_TENSOR_FLOAT_DATA(TYPE)                                                                                    \\\n\t{                                                                                                                  \\\n\t\tauto data = tensors.GetTensorData<TYPE>();                                                                     \\\n\t\tfor (size_t i = 0; i < size; i++)                                                                              \\\n\t\t\tvalues.emplace_back(static_cast<float>(data[i]));                                                          \\\n\t\tbreak;                                                                                                         \\\n\t}\n\njson::array_t Orts::onnx::value_info::get_tensor_data(Ort::Value &tensors) const {\n\tjson::array_t values;\n\tauto size = tensors.GetTensorTypeAndShapeInfo().GetElementCount();\n\n\tswitch (element_type) {\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UNDEFINED:\n\t\tbreak;\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT: // maps to c type float\n\t\tGET_TENSOR_DATA(float);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT4:\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT8: // maps to c type uint8_t\n\t\tGET_TENSOR_DATA(uint8_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_INT4:\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_INT8: // maps to c type int8_t\n\t\tGET_TENSOR_DATA(int8_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT16: // maps to c type uint16_t\n\t\tGET_TENSOR_DATA(uint16_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_INT16: // maps to c type int16_t\n\t\tGET_TENSOR_DATA(int16_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_INT32: // maps to c type int32_t\n\t\tGET_TENSOR_DATA(int32_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_INT64: // maps to c type int64_t\n\t\tGET_TENSOR_DATA(int64_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_STRING: // maps to c++ type std::string\n\t\tGET_TENSOR_DATA(std::string);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_BOOL: //\n\t\tGET_TENSOR_DATA(bool);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_DOUBLE: // maps to c type double\n\t\tGET_TENSOR_DATA(double_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT32: // maps to c type uint32_t\n\t\tGET_TENSOR_DATA(uint32_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT64: // maps to c type uint64_t\n\t\tGET_TENSOR_DATA(uint64_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E5M2: //\n\t\tGET_TENSOR_FLOAT_DATA(Ort::Float8E5M2_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E5M2FNUZ: //\n\t\tGET_TENSOR_FLOAT_DATA(Ort::Float8E5M2FNUZ_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E4M3FN: //\n\t\tGET_TENSOR_FLOAT_DATA(Ort::Float8E4M3FN_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E4M3FNUZ: //\n\t\tGET_TENSOR_FLOAT_DATA(Ort::Float8E4M3FNUZ_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT16: //\n\t\tGET_TENSOR_FLOAT_DATA(Ort::Float16_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_BFLOAT16: // Non-IEEE floating-point format based on IEEE754 single-precision\n\t\tGET_TENSOR_FLOAT_DATA(Ort::BFloat16_t);\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_COMPLEX64: // complex with float32 real and imaginary components\n\t\tbreak;\n\tcase ONNX_TENSOR_ELEMENT_DATA_TYPE_COMPLEX128: // complex with float64 real and imaginary components\n\t\tbreak;\n\t}\n\n\tauto dims = tensors.GetTensorTypeAndShapeInfo().GetShape();\n\treturn values_fit_shape(values, dims, dims.size());\n}\n\n#undef GET_TENSOR_DATA\n#undef GET_TENSOR_FLOAT_DATA\n"
  },
  {
    "path": "src/onnx/version.cpp",
    "content": "//\n// Created by kibae on 24. 4. 20.\n//\n\n#include \"../onnxruntime_server.hpp\"\n\nstd::string onnxruntime_server::onnx::version() {\n\treturn Ort::GetVersionString();\n}\n"
  },
  {
    "path": "src/onnxruntime_server.hpp",
    "content": "//\n// Created by Kibae Shin on 2023/08/30.\n//\n\n#ifndef ONNX_RUNTIME_SERVER_HPP\n#define ONNX_RUNTIME_SERVER_HPP\n\n#include <boost/asio.hpp>\n#include <chrono>\n#include <iostream>\n#include <list>\n#include <queue>\n#include <string>\n#include <thread>\n#include <utility>\n\n#include \"thread_pool.hpp\"\n#include \"utils/aixlog.hpp\"\n#include \"utils/exceptions.hpp\"\n#include \"utils/json.hpp\"\n#include \"utils/windows.h\"\n\n#include <onnxruntime_cxx_api.h>\n\nusing asio = boost::asio::ip::tcp;\nusing json = nlohmann::json;\nusing ordered_json = nlohmann::ordered_json;\n\n/**\n * onnxruntime_server is a namespace that provides a server that can execute ONNX models.\n * The server is implemented using Boost.Asio and can be used for both TCP(tcp/tcp_server.hpp) and\n * HTTP(http/http_server.hpp).\n *\n * namespace shorthand: Orts\n */\nnamespace onnxruntime_server {\n\ttypedef std::function<std::string(const std::string &, const std::string &)> model_bin_getter_t;\n\n\tnamespace onnx {\n\t\tstd::string version();\n\n\t\tclass providers {\n\t\t\tstd::vector<std::string> _providers;\n\t\t\tbool _has_cuda = false;\n\n\t\t  public:\n\t\t\texplicit providers();\n\t\t\tbool has_cuda() const {\n\t\t\t\treturn _has_cuda;\n\t\t\t}\n\n\t\t\tstatic const providers available_providers;\n\t\t};\n\n\t\tclass value_info {\n\t\t  public:\n\t\t\tconst std::string name;\n\t\t\tconst ONNXTensorElementDataType element_type;\n\t\t\t/* Original defined shape (may include dynamic dimensions) */\n\t\t\tstd::vector<int64_t> shape;\n\t\t\t/* Current actual input shape (runtime dimensions) */\n\t\t\tstd::vector<int64_t> input_shape;\n\n\t\t\tvalue_info(std::string name, ONNXTensorElementDataType element_type, std::vector<int64_t> shape);\n\n\t\t\tvoid set_input_shape(std::vector<int64_t> input_shape);\n\t\t\t[[nodiscard]] std::string type_name() const;\n\t\t\t[[nodiscard]] std::string type_to_string() const;\n\t\t\tstatic const char *type_name(ONNXTensorElementDataType element_type);\n\n\t\t\tjson::array_t get_tensor_data(Ort::Value &tensors) const;\n\t\t};\n\n\t\tclass session_key {\n\t\t  public:\n\t\t\tstd::string model_name;\n\t\t\tstd::string model_version;\n\n\t\t\tsession_key(std::string model_name, std::string model_version);\n\t\t\tbool operator<(const session_key &other) const;\n\n\t\t\tstatic bool is_valid_model_name(const std::string &model_key);\n\t\t\tstatic bool is_valid_model_version(const std::string &model_version);\n\t\t};\n\n\t\tclass session_key_with_option : public session_key {\n\t\t  public:\n\t\t\tjson option;\n\n\t\t\tsession_key_with_option(std::string model_name, std::string model_version, json option)\n\t\t\t\t: session_key(model_name, model_version), option(option) {\n\t\t\t}\n\n\t\t\tstatic std::vector<session_key_with_option> parse(const std::string &model_key_list);\n\t\t};\n\n\t\tclass session {\n\t\t  private:\n\t\t\tOrt::Env env;\n\t\t\tOrt::SessionOptions session_options;\n\t\t\tOrt::Session *ort_session{};\n\t\t\tstd::chrono::system_clock::time_point created_at;\n\t\t\tstd::chrono::system_clock::time_point last_executed_at;\n\t\t\tlong execution_count = 0;\n\n\t\t\tOrt::AllocatorWithDefaultOptions allocator;\n\t\t\tstd::vector<value_info> _inputs;\n\t\t\tstd::vector<value_info> _outputs;\n\n\t\t\tsize_t inputCount = 0;\n\t\t\tstd::vector<std::string> _inputNames;\n\t\t\tstd::vector<const char *> inputNames;\n\n\t\t\tsize_t outputCount = 0;\n\t\t\tstd::vector<std::string> _outputNames;\n\t\t\tstd::vector<const char *> outputNames;\n\n\t\t\tjson _option = json::object();\n\n\t\t\tvoid init();\n\t\t\tvoid override_shape(const char *option_key, value_info &value);\n\n\t\t\texplicit session(session_key key, const json &option);\n\n\t\t  public:\n\t\t\tsession_key key;\n\t\t\texplicit session(session_key key, const std::string &path, const json &option = json::object());\n\t\t\texplicit session(\n\t\t\t\tsession_key key, const char *model_data, size_t model_data_length, const json &option = json::object()\n\t\t\t);\n\t\t\t~session();\n\n\t\t\tstd::vector<Ort::Value>\n\t\t\trun(const Ort::MemoryInfo &memory_info, const std::vector<Ort::Value> &input_values);\n\n\t\t\tvoid touch();\n\t\t\tjson to_json() const;\n\n\t\t\t[[nodiscard]] const std::vector<value_info> &inputs() const;\n\t\t\t[[nodiscard]] const std::vector<value_info> &outputs() const;\n\n\t\t\t// Normalize the extensions input (the new \"extensions\" array and the legacy\n\t\t\t// \"ortextensions_path\" string) into a single deduplicated array of paths in the\n\t\t\t// order they would be registered. Pure function; no file system or onnxruntime calls.\n\t\t\tstatic json collect_extensions(const json &option);\n\t\t};\n\n\t\ttypedef std::shared_ptr<session> session_ptr;\n\n\t\tclass session_manager {\n\t\t  private:\n\t\t\tstd::recursive_mutex mutex;\n\t\t\tstd::map<session_key, session_ptr> sessions;\n\t\t\tmodel_bin_getter_t model_bin_getter;\n\n\t\t  public:\n\t\t\texplicit session_manager(const model_bin_getter_t &model_bin_getter, long num_threads);\n\t\t\t~session_manager();\n\n\t\t\tbuiltin_thread_pool thread_pool;\n\n\t\t\tconst std::map<session_key, session_ptr> &get_sessions() {\n\t\t\t\treturn sessions;\n\t\t\t}\n\n\t\t\tsession_ptr get_session(const std::string &model_name, const std::string &model_version);\n\t\t\tsession_ptr get_session(const session_key &key);\n\t\t\tsession_ptr create_session(\n\t\t\t\tconst std::string &model_name, const std::string &model_version, const json &option,\n\t\t\t\tconst char *model_data = nullptr, size_t model_data_length = 0\n\t\t\t);\n\t\t\tvoid remove_session(const std::string &model_name, const std::string &model_version);\n\t\t\tvoid remove_session(const session_key &key);\n\t\t};\n\n\t\tnamespace execution {\n\t\t\tclass input_value {\n\t\t\t\tstd::vector<std::function<void(void)>> deallocators;\n\n\t\t\t  public:\n\t\t\t\tOrt::Value tensors = Ort::Value(nullptr);\n\t\t\t\tinput_value(\n\t\t\t\t\tconst Ort::MemoryInfo &memory_info, const value_info &info, const json::value_type &json_value\n\t\t\t\t);\n\t\t\t\t~input_value();\n\n\t\t\t\tstd::vector<int64_t> batched_shape(const std::vector<int64_t> &shape, size_t value_count);\n\t\t\t};\n\n\t\t\tclass context {\n\t\t\t  private:\n\t\t\t\tOrt::MemoryInfo memory_info;\n\t\t\t\tstd::shared_ptr<onnxruntime_server::onnx::session> session;\n\t\t\t\tstd::map<std::string, input_value *> inputs;\n\n\t\t\t  public:\n\t\t\t\tcontext(std::shared_ptr<class session> session, const json &json_str);\n\t\t\t\t~context();\n\n\t\t\t\tvoid flat_json_values(const json::value_type &data, std::vector<json::value_type> *json_values);\n\t\t\t\tvoid calcShape(const json::value_type &data, int count, std::vector<int64_t> *input_shape);\n\t\t\t\tstd::vector<Ort::Value> run();\n\t\t\t\tjson tensors_to_json(std::vector<Ort::Value> &tensors);\n\t\t\t};\n\t\t} // namespace execution\n\n\t} // namespace onnx\n\n\tnamespace task {\n\t\tenum type : int16_t {\n\t\t\tCREATE_SESSION = 1,\n\t\t\tEXECUTE_SESSION = 5,\n\t\t\tDESTROY_SESSION = 9,\n\t\t\tLIST_SESSION = 21,\n\t\t\tGET_SESSION = 22,\n\t\t};\n\n\t\tclass benchmark {\n\t\t  private:\n\t\t\tstd::chrono::time_point<std::chrono::high_resolution_clock> time;\n\n\t\t  public:\n\t\t\tvoid touch() {\n\t\t\t\ttime = std::chrono::high_resolution_clock::now();\n\t\t\t}\n\n\t\t\tlong long get_duration() {\n\t\t\t\treturn std::chrono::duration_cast<std::chrono::microseconds>(\n\t\t\t\t\t\t   std::chrono::high_resolution_clock::now() - time\n\t\t\t\t)\n\t\t\t\t\t.count();\n\t\t\t}\n\t\t};\n\n\t\t// abstract\n\t\tclass task {\n\t\t  public:\n\t\t\tvirtual std::string name() = 0;\n\t\t\tvirtual json run() = 0;\n\t\t};\n\n\t\tclass session_task : public task {\n\t\t  protected:\n\t\t\tonnx::session_manager &onnx_session_manager;\n\n\t\t  public:\n\t\t\tstd::string model_name;\n\t\t\tstd::string model_version;\n\n\t\t\texplicit session_task(onnx::session_manager &onnx_session_manager, const json &request_json);\n\t\t\texplicit session_task(\n\t\t\t\tonnx::session_manager &onnx_session_manager, std::string model_name, std::string model_version\n\t\t\t);\n\t\t};\n\n\t\tclass create_session : public session_task {\n\t\t  public:\n\t\t\tjson option;\n\t\t\tconst char *model_data = nullptr;\n\t\t\tsize_t model_data_length = 0;\n\n\t\t\texplicit create_session(\n\t\t\t\tonnx::session_manager &onnx_session_manager, const json &request_json, const char *model_data = nullptr,\n\t\t\t\tsize_t model_data_length = 0\n\t\t\t);\n\t\t\texplicit create_session(\n\t\t\t\tonnx::session_manager &onnx_session_manager, const std::string &model_name,\n\t\t\t\tconst std::string &model_version, json option, const char *model_data = nullptr,\n\t\t\t\tsize_t model_data_length = 0\n\t\t\t);\n\t\t\tstd::string name() override;\n\t\t\tjson run() override;\n\t\t};\n\n\t\tclass execute_session : public session_task {\n\t\t  public:\n\t\t\tjson data;\n\n\t\t\texplicit execute_session(onnx::session_manager &onnx_session_manager, const json &request_json);\n\t\t\texplicit execute_session(\n\t\t\t\tonnx::session_manager &onnx_session_manager, const std::string &model_name,\n\t\t\t\tconst std::string &model_version, json data\n\t\t\t);\n\t\t\tstd::string name() override;\n\t\t\tjson run() override;\n\t\t};\n\n\t\tclass get_session : public session_task {\n\t\t  public:\n\t\t\texplicit get_session(onnx::session_manager &onnx_session_manager, const json &request_json);\n\t\t\texplicit get_session(\n\t\t\t\tonnx::session_manager &onnx_session_manager, const std::string &model_name,\n\t\t\t\tconst std::string &model_version\n\t\t\t);\n\t\t\tstd::string name() override;\n\t\t\tjson run() override;\n\t\t};\n\n\t\tclass list_session : public task {\n\t\t\tonnx::session_manager &onnx_session_manager;\n\n\t\t  public:\n\t\t\texplicit list_session(onnx::session_manager &onnx_session_manager);\n\t\t\tstd::string name() override;\n\t\t\tjson run() override;\n\t\t};\n\n\t\tclass destroy_session : public session_task {\n\t\t  public:\n\t\t\texplicit destroy_session(onnx::session_manager &onnx_session_manager, const json &request_json);\n\t\t\texplicit destroy_session(\n\t\t\t\tonnx::session_manager &onnx_session_manager, const std::string &model_name,\n\t\t\t\tconst std::string &model_version\n\t\t\t);\n\t\t\tstd::string name() override;\n\t\t\tjson run() override;\n\t\t};\n\n\t} // namespace task\n\n\tclass config {\n\t  public:\n\t\tbool use_tcp = false;\n\t\tshort tcp_port = 0;\n\n\t\tbool use_http = false;\n\t\tshort http_port = 80;\n\n\t\tbool use_https = false;\n\t\tshort https_port = 443;\n\t\tstd::string https_cert;\n\t\tstd::string https_key;\n\t\tstd::string swagger_url_path;\n\n\t\tstd::string log_level;\n\t\tstd::string log_file;\n\t\tstd::string access_log_file;\n\n\t\tlong num_threads = 4;\n\t\tstd::string model_dir;\n\t\tstd::string prepare_model;\n\t\tmodel_bin_getter_t model_bin_getter{};\n\t\tlong request_payload_limit = 1024 * 1024 * 10;\n\t};\n\n\tnamespace transport {\n\t\tclass server {\n\t\t\tvoid accept();\n\n\t\t  protected:\n\t\t\tboost::asio::io_context &io_context;\n\t\t\tasio::socket socket;\n\t\t\tasio::acceptor acceptor;\n\t\t\tuint_least16_t assigned_port = 0;\n\t\t\tlong request_payload_limit_;\n\n\t\t\tonnx::session_manager &onnx_session_manager;\n\n\t\t\tvirtual void client_connected(asio::socket socket) = 0;\n\n\t\t  public:\n\t\t\tserver(\n\t\t\t\tboost::asio::io_context &io_context, onnx::session_manager &onnx_session_manager, int port,\n\t\t\t\tlong request_payload_limit\n\t\t\t);\n\t\t\t~server();\n\n\t\t\tonnx::session_manager &get_onnx_session_manager();\n\t\t\t[[nodiscard]] long request_payload_limit() const;\n\t\t\t[[nodiscard]] uint_least16_t port() const;\n\t\t};\n\n\t} // namespace transport\n\n} // namespace onnxruntime_server\n\nnamespace Orts = onnxruntime_server;\n\n// consts\n#define NUM_MAX(a, b) (a > b ? a : b)\n#define NUM_MIN(a, b) (a < b ? a : b)\n\n#endif // ONNX_RUNTIME_SERVER_HPP\n"
  },
  {
    "path": "src/standalone/CMakeLists.txt",
    "content": "project(onnxruntime_server_standalone)\n\nset(CMAKE_CXX_STANDARD 17)\n\nadd_executable(${PROJECT_NAME}\n        main.cpp\n        standalone.cpp\n)\n\ntarget_link_libraries(${PROJECT_NAME} PRIVATE onnxruntime ${Boost_LIBRARIES} onnxruntime_server_static)\n"
  },
  {
    "path": "src/standalone/main.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/06.\n//\n\n#include \"standalone.hpp\"\n\n#include \"../transport/http/http_server.hpp\"\n#include \"../transport/tcp/tcp_server.hpp\"\n\nbool terminated = false;\n\nvoid on_sigterm(int) {\n\tterminated = true;\n}\n\nint main(int argc, char *argv[]) {\n\tonnxruntime_server::standalone server;\n\n\t// config\n\tif (server.init_config(argc, argv) != 0) {\n\t\treturn 1;\n\t}\n\n\t{ // scope\n\t\tboost::asio::io_context io_context;\n\t\tOrts::onnx::session_manager manager(server.config.model_bin_getter, server.config.num_threads);\n\n\t\ttry {\n\t\t\tserver.prepare_models(manager);\n\t\t} catch (std::exception &e) {\n\t\t\tPLOG(L_FATAL) << \"Failed to prepare models: \" << e.what() << std::endl;\n\t\t\treturn 1;\n\t\t}\n\n\t\tstd::vector<std::shared_ptr<Orts::transport::server>> servers;\n\n\t\tif (server.config.use_tcp) {\n\t\t\tservers.emplace_back(\n\t\t\t\tstd::make_shared<Orts::transport::tcp::tcp_server>(io_context, server.config, manager)\n\t\t\t);\n\t\t\tPLOG(L_INFO) << \"TCP Server ready on port: \" << server.config.tcp_port << std::endl;\n\t\t}\n\n\t\tif (server.config.use_http) {\n\t\t\tservers.emplace_back(\n\t\t\t\tstd::make_shared<Orts::transport::http::http_server>(io_context, server.config, manager)\n\t\t\t);\n\t\t\tPLOG(L_INFO) << \"HTTP Server ready on port: \" << server.config.http_port << std::endl;\n\t\t}\n\n#ifdef HAS_OPENSSL\n\t\tif (server.config.use_https) {\n\t\t\tservers.emplace_back(\n\t\t\t\tstd::make_shared<Orts::transport::http::https_server>(io_context, server.config, manager)\n\t\t\t);\n\t\t\tPLOG(L_INFO) << \"HTTPS Server ready on port: \" << server.config.https_port << std::endl;\n\t\t}\n#endif\n\n\t\tsignal(SIGTERM, on_sigterm);\n#ifndef _WIN32\n\t\tsignal(SIGPIPE, SIG_IGN);\n#endif\n\n\t\tauto timeout = std::chrono::milliseconds{1000};\n\t\twhile (!terminated) {\n\t\t\tio_context.run_for(timeout);\n\t\t}\n\n\t\t// cleanup\n\t\tservers.clear();\n\t}\n\n\tPLOG(L_INFO) << \"Terminated\" << std::endl;\n\n\treturn 0;\n}\n"
  },
  {
    "path": "src/standalone/model_bin_getter.hpp",
    "content": "//\n// Created by kibae on 24. 12. 21.\n//\n\n#ifndef ONNXRUNTIME_SERVER_MODEL_BIN_GETTER_HPP\n#define ONNXRUNTIME_SERVER_MODEL_BIN_GETTER_HPP\n\n#include \"../onnxruntime_server.hpp\"\n#include <fstream>\n#include <sstream>\n\nnamespace onnxruntime_server {\n\tstd::string get_model_bin(const boost::filesystem::path &model_root, const std::string &model_name, const std::string &model_version) {\n\t\tauto model_path = (model_root / model_name / model_version / \"model.onnx\").string();\n\t\t//check model path exists\n\t\tif (!std::filesystem::exists(model_path)) {\n\t\t\tauto path = (model_root / model_name / model_version);\n\t\t\tpath += \".onnx\";\n\t\t\tmodel_path = path.string();\n\t\t\tif (!std::filesystem::exists(model_path)) {\n\t\t\t\tthrow std::runtime_error(\"Model file not found: \" + model_path);\n\t\t\t}\n\t\t}\n\n\t\tstd::ifstream file(model_path, std::ios::binary);\n\t\tstd::stringstream buffer;\n\t\tbuffer << file.rdbuf();\n\t\treturn buffer.str();\n\t}\n}\n\n#endif // ONNXRUNTIME_SERVER_MODEL_BIN_GETTER_HPP\n"
  },
  {
    "path": "src/standalone/standalone.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/08/30.\n//\n\n#include \"standalone.hpp\"\n#include \"model_bin_getter.hpp\"\n\nonnxruntime_server::standalone::standalone() : config() {\n}\n\nint onnxruntime_server::standalone::init_config(int argc, char **argv) {\n\ttry {\n\t\tpo::options_description po_desc(\"ONNX Runtime Server options\", 100);\n\t\tpo_desc.add_options()(\"help,h\", \"Produce help message\\n\");\n\t\t// env: ONNX_WORKERS\n\t\tpo_desc.add_options()(\n\t\t\t\"workers\", po::value<long>()->default_value(4),\n\t\t\t\"env: ONNX_SERVER_WORKERS\\nWorker thread pool size.\\nDefault: 4\"\n\t\t);\n\t\tpo_desc.add_options()(\n\t\t\t\"request-payload-limit\", po::value<long>()->default_value(1024 * 1024 * 10),\n\t\t\t\"env: ONNX_SERVER_REQUEST_PAYLOAD_LIMIT\\nHTTP/HTTPS request payload size limit.\\nDefault: 1024 * 1024 * \"\n\t\t\t\"10(10MB)\"\n\t\t);\n\t\tpo_desc.add_options()(\n\t\t\t\"model-dir\", po::value<std::string>()->default_value(\"models\"),\n\t\t\t\"env: ONNX_SERVER_MODEL_DIR\\nModel directory path.\\nThe onnx model files must be located in the following \"\n\t\t\t\"path:\\n\"\n\t\t\t\"\\\"${model_dir}/${model_name}/${model_version}/model.onnx\\\" or \"\n\t\t\t\"\\n\\\"${model_dir}/${model_name}/${model_version}.onnx\\\"\\nDefault: ./models\"\n\t\t);\n\t\tpo_desc.add_options()(\n\t\t\t\"prepare-model\", po::value<std::string>(),\n\t\t\t\"env: ONNX_SERVER_PREPARE_MODEL\\nPre-create some model sessions at server startup.\\n\\n\"\n\t\t\t\"Format as a space-separated list of \\\"model_name:model_version\\\" or \"\n\t\t\t\"\\\"model_name:model_version(session_options, ...)\\\".\\n\"\n\t\t\t\"\\n\"\n\t\t\t\"Available session_options are\\n\"\n\t\t\t\"  - cuda=device_id[ or true or false]\\n\"\n\t\t\t\"\\n\"\n\t\t\t\"eg) \\\"model1:v1 model2:v9\\\"\\n    \\\"model1:v1(cuda=true) model2:v9(cuda=0) model2:v13(cuda=1)\\\"\"\n\t\t);\n\n\t\tpo::options_description po_tcp(\"TCP Backend\");\n\t\tpo_tcp.add_options()(\n\t\t\t\"tcp-port\", po::value<short>(),\n\t\t\t\"env: ONNX_SERVER_TCP_PORT\\nEnable TCP backend and which port number to use.\"\n\t\t);\n\t\tpo_desc.add(po_tcp);\n\n\t\tpo::options_description po_http(\"HTTP Backend\");\n\t\tpo_http.add_options()(\n\t\t\t\"http-port\", po::value<short>(),\n\t\t\t\"env: ONNX_SERVER_HTTP_PORT\\nEnable HTTP backend and which port number to use.\"\n\t\t);\n\t\tpo_desc.add(po_http);\n\n\t\tpo::options_description po_https(\"HTTPS Backend\");\n\t\tpo_https.add_options()(\n\t\t\t\"https-port\", po::value<short>(),\n\t\t\t\"env: ONNX_SERVER_HTTPS_PORT\\nEnable HTTPS backend and which port number to use.\"\n\t\t);\n\t\tpo_https.add_options()(\n\t\t\t\"https-cert\", po::value<std::string>(), \"env: ONNX_SERVER_HTTPS_CERT\\nSSL Certification file path for HTTPS\"\n\t\t);\n\t\tpo_https.add_options()(\n\t\t\t\"https-key\", po::value<std::string>(), \"env: ONNX_SERVER_HTTPS_KEY\\nSSL Private key file path for HTTPS\"\n\t\t);\n\t\tpo_desc.add(po_https);\n\n\t\tpo::options_description po_doc(\"Document\");\n\t\tpo_doc.add_options()(\n\t\t\t\"swagger-url-path\", po::value<std::string>(),\n\t\t\t\"env: ONNX_SERVER_SWAGGER_URL_PATH\\nEnable Swagger API document for HTTP/HTTPS backend.\\nThis value cannot \"\n\t\t\t\"start with \\\"/api/\\\" and \\\"/health\\\" \\nIf not specified, swagger document not provided.\\neg) /swagger or \"\n\t\t\t\"/api-docs\"\n\t\t);\n\t\tpo_desc.add(po_doc);\n\n\t\tpo::options_description po_log(\"Logging\");\n\t\tpo_log.add_options()(\n\t\t\t\"log-level\", po::value<std::string>()->default_value(\"info\"),\n\t\t\t\"env: ONNX_SERVER_LOG_LEVEL\\nLog level(debug, info, warn, error, fatal).\\nDefault: info\"\n\t\t);\n\t\tpo_log.add_options()(\n\t\t\t\"log-file\", po::value<std::string>()->default_value(\"\"),\n\t\t\t\"env: ONNX_SERVER_LOG_FILE\\nLog file path.\\nIf not specified, logs will be printed to stdout.\"\n\t\t);\n\t\tpo_log.add_options()(\n\t\t\t\"access-log-file\", po::value<std::string>()->default_value(\"\"),\n\t\t\t\"env: ONNX_SERVER_ACCESS_LOG_FILE\\nAccess log file path.\\nIf not specified, logs will be printed to stdout.\"\n\t\t);\n\t\tpo_desc.add(po_log);\n\n\t\t// env: ONNX_SERVER_*\n\t\tauto name_mapper = [&po_desc](const std::string &name) -> std::string {\n\t\t\tif (name.length() <= 12 || name.substr(0, 12) != \"ONNX_SERVER_\")\n\t\t\t\treturn \"\";\n\t\t\tauto slice = name.substr(12);\n\t\t\tstd::transform(slice.begin(), slice.end(), slice.begin(), [](unsigned char c) { return std::tolower(c); });\n\t\t\tstd::replace(slice.begin(), slice.end(), '_', '-');\n\n\t\t\tif (po_desc.find_nothrow(slice, false) == nullptr)\n\t\t\t\treturn \"\";\n\t\t\treturn slice;\n\t\t};\n\n\t\tpo::variables_map vm;\n\t\tauto config_prio_env = std::getenv(\"ONNX_SERVER_CONFIG_PRIORITY\");\n\t\tstd::string config_prio(config_prio_env ? config_prio_env : \"\");\n\t\tif (config_prio.length() > 3 && config_prio.substr(0, 3) == \"env\") {\n\t\t\t// env > cmd\n\t\t\tpo::store(po::parse_command_line(argc, argv, po_desc), vm);\n\t\t\tpo::store(po::parse_environment(po_desc, name_mapper), vm);\n\t\t} else {\n\t\t\t// cmd > env\n\t\t\tpo::store(po::parse_environment(po_desc, name_mapper), vm);\n\t\t\tpo::store(po::parse_command_line(argc, argv, po_desc), vm);\n\t\t}\n\t\tpo::notify(vm);\n\n\t\tif (vm.count(\"help\")) {\n\t\t\tstd::cout << po_desc << \"\\n\";\n\t\t\treturn 1;\n\t\t}\n\n\t\tconfig.log_level = vm[\"log-level\"].as<std::string>();\n\t\tconfig.log_file = vm[\"log-file\"].as<std::string>();\n\t\tconfig.access_log_file = vm[\"access-log-file\"].as<std::string>();\n\n\t\tstd::map<AixLog::Severity, std::string> log_level_map = {\n\t\t\t{AixLog::Severity::debug, \"debug\"}, {AixLog::Severity::info, \"info\"},\t{AixLog::Severity::warning, \"warn\"},\n\t\t\t{AixLog::Severity::error, \"error\"}, {AixLog::Severity::fatal, \"fatal\"},\n\t\t};\n\t\tAixLog::Severity log_level = AixLog::Severity::info;\n\t\tfor (auto &level : log_level_map) {\n\t\t\tif (config.log_level == level.second) {\n\t\t\t\tlog_level = level.first;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tstd::shared_ptr<AixLog::Sink> log_file;\n\t\tstd::shared_ptr<AixLog::Sink> log_access_file;\n\t\tAixLog::Filter for_access;\n\t\tfor_access.add_filter(\"ACCESS\", AixLog::Severity::info);\n\n\t\tif (config.log_file.empty())\n\t\t\tlog_file = std::make_shared<SinkCoutWithFilter>(log_level, for_access);\n\t\telse\n\t\t\tlog_file = std::make_shared<SinkFileWithFilter>(log_level, for_access, config.log_file);\n\n\t\tif (config.access_log_file.empty())\n\t\t\tlog_access_file = std::make_shared<SinkCoutWithFilter>(for_access, AixLog::Filter());\n\t\telse\n\t\t\tlog_access_file = std::make_shared<SinkFileWithFilter>(\n\t\t\t\tfor_access, AixLog::Filter(), config.access_log_file, \"%Y-%m-%d %H-%M-%S.#ms [#severity]\"\n\t\t\t);\n\n\t\tAixLog::Log::init({log_file, log_access_file});\n\n\t\tif (vm.count(\"workers\"))\n\t\t\tconfig.num_threads = vm[\"workers\"].as<long>();\n\n\t\tif (vm.count(\"request-payload-limit\"))\n\t\t\tconfig.request_payload_limit = vm[\"request-payload-limit\"].as<long>();\n\n\t\tif (vm.count(\"model-dir\"))\n\t\t\tconfig.model_dir = vm[\"model-dir\"].as<std::string>();\n\t\telse\n\t\t\tconfig.model_dir = \"models\";\n\n\t\tif (vm.count(\"prepare-model\"))\n\t\t\tconfig.prepare_model = vm[\"prepare-model\"].as<std::string>();\n\n\t\tif (vm.count(\"tcp-port\")) {\n\t\t\tconfig.use_tcp = true;\n\t\t\tconfig.tcp_port = vm[\"tcp-port\"].as<short>();\n\t\t}\n\n\t\tif (vm.count(\"http-port\")) {\n\t\t\tconfig.use_http = true;\n\t\t\tconfig.http_port = vm[\"http-port\"].as<short>();\n\t\t}\n\n\t\tif (vm.count(\"https-port\")) {\n\t\t\tconfig.use_https = true;\n\t\t\tconfig.https_port = vm[\"https-port\"].as<short>();\n\t\t}\n\n\t\tif (vm.count(\"https-cert\"))\n\t\t\tconfig.https_cert = vm[\"https-cert\"].as<std::string>();\n\n\t\tif (vm.count(\"https-key\"))\n\t\t\tconfig.https_key = vm[\"https-key\"].as<std::string>();\n\n\t\tif (config.use_https) {\n\t\t\tif (config.https_cert.empty())\n\t\t\t\tthrow std::runtime_error(\"SSL Certification file path is not specified.\");\n\t\t\tif (config.https_key.empty())\n\t\t\t\tthrow std::runtime_error(\"SSL Private key file path is not specified.\");\n\t\t}\n\n\t\tif (vm.count(\"swagger-url-path\")) {\n\t\t\tconfig.swagger_url_path = vm[\"swagger-url-path\"].as<std::string>();\n\t\t\t// cannot start with \"/api/\" and \"/health\"\n\t\t\tif ((config.swagger_url_path.length() >= 5 && config.swagger_url_path.substr(0, 5) == \"/api/\") ||\n\t\t\t\t(config.swagger_url_path.length() >= 7 && config.swagger_url_path.substr(0, 7) == \"/health\"))\n\t\t\t\tthrow std::runtime_error(R\"(Swagger URL path cannot start with \"/api\" and \"/health\")\");\n\t\t}\n\n\t\tmodel_root = config.model_dir;\n\n\t\tprint_config();\n\n\t\tif (!exists(model_root))\n\t\t\tthrow std::runtime_error(\"Model directory does not exist: \" + model_root.string());\n\n\t\tif (!config.use_tcp && !config.use_http\n#ifdef HAS_OPENSSL\n\t\t\t&& !config.use_https\n#endif\n\t\t) {\n\t\t\tstd::cout << po_desc << \"\\n\\n\";\n\t\t\tthrow std::runtime_error(\"No backend(TCP, HTTP, HTTPS) is enabled\");\n\t\t}\n\t} catch (boost::program_options::error_with_option_name &e) {\n\t\tstd::cerr << \"Config process error:\\n\" << e.get_option_name() << e.what() << std::endl;\n\t\treturn 1;\n\t} catch (std::exception &e) {\n\t\tstd::cerr << \"Config process error:\\n\" << e.what() << std::endl;\n\t\treturn 1;\n\t}\n\n\tconfig.model_bin_getter = [this](const std::string &model_name, const std::string &model_version) {\n\t\treturn onnxruntime_server::get_model_bin(model_root.string(), model_name, model_version);\n\t};\n\t// config.model_bin_getter = std::bind(&onnxruntime_server::get_model_bin, this, std::placeholders::_1,\n\t// std::placeholders::_2);\n\n\treturn 0;\n}\n\nvoid onnxruntime_server::standalone::prepare_models(onnxruntime_server::onnx::session_manager &manager) const {\n\tauto model_keys = Orts::onnx::session_key_with_option::parse(config.prepare_model);\n\tif (model_keys.empty())\n\t\treturn;\n\n\tfor (auto &key : model_keys) {\n\t\tmanager.create_session(key.model_name, key.model_version, key.option);\n\t}\n}\n\nvoid onnxruntime_server::standalone::print_config() {\n\t// print config values\n\tauto config_json = ordered_json::object();\n\tconfig_json[\"workers\"] = config.num_threads;\n\tconfig_json[\"model_dir\"] = config.model_dir;\n\n\tconfig_json[\"tcp\"] = json::object();\n\tconfig_json[\"tcp\"][\"use\"] = config.use_tcp;\n\tif (config.use_tcp)\n\t\tconfig_json[\"tcp\"][\"port\"] = config.tcp_port;\n\n\tconfig_json[\"http\"] = json::object();\n\tconfig_json[\"http\"][\"use\"] = config.use_http;\n\tif (config.use_http)\n\t\tconfig_json[\"http\"][\"port\"] = config.http_port;\n\n\tconfig_json[\"https\"] = json::object();\n\tconfig_json[\"https\"][\"use\"] = config.use_https;\n\tif (config.use_https) {\n\t\tconfig_json[\"https\"][\"port\"] = config.https_port;\n\t\tconfig_json[\"https\"][\"cert\"] = config.https_cert;\n\t\tconfig_json[\"https\"][\"key\"] = config.https_key;\n\t}\n\n\tif (config.use_http || config.use_https)\n\t\tconfig_json[\"swagger_url_path\"] = config.swagger_url_path;\n\n\tconfig_json[\"log\"] = json::object();\n\tconfig_json[\"log\"][\"level\"] = config.log_level;\n\tconfig_json[\"log\"][\"file\"] = config.log_file;\n\tconfig_json[\"log\"][\"access_file\"] = config.access_log_file;\n\n\tPLOG(L_INFO) << \"Config values:\\n\" << config_json.dump(2) << std::endl;\n}\n"
  },
  {
    "path": "src/standalone/standalone.hpp",
    "content": "//\n// Created by Kibae Shin on 2023/08/30.\n//\n\n#ifndef ONNX_RUNTIME_SERVER_STANDALONE_HPP\n#define ONNX_RUNTIME_SERVER_STANDALONE_HPP\n\n#include \"../onnxruntime_server.hpp\"\n\n#include <boost/filesystem.hpp>\n#include <boost/program_options.hpp>\n\nnamespace po = boost::program_options;\n\nnamespace onnxruntime_server {\n\tclass standalone {\n\t  private:\n\t\tboost::filesystem::path model_root;\n\n\t  public:\n\t\tonnxruntime_server::config config;\n\n\t\tstandalone();\n\n\t\tint init_config(int argc, char *argv[]);\n\t\tvoid prepare_models(onnxruntime_server::onnx::session_manager &manager) const;\n\t\tvoid print_config();\n\t};\n\n} // namespace onnxruntime_server\n\nclass SinkCoutWithFilter : public AixLog::SinkCout {\n\tAixLog::Filter _allow;\n\tAixLog::Filter _deny;\n\n  public:\n\tSinkCoutWithFilter(\n\t\tconst AixLog::Filter &allow, const AixLog::Filter &deny,\n\t\tconst std::string &format = \"%Y-%m-%d %H:%M:%S.#ms [#severity] (#tag_func)\"\n\t)\n\t\t: SinkCout(AixLog::Filter(), format), _allow(allow), _deny(deny) {\n\t}\n\n\tvoid log(const AixLog::Metadata &metadata, const std::string &message) override {\n\t\tif ((_allow.is_empty() || _allow.match(metadata)) && (_deny.is_empty() || !_deny.match(metadata)))\n\t\t\tSinkCout::log(metadata, message);\n\t}\n};\n\nclass SinkFileWithFilter : public AixLog::SinkFile {\n\tAixLog::Filter _allow;\n\tAixLog::Filter _deny;\n\n  public:\n\tSinkFileWithFilter(\n\t\tconst AixLog::Filter &allow, const AixLog::Filter &deny, const std::string &filename,\n\t\tconst std::string &format = \"%Y-%m-%d %H:%M:%S.#ms [#severity] (#tag_func)\"\n\t)\n\t\t: SinkFile(AixLog::Filter(), filename, format), _allow(allow), _deny(deny) {\n\t}\n\n\tvoid log(const AixLog::Metadata &metadata, const std::string &message) override {\n\t\tif ((_allow.is_empty() || _allow.match(metadata)) && (_deny.is_empty() || !_deny.match(metadata)))\n\t\t\tSinkFile::log(metadata, message);\n\t}\n};\n\n#endif // ONNX_RUNTIME_SERVER_STANDALONE_HPP\n"
  },
  {
    "path": "src/task/create_session.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/01.\n//\n\n#include <utility>\n\n#include \"../onnxruntime_server.hpp\"\n\n#include <boost/beast/core/detail/base64.hpp>\n\nnamespace detail = boost::beast::detail;\n\nstd::string onnxruntime_server::task::create_session::name() {\n\treturn \"CREATE_SESSION\";\n}\n\nOrts::task::create_session::create_session(\n\tonnx::session_manager &onnx_session_manager, const json &request_json, const char *model_data,\n\tsize_t model_data_length\n)\n\t: session_task(onnx_session_manager, request_json), model_data(model_data), model_data_length(model_data_length) {\n\toption =\n\t\trequest_json.contains(\"option\") && request_json[\"option\"].is_object() ? request_json[\"option\"] : json::object();\n}\n\nOrts::task::create_session::create_session(\n\tonnx::session_manager &onnx_session_manager, const std::string &model_name, const std::string &model_version,\n\tjson option, const char *model_data, size_t model_data_length\n)\n\t: session_task(onnx_session_manager, model_name, model_version), option(std::move(option)), model_data(model_data),\n\t  model_data_length(model_data_length) {\n}\n\njson Orts::task::create_session::run() {\n\tstd::shared_ptr<Orts::onnx::session> session =\n\t\tonnx_session_manager.create_session(model_name, model_version, option, model_data, model_data_length);\n\tif (session == nullptr) {\n\t\tthrow not_found_error(\"session not found\");\n\t}\n\n\treturn session->to_json();\n}\n"
  },
  {
    "path": "src/task/destroy_session.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/01.\n//\n\n#include \"../onnxruntime_server.hpp\"\n\nstd::string onnxruntime_server::task::destroy_session::name() {\n\treturn \"DESTROY_SESSION\";\n}\n\nOrts::task::destroy_session::destroy_session(onnx::session_manager &onnx_session_manager, const json &request_json)\n\t: session_task(onnx_session_manager, request_json) {\n}\n\nOrts::task::destroy_session::destroy_session(\n\tonnx::session_manager &onnx_session_manager, const std::string &model_name, const std::string &model_version\n)\n\t: session_task(onnx_session_manager, model_name, model_version) {\n}\n\njson Orts::task::destroy_session::run() {\n\tonnx_session_manager.remove_session(model_name, model_version);\n\n\treturn json::boolean_t{true};\n}\n"
  },
  {
    "path": "src/task/execute_session.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/01.\n//\n\n#include \"../onnxruntime_server.hpp\"\n\nstd::string onnxruntime_server::task::execute_session::name() {\n\treturn \"EXECUTE_SESSION\";\n}\n\nOrts::task::execute_session::execute_session(onnx::session_manager &onnx_session_manager, const json &request_json)\n\t: session_task(onnx_session_manager, request_json) {\n\tif (!request_json.is_object() || !request_json.contains(\"data\") || !request_json[\"data\"].is_object()) {\n\t\tthrow bad_request_error(\"Invalid session task. Must be a JSON object with data(object) field\");\n\t}\n\tdata = request_json[\"data\"];\n}\n\nOrts::task::execute_session::execute_session(\n\tonnx::session_manager &onnx_session_manager, const std::string &model_name, const std::string &model_version,\n\tjson data\n)\n\t: session_task(onnx_session_manager, model_name, model_version), data(std::move(data)) {\n}\n\njson Orts::task::execute_session::run() {\n\tauto session = onnx_session_manager.get_session(model_name, model_version);\n\tif (session == nullptr) {\n\t\tthrow not_found_error(\"session not found\");\n\t}\n\tsession->touch();\n\n\tOrts::onnx::execution::context ctx(session, data);\n\tauto result = onnx_session_manager.thread_pool.enqueue([&ctx]() { return ctx.run(); }).get();\n\t// auto result = ctx.run();\n\treturn ctx.tensors_to_json(result);\n}\n"
  },
  {
    "path": "src/task/get_session.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/01.\n//\n\n#include <utility>\n\n#include \"../onnxruntime_server.hpp\"\n\nstd::string onnxruntime_server::task::get_session::name() {\n\treturn \"GET_SESSION\";\n}\n\nOrts::task::get_session::get_session(onnx::session_manager &onnx_session_manager, const json &request_json)\n\t: session_task(onnx_session_manager, request_json) {\n}\n\nOrts::task::get_session::get_session(\n\tonnx::session_manager &onnx_session_manager, const std::string &model_name, const std::string &model_version\n)\n\t: session_task(onnx_session_manager, model_name, model_version) {\n}\n\njson Orts::task::get_session::run() {\n\tauto session = onnx_session_manager.get_session(model_name, model_version);\n\tif (session == nullptr) {\n\t\tthrow not_found_error(\"session not found\");\n\t}\n\n\treturn session->to_json();\n}\n"
  },
  {
    "path": "src/task/list_session.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/01.\n//\n\n#include \"../onnxruntime_server.hpp\"\n\nstd::string onnxruntime_server::task::list_session::name() {\n\treturn \"LIST_SESSION\";\n}\n\nOrts::task::list_session::list_session(onnx::session_manager &onnx_session_manager)\n\t: onnx_session_manager(onnx_session_manager) {\n}\n\njson Orts::task::list_session::run() {\n\tauto sessions = onnx_session_manager.get_sessions();\n\n\tjson::array_t session_list;\n\tfor (auto &it : sessions) {\n\t\tsession_list.emplace_back(it.second->to_json());\n\t}\n\n\treturn session_list;\n}\n"
  },
  {
    "path": "src/task/task.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/08/31.\n//\n\n#include <utility>\n\n#include \"../onnxruntime_server.hpp\"\n\nOrts::task::session_task::session_task(onnx::session_manager &onnx_session_manager, const json &request_json)\n\t: task(), onnx_session_manager(onnx_session_manager) {\n\tif (!request_json.is_object() || !request_json.contains(\"model\") || !request_json.contains(\"version\") ||\n\t\t!request_json[\"model\"].is_string() || !request_json[\"version\"].is_string()) {\n\t\tthrow bad_request_error(\n\t\t\t\"Invalid session task. Must be a JSON object with model(string) and version(string) fields\"\n\t\t);\n\t}\n\n\tmodel_name = request_json[\"model\"];\n\tmodel_version = request_json[\"version\"];\n\n\tassert(model_name.length() > 0);\n\tassert(model_version.length() > 0);\n}\n\nOrts::task::session_task::session_task(\n\tonnx::session_manager &onnx_session_manager, std::string model_name, std::string model_version\n)\n\t: task(), onnx_session_manager(onnx_session_manager), model_name(std::move(model_name)),\n\t  model_version(std::move(model_version)) {\n}\n"
  },
  {
    "path": "src/test/CMakeLists.txt",
    "content": "project(onnxruntime_server_test)\nset(CMAKE_CXX_STANDARD 17)\n\nenable_testing()\n\nset(TEST_LIBS\n        ${ONNX_RUNTIME_LIBRARIES}\n        ${Boost_LIBRARIES}\n        onnxruntime_server_static\n        GTest::GTest\n        GTest::Main\n)\n\nadd_executable(lib_version test_lib_version.cpp)\ntarget_link_libraries(lib_version PRIVATE ${TEST_LIBS})\nadd_test(NAME lib_version COMMAND lib_version)\n\nif (WIN32)\n    file(GLOB ONNXRUNTIME_LIB_FILES_TO_COPY \"${ONNX_RUNTIME_LIBRARY_DIRS}/onnxruntime*\")\n\n    foreach (FILE ${ONNXRUNTIME_LIB_FILES_TO_COPY})\n        add_custom_command(TARGET lib_version POST_BUILD\n                COMMAND ${CMAKE_COMMAND} -E copy\n                ${FILE}\n                $<TARGET_FILE_DIR:lib_version>\n        )\n    endforeach ()\nendif ()\n\n# __    __  .__   __.  __  .___________.\n#|  |  |  | |  \\ |  | |  | |           |\n#|  |  |  | |   \\|  | |  | `---|  |----`\n#|  |  |  | |  . `  | |  |     |  |\n#|  `--'  | |  |\\   | |  |     |  |\n# \\______/  |__| \\__| |__|     |__|\n#\n\nadd_executable(unit_test_context unit/unit_test_context.cpp)\ntarget_link_libraries(unit_test_context PRIVATE ${TEST_LIBS})\nadd_test(NAME unit_test_context COMMAND unit_test_context)\n\nif (ONNX_RUNTIME_WITH_CUDA_PROVIDER)\n    add_executable(unit_test_context_cuda unit/unit_test_context_cuda.cpp)\n    target_link_libraries(unit_test_context_cuda PRIVATE ${TEST_LIBS})\n    add_test(NAME unit_test_context_cuda COMMAND unit_test_context_cuda)\nendif ()\n\nadd_executable(unit_test_session unit/unit_test_session.cpp)\ntarget_link_libraries(unit_test_session PRIVATE ${TEST_LIBS})\nadd_test(NAME unit_test_session COMMAND unit_test_session)\n\n\n# _______ ___    _______\n#|   ____|__ \\  |   ____|\n#|  |__     ) | |  |__\n#|   __|   / /  |   __|\n#|  |____ / /_  |  |____\n#|_______|____| |_______|\n\nadd_executable(e2e_test_tcp_server e2e/e2e_test_tcp_server.cpp)\ntarget_link_libraries(e2e_test_tcp_server PRIVATE ${TEST_LIBS})\nadd_test(NAME e2e_test_tcp_server COMMAND e2e_test_tcp_server)\n\nadd_executable(e2e_test_http_server e2e/e2e_test_http_server.cpp)\ntarget_link_libraries(e2e_test_http_server PRIVATE ${TEST_LIBS})\nadd_test(NAME e2e_test_http_server COMMAND e2e_test_http_server)\n\nadd_executable(e2e_test_http_swagger e2e/e2e_test_http_swagger.cpp)\ntarget_link_libraries(e2e_test_http_swagger PRIVATE ${TEST_LIBS})\nadd_test(NAME e2e_test_http_swagger COMMAND e2e_test_http_swagger)\n\nif (OPENSSL_FOUND)\n    add_executable(e2e_test_https_server e2e/e2e_test_https_server.cpp)\n    target_link_libraries(e2e_test_https_server PRIVATE ${TEST_LIBS})\n    add_test(NAME e2e_test_https_server COMMAND e2e_test_https_server)\nendif ()\n"
  },
  {
    "path": "src/test/e2e/e2e_test_http_server.cpp",
    "content": "//\n// Created by kibae on 23. 8. 17.\n//\n\n#include \"../../transport/http/http_server.hpp\"\n#include \"../test_common.hpp\"\n\nbeast::http::response<beast::http::dynamic_body>\nhttp_request(beast::http::verb method, const std::string &target, short port, std::string body);\n\nTEST(test_onnxruntime_server_http, HttpServerTest) {\n\tOrts::config config;\n\tconfig.http_port = 0;\n\tconfig.model_bin_getter = test_model_bin_getter;\n\n\tboost::asio::io_context io_context;\n\tOrts::onnx::session_manager manager(config.model_bin_getter, config.num_threads);\n\tOrts::transport::http::http_server server(io_context, config, manager);\n\n\tbool running = true;\n\tstd::thread server_thread([&io_context, &running]() { test_server_run(io_context, &running); });\n\n\tTIME_MEASURE_INIT\n\n\t{ // health check\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/health\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tASSERT_EQ(boost::beast::buffers_to_string(res.body().data()), \"OK\");\n\t}\n\n\t{ // not found\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/not-exists-path\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::not_found);\n\t\tASSERT_EQ(boost::beast::buffers_to_string(res.body().data()), \"Not Found\");\n\t}\n\n\t{ // API: Create session\n\t\tjson body = json::parse(R\"({\"model\":\"sample\",\"version\":\"1\"})\");\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::post, \"/api/sessions\", server.port(), body.dump());\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: Create session\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json[\"model\"], \"sample\");\n\t\tASSERT_EQ(res_json[\"version\"], \"1\");\n\t}\n\n\t{ // API: Get session\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/api/sessions/sample/1\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: Get session\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json[\"model\"], \"sample\");\n\t\tASSERT_EQ(res_json[\"version\"], \"1\");\n\t}\n\n\t{ // API: List session\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/api/sessions\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: List sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json.size(), 1);\n\t\tASSERT_EQ(res_json[0][\"model\"], \"sample\");\n\t\tASSERT_EQ(res_json[0][\"version\"], \"1\");\n\t}\n\n\t{ // API: Execute session\n\t\tauto input = json::parse(R\"({\"x\":[[1]],\"y\":[[2]],\"z\":[[3]]})\");\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::post, \"/api/sessions/sample/1\", server.port(), input.dump());\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: Execute sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_TRUE(res_json.contains(\"output\"));\n\t\tASSERT_EQ(res_json[\"output\"].size(), 1);\n\t\tASSERT_GT(res_json[\"output\"][0], 0);\n\t}\n\n\t{ // API: Execute session large request\n\t\tauto input = json::parse(R\"({\"x\":[[1]],\"y\":[[2]],\"z\":[[3]]})\");\n\t\tint size = 1000000;\n\t\tfor (int i = 0; i < size; i++) {\n\t\t\tinput[\"x\"].push_back(input[\"x\"][0]);\n\t\t\tinput[\"y\"].push_back(input[\"y\"][0]);\n\t\t\tinput[\"z\"].push_back(input[\"z\"][0]);\n\t\t}\n\t\tstd::cout << input.dump().length() << \" bytes\\n\";\n\n\t\tbool exception = false;\n\t\ttry {\n\t\t\tTIME_MEASURE_START\n\t\t\tauto res =\n\t\t\t\thttp_request(boost::beast::http::verb::post, \"/api/sessions/sample/1\", server.port(), input.dump());\n\t\t\tTIME_MEASURE_STOP\n\t\t} catch (std::exception &e) {\n\t\t\texception = true;\n\t\t\tstd::cout << e.what() << std::endl;\n\t\t}\n\t\tASSERT_TRUE(exception);\n\t}\n\n\t{ // API: Destroy session\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::delete_, \"/api/sessions/sample/1\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: Destroy sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_TRUE(res_json);\n\t}\n\n\t{ // API: List session\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/api/sessions\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: List sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json.size(), 0);\n\t}\n\n\trunning = false;\n\tserver_thread.join();\n}\n\nTEST(test_onnxruntime_server_http, HttpServerTest3) {\n\tOrts::config config;\n\tconfig.http_port = 0;\n\tconfig.model_bin_getter = test_model_bin_getter;\n\n\tboost::asio::io_context io_context;\n\tOrts::onnx::session_manager manager(config.model_bin_getter, config.num_threads);\n\tOrts::transport::http::http_server server(io_context, config, manager);\n\n\tbool running = true;\n\tstd::thread server_thread([&io_context, &running]() { test_server_run(io_context, &running); });\n\n\tTIME_MEASURE_INIT\n\n\t{ // API: Create session\n\t\tjson body = json::parse(R\"({\"model\":\"sample\",\"version\":\"3\"})\");\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::post, \"/api/sessions\", server.port(), body.dump());\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: Create session\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json[\"model\"], \"sample\");\n\t\tASSERT_EQ(res_json[\"version\"], \"3\");\n\t}\n\n\t{ // API: Get session\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/api/sessions/sample/3\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: Get session\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json[\"model\"], \"sample\");\n\t\tASSERT_EQ(res_json[\"version\"], \"3\");\n\t}\n\n\t{ // API: List session\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/api/sessions\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: List sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json.size(), 1);\n\t\tASSERT_EQ(res_json[0][\"model\"], \"sample\");\n\t\tASSERT_EQ(res_json[0][\"version\"], \"3\");\n\t}\n\n\t{ // API: Execute session\n\t\tauto input = json::parse(R\"({\"x\":[[1]],\"y\":[[2]],\"z\":[[3]]})\");\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::post, \"/api/sessions/sample/3\", server.port(), input.dump());\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: Execute sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_TRUE(res_json.contains(\"output\"));\n\t\tASSERT_EQ(res_json[\"output\"].size(), 1);\n\t\tASSERT_GT(res_json[\"output\"][0], 0);\n\t}\n\n\t{ // API: Destroy session\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::delete_, \"/api/sessions/sample/3\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: Destroy sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_TRUE(res_json);\n\t}\n\n\t{ // API: List session\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/api/sessions\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: List sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json.size(), 0);\n\t}\n\n\trunning = false;\n\tserver_thread.join();\n}\n\nbeast::http::response<beast::http::dynamic_body>\nhttp_request(beast::http::verb method, const std::string &target, short port, std::string body) {\n\tboost::asio::io_context ioc;\n\tboost::asio::ip::tcp::socket socket(ioc);\n\tboost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::make_address(\"127.0.0.1\"), port);\n\tsocket.connect(endpoint);\n\n\tbeast::http::request<beast::http::string_body> req(method, target, 11);\n\treq.set(beast::http::field::host, \"localhost\");\n\tif (!body.empty()) {\n\t\treq.set(beast::http::field::content_type, \"application/json\");\n\t\treq.body() = body;\n\t\treq.prepare_payload();\n\t}\n\tbeast::http::write(socket, req);\n\n\tboost::beast::flat_buffer buffer;\n\tbeast::http::response<beast::http::dynamic_body> res;\n\n\tbeast::http::read(socket, buffer, res);\n\n\treturn res;\n}\n"
  },
  {
    "path": "src/test/e2e/e2e_test_http_swagger.cpp",
    "content": "#include \"../../transport/http/http_server.hpp\"\n#include \"../test_common.hpp\"\n\nbeast::http::response<beast::http::dynamic_body>\nhttp_request(beast::http::verb method, const std::string &target, short port, std::string body, int keep_alive = 0);\n\nTEST(test_onnxruntime_server_http_swagger, HttpSwaggerTest) {\n\tOrts::config config;\n\tconfig.http_port = 0;\n\tconfig.swagger_url_path = \"/swagger\";\n\tconfig.model_bin_getter = test_model_bin_getter;\n\n\tboost::asio::io_context io_context;\n\tOrts::onnx::session_manager manager(config.model_bin_getter, config.num_threads);\n\tOrts::transport::http::http_server server(io_context, config, manager);\n\tstd::cout << server.port() << std::endl;\n\n\tbool running = true;\n\tstd::thread server_thread([&io_context, &running]() { test_server_run(io_context, &running); });\n\n\tTIME_MEASURE_INIT\n\n\t{ // health check\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/health\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tASSERT_EQ(boost::beast::buffers_to_string(res.body().data()), \"OK\");\n\t}\n\n\t{ // not found\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/not-exists-path\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::not_found);\n\t\tASSERT_EQ(boost::beast::buffers_to_string(res.body().data()), \"Not Found\");\n\t}\n\n\t{ // Get swagger index.html\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/swagger\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::found);\n\t\tASSERT_EQ(res.at(\"location\"), \"/swagger/\");\n\t}\n\n\t{ // Get swagger index.html\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/swagger/\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\n\t\tauto body = boost::beast::buffers_to_string(res.body().data());\n\t\tASSERT_GT(body.length(), 300);\n\t}\n\n\t{ // Get swagger openapi.yaml\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/swagger/openapi.yaml\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\n\t\tauto body = boost::beast::buffers_to_string(res.body().data());\n\t\tASSERT_GT(body.length(), 300);\n\t}\n\n\t{ // keep alive\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/swagger/\", server.port(), \"\", 3);\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\n\t\tauto body = boost::beast::buffers_to_string(res.body().data());\n\t\tASSERT_GT(body.length(), 300);\n\t}\n\n\trunning = false;\n\tserver_thread.join();\n}\n\nbeast::http::response<beast::http::dynamic_body>\nhttp_request(beast::http::verb method, const std::string &target, short port, std::string body, int keep_alive) {\n\tboost::asio::io_context ioc;\n\tboost::asio::ip::tcp::socket socket(ioc);\n\tboost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::make_address(\"127.0.0.1\"), port);\n\tsocket.connect(endpoint);\n\n\tbeast::http::request<beast::http::string_body> req(method, target, 11);\n\treq.set(beast::http::field::host, \"localhost\");\n\tif (keep_alive > 0)\n\t\treq.keep_alive(keep_alive);\n\n\tif (!body.empty()) {\n\t\treq.set(beast::http::field::content_type, \"application/json\");\n\t\treq.body() = body;\n\t\treq.prepare_payload();\n\t}\n\tbeast::http::write(socket, req);\n\n\tboost::beast::flat_buffer buffer;\n\tbeast::http::response<beast::http::dynamic_body> res;\n\n\tbeast::http::read(socket, buffer, res);\n\n\tif (keep_alive > 0)\n\t\tsleep(1);\n\n\tsocket.close();\n\treturn res;\n}\n"
  },
  {
    "path": "src/test/e2e/e2e_test_https_server.cpp",
    "content": "//\n// Created by kibae on 23. 8. 17.\n//\n\n#include \"../../transport/http/http_server.hpp\"\n#include \"../test_common.hpp\"\n\nbeast::http::response<beast::http::dynamic_body>\nhttp_request(beast::http::verb method, const std::string &target, short port, std::string body);\n\nTEST(test_onnxruntime_server_http, HttpsServerTest) {\n\tOrts::config config;\n\tconfig.https_port = 0;\n\tconfig.https_cert = (test_dir / \"ssl\" / \"server-cert.pem\").string();\n\tconfig.https_key = (test_dir / \"ssl\" / \"server-key.pem\").string();\n\tconfig.model_bin_getter = test_model_bin_getter;\n\n\tboost::asio::io_context io_context;\n\tOrts::onnx::session_manager manager(config.model_bin_getter, config.num_threads);\n\tOrts::transport::http::https_server server(io_context, config, manager);\n\n\tbool running = true;\n\tstd::thread server_thread([&io_context, &running]() { test_server_run(io_context, &running); });\n\n\tTIME_MEASURE_INIT\n\n\t{ // health check\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/health\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tASSERT_EQ(boost::beast::buffers_to_string(res.body().data()), \"OK\");\n\t}\n\n\t{ // not found\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/not-exists-path\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::not_found);\n\t\tASSERT_EQ(boost::beast::buffers_to_string(res.body().data()), \"Not Found\");\n\t}\n\n\t{ // API: Create session\n\t\tjson body = json::parse(R\"({\"model\":\"sample\",\"version\":\"1\"})\");\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::post, \"/api/sessions\", server.port(), body.dump());\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: Create session\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json[\"model\"], \"sample\");\n\t\tASSERT_EQ(res_json[\"version\"], \"1\");\n\t}\n\n\t{ // API: Get session\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/api/sessions/sample/1\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: Get session\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json[\"model\"], \"sample\");\n\t\tASSERT_EQ(res_json[\"version\"], \"1\");\n\t}\n\n\t{ // API: List session\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/api/sessions\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: List sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json.size(), 1);\n\t\tASSERT_EQ(res_json[0][\"model\"], \"sample\");\n\t\tASSERT_EQ(res_json[0][\"version\"], \"1\");\n\t}\n\n\t{ // API: Execute session\n\t\tauto input = json::parse(R\"({\"x\":[[1]],\"y\":[[2]],\"z\":[[3]]})\");\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::post, \"/api/sessions/sample/1\", server.port(), input.dump());\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: Execute sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_TRUE(res_json.contains(\"output\"));\n\t\tASSERT_EQ(res_json[\"output\"].size(), 1);\n\t\tASSERT_GT(res_json[\"output\"][0], 0);\n\t}\n\n\t{ // API: Execute session large request\n\t\tauto input = json::parse(R\"({\"x\":[[1]],\"y\":[[2]],\"z\":[[3]]})\");\n\t\tint size = 1000000;\n\t\tfor (int i = 0; i < size; i++) {\n\t\t\tinput[\"x\"].push_back(input[\"x\"][0]);\n\t\t\tinput[\"y\"].push_back(input[\"y\"][0]);\n\t\t\tinput[\"z\"].push_back(input[\"z\"][0]);\n\t\t}\n\t\tstd::cout << input.dump().length() << \" bytes\\n\";\n\n\t\tbool exception = false;\n\t\ttry {\n\n\t\t\tTIME_MEASURE_START\n\t\t\tauto res =\n\t\t\t\thttp_request(boost::beast::http::verb::post, \"/api/sessions/sample/1\", server.port(), input.dump());\n\t\t\tTIME_MEASURE_STOP\n\t\t} catch (std::exception &e) {\n\t\t\texception = true;\n\t\t\tstd::cout << e.what() << std::endl;\n\t\t}\n\t\tASSERT_TRUE(exception);\n\t}\n\n\t{ // API: Destroy session\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::delete_, \"/api/sessions/sample/1\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: Destroy sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_TRUE(res_json);\n\t}\n\n\t{ // API: List session\n\t\tTIME_MEASURE_START\n\t\tauto res = http_request(boost::beast::http::verb::get, \"/api/sessions\", server.port(), \"\");\n\t\tTIME_MEASURE_STOP\n\t\tASSERT_EQ(res.result(), boost::beast::http::status::ok);\n\t\tjson res_json = json::parse(boost::beast::buffers_to_string(res.body().data()));\n\t\tstd::cout << \"API: List sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json.size(), 0);\n\t}\n\n\trunning = false;\n\tserver_thread.join();\n}\n\nbeast::http::response<beast::http::dynamic_body>\nhttp_request(beast::http::verb method, const std::string &target, short port, std::string body) {\n\tboost::asio::io_context ioc;\n\n\tboost::asio::ssl::context ssl_context(boost::asio::ssl::context::sslv23);\n\tssl_context.set_default_verify_paths();\n\tssl_context.set_verify_mode(boost::asio::ssl::verify_none);\n\n\tboost::asio::ssl::stream<asio::tcp::socket> stream(ioc, ssl_context);\n\tboost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::make_address(\"127.0.0.1\"), port);\n\tstream.lowest_layer().connect(endpoint);\n\tboost::system::error_code ec;\n\tstream.handshake(boost::asio::ssl::stream_base::client, ec);\n\tif (ec)\n\t\tthrow std::runtime_error(\"Failed to handshake: \" + ec.message());\n\n\tbeast::http::request<beast::http::string_body> req(method, target, 11);\n\treq.set(beast::http::field::host, \"localhost\");\n\tif (!body.empty()) {\n\t\treq.set(beast::http::field::content_type, \"application/json\");\n\t\treq.body() = body;\n\t\treq.prepare_payload();\n\t}\n\tbeast::http::write(stream, req);\n\n\tboost::beast::flat_buffer buffer;\n\tbeast::http::response<beast::http::dynamic_body> res;\n\n\tbeast::http::read(stream, buffer, res);\n\n\treturn res;\n}\n"
  },
  {
    "path": "src/test/e2e/e2e_test_tcp_server.cpp",
    "content": "//\n// Created by kibae on 23. 8. 17.\n//\n\n#include \"../../transport/tcp/tcp_server.hpp\"\n#include \"../test_common.hpp\"\n\njson tcp_request(\n\tuint_least16_t port, int16_t type, const json &json, unsigned char *post = nullptr, size_t post_size = 0\n) {\n\tboost::asio::io_context io_context;\n\tboost::asio::ip::tcp::socket socket(io_context);\n\tboost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::make_address(\"127.0.0.1\"), port);\n\tsocket.connect(endpoint);\n\n\tauto json_data = json.dump();\n\tstruct onnxruntime_server::transport::tcp::protocol_header header = {};\n\theader.type = htons(type);\n\theader.length = HTONLL(json_data.size() + post_size);\n\theader.json_length = HTONLL(json_data.size());\n\theader.post_length = HTONLL(post_size);\n\n\tstd::vector<boost::asio::const_buffer> buffers;\n\tbuffers.emplace_back(&header, sizeof(header));\n\tbuffers.emplace_back(json_data.c_str(), json_data.size());\n\tif (post != nullptr)\n\t\tbuffers.emplace_back(post, post_size);\n\n\tboost::asio::write(socket, buffers);\n\n\tOrts::transport::tcp::protocol_header res_header = {0, 0, 0, 0};\n\n\tstd::size_t length = socket.read_some(boost::asio::buffer(&res_header, sizeof(Orts::transport::tcp::protocol_header)));\n\tif (length < sizeof(Orts::transport::tcp::protocol_header))\n\t\treturn json::object();\n\n\tres_header.type = ntohs(res_header.type);\n\tres_header.length = NTOHLL(res_header.length);\n\tres_header.json_length = NTOHLL(res_header.json_length);\n\tres_header.post_length = NTOHLL(res_header.post_length);\n\n\tstd::string chunk;\n\tchunk.resize(MAX_RECV_BUF_LENGTH);\n\tstd::string buffer;\n\twhile (buffer.size() < res_header.length) {\n\t\tlength = socket.read_some(\n\t\t\tboost::asio::buffer(chunk.data(), NUM_MIN(MAX_RECV_BUF_LENGTH, header.length - buffer.length())));\n\t\tif (length <= 0)\n\t\t\treturn json::object();\n\n\t\tbuffer.append(chunk.data(), length);\n\t}\n\n\treturn json::parse(buffer);\n}\n\nTEST(test_onnxruntime_server_tcp, TcpServerTest) {\n\tOrts::config config;\n\tconfig.model_bin_getter = test_model_bin_getter;\n\n\tboost::asio::io_context io_context;\n\tOrts::onnx::session_manager manager(config.model_bin_getter, config.num_threads);\n\tOrts::transport::tcp::tcp_server server(io_context, config, manager);\n\tASSERT_GT(server.port(), 0);\n\n\tbool running = true;\n\tstd::thread server_thread([&io_context, &running]() { test_server_run(io_context, &running); });\n\n\tTIME_MEASURE_INIT\n\n\t{ // API: Raise error\n\t\tTIME_MEASURE_START\n\t\tauto res_json = tcp_request(server.port(), -1, \"\");\n\t\tTIME_MEASURE_STOP\n\t\tstd::cout << \"API: Raise error\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_TRUE(res_json.contains(\"error\"));\n\t\tASSERT_EQ(res_json[\"error\"], \"Invalid task type\");\n\t}\n\n\t{ // API: Create session\n\t\tjson body = json::parse(R\"({\"model\":\"sample\",\"version\":\"1\"})\");\n\t\tTIME_MEASURE_START\n\t\tauto res_json = tcp_request(server.port(), Orts::task::type::CREATE_SESSION, body);\n\t\tTIME_MEASURE_STOP\n\t\tstd::cout << \"API: Create session\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json[\"model\"], \"sample\");\n\t\tASSERT_EQ(res_json[\"version\"], \"1\");\n\t}\n\n\t{ // API: Get session\n\t\tjson body = json::parse(R\"({\"model\":\"sample\",\"version\":\"1\"})\");\n\t\tTIME_MEASURE_START\n\t\tauto res_json = tcp_request(server.port(), Orts::task::type::GET_SESSION, body);\n\t\tTIME_MEASURE_STOP\n\t\tstd::cout << \"API: Get session\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json[\"model\"], \"sample\");\n\t\tASSERT_EQ(res_json[\"version\"], \"1\");\n\t}\n\n\t{ // API: Create session2\n\t\tjson body = json::parse(R\"({\"model\":\"sample\",\"version\":\"path\"})\");\n\t\tbody[\"option\"][\"path\"] = model2_path.string();\n\t\tTIME_MEASURE_START\n\t\tauto res_json = tcp_request(server.port(), Orts::task::type::CREATE_SESSION, body);\n\t\tTIME_MEASURE_STOP\n\t\tstd::cout << \"API: Create session\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json[\"model\"], \"sample\");\n\t\tASSERT_EQ(res_json[\"version\"], \"path\");\n\t}\n\n\t{ // API: Get session\n\t\tjson body = json::parse(R\"({\"model\":\"sample\",\"version\":\"path\"})\");\n\t\tTIME_MEASURE_START\n\t\tauto res_json = tcp_request(server.port(), Orts::task::type::GET_SESSION, body);\n\t\tTIME_MEASURE_STOP\n\t\tstd::cout << \"API: Get session\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json[\"model\"], \"sample\");\n\t\tASSERT_EQ(res_json[\"version\"], \"path\");\n\t}\n\n\t{ // API: List session\n\t\tTIME_MEASURE_START\n\t\tauto res_json = tcp_request(server.port(), Orts::task::type::LIST_SESSION, \"\");\n\t\tTIME_MEASURE_STOP\n\t\tstd::cout << \"API: List sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json.size(), 2);\n\t\tASSERT_EQ(res_json[0][\"model\"], \"sample\");\n\t\tASSERT_EQ(res_json[0][\"version\"], \"1\");\n\t}\n\n\t{ // API: Execute session\n\t\tauto input = json::parse(R\"({\"model\":\"sample\",\"version\":\"1\",\"data\":{\"x\":[[1]],\"y\":[[2]],\"z\":[[3]]}})\");\n\t\tTIME_MEASURE_START\n\t\tauto res_json = tcp_request(server.port(), Orts::task::type::EXECUTE_SESSION, input);\n\t\tTIME_MEASURE_STOP\n\t\tstd::cout << \"API: Execute sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_TRUE(res_json.contains(\"output\"));\n\t\tASSERT_EQ(res_json[\"output\"].size(), 1);\n\t\tASSERT_GT(res_json[\"output\"][0], 0);\n\t}\n\n\t{ // API: Destroy session\n\t\tjson body = json::parse(R\"({\"model\":\"sample\",\"version\":\"1\"})\");\n\t\tTIME_MEASURE_START\n\t\tauto res_json = tcp_request(server.port(), Orts::task::type::DESTROY_SESSION, body);\n\t\tTIME_MEASURE_STOP\n\t\tstd::cout << \"API: Destroy sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_TRUE(res_json);\n\t}\n\n\t{ // API: List session\n\t\tTIME_MEASURE_START\n\t\tauto res_json = tcp_request(server.port(), Orts::task::type::LIST_SESSION, \"\");\n\t\tTIME_MEASURE_STOP\n\t\tstd::cout << \"API: List sessions\\n\" << res_json.dump(2) << \"\\n\";\n\t\tASSERT_EQ(res_json.size(), 1);\n\t}\n\n\trunning = false;\n\tserver_thread.join();\n}\n"
  },
  {
    "path": "src/test/test_common.hpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/04.\n//\n\n#ifndef ONNX_RUNTIME_SERVER_TEST_COMMON_HPP\n#define ONNX_RUNTIME_SERVER_TEST_COMMON_HPP\n\n#include <boost/filesystem.hpp>\n#include <fstream>\n#include <sstream>\n\n#include <gtest/gtest.h>\n\n#include \"../standalone/model_bin_getter.hpp\"\n\nboost::filesystem::path current_file_path(__FILE__);\nboost::filesystem::path current_file_dir = current_file_path.parent_path();\nboost::filesystem::path root_dir = current_file_dir.parent_path().parent_path().parent_path().parent_path();\nboost::filesystem::path test_dir = root_dir / \"test\";\nboost::filesystem::path model_root = test_dir / \"fixture\";\n\nauto model1_path = model_root / \"sample\" / \"1\" / \"model.onnx\";\nauto model2_path = model_root / \"sample\" / \"2\" / \"model.onnx\";\n\nstd::string test_model_bin_getter(const std::string &model_name, const std::string &model_version) {\n\treturn onnxruntime_server::get_model_bin(model_root.string(), model_name, model_version);\n}\n\nvoid test_server_run(boost::asio::io_context &io_context, bool *running) {\n\tauto timeout = std::chrono::milliseconds{500};\n\twhile (*running) {\n\t\tio_context.run_for(timeout);\n\t}\n}\n\n#define TIME_MEASURE_INIT auto start_time_point = std::chrono::high_resolution_clock::now();\n#define TIME_MEASURE_START start_time_point = std::chrono::high_resolution_clock::now();\n#define TIME_MEASURE_STOP                                                                                              \\\n\t{                                                                                                                  \\\n\t\tauto end_time_point = std::chrono::high_resolution_clock::now();                                               \\\n\t\tauto duration = std::chrono::duration_cast<std::chrono::microseconds>(end_time_point - start_time_point);      \\\n\t\tstd::cout << \"Time taken: \" << duration.count() << \" microseconds\" << std::endl;                               \\\n\t}\n\n#endif // ONNX_RUNTIME_SERVER_TEST_COMMON_HPP\n"
  },
  {
    "path": "src/test/test_lib_version.cpp",
    "content": "//\n// Created by kibae on 24. 4. 20.\n//\n\n#include \"../onnxruntime_server.hpp\"\n#include \"./test_common.hpp\"\n\nTEST(test_lib_version, LibVersion) {\n\tEXPECT_EQ(onnxruntime_server::onnx::version(), \"1.26.0\");\n}\n"
  },
  {
    "path": "src/test/unit/unit_test_context.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/02.\n//\n#include \"../../onnxruntime_server.hpp\"\n#include \"../test_common.hpp\"\n\nTEST(test_onnxruntime_server_context, SimpleModelTest) {\n\tOrts::onnx::session_key key(\"sample\", \"1\");\n\tauto session = std::make_shared<Orts::onnx::session>(key, model1_path.string());\n\n\tOrts::onnx::execution::context ctx(session, R\"({\"x\":[[1]],\"y\":[[2]],\"z\":[[3]]})\");\n\n\tTIME_MEASURE_INIT\n\tTIME_MEASURE_START\n\tauto result = ctx.run();\n\tTIME_MEASURE_STOP\n\tauto json = ctx.tensors_to_json(result);\n\tstd::cout << json.dump(4) << \"\\n\";\n\n\tASSERT_TRUE(json.contains(\"output\"));\n\tASSERT_EQ(json[\"output\"].size(), 1);\n\tASSERT_GT(json[\"output\"][0], 0);\n}\n\nTEST(test_onnxruntime_server_context, SimpleModelBatchTest) {\n\tOrts::onnx::session_key key(\"sample\", \"1\");\n\tauto session = std::make_shared<Orts::onnx::session>(key, model1_path.string());\n\n\tOrts::onnx::execution::context ctx(session, R\"({\"x\":[[1],[2],[3]],\"y\":[[2],[3],[4]],\"z\":[[3],[4],[5]]})\");\n\n\tTIME_MEASURE_INIT\n\tTIME_MEASURE_START\n\tauto result = ctx.run();\n\tTIME_MEASURE_STOP\n\tauto json = ctx.tensors_to_json(result);\n\tstd::cout << json.dump(4) << \"\\n\";\n\n\tASSERT_TRUE(json.contains(\"output\"));\n\tASSERT_EQ(json[\"output\"].size(), 3);\n\tASSERT_GT(json[\"output\"][0], 0);\n}\n\nTEST(test_onnxruntime_server_context, SimpleModelWithShapeOption) {\n\tOrts::onnx::session_key key(\"sample\", \"1\");\n\tauto session = std::make_shared<Orts::onnx::session>(\n\t\tkey, model1_path.string(), R\"({\"input_shape\":{\"x\":[-1,1],\"y\":[3,1],\"z\":[3,1]}})\"_json\n\t);\n\n\tOrts::onnx::execution::context ctx(session, R\"({\"x\":[[1],[2],[3]],\"y\":[[2],[3],[4]],\"z\":[[3],[4],[5]]})\");\n\n\tTIME_MEASURE_INIT\n\tTIME_MEASURE_START\n\tauto result = ctx.run();\n\tTIME_MEASURE_STOP\n\tauto json = ctx.tensors_to_json(result);\n\tstd::cout << json.dump(4) << \"\\n\";\n\n\tASSERT_TRUE(json.contains(\"output\"));\n\tASSERT_EQ(json[\"output\"].size(), 3);\n\tASSERT_GT(json[\"output\"][0], 0);\n}\n\nTEST(test_onnxruntime_server_context, BertSquadModelTest) {\n\tOrts::onnx::session_key key(\"sample\", \"2\");\n\tauto session = std::make_shared<Orts::onnx::session>(key, model2_path.string());\n\n\tstd::cout << session->to_json().dump(2) << \"\\n\";\n\n\tOrts::onnx::execution::context ctx(session, R\"({\n\t\t\"input_ids\": [\n\t\t\t[101, 11834, 21600, 2102, 9005, 12098, 8566, 5740, 6853, 1999, 1996, 2806, 1997, 15262, 19699, 14663, 1005, 1055, 3203, 8447, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n\t\t\t[101, 3795, 3361, 3422, 16168, 19428, 1997, 1520, 2582, 7860, 1998, 28215, 1521, 3805, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n\t\t\t[101, 2054, 4511, 2323, 1045, 3288, 2000, 1037, 8179, 2283, 1029, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n\t\t],\n\t\t\"onnx::Equal_1\": [\n\t\t\t[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n\t\t\t[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n\t\t\t[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n\t\t]\n\t})\");\n\n\tTIME_MEASURE_INIT\n\tTIME_MEASURE_START\n\tauto result = ctx.run();\n\tTIME_MEASURE_STOP\n\tauto json = ctx.tensors_to_json(result);\n\tstd::cout << json.dump(4) << \"\\n\";\n\tASSERT_EQ(json[\"output\"].size(), 3);\n}\n"
  },
  {
    "path": "src/test/unit/unit_test_context_cuda.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/02.\n//\n#include \"../../onnxruntime_server.hpp\"\n#include \"../test_common.hpp\"\n\n// End-to-end smoke test: build a session on the CUDA EP with the simplest \"cuda\": true input,\n// run the BERT SQuAD sample model, and assert the output tensor shape.\nTEST(test_onnxruntime_server_context_cuda, BertSquadModelTest) {\n\tOrts::onnx::session_key key(\"sample\", \"2\");\n\tauto session = std::make_shared<Orts::onnx::session>(key, model2_path.string(), json::parse(R\"({\"cuda\": true})\"));\n\n\tstd::cout << session->to_json().dump(2) << \"\\n\";\n\n\tOrts::onnx::execution::context ctx(session, R\"({\n\t\t\"input_ids\": [\n\t\t\t[101, 11834, 21600, 2102, 9005, 12098, 8566, 5740, 6853, 1999, 1996, 2806, 1997, 15262, 19699, 14663, 1005, 1055, 3203, 8447, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n\t\t\t[101, 3795, 3361, 3422, 16168, 19428, 1997, 1520, 2582, 7860, 1998, 28215, 1521, 3805, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n\t\t\t[101, 2054, 4511, 2323, 1045, 3288, 2000, 1037, 8179, 2283, 1029, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n\t\t],\n\t\t\"onnx::Equal_1\": [\n\t\t\t[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n\t\t\t[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n\t\t\t[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n\t\t]\n\t})\");\n\n\tTIME_MEASURE_INIT\n\tTIME_MEASURE_START\n\tauto result = ctx.run();\n\tTIME_MEASURE_STOP\n\tauto json = ctx.tensors_to_json(result);\n\tstd::cout << json.dump(4) << \"\\n\";\n\tASSERT_EQ(json[\"output\"].size(), 3);\n}\n\n// CUDA EP V2 options passed as a \"cuda\" object are forwarded to ORT in a single batched\n// UpdateCUDAProviderOptions call (ORT silently resets sibling keys when called per-key, so a\n// single batched call is the only safe way). The echoed value comes from\n// GetCUDAProviderOptionsAsString readback, i.e. what ORT actually stored. Every supplied key\n// that ORT accepted should round-trip; if ORT had rejected any of them the whole session\n// construction would have thrown rather than silently returning a partial echo.\nTEST(test_onnxruntime_server_context_cuda, CudaObjectOptionsEcho) {\n\tOrts::onnx::session_key key(\"sample\", \"2\");\n\tauto session = std::make_shared<Orts::onnx::session>(\n\t\tkey, model2_path.string(),\n\t\tR\"({\n\t\t\t\"cuda\": {\n\t\t\t\t\"device_id\": 0,\n\t\t\t\t\"gpu_mem_limit\": 2147483648,\n\t\t\t\t\"arena_extend_strategy\": \"kNextPowerOfTwo\",\n\t\t\t\t\"cudnn_conv_algo_search\": \"HEURISTIC\"\n\t\t\t}\n\t\t})\"_json\n\t);\n\tauto j = session->to_json();\n\tASSERT_TRUE(j[\"option\"][\"cuda\"].is_object());\n\tauto cu = j[\"option\"][\"cuda\"];\n\n\tASSERT_EQ(cu[\"device_id\"], 0);\n\tASSERT_EQ(cu[\"gpu_mem_limit\"], 2147483648);\n\tASSERT_EQ(cu[\"arena_extend_strategy\"], \"kNextPowerOfTwo\");\n\tASSERT_EQ(cu[\"cudnn_conv_algo_search\"], \"HEURISTIC\");\n}\n\n// An unknown CUDA option key (or one ORT cannot parse) must abort session construction with a\n// clear error rather than silently producing a partial echo. This is the natural consequence of\n// the batched-update strategy and is the contract callers can rely on.\nTEST(test_onnxruntime_server_context_cuda, CudaObjectRejectsUnknownKey) {\n\tOrts::onnx::session_key key(\"sample\", \"2\");\n\tEXPECT_ANY_THROW(\n\t\tauto session = std::make_shared<Orts::onnx::session>(\n\t\t\tkey, model2_path.string(),\n\t\t\tR\"({\"cuda\": {\"device_id\": 0, \"totally_not_a_real_cuda_option\": \"xyz\"}})\"_json\n\t\t);\n\t);\n}\n\n// Backward compatibility: the legacy scalar shortcuts (\"cuda\": true and \"cuda\": <int device_id>)\n// must keep working under the V2 EP path and still echo as a normalized object with device_id.\nTEST(test_onnxruntime_server_context_cuda, CudaScalarShortcutStillWorks) {\n\t// Backward compat: cuda=true (boolean) and cuda=<int device_id> must keep working\n\tOrts::onnx::session_key key(\"sample\", \"2\");\n\tauto session_bool = std::make_shared<Orts::onnx::session>(\n\t\tkey, model2_path.string(), R\"({\"cuda\": true})\"_json\n\t);\n\tauto j_bool = session_bool->to_json();\n\tASSERT_TRUE(j_bool[\"option\"][\"cuda\"].is_object());\n\tASSERT_EQ(j_bool[\"option\"][\"cuda\"][\"device_id\"], 0);\n}\n"
  },
  {
    "path": "src/test/unit/unit_test_session.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/02.\n//\n#include \"../../onnxruntime_server.hpp\"\n#include \"../test_common.hpp\"\n\n// input_shape / output_shape options must override the model's dynamic dimensions with the\n// supplied static values, and any shape whose rank does not match the model's must be rejected.\nTEST(unit_test_session, SesionWithShapeOption) {\n\tOrts::onnx::session_key key(\"sample\", \"1\");\n\tconst auto session1 = std::make_shared<Orts::onnx::session>(key, model1_path.string());\n\tASSERT_EQ(session1->inputs().size(), 3);\n\tASSERT_EQ(session1->inputs()[0].shape.size(), 2);\n\tASSERT_EQ(session1->inputs()[0].shape[0], -1);\n\tASSERT_EQ(session1->inputs()[0].shape[1], 1);\n\n\tconst auto session2 = std::make_shared<Orts::onnx::session>(\n\t\tkey, model1_path.string(),\n\t\tR\"({\"input_shape\":{\"x\":[1,1],\"y\":[2,1],\"z\":[3,1]}, \"output_shape\":{\"output\":[3,1]}})\"_json\n\t);\n\tstd::cout << \"session2: \" << session2->to_json() << \"\\n\";\n\n\tASSERT_EQ(session2->inputs().size(), 3);\n\tASSERT_EQ(session2->inputs()[0].shape.size(), 2);\n\tfor (const auto &input : session2->inputs()) {\n\t\tif (input.name == \"x\") {\n\t\t\tASSERT_EQ(input.shape[0], 1);\n\t\t\tASSERT_EQ(input.shape[1], 1);\n\t\t} else if (input.name == \"y\") {\n\t\t\tASSERT_EQ(input.shape[0], 2);\n\t\t\tASSERT_EQ(input.shape[1], 1);\n\t\t} else if (input.name == \"z\") {\n\t\t\tASSERT_EQ(input.shape[0], 3);\n\t\t\tASSERT_EQ(input.shape[1], 1);\n\t\t}\n\t}\n\tASSERT_EQ(session2->outputs().size(), 1);\n\tASSERT_EQ(session2->outputs()[0].shape.size(), 2);\n\tASSERT_EQ(session2->outputs()[0].shape[0], 3);\n\tASSERT_EQ(session2->outputs()[0].shape[1], 1);\n\n\tEXPECT_ANY_THROW(\n\t\tconst auto session3 = std::make_shared<Orts::onnx::session>(\n\t\t\tkey, model1_path.string(),\n\t\t\tR\"({\"input_shape\":{\"x\":[1,-2,1],\"y\":[2,1],\"z\":[3,1]}, \"output_shape\":{\"output\":[3,1]}})\"_json\n\t\t);\n\t);\n}\n\n// Each key in the session_options group (threads, execution mode, graph optimization level,\n// memory, logging, config_entries) must be applied to onnxruntime's SessionOptions and echoed\n// back in option.session_options in a normalized form.\nTEST(unit_test_session, SessionWithSessionOptions) {\n\tOrts::onnx::session_key key(\"sample\", \"1\");\n\tauto session = std::make_shared<Orts::onnx::session>(\n\t\tkey, model1_path.string(),\n\t\tR\"({\n\t\t\t\"session_options\": {\n\t\t\t\t\"intra_op_num_threads\": 2,\n\t\t\t\t\"inter_op_num_threads\": 1,\n\t\t\t\t\"execution_mode\": \"sequential\",\n\t\t\t\t\"graph_optimization_level\": \"all\",\n\t\t\t\t\"enable_cpu_mem_arena\": false,\n\t\t\t\t\"enable_mem_pattern\": true,\n\t\t\t\t\"logid\": \"test-session\",\n\t\t\t\t\"log_severity_level\": 3,\n\t\t\t\t\"config_entries\": {\n\t\t\t\t\t\"session.disable_prepacking\": \"1\"\n\t\t\t\t}\n\t\t\t}\n\t\t})\"_json\n\t);\n\tauto j = session->to_json();\n\tASSERT_TRUE(j[\"option\"].contains(\"session_options\"));\n\tauto so = j[\"option\"][\"session_options\"];\n\tASSERT_EQ(so[\"intra_op_num_threads\"], 2);\n\tASSERT_EQ(so[\"inter_op_num_threads\"], 1);\n\tASSERT_EQ(so[\"execution_mode\"], \"sequential\");\n\tASSERT_EQ(so[\"graph_optimization_level\"], \"all\");\n\tASSERT_EQ(so[\"enable_cpu_mem_arena\"], false);\n\tASSERT_EQ(so[\"enable_mem_pattern\"], true);\n\tASSERT_EQ(so[\"logid\"], \"test-session\");\n\tASSERT_EQ(so[\"log_severity_level\"], 3);\n\tASSERT_EQ(so[\"config_entries\"][\"session.disable_prepacking\"], \"1\");\n}\n\n// Type-mismatched values (e.g. string for an int field), enum strings outside our mapping, and\n// keys we do not pass to ORT at all must be silently dropped from the echo. Sibling entries that\n// pass our shape check and our enum mapping are still applied and echoed. Note that ORT's own\n// validity checks (e.g. allowed numeric ranges) are intentionally not duplicated here; we only\n// validate JSON shape and our enum string -> ORT enum mapping.\nTEST(unit_test_session, SessionOptionsIgnoresInvalidEntries) {\n\t// Bad types or unknown keys under session_options are silently dropped; valid ones still apply.\n\tOrts::onnx::session_key key(\"sample\", \"1\");\n\tauto session = std::make_shared<Orts::onnx::session>(\n\t\tkey, model1_path.string(),\n\t\tR\"({\n\t\t\t\"session_options\": {\n\t\t\t\t\"intra_op_num_threads\": \"not-a-number\",\n\t\t\t\t\"graph_optimization_level\": \"absurd-level\",\n\t\t\t\t\"execution_mode\": \"weird\",\n\t\t\t\t\"logid\": \"still-applies\",\n\t\t\t\t\"totally_unknown_key\": \"ignore-me\"\n\t\t\t}\n\t\t})\"_json\n\t);\n\tauto j = session->to_json();\n\tASSERT_TRUE(j[\"option\"].contains(\"session_options\"));\n\tauto so = j[\"option\"][\"session_options\"];\n\tASSERT_FALSE(so.contains(\"intra_op_num_threads\"));\n\tASSERT_FALSE(so.contains(\"graph_optimization_level\"));\n\tASSERT_FALSE(so.contains(\"execution_mode\"));\n\tASSERT_FALSE(so.contains(\"totally_unknown_key\"));\n\tASSERT_EQ(so[\"logid\"], \"still-applies\");\n}\n\n// AddSessionConfigEntry round-trips through GetSessionConfigEntry. The echo therefore reflects\n// what ORT actually stored, which proves the bool/int -> string conversion the server performs\n// before forwarding to ORT (true -> \"1\", 42 -> \"42\") matches what ORT will return on lookup.\nTEST(unit_test_session, SessionOptionsConfigEntriesReadback) {\n\tOrts::onnx::session_key key(\"sample\", \"1\");\n\tauto session = std::make_shared<Orts::onnx::session>(\n\t\tkey, model1_path.string(),\n\t\tR\"({\n\t\t\t\"session_options\": {\n\t\t\t\t\"config_entries\": {\n\t\t\t\t\t\"key.string\": \"hello\",\n\t\t\t\t\t\"key.bool\": true,\n\t\t\t\t\t\"key.int\": 42\n\t\t\t\t}\n\t\t\t}\n\t\t})\"_json\n\t);\n\tauto j = session->to_json();\n\tauto ce = j[\"option\"][\"session_options\"][\"config_entries\"];\n\tASSERT_EQ(ce[\"key.string\"], \"hello\");\n\tASSERT_EQ(ce[\"key.bool\"], \"1\");\n\tASSERT_EQ(ce[\"key.int\"], \"42\");\n}\n\n// free_dimension_overrides has no readback API; AddFreeDimensionOverrideByName accepts any name\n// without raising, so the echo just confirms what we asked ORT to store. Whether a name actually\n// matches a model dimension is decided later at session creation time and is ORT's concern, not\n// ours. Non-integer values are dropped at our shape-check stage.\nTEST(unit_test_session, SessionOptionsFreeDimensionOverrides) {\n\tOrts::onnx::session_key key(\"sample\", \"1\");\n\tauto session = std::make_shared<Orts::onnx::session>(\n\t\tkey, model1_path.string(),\n\t\tR\"({\n\t\t\t\"session_options\": {\n\t\t\t\t\"free_dimension_overrides\": {\n\t\t\t\t\t\"batch\": 1,\n\t\t\t\t\t\"seq\": 128,\n\t\t\t\t\t\"bad\": \"not-an-int\"\n\t\t\t\t}\n\t\t\t}\n\t\t})\"_json\n\t);\n\tauto j = session->to_json();\n\tASSERT_TRUE(j[\"option\"][\"session_options\"].contains(\"free_dimension_overrides\"));\n\tauto fd = j[\"option\"][\"session_options\"][\"free_dimension_overrides\"];\n\tASSERT_EQ(fd[\"batch\"], 1);\n\tASSERT_EQ(fd[\"seq\"], 128);\n\tASSERT_FALSE(fd.contains(\"bad\"));\n}\n\n// session::collect_extensions normalizes both the new \"extensions\" array and the legacy\n// \"ortextensions_path\" string into a single ordered, deduplicated array of paths in the order\n// they would be registered. Pure-function checks here cover what session construction would\n// actually attempt to register, without needing a loadable shared library on disk.\nTEST(unit_test_session, CollectExtensionsNormalization) {\n\tusing S = Orts::onnx::session;\n\n\t// Empty / missing input yields an empty array.\n\tASSERT_EQ(S::collect_extensions(json::object()), json::array());\n\tASSERT_EQ(S::collect_extensions(R\"({\"extensions\": []})\"_json), json::array());\n\n\t// Bare extensions array, single element.\n\tauto only_array = S::collect_extensions(R\"({\"extensions\": [\"/lib1.so\"]})\"_json);\n\tASSERT_EQ(only_array, json::array({\"/lib1.so\"}));\n\n\t// Multiple entries preserve input order.\n\tauto ordered = S::collect_extensions(R\"({\"extensions\": [\"/lib1.so\", \"/lib2.so\", \"/lib3.so\"]})\"_json);\n\tASSERT_EQ(ordered, json::array({\"/lib1.so\", \"/lib2.so\", \"/lib3.so\"}));\n\n\t// Duplicates within the extensions array are dropped, first occurrence wins.\n\tauto deduped = S::collect_extensions(R\"({\"extensions\": [\"/lib.so\", \"/lib.so\", \"/lib.so\"]})\"_json);\n\tASSERT_EQ(deduped, json::array({\"/lib.so\"}));\n\n\t// Legacy ortextensions_path alone is normalized into the extensions array.\n\tauto only_legacy = S::collect_extensions(R\"({\"ortextensions_path\": \"/legacy.so\"})\"_json);\n\tASSERT_EQ(only_legacy, json::array({\"/legacy.so\"}));\n\n\t// Legacy is appended after the extensions array, with dedupe across both sources.\n\tauto mixed = S::collect_extensions(\n\t\tR\"({\"extensions\": [\"/a.so\", \"/b.so\"], \"ortextensions_path\": \"/a.so\"})\"_json\n\t);\n\tASSERT_EQ(mixed, json::array({\"/a.so\", \"/b.so\"}));\n\n\t// Legacy path that is not in the extensions array is appended at the end.\n\tauto mixed_distinct = S::collect_extensions(\n\t\tR\"({\"extensions\": [\"/a.so\"], \"ortextensions_path\": \"/b.so\"})\"_json\n\t);\n\tASSERT_EQ(mixed_distinct, json::array({\"/a.so\", \"/b.so\"}));\n\n\t// Non-string entries inside the extensions array are silently ignored.\n\tauto with_garbage = S::collect_extensions(\n\t\tR\"({\"extensions\": [\"/a.so\", 42, null, {\"x\":1}, \"/b.so\"]})\"_json\n\t);\n\tASSERT_EQ(with_garbage, json::array({\"/a.so\", \"/b.so\"}));\n\n\t// extensions field with a wrong type is treated as if absent.\n\tASSERT_EQ(S::collect_extensions(R\"({\"extensions\": \"/lib.so\"})\"_json), json::array());\n\tASSERT_EQ(S::collect_extensions(R\"({\"extensions\": 123})\"_json), json::array());\n\n\t// ortextensions_path with a wrong type is also ignored.\n\tASSERT_EQ(S::collect_extensions(R\"({\"ortextensions_path\": 123})\"_json), json::array());\n\n\t// Non-object option input does not crash and yields an empty array.\n\tASSERT_EQ(S::collect_extensions(json(\"/raw-string\")), json::array());\n\tASSERT_EQ(S::collect_extensions(json(nullptr)), json::array());\n}\n\n// At session construction time, both the new \"extensions\" array and the legacy \"ortextensions_path\"\n// string must reach the registration path: an unloadable library must surface as a clear\n// runtime_error instead of being silently dropped. (The actual successful registration path\n// requires a real onnxruntime_extensions shared library on disk and is not exercised here;\n// the normalization that drives it is fully covered by the CollectExtensionsNormalization test\n// above and by the parse-level tests below.)\nTEST(unit_test_session, ExtensionsRegistrationFailsLoudly) {\n\tOrts::onnx::session_key key(\"sample\", \"1\");\n\tEXPECT_ANY_THROW(\n\t\tauto session = std::make_shared<Orts::onnx::session>(\n\t\t\tkey, model1_path.string(),\n\t\t\tR\"({\"ortextensions_path\": \"/nonexistent/path/to/lib.so\"})\"_json\n\t\t);\n\t);\n\tEXPECT_ANY_THROW(\n\t\tauto session = std::make_shared<Orts::onnx::session>(\n\t\t\tkey, model1_path.string(),\n\t\t\tR\"({\"extensions\": [\"/nonexistent/path/to/lib.so\"]})\"_json\n\t\t);\n\t);\n}\n\n// Cover the option string grammar end-to-end: empty/whitespace input, malformed model keys that\n// must throw, well-formed lists with various spacing, the legacy scalar cuda shortcut, dotted\n// notation producing nested objects, repeated \"extensions\" keys accumulating into a deduped\n// array, the legacy ortextensions_path normalization, value type inference (bool/int/string),\n// pass-through of unknown keys, and lenient skipping of malformed option entries.\nTEST(unit_test_session_key, Parse) {\n\t// empty cases\n\tstd::string empty_cases[] = {\"\", \" \", \"\\n\", \"\\r\\n\", \"\\n \\n\", \" \\r \\n \\r \\n \"};\n\tfor (const auto &empty_case : empty_cases) {\n\t\t// std::cout << \"* empty_case: \" << empty_case << \"\\n\";\n\t\tASSERT_EQ(Orts::onnx::session_key_with_option::parse(empty_case).size(), 0);\n\t}\n\n\t// error cases\n\tstd::string fail_cases[] = {\n\t\t\" model: version\", \" model :version\", \"model:ver\\bsion\\r\\n\", \"model:version(cuda=true\", \"model:version (cuda=1)\"\n\t};\n\tfor (const auto &fail_case : fail_cases) {\n\t\t// std::cout << \"* fail_case: \" << fail_case << \"\\n\";\n\t\tASSERT_THROW(Orts::onnx::session_key_with_option::parse(fail_case), std::runtime_error);\n\t}\n\n\t// success cases\n\tstd::unordered_map<std::string, size_t> success_cases = {\n\t\t{\"model:version \\bmodel:version\", 2},\n\t\t{\"model:version(cuda =\\n1, cuda =2)\", 1},\n\t\t{\"model:version(cuda =\\n1)\\tmodel:version\", 2},\n\t\t{\"model:version model:version model:version(cuda= 1)\", 3},\n\t\t{\"  model:version\", 1},\n\t\t{\" model:version  model:version  \", 2},\n\t\t{\"   model:version   model:version(cuda =\\r\\n1, cuda =\\r\\n2) model:version \", 3},\n\t\t{\"model:version \", 1},\n\t\t{\" model:version \\n model:version\", 2},\n\t\t{\" \\r \\n model:version \\n model:version\", 2},\n\t\t{\"   model:version \\r \\n  model:version model:version \", 3},\n\t};\n\tfor (const auto &success_case : success_cases) {\n\t\t// std::cout << \"* success_case: \" << success_case.first << \"\\n\";\n\t\tASSERT_EQ(Orts::onnx::session_key_with_option::parse(success_case.first).size(), success_case.second);\n\t}\n\n\tauto parse_case1 = Orts::onnx::session_key_with_option::parse(\"model:version\");\n\tASSERT_FALSE(parse_case1[0].option.contains(\"cuda\"));\n\n\tauto parse_case2 = Orts::onnx::session_key_with_option::parse(\"model:version(cuda=1)\");\n\tASSERT_EQ(parse_case2[0].option[\"cuda\"], 1);\n\n\tauto parse_case3 = Orts::onnx::session_key_with_option::parse(\"model:version(cuda=1, cuda=2)\");\n\tASSERT_EQ(parse_case3[0].option[\"cuda\"], 2);\n\n\tauto parse_case4 = Orts::onnx::session_key_with_option::parse(\"model:version(cuda=true)\");\n\tASSERT_TRUE(parse_case4[0].option[\"cuda\"]);\n\n\t// dotted notation produces nested objects\n\tauto parse_dotted_cuda = Orts::onnx::session_key_with_option::parse(\"model:version(cuda.device_id=0)\");\n\tASSERT_TRUE(parse_dotted_cuda[0].option[\"cuda\"].is_object());\n\tASSERT_EQ(parse_dotted_cuda[0].option[\"cuda\"][\"device_id\"], 0);\n\n\tauto parse_dotted_session = Orts::onnx::session_key_with_option::parse(\n\t\t\"model:version(session_options.intra_op_num_threads=4, session_options.graph_optimization_level=all)\"\n\t);\n\tASSERT_TRUE(parse_dotted_session[0].option[\"session_options\"].is_object());\n\tASSERT_EQ(parse_dotted_session[0].option[\"session_options\"][\"intra_op_num_threads\"], 4);\n\tASSERT_EQ(parse_dotted_session[0].option[\"session_options\"][\"graph_optimization_level\"], \"all\");\n\n\t// scalar followed by dotted on the same group: dotted wins (scalar discarded)\n\tauto parse_scalar_then_dotted = Orts::onnx::session_key_with_option::parse(\n\t\t\"model:version(cuda=true, cuda.device_id=1)\"\n\t);\n\tASSERT_TRUE(parse_scalar_then_dotted[0].option[\"cuda\"].is_object());\n\tASSERT_EQ(parse_scalar_then_dotted[0].option[\"cuda\"][\"device_id\"], 1);\n\n\t// extensions key accumulates as an array\n\tauto parse_extensions = Orts::onnx::session_key_with_option::parse(\n\t\t\"model:version(extensions=/lib1.so, extensions=/lib2.so)\"\n\t);\n\tASSERT_TRUE(parse_extensions[0].option[\"extensions\"].is_array());\n\tASSERT_EQ(parse_extensions[0].option[\"extensions\"].size(), 2);\n\tASSERT_EQ(parse_extensions[0].option[\"extensions\"][0], \"/lib1.so\");\n\tASSERT_EQ(parse_extensions[0].option[\"extensions\"][1], \"/lib2.so\");\n\n\t// extensions dedupe\n\tauto parse_extensions_dedup = Orts::onnx::session_key_with_option::parse(\n\t\t\"model:version(extensions=/lib.so, extensions=/lib.so)\"\n\t);\n\tASSERT_EQ(parse_extensions_dedup[0].option[\"extensions\"].size(), 1);\n\n\t// legacy ortextensions_path is normalized into the extensions array\n\tauto parse_legacy_ext = Orts::onnx::session_key_with_option::parse(\n\t\t\"model:version(ortextensions_path=/usr/local/lib/libortextensions.so)\"\n\t);\n\tASSERT_FALSE(parse_legacy_ext[0].option.contains(\"ortextensions_path\"));\n\tASSERT_TRUE(parse_legacy_ext[0].option[\"extensions\"].is_array());\n\tASSERT_EQ(parse_legacy_ext[0].option[\"extensions\"].size(), 1);\n\tASSERT_EQ(parse_legacy_ext[0].option[\"extensions\"][0], \"/usr/local/lib/libortextensions.so\");\n\n\t// extensions + legacy ortextensions_path mixed, with dedupe\n\tauto parse_mixed_ext = Orts::onnx::session_key_with_option::parse(\n\t\t\"model:version(extensions=/a.so, ortextensions_path=/a.so, extensions=/b.so)\"\n\t);\n\tASSERT_EQ(parse_mixed_ext[0].option[\"extensions\"].size(), 2);\n\n\t// value type inference: bool, int, string\n\tauto parse_types = Orts::onnx::session_key_with_option::parse(\n\t\t\"model:version(session_options.enable_cpu_mem_arena=false, \"\n\t\t\"session_options.intra_op_num_threads=8, \"\n\t\t\"session_options.logid=my-model)\"\n\t);\n\tASSERT_EQ(parse_types[0].option[\"session_options\"][\"enable_cpu_mem_arena\"], false);\n\tASSERT_EQ(parse_types[0].option[\"session_options\"][\"intra_op_num_threads\"], 8);\n\tASSERT_EQ(parse_types[0].option[\"session_options\"][\"logid\"], \"my-model\");\n\n\t// unknown / unrecognized option keys pass through silently (caller decides what to do)\n\tauto parse_unknown = Orts::onnx::session_key_with_option::parse(\n\t\t\"model:version(some_unknown_key=hello, another.deep.key=42)\"\n\t);\n\tASSERT_EQ(parse_unknown[0].option[\"some_unknown_key\"], \"hello\");\n\tASSERT_EQ(parse_unknown[0].option[\"another\"][\"deep\"][\"key\"], 42);\n\n\t// malformed option entries inside parens are silently skipped, well-formed ones still apply\n\tauto parse_malformed_options = Orts::onnx::session_key_with_option::parse(\n\t\t\"model:version(=garbage, cuda=1, !!!, session_options.intra_op_num_threads=2)\"\n\t);\n\tASSERT_EQ(parse_malformed_options.size(), 1);\n\tASSERT_EQ(parse_malformed_options[0].option[\"cuda\"], 1);\n\tASSERT_EQ(parse_malformed_options[0].option[\"session_options\"][\"intra_op_num_threads\"], 2);\n}\n"
  },
  {
    "path": "src/thread_pool.hpp",
    "content": "#ifndef ONNX_RUNTIME_SERVER_THREAD_POOL_HPP\n#define ONNX_RUNTIME_SERVER_THREAD_POOL_HPP\n\n#include <iostream>\n#include <queue>\n#include <thread>\n\nnamespace onnxruntime_server {\n\tclass builtin_thread_pool {\n\t  public:\n\t\texplicit builtin_thread_pool(long threads) {\n\t\t\tfor (long i = 0; i < threads; ++i) {\n\t\t\t\tworkers.emplace_back([this] {\n\t\t\t\t\twhile (true) {\n\t\t\t\t\t\tstd::function<void()> task;\n\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstd::unique_lock<std::mutex> lock(this->queue_mutex);\n\t\t\t\t\t\t\tthis->condition.wait(lock, [this] { return this->stop || !this->tasks.empty(); });\n\n\t\t\t\t\t\t\tif (this->stop && this->tasks.empty()) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttask = std::move(this->tasks.front());\n\t\t\t\t\t\t\tthis->tasks.pop();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttask();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t~builtin_thread_pool() {\n\t\t\tstop = true;\n\t\t\tcondition.notify_all();\n\n\t\t\tfor (std::thread &worker : workers) {\n\t\t\t\tworker.join();\n\t\t\t}\n\t\t}\n\n\t\ttemplate <class F, class... Args>\n\t\tauto enqueue(F &&f, Args &&...args) -> std::future<typename std::result_of<F(Args...)>::type> {\n\t\t\tusing return_type = typename std::result_of<F(Args...)>::type;\n\n\t\t\tauto task = std::make_shared<std::packaged_task<return_type()>>(\n\t\t\t\tstd::bind(std::forward<F>(f), std::forward<Args>(args)...)\n\t\t\t);\n\n\t\t\tstd::future<return_type> result = task->get_future();\n\t\t\t{\n\t\t\t\tstd::unique_lock<std::mutex> lock(queue_mutex);\n\n\t\t\t\tif (stop)\n\t\t\t\t\tthrow std::runtime_error(\"enqueue on stopped ThreadPool\");\n\n\t\t\t\ttasks.emplace([task]() { (*task)(); });\n\t\t\t}\n\t\t\tcondition.notify_one();\n\t\t\treturn result;\n\t\t}\n\n\t\tvoid flush() {\n\t\t\tstd::unique_lock<std::mutex> lock(queue_mutex);\n\t\t\ttasks = std::queue<std::function<void()>>();\n\t\t}\n\n\t  protected:\n\t\tstd::vector<std::thread> workers;\n\t\tstd::queue<std::function<void()>> tasks;\n\n\t\tstd::mutex queue_mutex;\n\t\tstd::condition_variable condition;\n\t\tstd::atomic_bool stop = ATOMIC_VAR_INIT(false);\n\t};\n} // namespace onnxruntime_server\n\n#endif // ONNX_RUNTIME_SERVER_THREAD_POOL_HPP\n"
  },
  {
    "path": "src/transport/http/http_server.cpp",
    "content": "#include \"http_server.hpp\"\n\nonnxruntime_server::transport::http::http_server::http_server(\n\tboost::asio::io_context &io_context, const onnxruntime_server::config &config,\n\tonnxruntime_server::onnx::session_manager &onnx_session_manager\n)\n\t: server(io_context, onnx_session_manager, config.http_port, config.request_payload_limit),\n\t  swagger(config.swagger_url_path) {\n\tacceptor.set_option(boost::asio::socket_base::reuse_address(true));\n}\n\nvoid onnxruntime_server::transport::http::http_server::client_connected(asio::socket socket) {\n\thttp_session(std::move(socket), request_payload_limit()).run(get_onnx_session_manager(), swagger);\n\n\ttry {\n\t\tsocket.close();\n\t\tPLOG(L_INFO) << \"transport::http::http_server: worker killed\" << std::endl;\n\t} catch (std::exception &e) {\n\t\tPLOG(L_WARNING) << \"transport::http::http_server: socket close error \" << e.what() << std::endl;\n\t}\n}\n"
  },
  {
    "path": "src/transport/http/http_server.hpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/02.\n//\n\n#ifndef ONNX_RUNTIME_SERVER_HTTP_SERVER_HPP\n#define ONNX_RUNTIME_SERVER_HTTP_SERVER_HPP\n\n#include \"../../onnxruntime_server.hpp\"\n\n#include <regex>\n\n#define BOOST_ASIO_SEPARATE_COMPILATION\n#include <boost/asio.hpp>\n#include <boost/beast.hpp>\n#include <boost/beast/http.hpp>\n#ifdef HAS_OPENSSL\n#include <boost/beast/ssl.hpp>\n#endif\n\nnamespace beast = boost::beast;\nusing boost::system::error_code;\n\nnamespace onnxruntime_server::transport::http {\n\tclass swagger_serve {\n\t\tstd::string swagger_url_path;\n\t\tstd::shared_ptr<std::string> _cache_index_html = nullptr;\n\t\tstd::shared_ptr<std::string> _cache_openapi_yaml = nullptr;\n\n\t  public:\n\t\texplicit swagger_serve(const std::string &swagger_url_path);\n\n\t\t[[nodiscard]] bool is_swagger_url(const std::string &url) const;\n\t\tstd::shared_ptr<beast::http::response<beast::http::string_body>>\n\t\tget_response(const std::string &url, unsigned http_version);\n\t};\n\n\tclass http_session_base {\n\t  protected:\n\t\tstd::size_t body_limit;\n\t\tbeast::flat_buffer buffer;\n\n\t\tstd::shared_ptr<beast::http::response<beast::http::string_body>> handle_request(\n\t\t\tonnx::session_manager &session_manager, swagger_serve &swagger,\n\t\t\tbeast::http::request_parser<beast::http::string_body> &req_parser\n\t\t);\n\n\t\tstd::string _remote_endpoint;\n\n\t  private:\n\t\tonnxruntime_server::task::benchmark request_time;\n\n\t  public:\n\t\texplicit http_session_base(std::size_t body_limit);\n\n\t\tvoid run(onnx::session_manager &session_manager, swagger_serve &swagger);\n\t\tvirtual error_code do_read(beast::http::request_parser<beast::http::string_body> &req_parser) = 0;\n\t\tvirtual error_code do_write(std::shared_ptr<beast::http::response<beast::http::string_body>> msg) = 0;\n\t\tvirtual std::string get_remote_endpoint() = 0;\n\t};\n\n\tclass http_session : public http_session_base {\n\t  private:\n\t\tbeast::tcp_stream stream;\n\n\t\terror_code do_read(beast::http::request_parser<beast::http::string_body> &req_parser) override;\n\t\terror_code do_write(std::shared_ptr<beast::http::response<beast::http::string_body>> msg) override;\n\t\tstd::string get_remote_endpoint() override;\n\n\t  public:\n\t\thttp_session(asio::socket socket, size_t body_limit);\n\t};\n\n\tclass http_server : public server {\n\t  protected:\n\t\tvoid client_connected(asio::socket socket) override;\n\n\t  public:\n\t\tswagger_serve swagger;\n\n\t\thttp_server(\n\t\t\tboost::asio::io_context &io_context, const class config &config, onnx::session_manager &onnx_session_manager\n\t\t);\n\t};\n\n#ifdef HAS_OPENSSL\n\tclass https_session : public http_session_base {\n\t  private:\n\t\tboost::asio::ssl::stream<asio::socket> stream;\n\n\t\terror_code do_read(beast::http::request_parser<beast::http::string_body> &req_parser) override;\n\t\terror_code do_write(std::shared_ptr<beast::http::response<beast::http::string_body>> msg) override;\n\t\tstd::string get_remote_endpoint() override;\n\n\t  public:\n\t\thttps_session(asio::socket socket, boost::asio::ssl::context &ctx, size_t body_limit);\n\t};\n\n\tclass https_server : public server {\n\t  private:\n\t\tboost::asio::ssl::context ctx;\n\n\t  protected:\n\t\tvoid client_connected(asio::socket socket) override;\n\n\t  public:\n\t\tswagger_serve swagger;\n\n\t\thttps_server(\n\t\t\tboost::asio::io_context &io_context, const class config &config, onnx::session_manager &onnx_session_manager\n\t\t);\n\t};\n\n#endif\n} // namespace onnxruntime_server::transport::http\n\n#endif // ONNX_RUNTIME_SERVER_HTTP_SERVER_HPP\n"
  },
  {
    "path": "src/transport/http/http_session.cpp",
    "content": "#include \"http_server.hpp\"\n\nonnxruntime_server::transport::http::http_session::http_session(asio::socket socket, size_t body_limit)\n\t: http_session_base(body_limit), stream(std::move(socket)) {\n\tstream.expires_never();\n}\n\nerror_code onnxruntime_server::transport::http::http_session::do_read(\n\tbeast::http::request_parser<beast::http::string_body> &req_parser\n) {\n\tboost::system::error_code ec;\n\n\tbuffer.clear();\n\treq_parser.body_limit(body_limit);\n\n\tbeast::http::read(stream, buffer, req_parser, ec);\n\treturn ec;\n}\n\nboost::system::error_code onnxruntime_server::transport::http::http_session::do_write(\n\tstd::shared_ptr<beast::http::response<beast::http::string_body>> msg\n) {\n\tboost::system::error_code ec;\n\tbeast::http::write(stream, *msg, ec);\n\treturn ec;\n}\n\nstd::string onnxruntime_server::transport::http::http_session::get_remote_endpoint() {\n\tif (_remote_endpoint.empty())\n\t\t_remote_endpoint = stream.socket().remote_endpoint().address().to_string() + \":\" +\n\t\t\t\t\t\t   std::to_string(stream.socket().remote_endpoint().port());\n\n\treturn _remote_endpoint;\n}\n"
  },
  {
    "path": "src/transport/http/http_session_base.cpp",
    "content": "#include \"http_server.hpp\"\n\nonnxruntime_server::transport::http::http_session_base::http_session_base(std::size_t body_limit)\n\t: buffer(), body_limit(body_limit) {\n}\n\n#define CONTENT_TYPE_PLAIN_TEXT \"text/plain\"\n#define CONTENT_TYPE_JSON \"application/json\"\n\nvoid onnxruntime_server::transport::http::http_session_base::run(\n\tonnxruntime_server::onnx::session_manager &session_manager,\n\tonnxruntime_server::transport::http::swagger_serve &swagger\n) {\n\twhile (true) {\n\t\tbeast::http::request_parser<beast::http::string_body> req_parser;\n\t\tboost::system::error_code ec = do_read(req_parser);\n\t\tif (ec == beast::http::error::end_of_stream)\n\t\t\tbreak;\n\t\telse if (ec) {\n\t\t\tPLOG(L_WARNING) << get_remote_endpoint() << \" transport::http::do_read: \" << ec.message() << std::endl;\n\t\t\tbreak;\n\t\t}\n\n\t\tauto req = req_parser.get();\n\t\trequest_time.touch();\n\t\tauto res = handle_request(session_manager, swagger, req_parser);\n\t\tPLOG(L_INFO, \"ACCESS\") << get_remote_endpoint() << \" task: \" << req.method_string() << \" \" << req.target()\n\t\t\t\t\t\t\t   << \" status: \" << res->result_int() << \" duration: \" << request_time.get_duration()\n\t\t\t\t\t\t\t   << std::endl;\n\n\t\tec = do_write(res);\n\t\tif (ec) {\n\t\t\tPLOG(L_WARNING) << get_remote_endpoint() << \" transport::http::do_write: \" << ec.message() << std::endl;\n\t\t\tbreak;\n\t\t}\n\n\t\tif (!req.keep_alive())\n\t\t\tbreak;\n\t}\n}\n\nstd::shared_ptr<beast::http::response<beast::http::string_body>>\nonnxruntime_server::transport::http::http_session_base::handle_request(\n\tonnx::session_manager &session_manager, swagger_serve &swagger,\n\tbeast::http::request_parser<beast::http::string_body> &req_parser\n) {\n\tauto req = req_parser.get();\n\n\tauto const simple_response =\n\t\t[req](beast::http::status method, beast::string_view content_type, beast::string_view body) {\n\t\t\tauto res = std::make_shared<beast::http::response<beast::http::string_body>>(method, req.version());\n\t\t\tres->set(beast::http::field::content_type, content_type);\n\t\t\tres->keep_alive(req.keep_alive());\n\t\t\tres->body() = std::string(body);\n\t\t\tres->prepare_payload();\n\t\t\treturn res;\n\t\t};\n\n\ttry {\n\t\tauto target = std::string(req.target());\n\n\t\tstd::regex re(R\"(/api/sessions/([^/]+)/([^/]+))\");\n\t\tstd::smatch match;\n\t\tif ((req.method() == boost::beast::http::verb::get || req.method() == boost::beast::http::verb::post ||\n\t\t\t req.method() == boost::beast::http::verb::delete_) &&\n\t\t\tstd::regex_match(target, match, re) && match.size() > 1) {\n\t\t\tauto model = match[1].str();\n\t\t\tauto version = match[2].str();\n\n\t\t\t// API: Execute sessions\n\t\t\tif (req.method() == boost::beast::http::verb::post) {\n\t\t\t\tauto task = task::execute_session(session_manager, model, version, json::parse(req.body()));\n\t\t\t\tauto res = task.run();\n\t\t\t\treturn simple_response(beast::http::status::ok, CONTENT_TYPE_JSON, res.dump());\n\t\t\t}\n\n\t\t\t// API: Get sessions\n\t\t\tif (req.method() == boost::beast::http::verb::get) {\n\t\t\t\tauto task = task::get_session(session_manager, model, version);\n\t\t\t\tauto res = task.run();\n\t\t\t\treturn simple_response(beast::http::status::ok, CONTENT_TYPE_JSON, res.dump());\n\t\t\t}\n\n\t\t\t// API: Destroy sessions\n\t\t\tif (req.method() == boost::beast::http::verb::delete_) {\n\t\t\t\tauto task = task::destroy_session(session_manager, model, version);\n\t\t\t\tauto res = task.run();\n\t\t\t\treturn simple_response(beast::http::status::ok, CONTENT_TYPE_JSON, res.dump());\n\t\t\t}\n\t\t}\n\n\t\tif (target == \"/api/sessions\") {\n\t\t\t// API: List sessions\n\t\t\tif (req.method() == boost::beast::http::verb::get) {\n\t\t\t\tauto task = task::list_session(session_manager);\n\t\t\t\tauto res = task.run();\n\t\t\t\treturn simple_response(beast::http::status::ok, CONTENT_TYPE_JSON, res.dump());\n\t\t\t}\n\n\t\t\t// API: Create session\n\t\t\tif (req.method() == boost::beast::http::verb::post) {\n\t\t\t\tauto task = task::create_session(session_manager, json::parse(req.body()));\n\t\t\t\tauto res = task.run();\n\t\t\t\treturn simple_response(beast::http::status::ok, CONTENT_TYPE_JSON, res.dump());\n\t\t\t}\n\t\t}\n\n\t\tif (target == \"/api/version\" && req.method() == boost::beast::http::verb::get) {\n\t\t\t// API: Get version\n\t\t\tauto version = onnxruntime_server::onnx::version();\n\t\t\treturn simple_response(beast::http::status::ok, CONTENT_TYPE_PLAIN_TEXT, version);\n\t\t}\n\n\t\tif (target == \"/health\")\n\t\t\treturn simple_response(beast::http::status::ok, CONTENT_TYPE_PLAIN_TEXT, \"OK\");\n\n\t\tif (swagger.is_swagger_url(target)) {\n\t\t\tauto res = swagger.get_response(target, req.version());\n\t\t\tres->keep_alive(req.keep_alive());\n\t\t\treturn res;\n\t\t}\n\n\t\treturn simple_response(beast::http::status::not_found, CONTENT_TYPE_PLAIN_TEXT, \"Not Found\");\n\t} catch (Orts::exception &e) {\n\t\tPLOG(L_WARNING) << get_remote_endpoint() << \" transport::http::handle_request: \" << e.what() << std::endl;\n\n\t\treturn simple_response(e.status_code, CONTENT_TYPE_JSON, Orts::exception::what_to_json(e.type(), e.what()));\n\t} catch (std::exception &e) {\n\t\tPLOG(L_WARNING) << get_remote_endpoint() << \" transport::http::handle_request: \" << e.what() << std::endl;\n\n\t\treturn simple_response(\n\t\t\tbeast::http::status::internal_server_error, CONTENT_TYPE_JSON,\n\t\t\tOrts::exception::what_to_json(\"runtime_error\", e.what())\n\t\t);\n\t}\n}\n"
  },
  {
    "path": "src/transport/http/https_server.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/03.\n//\n\n#include \"http_server.hpp\"\n\nOrts::transport::http::https_server::https_server(\n\tboost::asio::io_context &io_context, const onnxruntime_server::config &config,\n\tOrts::onnx::session_manager &onnx_session_manager\n)\n\t: server(io_context, onnx_session_manager, config.https_port, config.request_payload_limit),\n\t  ctx(boost::asio::ssl::context::sslv23), swagger(config.swagger_url_path) {\n\tboost::system::error_code ec;\n\tctx.set_options(\n\t\tboost::asio::ssl::context::default_workarounds | boost::asio::ssl::context::no_sslv2 |\n\t\t\tboost::asio::ssl::context::no_sslv3 | boost::asio::ssl::context::no_tlsv1 |\n\t\t\tboost::asio::ssl::context::no_tlsv1_1,\n\t\tec\n\t);\n\tif (ec)\n\t\tthrow std::runtime_error(\"Failed to set SSL context options: \" + ec.message());\n\n\tctx.use_certificate_chain_file(config.https_cert, ec);\n\tif (ec)\n\t\tthrow std::runtime_error(\"Failed to load SSL certificate: \" + ec.message());\n\n\tctx.use_private_key_file(config.https_key, boost::asio::ssl::context::pem, ec);\n\tif (ec)\n\t\tthrow std::runtime_error(\"Failed to load SSL private key: \" + ec.message());\n}\n\nvoid onnxruntime_server::transport::http::https_server::client_connected(asio::socket socket) {\n\thttps_session(std::move(socket), ctx, request_payload_limit()).run(get_onnx_session_manager(), swagger);\n\n\ttry {\n\t\tsocket.close();\n\t\tPLOG(L_INFO) << \"transport::https::https_server: worker killed\" << std::endl;\n\t} catch (std::exception &e) {\n\t\tPLOG(L_WARNING) << \"transport::http::https_server: socket close error \" << e.what() << std::endl;\n\t}\n}\n"
  },
  {
    "path": "src/transport/http/https_session.cpp",
    "content": "#include \"http_server.hpp\"\n\nonnxruntime_server::transport::http::https_session::https_session(\n\tasio::socket socket, boost::asio::ssl::context &ctx, size_t body_limit\n)\n\t: http_session_base(body_limit), stream(std::move(socket), ctx) {\n\tstream.handshake(boost::asio::ssl::stream_base::server);\n}\n\nerror_code onnxruntime_server::transport::http::https_session::do_read(\n\tbeast::http::request_parser<beast::http::string_body> &req_parser\n) {\n\tboost::system::error_code ec;\n\n\tbuffer.clear();\n\treq_parser.body_limit(body_limit);\n\n\tbeast::http::read(stream, buffer, req_parser, ec);\n\treturn ec;\n}\n\nboost::system::error_code onnxruntime_server::transport::http::https_session::do_write(\n\tstd::shared_ptr<beast::http::response<beast::http::string_body>> msg\n) {\n\tboost::system::error_code ec;\n\tbeast::http::write(stream, *msg, ec);\n\treturn ec;\n}\n\nstd::string onnxruntime_server::transport::http::https_session::get_remote_endpoint() {\n\tif (_remote_endpoint.empty())\n\t\t_remote_endpoint = stream.lowest_layer().remote_endpoint().address().to_string() + \":\" +\n\t\t\t\t\t\t   std::to_string(stream.lowest_layer().remote_endpoint().port());\n\n\treturn _remote_endpoint;\n}\n"
  },
  {
    "path": "src/transport/http/swagger/document_bin_data.h",
    "content": "//\n// Created by Kibae Shin on 2023/09/08.\n//\n\n#ifndef ONNXRUNTIME_SERVER_DOCUMENT_BIN_DATA_H\n#define ONNXRUNTIME_SERVER_DOCUMENT_BIN_DATA_H\n\nextern unsigned char swagger_index_html[];\nextern unsigned int swagger_index_html_len;\n\nextern unsigned char swagger_openapi_yaml[];\nextern unsigned int swagger_openapi_yaml_len;\n\n#endif // ONNXRUNTIME_SERVER_DOCUMENT_BIN_DATA_H\n"
  },
  {
    "path": "src/transport/http/swagger/generate_swagger.sh",
    "content": "#!/usr/bin/env bash\n\ncd \"$(dirname \"$0\")\" || exit\n\nxxd -i -n swagger_index_html ../../../../docs/swagger/index.html swagger_index_html.cpp\nxxd -i -n swagger_openapi_yaml ../../../../docs/swagger/openapi.yaml swagger_openapi_yaml.cpp\n\n"
  },
  {
    "path": "src/transport/http/swagger/swagger_index_html.cpp",
    "content": "unsigned char swagger_index_html[] = {\n  0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x66, 0x6f,\n  0x72, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x64, 0x69, 0x73,\n  0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x75,\n  0x6e, 0x64, 0x6c, 0x65, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x20, 0x2d,\n  0x2d, 0x3e, 0x0a, 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45,\n  0x20, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x3c, 0x68, 0x74, 0x6d, 0x6c,\n  0x20, 0x6c, 0x61, 0x6e, 0x67, 0x3d, 0x22, 0x65, 0x6e, 0x22, 0x3e, 0x0a,\n  0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c,\n  0x6d, 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74,\n  0x3d, 0x22, 0x55, 0x54, 0x46, 0x2d, 0x38, 0x22, 0x3e, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x53, 0x77, 0x61,\n  0x67, 0x67, 0x65, 0x72, 0x20, 0x55, 0x49, 0x3c, 0x2f, 0x74, 0x69, 0x74,\n  0x6c, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x6e,\n  0x6b, 0x20, 0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x74, 0x79, 0x6c, 0x65,\n  0x73, 0x68, 0x65, 0x65, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d,\n  0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68,\n  0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f,\n  0x2f, 0x6b, 0x69, 0x62, 0x61, 0x65, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75,\n  0x62, 0x2e, 0x69, 0x6f, 0x2f, 0x6f, 0x6e, 0x6e, 0x78, 0x72, 0x75, 0x6e,\n  0x74, 0x69, 0x6d, 0x65, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f,\n  0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2f, 0x73, 0x77, 0x61, 0x67,\n  0x67, 0x65, 0x72, 0x2d, 0x75, 0x69, 0x2e, 0x63, 0x73, 0x73, 0x22, 0x2f,\n  0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20,\n  0x72, 0x65, 0x6c, 0x3d, 0x22, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x68,\n  0x65, 0x65, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74,\n  0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x20, 0x68, 0x72, 0x65,\n  0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x6b,\n  0x69, 0x62, 0x61, 0x65, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,\n  0x69, 0x6f, 0x2f, 0x6f, 0x6e, 0x6e, 0x78, 0x72, 0x75, 0x6e, 0x74, 0x69,\n  0x6d, 0x65, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x73, 0x77,\n  0x61, 0x67, 0x67, 0x65, 0x72, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e,\n  0x63, 0x73, 0x73, 0x22, 0x2f, 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x65, 0x61,\n  0x64, 0x3e, 0x0a, 0x0a, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c,\n  0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x73, 0x77, 0x61, 0x67,\n  0x67, 0x65, 0x72, 0x2d, 0x75, 0x69, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69,\n  0x76, 0x3e, 0x0a, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x73,\n  0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,\n  0x6b, 0x69, 0x62, 0x61, 0x65, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,\n  0x2e, 0x69, 0x6f, 0x2f, 0x6f, 0x6e, 0x6e, 0x78, 0x72, 0x75, 0x6e, 0x74,\n  0x69, 0x6d, 0x65, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x73,\n  0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67,\n  0x65, 0x72, 0x2d, 0x75, 0x69, 0x2d, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65,\n  0x2e, 0x6a, 0x73, 0x22, 0x20, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74,\n  0x3d, 0x22, 0x55, 0x54, 0x46, 0x2d, 0x38, 0x22, 0x3e, 0x3c, 0x2f, 0x73,\n  0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x3c, 0x73, 0x63, 0x72, 0x69,\n  0x70, 0x74, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70,\n  0x73, 0x3a, 0x2f, 0x2f, 0x6b, 0x69, 0x62, 0x61, 0x65, 0x2e, 0x67, 0x69,\n  0x74, 0x68, 0x75, 0x62, 0x2e, 0x69, 0x6f, 0x2f, 0x6f, 0x6e, 0x6e, 0x78,\n  0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x73, 0x65, 0x72, 0x76,\n  0x65, 0x72, 0x2f, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2f, 0x73,\n  0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2d, 0x75, 0x69, 0x2d, 0x73, 0x74,\n  0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x2d, 0x70, 0x72, 0x65,\n  0x73, 0x65, 0x74, 0x2e, 0x6a, 0x73, 0x22, 0x20, 0x63, 0x68, 0x61, 0x72,\n  0x73, 0x65, 0x74, 0x3d, 0x22, 0x55, 0x54, 0x46, 0x2d, 0x38, 0x22, 0x3e,\n  0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x3c, 0x73,\n  0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77,\n  0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6f, 0x6e, 0x6c, 0x6f, 0x61, 0x64,\n  0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,\n  0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x75, 0x69, 0x20, 0x3d,\n  0x20, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x55, 0x49, 0x42, 0x75,\n  0x6e, 0x64, 0x6c, 0x65, 0x28, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x72, 0x6c, 0x3a, 0x20,\n  0x22, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x79, 0x61, 0x6d,\n  0x6c, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x6d, 0x5f, 0x69, 0x64, 0x3a, 0x20,\n  0x27, 0x23, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2d, 0x75, 0x69,\n  0x27, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x64, 0x65, 0x65, 0x70, 0x4c, 0x69, 0x6e, 0x6b, 0x69,\n  0x6e, 0x67, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72,\n  0x65, 0x73, 0x65, 0x74, 0x73, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x53, 0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x55, 0x49, 0x42, 0x75,\n  0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x73,\n  0x2e, 0x61, 0x70, 0x69, 0x73, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53,\n  0x77, 0x61, 0x67, 0x67, 0x65, 0x72, 0x55, 0x49, 0x53, 0x74, 0x61, 0x6e,\n  0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x3a,\n  0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x77, 0x61, 0x67, 0x67,\n  0x65, 0x72, 0x55, 0x49, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x70,\n  0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c,\n  0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x61,\n  0x79, 0x6f, 0x75, 0x74, 0x3a, 0x20, 0x22, 0x53, 0x74, 0x61, 0x6e, 0x64,\n  0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x22,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x29, 0x3b,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x3b, 0x0a, 0x3c, 0x2f, 0x73, 0x63,\n  0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79,\n  0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a\n};\nunsigned int swagger_index_html_len = 1138;\n"
  },
  {
    "path": "src/transport/http/swagger/swagger_openapi_yaml.cpp",
    "content": "unsigned char swagger_openapi_yaml[] = {\n  0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x3a, 0x20, 0x33, 0x2e, 0x30,\n  0x2e, 0x33, 0x0a, 0x69, 0x6e, 0x66, 0x6f, 0x3a, 0x0a, 0x20, 0x20, 0x74,\n  0x69, 0x74, 0x6c, 0x65, 0x3a, 0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x20, 0x52,\n  0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65,\n  0x72, 0x0a, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n  0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x7c, 0x2d, 0x0a, 0x20, 0x20, 0x76, 0x65,\n  0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x31, 0x2e, 0x32, 0x33, 0x2e,\n  0x31, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f,\n  0x63, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x20,\n  0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76,\n  0x65, 0x72, 0x0a, 0x20, 0x20, 0x75, 0x72, 0x6c, 0x3a, 0x20, 0x68, 0x74,\n  0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,\n  0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x69, 0x62, 0x61, 0x65, 0x2f, 0x6f,\n  0x6e, 0x6e, 0x78, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x73,\n  0x65, 0x72, 0x76, 0x65, 0x72, 0x0a, 0x74, 0x61, 0x67, 0x73, 0x3a, 0x0a,\n  0x20, 0x20, 0x2d, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x20, 0x4f, 0x4e,\n  0x4e, 0x58, 0x20, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x53,\n  0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x70, 0x61, 0x74, 0x68, 0x73,\n  0x3a, 0x0a, 0x20, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x65, 0x73,\n  0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x67,\n  0x65, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x61,\n  0x67, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x2d, 0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x20, 0x52, 0x75, 0x6e, 0x74, 0x69,\n  0x6d, 0x65, 0x20, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,\n  0x3a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69,\n  0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65,\n  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4c,\n  0x69, 0x73, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x73, 0x65, 0x73, 0x73,\n  0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f,\n  0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x3a, 0x20,\n  0x6c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f,\n  0x6e, 0x73, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x27, 0x32, 0x30, 0x30, 0x27, 0x3a, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72,\n  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4f, 0x4b, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e,\n  0x74, 0x65, 0x6e, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,\n  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x61, 0x72, 0x72, 0x61,\n  0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a,\n  0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,\n  0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f,\n  0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x27, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x70, 0x6f, 0x73, 0x74, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x74, 0x61, 0x67, 0x73, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x4f, 0x4e, 0x4e, 0x58,\n  0x20, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x53, 0x65, 0x73,\n  0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73,\n  0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x20, 0x43, 0x72, 0x65, 0x61,\n  0x74, 0x65, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74,\n  0x65, 0x20, 0x61, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x73, 0x65, 0x73, 0x73,\n  0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x70,\n  0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x3a, 0x20, 0x63,\n  0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65,\n  0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,\n  0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,\n  0x6f, 0x6e, 0x3a, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20,\n  0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74,\n  0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x2c, 0x20, 0x6f, 0x70, 0x74, 0x69,\n  0x6f, 0x6e, 0x2e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x68,\n  0x61, 0x70, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6f, 0x70, 0x74, 0x69,\n  0x6f, 0x6e, 0x61, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x70, 0x70, 0x6c,\n  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e,\n  0x28, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2c, 0x20, 0x77, 0x6f, 0x2f,\n  0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x3a, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x68,\n  0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a,\n  0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,\n  0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f,\n  0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x72,\n  0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53,\n  0x69, 0x6d, 0x70, 0x6c, 0x65, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,\n  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x28, 0x77, 0x2f,\n  0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x3a, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x68,\n  0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a,\n  0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,\n  0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f,\n  0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x72,\n  0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x27,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f,\n  0x6e, 0x73, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x27, 0x32, 0x30, 0x30, 0x27, 0x3a, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72,\n  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4f, 0x4b, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e,\n  0x74, 0x65, 0x6e, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,\n  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x61, 0x72, 0x72, 0x61,\n  0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a,\n  0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,\n  0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f,\n  0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x27, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x27, 0x34, 0x30, 0x30,\n  0x27, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,\n  0x3a, 0x20, 0x42, 0x61, 0x64, 0x20, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,\n  0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x70, 0x70,\n  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f,\n  0x6e, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a, 0x20, 0x27,\n  0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73,\n  0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f, 0x4e, 0x4e,\n  0x58, 0x42, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45,\n  0x72, 0x72, 0x6f, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x27, 0x34, 0x30, 0x34, 0x27, 0x3a, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72,\n  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4e, 0x6f, 0x74, 0x20,\n  0x46, 0x6f, 0x75, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n  0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x68,\n  0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x72, 0x65,\n  0x66, 0x3a, 0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,\n  0x65, 0x6e, 0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73,\n  0x2f, 0x4f, 0x4e, 0x4e, 0x58, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e,\n  0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x27, 0x34, 0x30, 0x39, 0x27, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73,\n  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x43, 0x6f,\n  0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,\n  0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,\n  0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63,\n  0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x72,\n  0x65, 0x66, 0x3a, 0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f,\n  0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61,\n  0x73, 0x2f, 0x4f, 0x4e, 0x4e, 0x58, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69,\n  0x63, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x27, 0x35, 0x30, 0x30, 0x27, 0x3a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65,\n  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x49,\n  0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x53, 0x65, 0x72, 0x76,\n  0x65, 0x72, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65,\n  0x6e, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,\n  0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x24, 0x72, 0x65, 0x66, 0x3a, 0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d,\n  0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65,\n  0x6d, 0x61, 0x73, 0x2f, 0x4f, 0x4e, 0x4e, 0x58, 0x52, 0x75, 0x6e, 0x74,\n  0x69, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x27, 0x0a, 0x0a, 0x20,\n  0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,\n  0x6e, 0x73, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x7d, 0x2f, 0x7b,\n  0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x67, 0x65, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x74, 0x61, 0x67, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x2d, 0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x20, 0x52, 0x75,\n  0x6e, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,\n  0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x75, 0x6d, 0x6d,\n  0x61, 0x72, 0x79, 0x3a, 0x20, 0x47, 0x65, 0x74, 0x20, 0x73, 0x65, 0x73,\n  0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64,\n  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20,\n  0x47, 0x65, 0x74, 0x20, 0x61, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,\n  0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x70, 0x65, 0x72,\n  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x3a, 0x20, 0x67, 0x65, 0x74,\n  0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73,\n  0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20,\n  0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e,\n  0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n  0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20,\n  0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3a,\n  0x20, 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x6e,\n  0x61, 0x6d, 0x65, 0x3a, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69,\n  0x6e, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4d, 0x6f, 0x64, 0x65, 0x6c,\n  0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69,\n  0x72, 0x65, 0x64, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x68, 0x65,\n  0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73, 0x74,\n  0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72,\n  0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x27, 0x32, 0x30, 0x30, 0x27, 0x3a,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64,\n  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20,\n  0x4f, 0x4b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x70,\n  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73,\n  0x6f, 0x6e, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61,\n  0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a, 0x20,\n  0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,\n  0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f, 0x4e,\n  0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x27, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x27, 0x34, 0x30, 0x34, 0x27,\n  0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a,\n  0x20, 0x4e, 0x6f, 0x74, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e,\n  0x74, 0x65, 0x6e, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,\n  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a, 0x20, 0x27, 0x23, 0x2f, 0x63,\n  0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x73, 0x63,\n  0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f, 0x4e, 0x4e, 0x58, 0x4e, 0x6f,\n  0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x27,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x6f, 0x73, 0x74, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x61, 0x67, 0x73, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x4f, 0x4e, 0x4e,\n  0x58, 0x20, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x53, 0x65,\n  0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x20, 0x45, 0x78, 0x65,\n  0x63, 0x75, 0x74, 0x65, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72,\n  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x45, 0x78, 0x65, 0x63,\n  0x75, 0x74, 0x65, 0x20, 0x61, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,\n  0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x70, 0x65, 0x72,\n  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x3a, 0x20, 0x65, 0x78, 0x65,\n  0x63, 0x75, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65,\n  0x74, 0x65, 0x72, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x2d, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x20, 0x6d, 0x6f,\n  0x64, 0x65, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x69, 0x6e, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73,\n  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4d, 0x6f,\n  0x64, 0x65, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69,\n  0x72, 0x65, 0x64, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x68, 0x65,\n  0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73, 0x74,\n  0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x2d, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x20, 0x76, 0x65, 0x72,\n  0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x69, 0x6e, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65,\n  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4d,\n  0x6f, 0x64, 0x65, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72,\n  0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x74, 0x72, 0x75,\n  0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65,\n  0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f,\n  0x64, 0x79, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x74, 0x72,\n  0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63,\n  0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,\n  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x72,\n  0x65, 0x66, 0x3a, 0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f,\n  0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61,\n  0x73, 0x2f, 0x4f, 0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,\n  0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,\n  0x65, 0x73, 0x74, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72,\n  0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x27, 0x32, 0x30, 0x30, 0x27, 0x3a,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64,\n  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20,\n  0x4f, 0x4b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x70,\n  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73,\n  0x6f, 0x6e, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61,\n  0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a, 0x20,\n  0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,\n  0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f, 0x4e,\n  0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65,\n  0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,\n  0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x27, 0x34,\n  0x30, 0x30, 0x27, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,\n  0x6f, 0x6e, 0x3a, 0x20, 0x42, 0x61, 0x64, 0x20, 0x52, 0x65, 0x71, 0x75,\n  0x65, 0x73, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61,\n  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a,\n  0x73, 0x6f, 0x6e, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d,\n  0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a,\n  0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,\n  0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f,\n  0x4e, 0x4e, 0x58, 0x42, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,\n  0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x27, 0x34, 0x30, 0x34, 0x27, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73,\n  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4e, 0x6f,\n  0x74, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,\n  0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,\n  0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73,\n  0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24,\n  0x72, 0x65, 0x66, 0x3a, 0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70,\n  0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d,\n  0x61, 0x73, 0x2f, 0x4f, 0x4e, 0x4e, 0x58, 0x4e, 0x6f, 0x74, 0x46, 0x6f,\n  0x75, 0x6e, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x27, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x27, 0x35, 0x30, 0x30, 0x27, 0x3a,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64,\n  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20,\n  0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x53, 0x65, 0x72,\n  0x76, 0x65, 0x72, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74,\n  0x65, 0x6e, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,\n  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x24, 0x72, 0x65, 0x66, 0x3a, 0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f,\n  0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x73, 0x63, 0x68,\n  0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f, 0x4e, 0x4e, 0x58, 0x52, 0x75, 0x6e,\n  0x74, 0x69, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x27, 0x0a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x3a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x61, 0x67, 0x73, 0x3a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x4f, 0x4e,\n  0x4e, 0x58, 0x20, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x53,\n  0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x20, 0x44, 0x65,\n  0x73, 0x74, 0x72, 0x6f, 0x79, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,\n  0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63,\n  0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x44, 0x65, 0x73,\n  0x74, 0x72, 0x6f, 0x79, 0x20, 0x61, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69,\n  0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x70, 0x65,\n  0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x3a, 0x20, 0x64, 0x65,\n  0x73, 0x74, 0x72, 0x6f, 0x79, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d,\n  0x65, 0x74, 0x65, 0x72, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x2d, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x20, 0x6d,\n  0x6f, 0x64, 0x65, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x69, 0x6e, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65,\n  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4d,\n  0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x75,\n  0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x68,\n  0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73,\n  0x74, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x2d, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x20, 0x76, 0x65,\n  0x72, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x3a, 0x20, 0x70, 0x61, 0x74, 0x68,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64,\n  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20,\n  0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,\n  0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x74, 0x72,\n  0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70,\n  0x65, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,\n  0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x27,\n  0x32, 0x30, 0x30, 0x27, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n  0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4f, 0x4b, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,\n  0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,\n  0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73,\n  0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74,\n  0x79, 0x70, 0x65, 0x3a, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x27, 0x34, 0x30,\n  0x34, 0x27, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n  0x6e, 0x3a, 0x20, 0x4e, 0x6f, 0x74, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63,\n  0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x70, 0x70, 0x6c,\n  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e,\n  0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a, 0x20, 0x27, 0x23,\n  0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f,\n  0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f, 0x4e, 0x4e, 0x58,\n  0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x72, 0x72, 0x6f,\n  0x72, 0x27, 0x0a, 0x0a, 0x20, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,\n  0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x67, 0x65, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74,\n  0x61, 0x67, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x2d, 0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x20, 0x52, 0x75, 0x6e, 0x74,\n  0x69, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x75,\n  0x6d, 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x20,\n  0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73,\n  0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65,\n  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x47,\n  0x65, 0x74, 0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x20, 0x52, 0x75, 0x6e, 0x74,\n  0x69, 0x6d, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,\n  0x69, 0x6f, 0x6e, 0x49, 0x64, 0x3a, 0x20, 0x67, 0x65, 0x74, 0x4f, 0x4e,\n  0x4e, 0x58, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72,\n  0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72,\n  0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x27, 0x32, 0x30, 0x30, 0x27, 0x3a,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64,\n  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20,\n  0x4f, 0x4b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x6c,\n  0x61, 0x69, 0x6e, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,\n  0x3a, 0x20, 0x31, 0x2e, 0x30, 0x2e, 0x30, 0x0a, 0x0a, 0x20, 0x20, 0x2f,\n  0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x67, 0x65, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74,\n  0x61, 0x67, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x2d, 0x20, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79,\n  0x3a, 0x20, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x20, 0x63, 0x68, 0x65,\n  0x63, 0x6b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73,\n  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x48, 0x65,\n  0x61, 0x6c, 0x74, 0x68, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,\n  0x6f, 0x6e, 0x49, 0x64, 0x3a, 0x20, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,\n  0x43, 0x68, 0x65, 0x63, 0x6b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x27, 0x32, 0x30, 0x30, 0x27,\n  0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a,\n  0x20, 0x4f, 0x4b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70,\n  0x6c, 0x61, 0x69, 0x6e, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e,\n  0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,\n  0x65, 0x3a, 0x20, 0x4f, 0x4b, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f,\n  0x6e, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x73, 0x63, 0x68,\n  0x65, 0x6d, 0x61, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x4e,\n  0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x6f,\n  0x62, 0x6a, 0x65, 0x63, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x64, 0x65,\n  0x6c, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e,\n  0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a,\n  0x20, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75,\n  0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73,\n  0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65,\n  0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73,\n  0x74, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n  0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x76,\n  0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c,\n  0x65, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,\n  0x5f, 0x61, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x6e, 0x75, 0x6d,\n  0x62, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n  0x6e, 0x3a, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,\n  0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65,\n  0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x61, 0x73, 0x20, 0x63, 0x72,\n  0x65, 0x61, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65,\n  0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65,\n  0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65,\n  0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72,\n  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x54, 0x69, 0x6d, 0x65,\n  0x73, 0x74, 0x61, 0x6d, 0x70, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74,\n  0x68, 0x65, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x77,\n  0x61, 0x73, 0x20, 0x6c, 0x61, 0x73, 0x74, 0x20, 0x65, 0x78, 0x65, 0x63,\n  0x75, 0x74, 0x65, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a,\n  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,\n  0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20,\n  0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n  0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65,\n  0x72, 0x20, 0x6f, 0x66, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,\n  0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20,\n  0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65,\n  0x3a, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72,\n  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x49, 0x6e, 0x70, 0x75,\n  0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62,\n  0x6c, 0x65, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x61, 0x6d,\n  0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x22, 0x3a, 0x20,\n  0x22, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x32, 0x5b, 0x2d, 0x31, 0x2c,\n  0x31, 0x5d, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x79, 0x22, 0x3a, 0x20, 0x22, 0x66,\n  0x6c, 0x6f, 0x61, 0x74, 0x33, 0x32, 0x5b, 0x2d, 0x31, 0x2c, 0x31, 0x5d,\n  0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x22, 0x7a, 0x22, 0x3a, 0x20, 0x22, 0x66, 0x6c, 0x6f,\n  0x61, 0x74, 0x33, 0x32, 0x5b, 0x2d, 0x31, 0x2c, 0x31, 0x5d, 0x22, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x70,\n  0x75, 0x74, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x6f, 0x62, 0x6a,\n  0x65, 0x63, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n  0x6e, 0x3a, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79,\n  0x70, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20,\n  0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a,\n  0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x22, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x3a,\n  0x20, 0x22, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x32, 0x5b, 0x2d, 0x31,\n  0x2c, 0x31, 0x5d, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a,\n  0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,\n  0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f,\n  0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x70,\n  0x74, 0x69, 0x6f, 0x6e, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x4e,\n  0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74,\n  0x69, 0x6f, 0x6e, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74,\n  0x79, 0x70, 0x65, 0x3a, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62,\n  0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,\n  0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63,\n  0x75, 0x64, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a,\n  0x20, 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,\n  0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x6e, 0x65, 0x4f, 0x66, 0x3a,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x2d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x62, 0x6f, 0x6f,\n  0x6c, 0x65, 0x61, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72,\n  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20,\n  0x43, 0x55, 0x44, 0x41, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a,\n  0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,\n  0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f,\n  0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x70,\n  0x74, 0x69, 0x6f, 0x6e, 0x43, 0x55, 0x44, 0x41, 0x27, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,\n  0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,\n  0x73, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79,\n  0x70, 0x65, 0x3a, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c,\n  0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73,\n  0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x75,\n  0x64, 0x61, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20,\n  0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,\n  0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x6e, 0x65, 0x4f, 0x66, 0x3a,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x2d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x62, 0x6f, 0x6f,\n  0x6c, 0x65, 0x61, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72,\n  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x55, 0x73, 0x65, 0x20,\n  0x43, 0x55, 0x44, 0x41, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a,\n  0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,\n  0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f,\n  0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x70,\n  0x74, 0x69, 0x6f, 0x6e, 0x43, 0x55, 0x44, 0x41, 0x27, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f,\n  0x73, 0x68, 0x61, 0x70, 0x65, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x6f,\n  0x62, 0x6a, 0x65, 0x63, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n  0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x73,\n  0x68, 0x61, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a,\n  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,\n  0x64, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70,\n  0x6c, 0x65, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x22, 0x3a, 0x20, 0x5b,\n  0x20, 0x31, 0x2c, 0x20, 0x31, 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x79, 0x22,\n  0x3a, 0x20, 0x5b, 0x20, 0x31, 0x2c, 0x20, 0x31, 0x20, 0x5d, 0x2c, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x22, 0x7a, 0x22, 0x3a, 0x20, 0x5b, 0x20, 0x31, 0x2c, 0x20, 0x31, 0x20,\n  0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75,\n  0x74, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x3a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79,\n  0x70, 0x65, 0x3a, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73,\n  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4f, 0x75,\n  0x74, 0x70, 0x75, 0x74, 0x20, 0x73, 0x68, 0x61, 0x70, 0x65, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6c,\n  0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72,\n  0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x66, 0x61, 0x6c,\n  0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7b, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x22, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x3a, 0x20, 0x5b, 0x20,\n  0x31, 0x2c, 0x20, 0x31, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x6f, 0x72, 0x74, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,\n  0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70,\n  0x65, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63,\n  0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x54, 0x6f, 0x20,\n  0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4f, 0x4e, 0x4e, 0x58,\n  0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x45, 0x78, 0x74, 0x65,\n  0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x43, 0x75, 0x73, 0x74, 0x6f,\n  0x6d, 0x20, 0x4f, 0x70, 0x73, 0x20, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72,\n  0x79, 0x29, 0x2c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6d, 0x75, 0x73, 0x74,\n  0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65,\n  0x20, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, 0x70, 0x61, 0x74,\n  0x68, 0x2e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x66,\n  0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3a,\n  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,\n  0x3a, 0x20, 0x2f, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x2f,\n  0x70, 0x61, 0x74, 0x68, 0x2f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x62, 0x6f,\n  0x6e, 0x6e, 0x78, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x65,\n  0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,\n  0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x55, 0x44, 0x41, 0x3a,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a,\n  0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73,\n  0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65,\n  0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x3a, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a,\n  0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72,\n  0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x43, 0x55, 0x44, 0x41,\n  0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x49, 0x44, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6c,\n  0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73,\n  0x73, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,\n  0x71, 0x75, 0x65, 0x73, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63,\n  0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, 0x6f, 0x70,\n  0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70,\n  0x65, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63,\n  0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4d, 0x6f, 0x64,\n  0x65, 0x6c, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72,\n  0x65, 0x64, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61,\n  0x62, 0x6c, 0x65, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69,\n  0x6f, 0x6e, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69,\n  0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,\n  0x3a, 0x20, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73,\n  0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20,\n  0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a,\n  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71,\n  0x75, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6e,\n  0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75,\n  0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x24, 0x72, 0x65, 0x66, 0x3a, 0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d,\n  0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65,\n  0x6d, 0x61, 0x73, 0x2f, 0x4f, 0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73, 0x73,\n  0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,\n  0x75, 0x65, 0x73, 0x74, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x4e,\n  0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65,\n  0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x69,\n  0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70,\n  0x6c, 0x65, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x3a, 0x20, 0x22,\n  0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,\n  0x6e, 0x22, 0x3a, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,\n  0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d,\n  0x6f, 0x64, 0x65, 0x6c, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73, 0x74,\n  0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,\n  0x6f, 0x6e, 0x3a, 0x20, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x20, 0x6e, 0x61,\n  0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x74,\n  0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20,\n  0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70,\n  0x65, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63,\n  0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4d, 0x6f, 0x64,\n  0x65, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71,\n  0x75, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75,\n  0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73,\n  0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x70,\n  0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,\n  0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62,\n  0x6c, 0x65, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a,\n  0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,\n  0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f,\n  0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x70,\n  0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x27,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73,\n  0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52,\n  0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x6f, 0x62, 0x6a, 0x65,\n  0x63, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x61,\n  0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x22, 0x78, 0x22, 0x3a, 0x20, 0x5b, 0x20, 0x5b,\n  0x20, 0x31, 0x20, 0x5d, 0x2c, 0x20, 0x5b, 0x20, 0x32, 0x20, 0x5d, 0x2c,\n  0x20, 0x5b, 0x20, 0x33, 0x20, 0x5d, 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x79, 0x22, 0x3a, 0x20, 0x5b,\n  0x20, 0x5b, 0x20, 0x32, 0x20, 0x5d, 0x2c, 0x20, 0x5b, 0x20, 0x33, 0x20,\n  0x5d, 0x2c, 0x20, 0x5b, 0x20, 0x34, 0x20, 0x5d, 0x20, 0x5d, 0x2c, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x7a, 0x22, 0x3a,\n  0x20, 0x5b, 0x20, 0x5b, 0x20, 0x33, 0x20, 0x5d, 0x2c, 0x20, 0x5b, 0x20,\n  0x34, 0x20, 0x5d, 0x2c, 0x20, 0x5b, 0x20, 0x35, 0x20, 0x5d, 0x20, 0x5d,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,\n  0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69,\n  0x6e, 0x70, 0x75, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x31, 0x3a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79,\n  0x70, 0x65, 0x3a, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63,\n  0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x49, 0x6e, 0x70,\n  0x75, 0x74, 0x20, 0x64, 0x61, 0x74, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x6f, 0x6e, 0x65, 0x4f, 0x66, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20,\n  0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73,\n  0x74, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65,\n  0x32, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64,\n  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20,\n  0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x64, 0x61, 0x74, 0x61, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74, 0x65,\n  0x6d, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x6f, 0x6e, 0x65, 0x4f, 0x66, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x2d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x6e, 0x75, 0x6d,\n  0x62, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x79, 0x70, 0x65,\n  0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20,\n  0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,\n  0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,\n  0x6e, 0x73, 0x65, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74,\n  0x79, 0x70, 0x65, 0x3a, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,\n  0x65, 0x3a, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x22, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x3a, 0x20, 0x5b,\n  0x20, 0x5b, 0x20, 0x30, 0x2e, 0x36, 0x34, 0x39, 0x32, 0x31, 0x32, 0x30,\n  0x36, 0x32, 0x33, 0x35, 0x38, 0x38, 0x35, 0x36, 0x32, 0x20, 0x5d, 0x2c,\n  0x20, 0x5b, 0x20, 0x30, 0x2e, 0x37, 0x36, 0x31, 0x30, 0x34, 0x38, 0x37,\n  0x33, 0x34, 0x31, 0x38, 0x38, 0x30, 0x37, 0x39, 0x38, 0x20, 0x5d, 0x2c,\n  0x20, 0x5b, 0x20, 0x30, 0x2e, 0x38, 0x37, 0x32, 0x38, 0x38, 0x35, 0x34,\n  0x36, 0x35, 0x36, 0x32, 0x31, 0x39, 0x34, 0x38, 0x32, 0x20, 0x5d, 0x20,\n  0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,\n  0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65,\n  0x31, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x61, 0x72, 0x72, 0x61, 0x79,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64,\n  0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20,\n  0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x64, 0x61, 0x74, 0x61, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x74,\n  0x65, 0x6d, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x6e, 0x65, 0x4f, 0x66, 0x3a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x2d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x6e, 0x75,\n  0x6d, 0x62, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x79, 0x70,\n  0x65, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,\n  0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20,\n  0x61, 0x72, 0x72, 0x61, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n  0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20,\n  0x64, 0x61, 0x74, 0x61, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x6e,\n  0x65, 0x4f, 0x66, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x74, 0x79, 0x70,\n  0x65, 0x3a, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x2d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69,\n  0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x45,\n  0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65,\n  0x72, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70,\n  0x65, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e,\n  0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a,\n  0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75,\n  0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73,\n  0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x65, 0x6e, 0x75, 0x6d, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x72, 0x75, 0x6e, 0x74,\n  0x69, 0x6d, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20,\n  0x62, 0x61, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f,\n  0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x6e, 0x6f, 0x74, 0x5f,\n  0x66, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x2d, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x5f, 0x65,\n  0x72, 0x72, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20,\n  0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n  0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x20,\n  0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62,\n  0x6c, 0x65, 0x3a, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x42, 0x61, 0x64, 0x52, 0x65, 0x71,\n  0x75, 0x65, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x4f, 0x66, 0x3a, 0x0a,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x24, 0x72,\n  0x65, 0x66, 0x3a, 0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f,\n  0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61,\n  0x73, 0x2f, 0x4f, 0x4e, 0x4e, 0x58, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x27,\n  0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65,\n  0x72, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70,\n  0x65, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e,\n  0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20, 0x62, 0x61, 0x64,\n  0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x72, 0x72,\n  0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x4e, 0x4e, 0x58, 0x4e,\n  0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72,\n  0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x4f,\n  0x66, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d,\n  0x20, 0x24, 0x72, 0x65, 0x66, 0x3a, 0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f,\n  0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x73, 0x63, 0x68,\n  0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f, 0x4e, 0x4e, 0x58, 0x45, 0x72, 0x72,\n  0x6f, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72,\n  0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f,\n  0x74, 0x79, 0x70, 0x65, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73, 0x74,\n  0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20,\n  0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x65, 0x72,\n  0x72, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x4e, 0x4e, 0x58,\n  0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x45, 0x72, 0x72, 0x6f,\n  0x72, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c,\n  0x4f, 0x66, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x2d, 0x20, 0x24, 0x72, 0x65, 0x66, 0x3a, 0x20, 0x27, 0x23, 0x2f, 0x63,\n  0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x73, 0x63,\n  0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f, 0x4e, 0x4e, 0x58, 0x45, 0x72,\n  0x72, 0x6f, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70,\n  0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72,\n  0x5f, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73,\n  0x74, 0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a,\n  0x20, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x5f, 0x65, 0x72,\n  0x72, 0x6f, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x4f, 0x4e, 0x4e, 0x58,\n  0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72,\n  0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x6c, 0x4f,\n  0x66, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d,\n  0x20, 0x24, 0x72, 0x65, 0x66, 0x3a, 0x20, 0x27, 0x23, 0x2f, 0x63, 0x6f,\n  0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x73, 0x63, 0x68,\n  0x65, 0x6d, 0x61, 0x73, 0x2f, 0x4f, 0x4e, 0x4e, 0x58, 0x45, 0x72, 0x72,\n  0x6f, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72,\n  0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x0a, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f,\n  0x74, 0x79, 0x70, 0x65, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x73, 0x74,\n  0x72, 0x69, 0x6e, 0x67, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n  0x20, 0x20, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x20,\n  0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f,\n  0x72, 0x0a, 0x0a\n};\nunsigned int swagger_openapi_yaml_len = 11751;\n"
  },
  {
    "path": "src/transport/http/swagger_serve.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/08.\n//\n\n#include \"http_server.hpp\"\n\n#include \"swagger/document_bin_data.h\"\n\nonnxruntime_server::transport::http::swagger_serve::swagger_serve(const std::string &swagger_url_path)\n\t: swagger_url_path(swagger_url_path) {\n}\n\nbool onnxruntime_server::transport::http::swagger_serve::is_swagger_url(const std::string &url) const {\n\treturn !swagger_url_path.empty() && swagger_url_path.length() <= url.length() && url.find(swagger_url_path) == 0;\n}\n\nstd::shared_ptr<beast::http::response<beast::http::string_body>>\nonnxruntime_server::transport::http::swagger_serve::get_response(const std::string &url, unsigned http_version) {\n\tstd::string content_type = \"text/plain\";\n\tstd::shared_ptr<std::string> body = std::make_shared<std::string>(\"Not Found\");\n\n\tauto res =\n\t\tstd::make_shared<beast::http::response<beast::http::string_body>>(beast::http::status::not_found, http_version);\n\n\tif (url.rfind(\"/openapi.yaml\") == url.length() - 13) {\n\t\tif (_cache_openapi_yaml == nullptr || _cache_openapi_yaml->empty())\n\t\t\t_cache_openapi_yaml = std::make_shared<std::string>((char *)swagger_openapi_yaml, swagger_openapi_yaml_len);\n\t\tres->result(beast::http::status::ok);\n\t\tcontent_type = \"text/yaml\";\n\t\tbody = _cache_openapi_yaml;\n\t} else if (url == swagger_url_path || url == swagger_url_path + \"/\") {\n\t\tif (url.back() != '/') {\n\t\t\tres->result(beast::http::status::found);\n\t\t\tres->set(beast::http::field::location, url + \"/\");\n\t\t} else {\n\t\t\tif (_cache_index_html == nullptr || _cache_index_html->empty())\n\t\t\t\t_cache_index_html = std::make_shared<std::string>((char *)swagger_index_html, swagger_index_html_len);\n\t\t\tres->result(beast::http::status::ok);\n\t\t\tcontent_type = \"text/html\";\n\t\t\tbody = _cache_index_html;\n\t\t}\n\t}\n\n\tres->set(beast::http::field::content_type, content_type);\n\tres->body() = body->data();\n\tres->prepare_payload();\n\treturn res;\n}\n"
  },
  {
    "path": "src/transport/server.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/08/31.\n//\n\n#include \"../onnxruntime_server.hpp\"\n\nOrts::transport::server::server(\n\tboost::asio::io_context &io_context, Orts::onnx::session_manager &onnx_session_manager, int port,\n\tlong request_payload_limit\n)\n\t: io_context(io_context), acceptor(io_context, asio::endpoint(asio::v4(), port)), socket(io_context),\n\t  onnx_session_manager(onnx_session_manager), request_payload_limit_(request_payload_limit) {\n\n\tassigned_port = acceptor.local_endpoint().port();\n\n\taccept();\n}\n\nOrts::transport::server::~server() {\n\tsocket.close();\n}\n\nvoid Orts::transport::server::accept() {\n\tacceptor.async_accept(socket, [this](boost::system::error_code ec) {\n\t\tif (!ec) {\n\t\t\tstd::thread([this](asio::socket sock) { this->client_connected(std::move(sock)); }, std::move(socket))\n\t\t\t\t.detach();\n\t\t}\n\t\taccept();\n\t});\n}\n\nOrts::onnx::session_manager &Orts::transport::server::get_onnx_session_manager() {\n\treturn onnx_session_manager;\n}\n\nlong Orts::transport::server::request_payload_limit() const {\n\treturn request_payload_limit_;\n}\n\nuint_least16_t Orts::transport::server::port() const {\n\treturn assigned_port;\n}\n"
  },
  {
    "path": "src/transport/tcp/tcp_server.hpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/02.\n//\n\n#ifndef ONNX_RUNTIME_SERVER_TCP_SERVER_HPP\n#define ONNX_RUNTIME_SERVER_TCP_SERVER_HPP\n\n#include \"../../onnxruntime_server.hpp\"\n#include <optional>\n\n#ifdef WORDS_BIGENDIAN\n#define HTONLL(x) (x)\n#define NTOHLL(x) (x)\n#else\n#if WIN32\n#define HTONLL(x) ((((uint64_t)htonl(x)) << 32) + htonl((uint64_t)x >> 32))\n#define NTOHLL(x) ((((uint64_t)ntohl(x)) << 32) + ntohl((uint64_t)x >> 32))\n#else\n#define HTONLL(x) ((((uint64_t)htonl(x)) << 32) + htonl(x >> 32))\n#define NTOHLL(x) ((((uint64_t)ntohl(x)) << 32) + ntohl(x >> 32))\n#endif\n#endif\n\n#define MAX_RECV_BUF_LENGTH (1024 * 1024 * 4)\n\nnamespace onnxruntime_server::transport::tcp {\n\tPACKED_STRUCT(protocol_header) {\n\t\tint16_t type;\n\t\tint64_t length;\n\t\tint64_t json_length;\n\t\tint64_t post_length;\n\t};\n\n\tclass tcp_session {\n\t  private:\n\t\tasio::socket socket;\n\t\tstd::string chunk;\n\t\tstd::string buffer;\n\n\t\tonnxruntime_server::task::benchmark request_time;\n\t\tstd::string _remote_endpoint;\n\n\t\tstd::optional<protocol_header> do_read();\n\t\tbool do_write(protocol_header &header, const std::string &buf);\n\n\t\tstatic std::shared_ptr<onnxruntime_server::task::task> create_task(\n\t\t\tonnx::session_manager &onnx_session_manager, int16_t type, const json &request_json, const char *post,\n\t\t\tsize_t post_length\n\t\t);\n\n\t  public:\n\t\texplicit tcp_session(asio::socket socket);\n\t\tvoid run(onnx::session_manager &session_manager);\n\n\t\tbool send_error(std::string type, std::string what);\n\t\tstd::string get_remote_endpoint();\n\t};\n\n\tclass tcp_server : public server {\n\t  protected:\n\t\tvoid client_connected(asio::socket socket) override {\n\t\t\ttcp_session(std::move(socket)).run(get_onnx_session_manager());\n\n\t\t\ttry {\n\t\t\t\tsocket.close();\n\t\t\t\tPLOG(L_INFO) << \"transport::tcp::tcp_server: worker killed\" << std::endl;\n\t\t\t} catch (std::exception &e) {\n\t\t\t\tPLOG(L_WARNING) << \"transport::tcp::tcp_server: socket close error \" << e.what() << std::endl;\n\t\t\t}\n\t\t}\n\n\t  public:\n\t\ttcp_server(\n\t\t\tboost::asio::io_context &io_context, const class config &config, onnx::session_manager &onnx_session_manager\n\t\t)\n\t\t\t: server(io_context, onnx_session_manager, config.tcp_port, config.request_payload_limit) {\n\t\t\tacceptor.set_option(boost::asio::socket_base::reuse_address(true));\n\t\t}\n\t};\n\n} // namespace onnxruntime_server::transport::tcp\n\n#endif // ONNX_RUNTIME_SERVER_TCP_SERVER_HPP\n"
  },
  {
    "path": "src/transport/tcp/tcp_session.cpp",
    "content": "//\n// Created by Kibae Shin on 2023/08/31.\n//\n#include \"tcp_server.hpp\"\n\nonnxruntime_server::transport::tcp::tcp_session::tcp_session(asio::socket socket) : socket(std::move(socket)) {\n\t// use heap memory to avoid stack overflow\n\tchunk.resize(MAX_RECV_BUF_LENGTH);\n}\n\nvoid Orts::transport::tcp::tcp_session::run(onnx::session_manager &session_manager) {\n\twhile (true) {\n\t\tauto req = do_read();\n\t\tif (!req.has_value())\n\t\t\tbreak;\n\n\t\ttry {\n\t\t\tauto header = req.value();\n\n\t\t\tauto cstr = buffer.c_str();\n\t\t\tauto json = header.json_length > 0 ? json::parse(cstr, cstr + header.json_length) : json::object();\n\t\t\tauto post = header.post_length > 0 ? cstr + header.json_length : nullptr;\n\n\t\t\t// create task\n\t\t\trequest_time.touch();\n\t\t\tauto task = create_task(session_manager, header.type, json, post, header.post_length);\n\t\t\tauto result = task->run();\n\n\t\t\tPLOG(L_INFO, \"ACCESS\") << get_remote_endpoint() << \" task: \" << task->name()\n\t\t\t\t\t\t\t\t   << \" duration: \" << request_time.get_duration() << std::endl;\n\n\t\t\tauto res_json = result.dump();\n\t\t\tprotocol_header res_header = {0, 0, 0, 0};\n\t\t\tres_header.type = htons(header.type);\n\t\t\tres_header.json_length = HTONLL(res_json.size());\n\t\t\tres_header.post_length = HTONLL(0);\n\t\t\tres_header.length = res_header.json_length;\n\n\t\t\tif (!do_write(res_header, res_json))\n\t\t\t\tbreak;\n\t\t} catch (Orts::exception &e) {\n\t\t\tPLOG(L_WARNING) << get_remote_endpoint() << \" transport::tcp_session::execute: \" << e.what() << std::endl;\n\t\t\tsend_error(e.type(), e.what());\n\t\t} catch (std::exception &e) {\n\t\t\tPLOG(L_WARNING) << get_remote_endpoint() << \" transport::tcp_session::execute: \" << e.what() << std::endl;\n\t\t\tsend_error(\"runtime_error\", e.what());\n\t\t}\n\t}\n}\n\nstd::optional<Orts::transport::tcp::protocol_header> Orts::transport::tcp::tcp_session::do_read() {\n\tbuffer.clear();\n\n\tboost::system::error_code ec;\n\n\t// process header\n\tprotocol_header header = {0, 0, 0, 0};\n\tstd::size_t length = socket.read_some(boost::asio::buffer(&header, sizeof(protocol_header)), ec);\n\tif (length < sizeof(protocol_header) || ec.value())\n\t\treturn std::nullopt;\n\n\theader.type = ntohs(header.type);\n\theader.length = NTOHLL(header.length);\n\theader.json_length = NTOHLL(header.json_length);\n\theader.post_length = NTOHLL(header.post_length);\n\n\twhile (buffer.size() < header.length) {\n\t\tlength = socket.read_some(\n\t\t\tboost::asio::buffer(chunk.data(), NUM_MIN(MAX_RECV_BUF_LENGTH, header.length - buffer.length())), ec\n\t\t);\n\t\tif (ec)\n\t\t\treturn std::nullopt;\n\n\t\tbuffer.append(chunk.data(), length);\n\t}\n\treturn header;\n}\n\n#undef MAX_LENGTH\n#undef MAX_BUFFER_LIMIT\n\nbool onnxruntime_server::transport::tcp::tcp_session::send_error(std::string type, std::string what) {\n\tauto res_json = Orts::exception::what_to_json(type, what);\n\tstruct protocol_header res_header = {0, 0, 0, 0};\n\tres_header.type = htons(-1);\n\tres_header.json_length = HTONLL(res_json.size());\n\tres_header.post_length = HTONLL(0);\n\tres_header.length = res_header.json_length;\n\n\treturn do_write(res_header, res_json);\n}\n\nbool Orts::transport::tcp::tcp_session::do_write(\n\tOrts::transport::tcp::protocol_header &header, const std::string &buf\n) {\n\tboost::system::error_code ec;\n\tstd::size_t sent = socket.write_some(\n\t\tstd::array<boost::asio::const_buffer, 2>{\n\t\t\tboost::asio::buffer(&header, sizeof(Orts::transport::tcp::protocol_header)), boost::asio::buffer(buf)\n\t\t},\n\t\tec\n\t);\n\treturn !ec && sent > 0;\n}\n\nstd::shared_ptr<Orts::task::task> onnxruntime_server::transport::tcp::tcp_session::create_task(\n\tonnx::session_manager &onnx_session_manager, int16_t type, const json &request_json, const char *post,\n\tsize_t post_length\n) {\n\tswitch (type) {\n\tcase Orts::task::EXECUTE_SESSION:\n\t\treturn std::make_shared<Orts::task::execute_session>(onnx_session_manager, request_json);\n\tcase Orts::task::GET_SESSION:\n\t\treturn std::make_shared<Orts::task::get_session>(onnx_session_manager, request_json);\n\tcase Orts::task::CREATE_SESSION:\n\t\treturn std::make_shared<Orts::task::create_session>(onnx_session_manager, request_json, post, post_length);\n\tcase Orts::task::DESTROY_SESSION:\n\t\treturn std::make_shared<Orts::task::destroy_session>(onnx_session_manager, request_json);\n\tcase Orts::task::LIST_SESSION:\n\t\treturn std::make_shared<Orts::task::list_session>(onnx_session_manager);\n\tdefault:\n\t\tthrow bad_request_error(\"Invalid task type\");\n\t}\n}\n\nstd::string onnxruntime_server::transport::tcp::tcp_session::get_remote_endpoint() {\n\tif (_remote_endpoint.empty())\n\t\t_remote_endpoint =\n\t\t\tsocket.remote_endpoint().address().to_string() + \":\" + std::to_string(socket.remote_endpoint().port());\n\n\treturn _remote_endpoint;\n}\n"
  },
  {
    "path": "src/utils/aixlog.hpp",
    "content": "/***\n\t  __   __  _  _  __     __    ___\n\t / _\\ (  )( \\/ )(  )   /  \\  / __)\n\t/    \\ )(  )  ( / (_/\\(  O )( (_ \\\n\t\\_/\\_/(__)(_/\\_)\\____/ \\__/  \\___/\n\tversion 1.5.0\n\thttps://github.com/badaix/aixlog\n\n\tThis file is part of aixlog\n\tCopyright (C) 2017-2021 Johannes Pohl\n\n\tThis software may be modified and distributed under the terms\n\tof the MIT license.  See the LICENSE file for details.\n***/\n\n/// inspired by \"eater\":\n/// https://stackoverflow.com/questions/2638654/redirect-c-stdclog-to-syslog-on-unix\n\n#ifndef AIX_LOG_HPP\n#define AIX_LOG_HPP\n\n#ifndef _WIN32\n#define HAS_SYSLOG_ 1\n#endif\n\n#ifdef __APPLE__\n#ifdef __MAC_OS_X_VERSION_MAX_ALLOWED\n#if __MAC_OS_X_VERSION_MAX_ALLOWED >= 1012\n#define HAS_APPLE_UNIFIED_LOG_ 1\n#endif\n#endif\n#endif\n\n#include <algorithm>\n#include <cctype>\n#include <chrono>\n#include <cstdio>\n#include <ctime>\n#include <fstream>\n#include <functional>\n#include <iostream>\n#include <map>\n#include <memory>\n#include <mutex>\n#include <sstream>\n#include <thread>\n#include <vector>\n\n#ifdef __ANDROID__\n#include <android/log.h>\n#endif\n\n#ifdef _WIN32\n#include <Windows.h>\n// L_ERROR macro is defined in Windows header\n// To avoid conflict between these macro and declaration of L_ERROR / L_DEBUG in SEVERITY enum\n// We save macro and undef it\n#pragma push_macro(\"L_ERROR\")\n#pragma push_macro(\"L_DEBUG\")\n#undef L_ERROR\n#undef L_DEBUG\n#endif\n\n#ifdef HAS_APPLE_UNIFIED_LOG_\n#include <os/log.h>\n#endif\n\n#ifdef HAS_SYSLOG_\n#include <syslog.h>\n#endif\n\n#ifdef __ANDROID__\n// fix for bug \"Android NDK __func__ definition is inconsistent with glibc and C++99\"\n// https://bugs.chromium.org/p/chromium/issues/detail?id=631489\n#ifdef __GNUC__\n#define AIXLOG_INTERNAL__FUNC __FUNCTION__\n#else\n#define AIXLOG_INTERNAL__FUNC __func__\n#endif\n#else\n#define AIXLOG_INTERNAL__FUNC __func__\n#endif\n\n/// Internal helper macros (exposed, but shouldn't be used directly)\n#define AIXLOG_INTERNAL__LOG_SEVERITY(SEVERITY_) std::clog << static_cast<AixLog::Severity>(SEVERITY_) << TAG()\n#define AIXLOG_INTERNAL__LOG_SEVERITY_TAG(SEVERITY_, TAG_)                                                             \\\n\tstd::clog << static_cast<AixLog::Severity>(SEVERITY_) << TAG(TAG_)\n\n#define AIXLOG_INTERNAL__ONE_COLOR(FG_) AixLog::Color::FG_\n#define AIXLOG_INTERNAL__TWO_COLOR(FG_, BG_) AixLog::TextColor(AixLog::Color::FG_, AixLog::Color::BG_)\n\n// https://stackoverflow.com/questions/3046889/optional-parameters-with-c-macros\n#define AIXLOG_INTERNAL__VAR_PARM(PARAM1_, PARAM2_, FUNC_, ...) FUNC_\n#define AIXLOG_INTERNAL__LOG_MACRO_CHOOSER(...)                                                                        \\\n\tAIXLOG_INTERNAL__VAR_PARM(__VA_ARGS__, AIXLOG_INTERNAL__LOG_SEVERITY_TAG, AIXLOG_INTERNAL__LOG_SEVERITY, )\n#define AIXLOG_INTERNAL__COLOR_MACRO_CHOOSER(...)                                                                      \\\n\tAIXLOG_INTERNAL__VAR_PARM(__VA_ARGS__, AIXLOG_INTERNAL__TWO_COLOR, AIXLOG_INTERNAL__ONE_COLOR, )\n\n/// External logger macros\n// usage: PLOG(SEVERITY) or PLOG(SEVERITY, TAG)\n// e.g.: PLOG(L_NOTICE) or PLOG(L_NOTICE, \"my tag\")\n#ifndef WIN32\n#define PLOG(...) AIXLOG_INTERNAL__LOG_MACRO_CHOOSER(__VA_ARGS__)(__VA_ARGS__) << TIMESTAMP << FUNC\n#endif\n\n// usage: COLOR(TEXT_COLOR, BACKGROUND_COLOR) or COLOR(TEXT_COLOR)\n// e.g.: COLOR(yellow, blue) or COLOR(red)\n#define COLOR(...) AIXLOG_INTERNAL__COLOR_MACRO_CHOOSER(__VA_ARGS__)(__VA_ARGS__)\n\n#define FUNC AixLog::Function(AIXLOG_INTERNAL__FUNC, __FILE__, __LINE__)\n#define TAG AixLog::Tag\n#define COND AixLog::Conditional\n#define TIMESTAMP AixLog::Timestamp(std::chrono::system_clock::now())\n\n// stijnvdb: sorry! :) PLOG(SEV, \"tag\") was not working for Windows and I couldn't figure out how to fix it for windows\n// without potentially breaking everything else...\n// https://stackoverflow.com/questions/3046889/optional-parameters-with-c-macros (Jason Deng)\n#ifdef WIN32\n#define LOG_2(severity, tag) AIXLOG_INTERNAL__LOG_SEVERITY_TAG(severity, tag)\n#define LOG_1(severity) AIXLOG_INTERNAL__LOG_SEVERITY(severity)\n#define LOG_0() LOG_1(0)\n\n#define FUNC_CHOOSER(_f1, _f2, _f3, ...) _f3\n#define FUNC_RECOMPOSER(argsWithParentheses) FUNC_CHOOSER argsWithParentheses\n#define CHOOSE_FROM_ARG_COUNT(...) FUNC_RECOMPOSER((__VA_ARGS__, LOG_2, LOG_1, FUNC_, ...))\n#define MACRO_CHOOSER(...) CHOOSE_FROM_ARG_COUNT(__VA_ARGS__())\n#define PLOG(...) MACRO_CHOOSER(__VA_ARGS__)(__VA_ARGS__) << TIMESTAMP << FUNC\n#endif\n\n/**\n * @brief\n * Severity of the log message\n */\nenum SEVERITY { L_TRACE = 0, L_DEBUG = 1, L_INFO = 2, L_NOTICE = 3, L_WARNING = 4, L_ERROR = 5, L_FATAL = 6 };\n\nnamespace AixLog {\n\n\t/**\n\t * @brief\n\t * Severity of the log message\n\t *\n\t * Mandatory parameter for the LOG macro\n\t */\n\tenum class Severity : std::int8_t {\n\t\t// Mapping table from AixLog to other loggers. Boost is just for information.\n\t\t// https://chromium.googlesource.com/chromium/mini_chromium/+/master/base/logging.cc\n\t\t//\n\t\t// Aixlog      Boost       Syslog      Android     macOS       EventLog      Syslog Desc\n\t\t//\n\t\t// trace       trace       L_DEBUG       VERBOSE     L_DEBUG       INFORMATION\n\t\t// debug       debug       L_DEBUG       L_DEBUG       L_DEBUG       INFORMATION   debug-level message\n\t\t// info        info        L_INFO        L_INFO        L_INFO        SUCCESS       informational message\n\t\t// notice                  L_NOTICE      L_INFO        L_INFO        SUCCESS       normal, but significant,\n\t\t// condition\n\t\t// warning     warning     L_WARNING     WARN        DEFAULT     L_WARNING       warning conditions\n\t\t// error       error       L_ERROR       L_ERROR       L_ERROR       L_ERROR         error conditions\n\t\t// fatal       fatal       CRIT        L_FATAL       FAULT       L_ERROR         critical conditions\n\t\t//                         ALERT                                             action must be taken immediately\n\t\t//                         EMERG                                             system is unusable\n\n\t\ttrace = SEVERITY::L_TRACE,\n\t\tdebug = SEVERITY::L_DEBUG,\n\t\tinfo = SEVERITY::L_INFO,\n\t\tnotice = SEVERITY::L_NOTICE,\n\t\twarning = SEVERITY::L_WARNING,\n\t\terror = SEVERITY::L_ERROR,\n\t\tfatal = SEVERITY::L_FATAL\n\t};\n\n\tstatic Severity to_severity(std::string severity, Severity def = Severity::info) {\n\t\tstd::transform(severity.begin(), severity.end(), severity.begin(), [](unsigned char c) {\n\t\t\treturn static_cast<char>(std::tolower(c));\n\t\t});\n\t\tif (severity == \"trace\")\n\t\t\treturn Severity::trace;\n\t\telse if (severity == \"debug\")\n\t\t\treturn Severity::debug;\n\t\telse if (severity == \"info\")\n\t\t\treturn Severity::info;\n\t\telse if (severity == \"notice\")\n\t\t\treturn Severity::notice;\n\t\telse if (severity == \"warning\")\n\t\t\treturn Severity::warning;\n\t\telse if (severity == \"error\")\n\t\t\treturn Severity::error;\n\t\telse if (severity == \"fatal\")\n\t\t\treturn Severity::fatal;\n\t\telse\n\t\t\treturn def;\n\t}\n\n\tstatic std::string to_string(Severity logSeverity) {\n\t\tswitch (logSeverity) {\n\t\tcase Severity::trace:\n\t\t\treturn \"Trace\";\n\t\tcase Severity::debug:\n\t\t\treturn \"Debug\";\n\t\tcase Severity::info:\n\t\t\treturn \"Info\";\n\t\tcase Severity::notice:\n\t\t\treturn \"Notice\";\n\t\tcase Severity::warning:\n\t\t\treturn \"Warn\";\n\t\tcase Severity::error:\n\t\t\treturn \"Error\";\n\t\tcase Severity::fatal:\n\t\t\treturn \"Fatal\";\n\t\tdefault:\n\t\t\tstd::stringstream ss;\n\t\t\tss << static_cast<int>(logSeverity);\n\t\t\treturn ss.str();\n\t\t}\n\t}\n\n\t/**\n\t * @brief\n\t * Color constants used for console colors\n\t */\n\tenum class Color {\n\t\tnone = 0,\n\t\tNONE = 0,\n\t\tblack = 1,\n\t\tBLACK = 1,\n\t\tred = 2,\n\t\tRED = 2,\n\t\tgreen = 3,\n\t\tGREEN = 3,\n\t\tyellow = 4,\n\t\tYELLOW = 4,\n\t\tblue = 5,\n\t\tBLUE = 5,\n\t\tmagenta = 6,\n\t\tMAGENTA = 6,\n\t\tcyan = 7,\n\t\tCYAN = 7,\n\t\twhite = 8,\n\t\tWHITE = 8\n\t};\n\n\t/**\n\t * @brief\n\t * Encapsulation of foreground and background color\n\t */\n\tstruct TextColor {\n\t\tTextColor(Color foreground = Color::none, Color background = Color::none)\n\t\t\t: foreground(foreground), background(background) {\n\t\t}\n\n\t\tColor foreground;\n\t\tColor background;\n\t};\n\n\t/**\n\t * @brief\n\t * For Conditional logging of a log line\n\t */\n\tstruct Conditional {\n\t\tusing EvalFunc = std::function<bool()>;\n\n\t\tConditional() : func_([](void) { return true; }) {\n\t\t}\n\n\t\tConditional(const EvalFunc &func) : func_(func) {\n\t\t}\n\n\t\tConditional(bool value) : func_([value](void) { return value; }) {\n\t\t}\n\n\t\tvirtual ~Conditional() = default;\n\n\t\tvirtual bool is_true() const {\n\t\t\treturn func_();\n\t\t}\n\n\t  protected:\n\t\tEvalFunc func_;\n\t};\n\n\t/**\n\t * @brief\n\t * Timestamp of a log line\n\t *\n\t * to_string will convert the time stamp into a string, using the strftime syntax\n\t */\n\tstruct Timestamp {\n\t\tusing time_point_sys_clock = std::chrono::time_point<std::chrono::system_clock>;\n\n\t\tTimestamp(std::nullptr_t) : is_null_(true) {\n\t\t}\n\n\t\tTimestamp() : Timestamp(nullptr) {\n\t\t}\n\n\t\tTimestamp(const time_point_sys_clock &time_point) : time_point(time_point), is_null_(false) {\n\t\t}\n\n\t\tTimestamp(time_point_sys_clock &&time_point) : time_point(std::move(time_point)), is_null_(false) {\n\t\t}\n\n\t\tvirtual ~Timestamp() = default;\n\n\t\texplicit operator bool() const {\n\t\t\treturn !is_null_;\n\t\t}\n\n\t\t/// strftime format + proprietary \"#ms\" for milliseconds\n\t\tstd::string to_string(const std::string &format = \"%Y-%m-%d %H-%M-%S.#ms\") const {\n\t\t\tstd::time_t now_c = std::chrono::system_clock::to_time_t(time_point);\n\t\t\tstruct ::tm now_tm = localtime_xp(now_c);\n\t\t\tchar buffer[256];\n\t\t\tstrftime(buffer, sizeof buffer, format.c_str(), &now_tm);\n\t\t\tstd::string result(buffer);\n\t\t\tsize_t pos = result.find(\"#ms\");\n\t\t\tif (pos != std::string::npos) {\n\t\t\t\tint ms_part =\n\t\t\t\t\tstd::chrono::time_point_cast<std::chrono::milliseconds>(time_point).time_since_epoch().count() %\n\t\t\t\t\t1000;\n\t\t\t\tchar ms_str[4];\n\t\t\t\tif (snprintf(ms_str, 4, \"%03d\", ms_part) >= 0)\n\t\t\t\t\tresult.replace(pos, 3, ms_str);\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\n\t\ttime_point_sys_clock time_point;\n\n\t  private:\n\t\tbool is_null_;\n\n\t\tinline std::tm localtime_xp(std::time_t timer) const {\n\t\t\tstd::tm bt;\n#if defined(__unix__)\n\t\t\tlocaltime_r(&timer, &bt);\n#elif defined(_MSC_VER)\n\t\t\tlocaltime_s(&bt, &timer);\n#else\n\t\t\tstatic std::mutex mtx;\n\t\t\tstd::lock_guard<std::mutex> lock(mtx);\n\t\t\tbt = *std::localtime(&timer);\n#endif\n\t\t\treturn bt;\n\t\t}\n\t};\n\n\t/**\n\t * @brief\n\t * Tag (string) for log line\n\t */\n\tstruct Tag {\n\t\tTag(std::nullptr_t) : text(\"\"), is_null_(true) {\n\t\t}\n\n\t\tTag() : Tag(nullptr) {\n\t\t}\n\n\t\tTag(const char *text) : text(text), is_null_(false) {\n\t\t}\n\n\t\tTag(const std::string &text) : text(text), is_null_(false) {\n\t\t}\n\n\t\tTag(std::string &&text) : text(std::move(text)), is_null_(false) {\n\t\t}\n\n\t\tvirtual ~Tag() = default;\n\n\t\texplicit operator bool() const {\n\t\t\treturn !is_null_;\n\t\t}\n\n\t\tbool operator<(const Tag &other) const {\n\t\t\treturn (text < other.text);\n\t\t}\n\n\t\tstd::string text;\n\n\t  private:\n\t\tbool is_null_;\n\t};\n\n\t/**\n\t * @brief\n\t * Capture function, file and line number of the log line\n\t */\n\tstruct Function {\n\t\tFunction(const std::string &name, const std::string &file, size_t line)\n\t\t\t: name(name), file(file), line(line), is_null_(false) {\n\t\t}\n\n\t\tFunction(std::string &&name, std::string &&file, size_t line)\n\t\t\t: name(std::move(name)), file(std::move(file)), line(line), is_null_(false) {\n\t\t}\n\n\t\tFunction(std::nullptr_t) : name(\"\"), file(\"\"), line(0), is_null_(true) {\n\t\t}\n\n\t\tFunction() : Function(nullptr) {\n\t\t}\n\n\t\tvirtual ~Function() = default;\n\n\t\texplicit operator bool() const {\n\t\t\treturn !is_null_;\n\t\t}\n\n\t\tstd::string name;\n\t\tstd::string file;\n\t\tsize_t line;\n\n\t  private:\n\t\tbool is_null_;\n\t};\n\n\t/**\n\t * @brief\n\t * Collection of a log line's meta data\n\t */\n\tstruct Metadata {\n\t\tMetadata() : severity(Severity::trace), tag(nullptr), function(nullptr), timestamp(nullptr) {\n\t\t}\n\n\t\tSeverity severity;\n\t\tTag tag;\n\t\tFunction function;\n\t\tTimestamp timestamp;\n\t};\n\n\tclass Filter {\n\t  public:\n\t\tFilter() {\n\t\t}\n\n\t\tFilter(Severity severity) {\n\t\t\tadd_filter(severity);\n\t\t}\n\n\t\tbool is_empty() const {\n\t\t\treturn tag_filter_.empty();\n\t\t}\n\n\t\tbool match(const Metadata &metadata) const {\n\t\t\tif (tag_filter_.empty())\n\t\t\t\treturn true;\n\n\t\t\tauto iter = tag_filter_.find(metadata.tag);\n\t\t\tif (iter != tag_filter_.end())\n\t\t\t\treturn (metadata.severity >= iter->second);\n\n\t\t\titer = tag_filter_.find(\"*\");\n\t\t\tif (iter != tag_filter_.end())\n\t\t\t\treturn (metadata.severity >= iter->second);\n\n\t\t\treturn false;\n\t\t}\n\n\t\tvoid add_filter(const Tag &tag, Severity severity) {\n\t\t\ttag_filter_[tag] = severity;\n\t\t}\n\n\t\tvoid add_filter(Severity severity) {\n\t\t\ttag_filter_[\"*\"] = severity;\n\t\t}\n\n\t\tvoid add_filter(const std::string &filter) {\n\t\t\tauto pos = filter.find(\":\");\n\t\t\tif (pos != std::string::npos)\n\t\t\t\tadd_filter(filter.substr(0, pos), to_severity(filter.substr(pos + 1)));\n\t\t\telse\n\t\t\t\tadd_filter(to_severity(filter));\n\t\t}\n\n\t  private:\n\t\tstd::map<Tag, Severity> tag_filter_;\n\t};\n\n\t/**\n\t * @brief\n\t * Abstract log sink\n\t *\n\t * All log sinks must inherit from this Sink\n\t */\n\tstruct Sink {\n\t\tSink(const Filter &filter) : filter(filter) {\n\t\t}\n\n\t\tvirtual ~Sink() = default;\n\n\t\tvirtual void log(const Metadata &metadata, const std::string &message) = 0;\n\n\t\tFilter filter;\n\t};\n\n\t/// ostream operators << for the meta data structs\n\tstatic std::ostream &operator<<(std::ostream &os, const Severity &log_severity);\n\tstatic std::ostream &operator<<(std::ostream &os, const Timestamp &timestamp);\n\tstatic std::ostream &operator<<(std::ostream &os, const Tag &tag);\n\tstatic std::ostream &operator<<(std::ostream &os, const Function &function);\n\tstatic std::ostream &operator<<(std::ostream &os, const Conditional &conditional);\n\tstatic std::ostream &operator<<(std::ostream &os, const Color &color);\n\tstatic std::ostream &operator<<(std::ostream &os, const TextColor &text_color);\n\n\tusing log_sink_ptr = std::shared_ptr<Sink>;\n\n\t/**\n\t * @brief\n\t * Main Logger class with \"Log::init\"\n\t *\n\t * Don't use it directly, but call once \"Log::init\" with your log sink instances.\n\t * The Log class will simply redirect clog to itself (as a streambuf) and\n\t * forward whatever went to clog to the log sink instances\n\t */\n\tclass Log : public std::basic_streambuf<char, std::char_traits<char>> {\n\t  public:\n\t\tstatic Log &instance() {\n\t\t\tstatic Log instance_;\n\t\t\treturn instance_;\n\t\t}\n\n\t\t/// Without \"init\" every PLOG(X) will simply go to clog\n\t\tstatic void init(const std::vector<log_sink_ptr> log_sinks = {}) {\n\t\t\tLog::instance().log_sinks_.clear();\n\n\t\t\tfor (const auto &sink : log_sinks)\n\t\t\t\tLog::instance().add_logsink(sink);\n\t\t}\n\n\t\ttemplate <typename T, typename... Ts> static std::shared_ptr<T> init(Ts &&...params) {\n\t\t\tstd::shared_ptr<T> sink = Log::instance().add_logsink<T>(std::forward<Ts>(params)...);\n\t\t\tinit({sink});\n\t\t\treturn sink;\n\t\t}\n\n\t\ttemplate <typename T, typename... Ts> std::shared_ptr<T> add_logsink(Ts &&...params) {\n\t\t\tstd::lock_guard<std::recursive_mutex> lock(mutex_);\n\t\t\tstatic_assert(std::is_base_of<Sink, typename std::decay<T>::type>::value, \"type T must be a Sink\");\n\t\t\tstd::shared_ptr<T> sink = std::make_shared<T>(std::forward<Ts>(params)...);\n\t\t\tlog_sinks_.push_back(sink);\n\t\t\treturn sink;\n\t\t}\n\n\t\tvoid add_logsink(const log_sink_ptr &sink) {\n\t\t\tstd::lock_guard<std::recursive_mutex> lock(mutex_);\n\t\t\tlog_sinks_.push_back(sink);\n\t\t}\n\n\t\tvoid remove_logsink(const log_sink_ptr &sink) {\n\t\t\tstd::lock_guard<std::recursive_mutex> lock(mutex_);\n\t\t\tlog_sinks_.erase(std::remove(log_sinks_.begin(), log_sinks_.end(), sink), log_sinks_.end());\n\t\t}\n\n\t  protected:\n\t\tLog() noexcept : last_buffer_(nullptr), do_log_(true) {\n\t\t\tstd::clog.rdbuf(this);\n\t\t\tstd::clog << Severity() << Tag() << Function() << Conditional() << AixLog::Color::NONE << std::flush;\n\t\t}\n\n\t\tvirtual ~Log() {\n\t\t\tsync();\n\t\t}\n\n\t\tint sync() override {\n\t\t\tstd::lock_guard<std::recursive_mutex> lock(mutex_);\n\t\t\tif (!get_stream().str().empty()) {\n\t\t\t\tif (do_log_) {\n\t\t\t\t\tfor (const auto &sink : log_sinks_) {\n\t\t\t\t\t\tif (sink->filter.match(metadata_))\n\t\t\t\t\t\t\tsink->log(metadata_, get_stream().str());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tget_stream().str(\"\");\n\t\t\t\tget_stream().clear();\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\tint overflow(int c) override {\n\t\t\tstd::lock_guard<std::recursive_mutex> lock(mutex_);\n\t\t\tif (c != EOF) {\n\t\t\t\tif (c == '\\n')\n\t\t\t\t\tsync();\n\t\t\t\telse if (do_log_)\n\t\t\t\t\tget_stream() << static_cast<char>(c);\n\t\t\t} else {\n\t\t\t\tsync();\n\t\t\t}\n\t\t\treturn c;\n\t\t}\n\n\t  private:\n\t\tfriend std::ostream &operator<<(std::ostream &os, const Severity &log_severity);\n\t\tfriend std::ostream &operator<<(std::ostream &os, const Timestamp &timestamp);\n\t\tfriend std::ostream &operator<<(std::ostream &os, const Tag &tag);\n\t\tfriend std::ostream &operator<<(std::ostream &os, const Function &function);\n\t\tfriend std::ostream &operator<<(std::ostream &os, const Conditional &conditional);\n\n\t\tstd::stringstream &get_stream() {\n\t\t\tauto id = std::this_thread::get_id();\n\t\t\tif ((last_buffer_ == nullptr) || (last_id_ != id)) {\n\t\t\t\tlast_id_ = id;\n\t\t\t\tlast_buffer_ = &(buffer_[id]);\n\t\t\t}\n\t\t\treturn *last_buffer_;\n\t\t}\n\n\t\t/// one buffer per thread to avoid mixed log lines\n\t\tstd::map<std::thread::id, std::stringstream> buffer_;\n\t\t/// the last thread id\n\t\tstd::thread::id last_id_;\n\t\t/// the last buffer\n\t\tstd::stringstream *last_buffer_ = nullptr;\n\t\tMetadata metadata_;\n\t\tbool do_log_;\n\t\tstd::vector<log_sink_ptr> log_sinks_;\n\t\tstd::recursive_mutex mutex_;\n\t};\n\n\t/**\n\t * @brief\n\t * Null log sink\n\t *\n\t * Discards all log messages\n\t */\n\tstruct SinkNull : public Sink {\n\t\tSinkNull() : Sink(Filter()) {\n\t\t}\n\n\t\tvoid log(const Metadata & /*metadata*/, const std::string & /*message*/) override {\n\t\t}\n\t};\n\n\t/**\n\t * @brief\n\t * Abstract log sink with support for formatting log message\n\t *\n\t * \"format\" in the c'tor defines a log pattern.\n\t * For every log message, these placeholders will be substituded:\n\t * - strftime syntax is used to format the logging time stamp (%Y, %m, %d, ...)\n\t * - #ms: milliseconds part of the logging time stamp with leading zeros\n\t * - #severity: log severity\n\t * - #tag_func: the log tag. If empty, the function\n\t * - #tag: the log tag\n\t * - #function: the function\n\t * - #message: the log message\n\t */\n\tstruct SinkFormat : public Sink {\n\t\tSinkFormat(const Filter &filter, const std::string &format) : Sink(filter), format_(format) {\n\t\t}\n\n\t\tvirtual void set_format(const std::string &format) {\n\t\t\tformat_ = format;\n\t\t}\n\n\t\tvoid log(const Metadata &metadata, const std::string &message) override = 0;\n\n\t  protected:\n\t\tvirtual void do_log(std::ostream &stream, const Metadata &metadata, const std::string &message) const {\n\t\t\tstd::string result = format_;\n\t\t\tif (metadata.timestamp)\n\t\t\t\tresult = metadata.timestamp.to_string(result);\n\n\t\t\tsize_t pos = result.find(\"#severity\");\n\t\t\tif (pos != std::string::npos)\n\t\t\t\tresult.replace(pos, 9, to_string(metadata.severity));\n\n\t\t\tpos = result.find(\"#color_severity\");\n\t\t\tif (pos != std::string::npos) {\n\t\t\t\tstd::stringstream ss;\n\t\t\t\tss << TextColor(Color::RED) << to_string(metadata.severity) << TextColor(Color::NONE);\n\t\t\t\tresult.replace(pos, 15, ss.str());\n\t\t\t}\n\n\t\t\tpos = result.find(\"#tag_func\");\n\t\t\tif (pos != std::string::npos)\n\t\t\t\tresult.replace(\n\t\t\t\t\tpos, 9, metadata.tag ? metadata.tag.text : (metadata.function ? metadata.function.name : \"log\")\n\t\t\t\t);\n\n\t\t\tpos = result.find(\"#tag\");\n\t\t\tif (pos != std::string::npos)\n\t\t\t\tresult.replace(pos, 4, metadata.tag ? metadata.tag.text : \"\");\n\n\t\t\tpos = result.find(\"#function\");\n\t\t\tif (pos != std::string::npos)\n\t\t\t\tresult.replace(pos, 9, metadata.function ? metadata.function.name : \"\");\n\n\t\t\tpos = result.find(\"#message\");\n\t\t\tif (pos != std::string::npos) {\n\t\t\t\tresult.replace(pos, 8, message);\n\t\t\t\tstream << result << std::endl;\n\t\t\t} else {\n\t\t\t\tif (result.empty() || (result.back() == ' '))\n\t\t\t\t\tstream << result << message << std::endl;\n\t\t\t\telse\n\t\t\t\t\tstream << result << \" \" << message << std::endl;\n\t\t\t}\n\t\t}\n\n\t\tstd::string format_;\n\t};\n\n\t/**\n\t * @brief\n\t * Formatted logging to cout\n\t */\n\tstruct SinkCout : public SinkFormat {\n\t\tSinkCout(const Filter &filter, const std::string &format = \"%Y-%m-%d %H-%M-%S.#ms [#severity] (#tag_func)\")\n\t\t\t: SinkFormat(filter, format) {\n\t\t}\n\n\t\tvoid log(const Metadata &metadata, const std::string &message) override {\n\t\t\tdo_log(std::cout, metadata, message);\n\t\t}\n\t};\n\n\t/**\n\t * @brief\n\t * Formatted logging to cerr\n\t */\n\tstruct SinkCerr : public SinkFormat {\n\t\tSinkCerr(const Filter &filter, const std::string &format = \"%Y-%m-%d %H-%M-%S.#ms [#severity] (#tag_func)\")\n\t\t\t: SinkFormat(filter, format) {\n\t\t}\n\n\t\tvoid log(const Metadata &metadata, const std::string &message) override {\n\t\t\tdo_log(std::cerr, metadata, message);\n\t\t}\n\t};\n\n\t/**\n\t * @brief\n\t * Formatted logging to file\n\t */\n\tstruct SinkFile : public SinkFormat {\n\t\tSinkFile(\n\t\t\tconst Filter &filter, const std::string &filename,\n\t\t\tconst std::string &format = \"%Y-%m-%d %H-%M-%S.#ms [#severity] (#tag_func)\"\n\t\t)\n\t\t\t: SinkFormat(filter, format) {\n\t\t\tofs.open(filename.c_str(), std::ofstream::out | std::ofstream::trunc);\n\t\t}\n\n\t\t~SinkFile() override {\n\t\t\tofs.close();\n\t\t}\n\n\t\tvoid log(const Metadata &metadata, const std::string &message) override {\n\t\t\tdo_log(ofs, metadata, message);\n\t\t}\n\n\t  protected:\n\t\tmutable std::ofstream ofs;\n\t};\n\n#ifdef _WIN32\n\t/**\n\t * @brief\n\t * Windows: Logging to OutputDebugString\n\t *\n\t * Not tested due to unavailability of Windows\n\t */\n\tstruct SinkOutputDebugString : public Sink {\n\t\tSinkOutputDebugString(const Filter &filter) : Sink(filter) {\n\t\t}\n\n\t\tvoid log(const Metadata &metadata, const std::string &message) override {\n#ifdef UNICODE\n\t\t\tstd::wstring wide = std::wstring(message.begin(), message.end());\n\t\t\tOutputDebugString(wide.c_str());\n#else\n\t\t\tOutputDebugString(message.c_str());\n#endif\n\t\t}\n\t};\n#endif\n\n#ifdef HAS_APPLE_UNIFIED_LOG_\n\t/**\n\t * @brief\n\t * macOS: Logging to Apples system logger\n\t */\n\tstruct SinkUnifiedLogging : public Sink {\n\t\tSinkUnifiedLogging(const Filter &filter) : Sink(filter) {\n\t\t}\n\n\t\tos_log_type_t get_os_log_type(Severity severity) const {\n\t\t\t// https://developer.apple.com/documentation/os/os_log_type_t?language=objc\n\t\t\tswitch (severity) {\n\t\t\tcase Severity::trace:\n\t\t\tcase Severity::debug:\n\t\t\t\treturn OS_LOG_TYPE_DEBUG;\n\t\t\tcase Severity::info:\n\t\t\tcase Severity::notice:\n\t\t\t\treturn OS_LOG_TYPE_INFO;\n\t\t\tcase Severity::warning:\n\t\t\t\treturn OS_LOG_TYPE_DEFAULT;\n\t\t\tcase Severity::error:\n\t\t\t\treturn OS_LOG_TYPE_ERROR;\n\t\t\tcase Severity::fatal:\n\t\t\t\treturn OS_LOG_TYPE_FAULT;\n\t\t\tdefault:\n\t\t\t\treturn OS_LOG_TYPE_DEFAULT;\n\t\t\t}\n\t\t}\n\n\t\tvoid log(const Metadata &metadata, const std::string &message) override {\n\t\t\tos_log_with_type(OS_LOG_DEFAULT, get_os_log_type(metadata.severity), \"%{public}s\", message.c_str());\n\t\t}\n\t};\n#endif\n\n#ifdef HAS_SYSLOG_\n\t/**\n\t * @brief\n\t * UNIX: Logging to syslog\n\t */\n\tstruct SinkSyslog : public Sink {\n\t\tSinkSyslog(const char *ident, const Filter &filter) : Sink(filter) {\n\t\t\topenlog(ident, LOG_PID, LOG_USER);\n\t\t}\n\n\t\t~SinkSyslog() override {\n\t\t\tcloselog();\n\t\t}\n\n\t\tint get_syslog_priority(Severity severity) const {\n\t\t\t// http://unix.superglobalmegacorp.com/Net2/newsrc/sys/syslog.h.html\n\t\t\tswitch (severity) {\n\t\t\tcase Severity::trace:\n\t\t\tcase Severity::debug:\n\t\t\t\treturn LOG_DEBUG;\n\t\t\tcase Severity::info:\n\t\t\t\treturn LOG_INFO;\n\t\t\tcase Severity::notice:\n\t\t\t\treturn LOG_NOTICE;\n\t\t\tcase Severity::warning:\n\t\t\t\treturn LOG_WARNING;\n\t\t\tcase Severity::error:\n\t\t\t\treturn LOG_ERR;\n\t\t\tcase Severity::fatal:\n\t\t\t\treturn LOG_CRIT;\n\t\t\tdefault:\n\t\t\t\treturn LOG_INFO;\n\t\t\t}\n\t\t}\n\n\t\tvoid log(const Metadata &metadata, const std::string &message) override {\n\t\t\tsyslog(get_syslog_priority(metadata.severity), \"%s\", message.c_str());\n\t\t}\n\t};\n#endif\n\n#ifdef __ANDROID__\n\t/**\n\t * @brief\n\t * Android: Logging to android log\n\t *\n\t * Use logcat to read the logs\n\t */\n\tstruct SinkAndroid : public Sink {\n\t\tSinkAndroid(const std::string &ident, const Filter &filter) : Sink(filter), ident_(ident) {\n\t\t}\n\n\t\tandroid_LogPriority get_android_prio(Severity severity) const {\n\t\t\t// https://developer.android.com/ndk/reference/log_8h.html\n\t\t\tswitch (severity) {\n\t\t\tcase Severity::trace:\n\t\t\t\treturn ANDROID_LOG_VERBOSE;\n\t\t\tcase Severity::debug:\n\t\t\t\treturn ANDROID_LOG_DEBUG;\n\t\t\tcase Severity::info:\n\t\t\tcase Severity::notice:\n\t\t\t\treturn ANDROID_LOG_INFO;\n\t\t\tcase Severity::warning:\n\t\t\t\treturn ANDROID_LOG_WARN;\n\t\t\tcase Severity::error:\n\t\t\t\treturn ANDROID_LOG_ERROR;\n\t\t\tcase Severity::fatal:\n\t\t\t\treturn ANDROID_LOG_FATAL;\n\t\t\tdefault:\n\t\t\t\treturn ANDROID_LOG_UNKNOWN;\n\t\t\t}\n\t\t}\n\n\t\tvoid log(const Metadata &metadata, const std::string &message) override {\n\t\t\tstd::string tag = metadata.tag ? metadata.tag.text : (metadata.function ? metadata.function.name : \"\");\n\t\t\tstd::string log_tag;\n\t\t\tif (!ident_.empty() && !tag.empty())\n\t\t\t\tlog_tag = ident_ + \".\" + tag;\n\t\t\telse if (!ident_.empty())\n\t\t\t\tlog_tag = ident_;\n\t\t\telse if (!tag.empty())\n\t\t\t\tlog_tag = tag;\n\t\t\telse\n\t\t\t\tlog_tag = \"log\";\n\n\t\t\t__android_log_write(get_android_prio(metadata.severity), log_tag.c_str(), message.c_str());\n\t\t}\n\n\t  protected:\n\t\tstd::string ident_;\n\t};\n#endif\n\n#ifdef _WIN32\n\t/**\n\t * @brief\n\t * Windows: Logging to event logger\n\t *\n\t * Not tested due to unavailability of Windows\n\t */\n\tstruct SinkEventLog : public Sink {\n\t\tSinkEventLog(const std::string &ident, const Filter &filter) : Sink(filter) {\n#ifdef UNICODE\n\t\t\tstd::wstring wide = std::wstring(\n\t\t\t\tident.begin(), ident.end()\n\t\t\t); // stijnvdb: RegisterEventSource expands to RegisterEventSourceW which takes wchar_t\n\t\t\tevent_log = RegisterEventSource(NULL, wide.c_str());\n#else\n\t\t\tevent_log = RegisterEventSource(NULL, ident.c_str());\n#endif\n\t\t}\n\n\t\tWORD get_type(Severity severity) const {\n\t\t\t// https://msdn.microsoft.com/de-de/library/windows/desktop/aa363679(v=vs.85).aspx\n\t\t\tswitch (severity) {\n\t\t\tcase Severity::trace:\n\t\t\tcase Severity::debug:\n\t\t\t\treturn EVENTLOG_INFORMATION_TYPE;\n\t\t\tcase Severity::info:\n\t\t\tcase Severity::notice:\n\t\t\t\treturn EVENTLOG_SUCCESS;\n\t\t\tcase Severity::warning:\n\t\t\t\treturn EVENTLOG_WARNING_TYPE;\n\t\t\tcase Severity::error:\n\t\t\tcase Severity::fatal:\n\t\t\t\treturn EVENTLOG_ERROR_TYPE;\n\t\t\tdefault:\n\t\t\t\treturn EVENTLOG_INFORMATION_TYPE;\n\t\t\t}\n\t\t}\n\n\t\tvoid log(const Metadata &metadata, const std::string &message) override {\n#ifdef UNICODE\n\t\t\tstd::wstring wide = std::wstring(message.begin(), message.end());\n\t\t\t// We need this temp variable because we cannot take address of rValue\n\t\t\tconst auto *c_str = wide.c_str();\n\t\t\tReportEvent(event_log, get_type(metadata.severity), 0, 0, NULL, 1, 0, &c_str, NULL);\n#else\n\t\t\tconst auto *c_str = message.c_str();\n\t\t\tReportEvent(event_log, get_type(metadata.severity), 0, 0, NULL, 1, 0, &c_str, NULL);\n#endif\n\t\t}\n\n\t  protected:\n\t\tHANDLE event_log;\n\t};\n#endif\n\n\t/**\n\t * @brief\n\t * Log to the system's native sys logger\n\t *\n\t * - Android: Android log\n\t * - macOS:   unified log\n\t * - Windows: event log\n\t * - Unix:    syslog\n\t */\n\tstruct SinkNative : public Sink {\n\t\tSinkNative(const std::string &ident, const Filter &filter) : Sink(filter), log_sink_(nullptr), ident_(ident) {\n#ifdef __ANDROID__\n\t\t\tlog_sink_ = std::make_shared<SinkAndroid>(ident_, filter);\n#elif HAS_APPLE_UNIFIED_LOG_\n\t\t\tlog_sink_ = std::make_shared<SinkUnifiedLogging>(filter);\n#elif _WIN32\n\t\t\tlog_sink_ = std::make_shared<SinkEventLog>(ident, filter);\n#elif HAS_SYSLOG_\n\t\t\tlog_sink_ = std::make_shared<SinkSyslog>(ident_.c_str(), filter);\n#else\n\t\t\t/// will not throw or something. Use \"get_logger()\" to check for success\n\t\t\tlog_sink_ = nullptr;\n#endif\n\t\t}\n\n\t\tvirtual log_sink_ptr get_logger() {\n\t\t\treturn log_sink_;\n\t\t}\n\n\t\tvoid log(const Metadata &metadata, const std::string &message) override {\n\t\t\tif (log_sink_ != nullptr)\n\t\t\t\tlog_sink_->log(metadata, message);\n\t\t}\n\n\t  protected:\n\t\tlog_sink_ptr log_sink_;\n\t\tstd::string ident_;\n\t};\n\n\t/**\n\t * @brief\n\t * Forward log messages to a callback function\n\t *\n\t * Pass the callback function to the c'tor.\n\t * This can be any function that matches the signature of \"callback_fun\"\n\t * Might also be a lambda function\n\t */\n\tstruct SinkCallback : public Sink {\n\t\tusing callback_fun = std::function<void(const Metadata &metadata, const std::string &message)>;\n\n\t\tSinkCallback(const Filter &filter, callback_fun callback) : Sink(filter), callback_(callback) {\n\t\t}\n\n\t\tvoid log(const Metadata &metadata, const std::string &message) override {\n\t\t\tif (callback_)\n\t\t\t\tcallback_(metadata, message);\n\t\t}\n\n\t  private:\n\t\tcallback_fun callback_;\n\t};\n\n\t/**\n\t * @brief\n\t * ostream << operator for \"Severity\"\n\t *\n\t * Severity must be the first thing that is logged into clog, since it will reset the loggers metadata.\n\t */\n\tstatic std::ostream &operator<<(std::ostream &os, const Severity &log_severity) {\n\t\tLog *log = dynamic_cast<Log *>(os.rdbuf());\n\t\tif (log != nullptr) {\n\t\t\tstd::lock_guard<std::recursive_mutex> lock(log->mutex_);\n\t\t\tif (log->metadata_.severity != log_severity) {\n\t\t\t\tlog->sync();\n\t\t\t\tlog->metadata_.severity = log_severity;\n\t\t\t\tlog->metadata_.timestamp = nullptr;\n\t\t\t\tlog->metadata_.tag = nullptr;\n\t\t\t\tlog->metadata_.function = nullptr;\n\t\t\t\tlog->do_log_ = true;\n\t\t\t}\n\t\t} else {\n\t\t\tos << to_string(log_severity);\n\t\t}\n\t\treturn os;\n\t}\n\n\tstatic std::ostream &operator<<(std::ostream &os, const Timestamp &timestamp) {\n\t\tLog *log = dynamic_cast<Log *>(os.rdbuf());\n\t\tif (log != nullptr) {\n\t\t\tstd::lock_guard<std::recursive_mutex> lock(log->mutex_);\n\t\t\tlog->metadata_.timestamp = timestamp;\n\t\t} else if (timestamp) {\n\t\t\tos << timestamp.to_string();\n\t\t}\n\t\treturn os;\n\t}\n\n\tstatic std::ostream &operator<<(std::ostream &os, const Tag &tag) {\n\t\tLog *log = dynamic_cast<Log *>(os.rdbuf());\n\t\tif (log != nullptr) {\n\t\t\tstd::lock_guard<std::recursive_mutex> lock(log->mutex_);\n\t\t\tlog->metadata_.tag = tag;\n\t\t} else if (tag) {\n\t\t\tos << tag.text;\n\t\t}\n\t\treturn os;\n\t}\n\n\tstatic std::ostream &operator<<(std::ostream &os, const Function &function) {\n\t\tLog *log = dynamic_cast<Log *>(os.rdbuf());\n\t\tif (log != nullptr) {\n\t\t\tstd::lock_guard<std::recursive_mutex> lock(log->mutex_);\n\t\t\tlog->metadata_.function = function;\n\t\t} else if (function) {\n\t\t\tos << function.name;\n\t\t}\n\t\treturn os;\n\t}\n\n\tstatic std::ostream &operator<<(std::ostream &os, const Conditional &conditional) {\n\t\tLog *log = dynamic_cast<Log *>(os.rdbuf());\n\t\tif (log != nullptr) {\n\t\t\tstd::lock_guard<std::recursive_mutex> lock(log->mutex_);\n\t\t\tlog->do_log_ = conditional.is_true();\n\t\t}\n\t\treturn os;\n\t}\n\n\tstatic std::ostream &operator<<(std::ostream &os, const TextColor &text_color) {\n\t\tos << \"\\033[\";\n\t\tif ((text_color.foreground == Color::none) && (text_color.background == Color::none))\n\t\t\tos << \"0\"; // reset colors if no params\n\n\t\tif (text_color.foreground != Color::none) {\n\t\t\tos << 29 + static_cast<int>(text_color.foreground);\n\t\t\tif (text_color.background != Color::none)\n\t\t\t\tos << \";\";\n\t\t}\n\t\tif (text_color.background != Color::none)\n\t\t\tos << 39 + static_cast<int>(text_color.background);\n\t\tos << \"m\";\n\n\t\treturn os;\n\t}\n\n\tstatic std::ostream &operator<<(std::ostream &os, const Color &color) {\n\t\tos << TextColor(color);\n\t\treturn os;\n\t}\n\n} // namespace AixLog\n\n#ifdef _WIN32\n// We restore the L_ERROR Windows macro\n#pragma pop_macro(\"L_ERROR\")\n#pragma pop_macro(\"L_DEBUG\")\n#endif\n\n#endif // AIX_LOG_HPP\n"
  },
  {
    "path": "src/utils/exceptions.hpp",
    "content": "//\n// Created by Kibae Shin on 2023/09/08.\n//\n\n#ifndef ONNXRUNTIME_SERVER_EXCEPTIONS_HPP\n#define ONNXRUNTIME_SERVER_EXCEPTIONS_HPP\n\n#include <boost/beast/http.hpp>\n\n#include \"json.hpp\"\n\nusing json = nlohmann::json;\nnamespace http = boost::beast::http;\n\nnamespace onnxruntime_server {\n\tclass exception : public std::runtime_error {\n\t  public:\n\t\thttp::status status_code;\n\n\t\texplicit exception(http::status status_code, const std::string &what_arg)\n\t\t\t: std::runtime_error(what_arg), status_code(status_code) {\n\t\t}\n\n\t\tvirtual std::string type() = 0;\n\n\t\tstatic std::string what_to_json(std::string type, std::string what) {\n\t\t\treturn json::object({\n\t\t\t\t\t\t\t\t\t{\"error_type\", type},\n\t\t\t\t\t\t\t\t\t{\"error\", what},\n\t\t\t\t\t\t\t\t})\n\t\t\t\t.dump();\n\t\t}\n\t};\n\n\tclass not_found_error : public exception {\n\t  public:\n\t\texplicit not_found_error(const std::string &what_arg) : exception(http::status::not_found, what_arg) {\n\t\t}\n\n\t\tstd::string type() override {\n\t\t\treturn \"not_found_error\";\n\t\t}\n\t};\n\n\tclass bad_request_error : public exception {\n\t  public:\n\t\texplicit bad_request_error(const std::string &what_arg) : exception(http::status::bad_request, what_arg) {\n\t\t}\n\n\t\tstd::string type() override {\n\t\t\treturn \"bad_request_error\";\n\t\t}\n\t};\n\n\tclass conflict_error : public exception {\n\t  public:\n\t\texplicit conflict_error(const std::string &what_arg) : exception(http::status::conflict, what_arg) {\n\t\t}\n\n\t\tstd::string type() override {\n\t\t\treturn \"conflict_error\";\n\t\t}\n\t};\n\n\tclass runtime_error : public exception {\n\t  public:\n\t\texplicit runtime_error(const std::string &what_arg) : exception(http::status::internal_server_error, what_arg) {\n\t\t}\n\n\t\tstd::string type() override {\n\t\t\treturn \"runtime_error\";\n\t\t}\n\t};\n} // namespace onnxruntime_server\n\n#endif // ONNXRUNTIME_SERVER_EXCEPTIONS_HPP\n"
  },
  {
    "path": "src/utils/json.hpp",
    "content": "//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n/****************************************************************************\\\n * Note on documentation: The source files contain links to the online      *\n * documentation of the public API at https://json.nlohmann.me. This URL    *\n * contains the most recent documentation and should also be applicable to  *\n * previous versions; documentation for deprecated functions is not         *\n * removed, but marked deprecated. See \"Generate documentation\" section in  *\n * file docs/README.md.                                                     *\n\\****************************************************************************/\n\n#ifndef INCLUDE_NLOHMANN_JSON_HPP_\n#define INCLUDE_NLOHMANN_JSON_HPP_\n\n#include <algorithm> // all_of, find, for_each\n#include <cstddef> // nullptr_t, ptrdiff_t, size_t\n#include <functional> // hash, less\n#include <initializer_list> // initializer_list\n#ifndef JSON_NO_IO\n    #include <iosfwd> // istream, ostream\n#endif  // JSON_NO_IO\n#include <iterator> // random_access_iterator_tag\n#include <memory> // unique_ptr\n#include <string> // string, stoi, to_string\n#include <utility> // declval, forward, move, pair, swap\n#include <vector> // vector\n\n// #include <nlohmann/adl_serializer.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <utility>\n\n// #include <nlohmann/detail/abi_macros.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n// This file contains all macro definitions affecting or depending on the ABI\n\n#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK\n    #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH)\n        #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 2\n            #warning \"Already included a different version of the library!\"\n        #endif\n    #endif\n#endif\n\n#define NLOHMANN_JSON_VERSION_MAJOR 3   // NOLINT(modernize-macro-to-enum)\n#define NLOHMANN_JSON_VERSION_MINOR 11  // NOLINT(modernize-macro-to-enum)\n#define NLOHMANN_JSON_VERSION_PATCH 2   // NOLINT(modernize-macro-to-enum)\n\n#ifndef JSON_DIAGNOSTICS\n    #define JSON_DIAGNOSTICS 0\n#endif\n\n#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON\n    #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0\n#endif\n\n#if JSON_DIAGNOSTICS\n    #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag\n#else\n    #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS\n#endif\n\n#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON\n    #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp\n#else\n    #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON\n#endif\n\n#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION\n    #define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0\n#endif\n\n// Construct the namespace ABI tags component\n#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b\n#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \\\n    NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b)\n\n#define NLOHMANN_JSON_ABI_TAGS                                       \\\n    NLOHMANN_JSON_ABI_TAGS_CONCAT(                                   \\\n            NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS,                       \\\n            NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON)\n\n// Construct the namespace version component\n#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \\\n    _v ## major ## _ ## minor ## _ ## patch\n#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \\\n    NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)\n\n#if NLOHMANN_JSON_NAMESPACE_NO_VERSION\n#define NLOHMANN_JSON_NAMESPACE_VERSION\n#else\n#define NLOHMANN_JSON_NAMESPACE_VERSION                                 \\\n    NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \\\n                                           NLOHMANN_JSON_VERSION_MINOR, \\\n                                           NLOHMANN_JSON_VERSION_PATCH)\n#endif\n\n// Combine namespace components\n#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b\n#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \\\n    NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)\n\n#ifndef NLOHMANN_JSON_NAMESPACE\n#define NLOHMANN_JSON_NAMESPACE               \\\n    nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \\\n            NLOHMANN_JSON_ABI_TAGS,           \\\n            NLOHMANN_JSON_NAMESPACE_VERSION)\n#endif\n\n#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN\n#define NLOHMANN_JSON_NAMESPACE_BEGIN                \\\n    namespace nlohmann                               \\\n    {                                                \\\n    inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \\\n                NLOHMANN_JSON_ABI_TAGS,              \\\n                NLOHMANN_JSON_NAMESPACE_VERSION)     \\\n    {\n#endif\n\n#ifndef NLOHMANN_JSON_NAMESPACE_END\n#define NLOHMANN_JSON_NAMESPACE_END                                     \\\n    }  /* namespace (inline namespace) NOLINT(readability/namespace) */ \\\n    }  // namespace nlohmann\n#endif\n\n// #include <nlohmann/detail/conversions/from_json.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <algorithm> // transform\n#include <array> // array\n#include <forward_list> // forward_list\n#include <iterator> // inserter, front_inserter, end\n#include <map> // map\n#include <string> // string\n#include <tuple> // tuple, make_tuple\n#include <type_traits> // is_arithmetic, is_same, is_enum, underlying_type, is_convertible\n#include <unordered_map> // unordered_map\n#include <utility> // pair, declval\n#include <valarray> // valarray\n\n// #include <nlohmann/detail/exceptions.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <cstddef> // nullptr_t\n#include <exception> // exception\n#if JSON_DIAGNOSTICS\n    #include <numeric> // accumulate\n#endif\n#include <stdexcept> // runtime_error\n#include <string> // to_string\n#include <vector> // vector\n\n// #include <nlohmann/detail/value_t.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <array> // array\n#include <cstddef> // size_t\n#include <cstdint> // uint8_t\n#include <string> // string\n\n// #include <nlohmann/detail/macro_scope.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <utility> // declval, pair\n// #include <nlohmann/detail/meta/detected.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <type_traits>\n\n// #include <nlohmann/detail/meta/void_t.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n// #include <nlohmann/detail/abi_macros.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\ntemplate<typename ...Ts> struct make_void\n{\n    using type = void;\n};\ntemplate<typename ...Ts> using void_t = typename make_void<Ts...>::type;\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n// https://en.cppreference.com/w/cpp/experimental/is_detected\nstruct nonesuch\n{\n    nonesuch() = delete;\n    ~nonesuch() = delete;\n    nonesuch(nonesuch const&) = delete;\n    nonesuch(nonesuch const&&) = delete;\n    void operator=(nonesuch const&) = delete;\n    void operator=(nonesuch&&) = delete;\n};\n\ntemplate<class Default,\n         class AlwaysVoid,\n         template<class...> class Op,\n         class... Args>\nstruct detector\n{\n    using value_t = std::false_type;\n    using type = Default;\n};\n\ntemplate<class Default, template<class...> class Op, class... Args>\nstruct detector<Default, void_t<Op<Args...>>, Op, Args...>\n{\n    using value_t = std::true_type;\n    using type = Op<Args...>;\n};\n\ntemplate<template<class...> class Op, class... Args>\nusing is_detected = typename detector<nonesuch, void, Op, Args...>::value_t;\n\ntemplate<template<class...> class Op, class... Args>\nstruct is_detected_lazy : is_detected<Op, Args...> { };\n\ntemplate<template<class...> class Op, class... Args>\nusing detected_t = typename detector<nonesuch, void, Op, Args...>::type;\n\ntemplate<class Default, template<class...> class Op, class... Args>\nusing detected_or = detector<Default, void, Op, Args...>;\n\ntemplate<class Default, template<class...> class Op, class... Args>\nusing detected_or_t = typename detected_or<Default, Op, Args...>::type;\n\ntemplate<class Expected, template<class...> class Op, class... Args>\nusing is_detected_exact = std::is_same<Expected, detected_t<Op, Args...>>;\n\ntemplate<class To, template<class...> class Op, class... Args>\nusing is_detected_convertible =\n    std::is_convertible<detected_t<Op, Args...>, To>;\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/thirdparty/hedley/hedley.hpp>\n\n\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-FileCopyrightText: 2016-2021 Evan Nemerson <evan@nemerson.com>\n// SPDX-License-Identifier: MIT\n\n/* Hedley - https://nemequ.github.io/hedley\n * Created by Evan Nemerson <evan@nemerson.com>\n */\n\n#if !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < 15)\n#if defined(JSON_HEDLEY_VERSION)\n    #undef JSON_HEDLEY_VERSION\n#endif\n#define JSON_HEDLEY_VERSION 15\n\n#if defined(JSON_HEDLEY_STRINGIFY_EX)\n    #undef JSON_HEDLEY_STRINGIFY_EX\n#endif\n#define JSON_HEDLEY_STRINGIFY_EX(x) #x\n\n#if defined(JSON_HEDLEY_STRINGIFY)\n    #undef JSON_HEDLEY_STRINGIFY\n#endif\n#define JSON_HEDLEY_STRINGIFY(x) JSON_HEDLEY_STRINGIFY_EX(x)\n\n#if defined(JSON_HEDLEY_CONCAT_EX)\n    #undef JSON_HEDLEY_CONCAT_EX\n#endif\n#define JSON_HEDLEY_CONCAT_EX(a,b) a##b\n\n#if defined(JSON_HEDLEY_CONCAT)\n    #undef JSON_HEDLEY_CONCAT\n#endif\n#define JSON_HEDLEY_CONCAT(a,b) JSON_HEDLEY_CONCAT_EX(a,b)\n\n#if defined(JSON_HEDLEY_CONCAT3_EX)\n    #undef JSON_HEDLEY_CONCAT3_EX\n#endif\n#define JSON_HEDLEY_CONCAT3_EX(a,b,c) a##b##c\n\n#if defined(JSON_HEDLEY_CONCAT3)\n    #undef JSON_HEDLEY_CONCAT3\n#endif\n#define JSON_HEDLEY_CONCAT3(a,b,c) JSON_HEDLEY_CONCAT3_EX(a,b,c)\n\n#if defined(JSON_HEDLEY_VERSION_ENCODE)\n    #undef JSON_HEDLEY_VERSION_ENCODE\n#endif\n#define JSON_HEDLEY_VERSION_ENCODE(major,minor,revision) (((major) * 1000000) + ((minor) * 1000) + (revision))\n\n#if defined(JSON_HEDLEY_VERSION_DECODE_MAJOR)\n    #undef JSON_HEDLEY_VERSION_DECODE_MAJOR\n#endif\n#define JSON_HEDLEY_VERSION_DECODE_MAJOR(version) ((version) / 1000000)\n\n#if defined(JSON_HEDLEY_VERSION_DECODE_MINOR)\n    #undef JSON_HEDLEY_VERSION_DECODE_MINOR\n#endif\n#define JSON_HEDLEY_VERSION_DECODE_MINOR(version) (((version) % 1000000) / 1000)\n\n#if defined(JSON_HEDLEY_VERSION_DECODE_REVISION)\n    #undef JSON_HEDLEY_VERSION_DECODE_REVISION\n#endif\n#define JSON_HEDLEY_VERSION_DECODE_REVISION(version) ((version) % 1000)\n\n#if defined(JSON_HEDLEY_GNUC_VERSION)\n    #undef JSON_HEDLEY_GNUC_VERSION\n#endif\n#if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__)\n    #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)\n#elif defined(__GNUC__)\n    #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, 0)\n#endif\n\n#if defined(JSON_HEDLEY_GNUC_VERSION_CHECK)\n    #undef JSON_HEDLEY_GNUC_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_GNUC_VERSION)\n    #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GNUC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_MSVC_VERSION)\n    #undef JSON_HEDLEY_MSVC_VERSION\n#endif\n#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000) && !defined(__ICL)\n    #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 10000000, (_MSC_FULL_VER % 10000000) / 100000, (_MSC_FULL_VER % 100000) / 100)\n#elif defined(_MSC_FULL_VER) && !defined(__ICL)\n    #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 1000000, (_MSC_FULL_VER % 1000000) / 10000, (_MSC_FULL_VER % 10000) / 10)\n#elif defined(_MSC_VER) && !defined(__ICL)\n    #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_VER / 100, _MSC_VER % 100, 0)\n#endif\n\n#if defined(JSON_HEDLEY_MSVC_VERSION_CHECK)\n    #undef JSON_HEDLEY_MSVC_VERSION_CHECK\n#endif\n#if !defined(JSON_HEDLEY_MSVC_VERSION)\n    #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (0)\n#elif defined(_MSC_VER) && (_MSC_VER >= 1400)\n    #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch)))\n#elif defined(_MSC_VER) && (_MSC_VER >= 1200)\n    #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch)))\n#else\n    #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_VER >= ((major * 100) + (minor)))\n#endif\n\n#if defined(JSON_HEDLEY_INTEL_VERSION)\n    #undef JSON_HEDLEY_INTEL_VERSION\n#endif\n#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && !defined(__ICL)\n    #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, __INTEL_COMPILER_UPDATE)\n#elif defined(__INTEL_COMPILER) && !defined(__ICL)\n    #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0)\n#endif\n\n#if defined(JSON_HEDLEY_INTEL_VERSION_CHECK)\n    #undef JSON_HEDLEY_INTEL_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_INTEL_VERSION)\n    #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_INTEL_CL_VERSION)\n    #undef JSON_HEDLEY_INTEL_CL_VERSION\n#endif\n#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && defined(__ICL)\n    #define JSON_HEDLEY_INTEL_CL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER, __INTEL_COMPILER_UPDATE, 0)\n#endif\n\n#if defined(JSON_HEDLEY_INTEL_CL_VERSION_CHECK)\n    #undef JSON_HEDLEY_INTEL_CL_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_INTEL_CL_VERSION)\n    #define JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_CL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_PGI_VERSION)\n    #undef JSON_HEDLEY_PGI_VERSION\n#endif\n#if defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__)\n    #define JSON_HEDLEY_PGI_VERSION JSON_HEDLEY_VERSION_ENCODE(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__)\n#endif\n\n#if defined(JSON_HEDLEY_PGI_VERSION_CHECK)\n    #undef JSON_HEDLEY_PGI_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_PGI_VERSION)\n    #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PGI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_SUNPRO_VERSION)\n    #undef JSON_HEDLEY_SUNPRO_VERSION\n#endif\n#if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000)\n    #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), (((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), (__SUNPRO_C & 0xf) * 10)\n#elif defined(__SUNPRO_C)\n    #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_C >> 8) & 0xf, (__SUNPRO_C >> 4) & 0xf, (__SUNPRO_C) & 0xf)\n#elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000)\n    #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), (((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), (__SUNPRO_CC & 0xf) * 10)\n#elif defined(__SUNPRO_CC)\n    #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_CC >> 8) & 0xf, (__SUNPRO_CC >> 4) & 0xf, (__SUNPRO_CC) & 0xf)\n#endif\n\n#if defined(JSON_HEDLEY_SUNPRO_VERSION_CHECK)\n    #undef JSON_HEDLEY_SUNPRO_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_SUNPRO_VERSION)\n    #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_SUNPRO_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION)\n    #undef JSON_HEDLEY_EMSCRIPTEN_VERSION\n#endif\n#if defined(__EMSCRIPTEN__)\n    #define JSON_HEDLEY_EMSCRIPTEN_VERSION JSON_HEDLEY_VERSION_ENCODE(__EMSCRIPTEN_major__, __EMSCRIPTEN_minor__, __EMSCRIPTEN_tiny__)\n#endif\n\n#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK)\n    #undef JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION)\n    #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_EMSCRIPTEN_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_ARM_VERSION)\n    #undef JSON_HEDLEY_ARM_VERSION\n#endif\n#if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION)\n    #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCOMPILER_VERSION / 1000000, (__ARMCOMPILER_VERSION % 1000000) / 10000, (__ARMCOMPILER_VERSION % 10000) / 100)\n#elif defined(__CC_ARM) && defined(__ARMCC_VERSION)\n    #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCC_VERSION / 1000000, (__ARMCC_VERSION % 1000000) / 10000, (__ARMCC_VERSION % 10000) / 100)\n#endif\n\n#if defined(JSON_HEDLEY_ARM_VERSION_CHECK)\n    #undef JSON_HEDLEY_ARM_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_ARM_VERSION)\n    #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_ARM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_IBM_VERSION)\n    #undef JSON_HEDLEY_IBM_VERSION\n#endif\n#if defined(__ibmxl__)\n    #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ibmxl_version__, __ibmxl_release__, __ibmxl_modification__)\n#elif defined(__xlC__) && defined(__xlC_ver__)\n    #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff)\n#elif defined(__xlC__)\n    #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, 0)\n#endif\n\n#if defined(JSON_HEDLEY_IBM_VERSION_CHECK)\n    #undef JSON_HEDLEY_IBM_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_IBM_VERSION)\n    #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IBM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_TI_VERSION)\n    #undef JSON_HEDLEY_TI_VERSION\n#endif\n#if \\\n    defined(__TI_COMPILER_VERSION__) && \\\n    ( \\\n      defined(__TMS470__) || defined(__TI_ARM__) || \\\n      defined(__MSP430__) || \\\n      defined(__TMS320C2000__) \\\n    )\n#if (__TI_COMPILER_VERSION__ >= 16000000)\n    #define JSON_HEDLEY_TI_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000))\n#endif\n#endif\n\n#if defined(JSON_HEDLEY_TI_VERSION_CHECK)\n    #undef JSON_HEDLEY_TI_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_TI_VERSION)\n    #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_TI_CL2000_VERSION)\n    #undef JSON_HEDLEY_TI_CL2000_VERSION\n#endif\n#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C2000__)\n    #define JSON_HEDLEY_TI_CL2000_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000))\n#endif\n\n#if defined(JSON_HEDLEY_TI_CL2000_VERSION_CHECK)\n    #undef JSON_HEDLEY_TI_CL2000_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_TI_CL2000_VERSION)\n    #define JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL2000_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_TI_CL430_VERSION)\n    #undef JSON_HEDLEY_TI_CL430_VERSION\n#endif\n#if defined(__TI_COMPILER_VERSION__) && defined(__MSP430__)\n    #define JSON_HEDLEY_TI_CL430_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000))\n#endif\n\n#if defined(JSON_HEDLEY_TI_CL430_VERSION_CHECK)\n    #undef JSON_HEDLEY_TI_CL430_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_TI_CL430_VERSION)\n    #define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL430_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_TI_ARMCL_VERSION)\n    #undef JSON_HEDLEY_TI_ARMCL_VERSION\n#endif\n#if defined(__TI_COMPILER_VERSION__) && (defined(__TMS470__) || defined(__TI_ARM__))\n    #define JSON_HEDLEY_TI_ARMCL_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000))\n#endif\n\n#if defined(JSON_HEDLEY_TI_ARMCL_VERSION_CHECK)\n    #undef JSON_HEDLEY_TI_ARMCL_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_TI_ARMCL_VERSION)\n    #define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_ARMCL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_TI_CL6X_VERSION)\n    #undef JSON_HEDLEY_TI_CL6X_VERSION\n#endif\n#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C6X__)\n    #define JSON_HEDLEY_TI_CL6X_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000))\n#endif\n\n#if defined(JSON_HEDLEY_TI_CL6X_VERSION_CHECK)\n    #undef JSON_HEDLEY_TI_CL6X_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_TI_CL6X_VERSION)\n    #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL6X_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_TI_CL7X_VERSION)\n    #undef JSON_HEDLEY_TI_CL7X_VERSION\n#endif\n#if defined(__TI_COMPILER_VERSION__) && defined(__C7000__)\n    #define JSON_HEDLEY_TI_CL7X_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000))\n#endif\n\n#if defined(JSON_HEDLEY_TI_CL7X_VERSION_CHECK)\n    #undef JSON_HEDLEY_TI_CL7X_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_TI_CL7X_VERSION)\n    #define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL7X_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_TI_CLPRU_VERSION)\n    #undef JSON_HEDLEY_TI_CLPRU_VERSION\n#endif\n#if defined(__TI_COMPILER_VERSION__) && defined(__PRU__)\n    #define JSON_HEDLEY_TI_CLPRU_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000))\n#endif\n\n#if defined(JSON_HEDLEY_TI_CLPRU_VERSION_CHECK)\n    #undef JSON_HEDLEY_TI_CLPRU_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_TI_CLPRU_VERSION)\n    #define JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CLPRU_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_CRAY_VERSION)\n    #undef JSON_HEDLEY_CRAY_VERSION\n#endif\n#if defined(_CRAYC)\n    #if defined(_RELEASE_PATCHLEVEL)\n        #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, _RELEASE_PATCHLEVEL)\n    #else\n        #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, 0)\n    #endif\n#endif\n\n#if defined(JSON_HEDLEY_CRAY_VERSION_CHECK)\n    #undef JSON_HEDLEY_CRAY_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_CRAY_VERSION)\n    #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_CRAY_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_IAR_VERSION)\n    #undef JSON_HEDLEY_IAR_VERSION\n#endif\n#if defined(__IAR_SYSTEMS_ICC__)\n    #if __VER__ > 1000\n        #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE((__VER__ / 1000000), ((__VER__ / 1000) % 1000), (__VER__ % 1000))\n    #else\n        #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE(__VER__ / 100, __VER__ % 100, 0)\n    #endif\n#endif\n\n#if defined(JSON_HEDLEY_IAR_VERSION_CHECK)\n    #undef JSON_HEDLEY_IAR_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_IAR_VERSION)\n    #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IAR_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_TINYC_VERSION)\n    #undef JSON_HEDLEY_TINYC_VERSION\n#endif\n#if defined(__TINYC__)\n    #define JSON_HEDLEY_TINYC_VERSION JSON_HEDLEY_VERSION_ENCODE(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100)\n#endif\n\n#if defined(JSON_HEDLEY_TINYC_VERSION_CHECK)\n    #undef JSON_HEDLEY_TINYC_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_TINYC_VERSION)\n    #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TINYC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_DMC_VERSION)\n    #undef JSON_HEDLEY_DMC_VERSION\n#endif\n#if defined(__DMC__)\n    #define JSON_HEDLEY_DMC_VERSION JSON_HEDLEY_VERSION_ENCODE(__DMC__ >> 8, (__DMC__ >> 4) & 0xf, __DMC__ & 0xf)\n#endif\n\n#if defined(JSON_HEDLEY_DMC_VERSION_CHECK)\n    #undef JSON_HEDLEY_DMC_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_DMC_VERSION)\n    #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_DMC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_COMPCERT_VERSION)\n    #undef JSON_HEDLEY_COMPCERT_VERSION\n#endif\n#if defined(__COMPCERT_VERSION__)\n    #define JSON_HEDLEY_COMPCERT_VERSION JSON_HEDLEY_VERSION_ENCODE(__COMPCERT_VERSION__ / 10000, (__COMPCERT_VERSION__ / 100) % 100, __COMPCERT_VERSION__ % 100)\n#endif\n\n#if defined(JSON_HEDLEY_COMPCERT_VERSION_CHECK)\n    #undef JSON_HEDLEY_COMPCERT_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_COMPCERT_VERSION)\n    #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_COMPCERT_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_PELLES_VERSION)\n    #undef JSON_HEDLEY_PELLES_VERSION\n#endif\n#if defined(__POCC__)\n    #define JSON_HEDLEY_PELLES_VERSION JSON_HEDLEY_VERSION_ENCODE(__POCC__ / 100, __POCC__ % 100, 0)\n#endif\n\n#if defined(JSON_HEDLEY_PELLES_VERSION_CHECK)\n    #undef JSON_HEDLEY_PELLES_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_PELLES_VERSION)\n    #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PELLES_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_MCST_LCC_VERSION)\n    #undef JSON_HEDLEY_MCST_LCC_VERSION\n#endif\n#if defined(__LCC__) && defined(__LCC_MINOR__)\n    #define JSON_HEDLEY_MCST_LCC_VERSION JSON_HEDLEY_VERSION_ENCODE(__LCC__ / 100, __LCC__ % 100, __LCC_MINOR__)\n#endif\n\n#if defined(JSON_HEDLEY_MCST_LCC_VERSION_CHECK)\n    #undef JSON_HEDLEY_MCST_LCC_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_MCST_LCC_VERSION)\n    #define JSON_HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_MCST_LCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_GCC_VERSION)\n    #undef JSON_HEDLEY_GCC_VERSION\n#endif\n#if \\\n    defined(JSON_HEDLEY_GNUC_VERSION) && \\\n    !defined(__clang__) && \\\n    !defined(JSON_HEDLEY_INTEL_VERSION) && \\\n    !defined(JSON_HEDLEY_PGI_VERSION) && \\\n    !defined(JSON_HEDLEY_ARM_VERSION) && \\\n    !defined(JSON_HEDLEY_CRAY_VERSION) && \\\n    !defined(JSON_HEDLEY_TI_VERSION) && \\\n    !defined(JSON_HEDLEY_TI_ARMCL_VERSION) && \\\n    !defined(JSON_HEDLEY_TI_CL430_VERSION) && \\\n    !defined(JSON_HEDLEY_TI_CL2000_VERSION) && \\\n    !defined(JSON_HEDLEY_TI_CL6X_VERSION) && \\\n    !defined(JSON_HEDLEY_TI_CL7X_VERSION) && \\\n    !defined(JSON_HEDLEY_TI_CLPRU_VERSION) && \\\n    !defined(__COMPCERT__) && \\\n    !defined(JSON_HEDLEY_MCST_LCC_VERSION)\n    #define JSON_HEDLEY_GCC_VERSION JSON_HEDLEY_GNUC_VERSION\n#endif\n\n#if defined(JSON_HEDLEY_GCC_VERSION_CHECK)\n    #undef JSON_HEDLEY_GCC_VERSION_CHECK\n#endif\n#if defined(JSON_HEDLEY_GCC_VERSION)\n    #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch))\n#else\n    #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (0)\n#endif\n\n#if defined(JSON_HEDLEY_HAS_ATTRIBUTE)\n    #undef JSON_HEDLEY_HAS_ATTRIBUTE\n#endif\n#if \\\n  defined(__has_attribute) && \\\n  ( \\\n    (!defined(JSON_HEDLEY_IAR_VERSION) || JSON_HEDLEY_IAR_VERSION_CHECK(8,5,9)) \\\n  )\n#  define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) __has_attribute(attribute)\n#else\n#  define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) (0)\n#endif\n\n#if defined(JSON_HEDLEY_GNUC_HAS_ATTRIBUTE)\n    #undef JSON_HEDLEY_GNUC_HAS_ATTRIBUTE\n#endif\n#if defined(__has_attribute)\n    #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_HAS_ATTRIBUTE(attribute)\n#else\n    #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if defined(JSON_HEDLEY_GCC_HAS_ATTRIBUTE)\n    #undef JSON_HEDLEY_GCC_HAS_ATTRIBUTE\n#endif\n#if defined(__has_attribute)\n    #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_HAS_ATTRIBUTE(attribute)\n#else\n    #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE)\n    #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE\n#endif\n#if \\\n    defined(__has_cpp_attribute) && \\\n    defined(__cplusplus) && \\\n    (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0))\n    #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) __has_cpp_attribute(attribute)\n#else\n    #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) (0)\n#endif\n\n#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS)\n    #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS\n#endif\n#if !defined(__cplusplus) || !defined(__has_cpp_attribute)\n    #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0)\n#elif \\\n    !defined(JSON_HEDLEY_PGI_VERSION) && \\\n    !defined(JSON_HEDLEY_IAR_VERSION) && \\\n    (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) && \\\n    (!defined(JSON_HEDLEY_MSVC_VERSION) || JSON_HEDLEY_MSVC_VERSION_CHECK(19,20,0))\n    #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(ns::attribute)\n#else\n    #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0)\n#endif\n\n#if defined(JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE)\n    #undef JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE\n#endif\n#if defined(__has_cpp_attribute) && defined(__cplusplus)\n    #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute)\n#else\n    #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if defined(JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE)\n    #undef JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE\n#endif\n#if defined(__has_cpp_attribute) && defined(__cplusplus)\n    #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute)\n#else\n    #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if defined(JSON_HEDLEY_HAS_BUILTIN)\n    #undef JSON_HEDLEY_HAS_BUILTIN\n#endif\n#if defined(__has_builtin)\n    #define JSON_HEDLEY_HAS_BUILTIN(builtin) __has_builtin(builtin)\n#else\n    #define JSON_HEDLEY_HAS_BUILTIN(builtin) (0)\n#endif\n\n#if defined(JSON_HEDLEY_GNUC_HAS_BUILTIN)\n    #undef JSON_HEDLEY_GNUC_HAS_BUILTIN\n#endif\n#if defined(__has_builtin)\n    #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin)\n#else\n    #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if defined(JSON_HEDLEY_GCC_HAS_BUILTIN)\n    #undef JSON_HEDLEY_GCC_HAS_BUILTIN\n#endif\n#if defined(__has_builtin)\n    #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin)\n#else\n    #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if defined(JSON_HEDLEY_HAS_FEATURE)\n    #undef JSON_HEDLEY_HAS_FEATURE\n#endif\n#if defined(__has_feature)\n    #define JSON_HEDLEY_HAS_FEATURE(feature) __has_feature(feature)\n#else\n    #define JSON_HEDLEY_HAS_FEATURE(feature) (0)\n#endif\n\n#if defined(JSON_HEDLEY_GNUC_HAS_FEATURE)\n    #undef JSON_HEDLEY_GNUC_HAS_FEATURE\n#endif\n#if defined(__has_feature)\n    #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature)\n#else\n    #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if defined(JSON_HEDLEY_GCC_HAS_FEATURE)\n    #undef JSON_HEDLEY_GCC_HAS_FEATURE\n#endif\n#if defined(__has_feature)\n    #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature)\n#else\n    #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if defined(JSON_HEDLEY_HAS_EXTENSION)\n    #undef JSON_HEDLEY_HAS_EXTENSION\n#endif\n#if defined(__has_extension)\n    #define JSON_HEDLEY_HAS_EXTENSION(extension) __has_extension(extension)\n#else\n    #define JSON_HEDLEY_HAS_EXTENSION(extension) (0)\n#endif\n\n#if defined(JSON_HEDLEY_GNUC_HAS_EXTENSION)\n    #undef JSON_HEDLEY_GNUC_HAS_EXTENSION\n#endif\n#if defined(__has_extension)\n    #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension)\n#else\n    #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if defined(JSON_HEDLEY_GCC_HAS_EXTENSION)\n    #undef JSON_HEDLEY_GCC_HAS_EXTENSION\n#endif\n#if defined(__has_extension)\n    #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension)\n#else\n    #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if defined(JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE)\n    #undef JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE\n#endif\n#if defined(__has_declspec_attribute)\n    #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) __has_declspec_attribute(attribute)\n#else\n    #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) (0)\n#endif\n\n#if defined(JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE)\n    #undef JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE\n#endif\n#if defined(__has_declspec_attribute)\n    #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute)\n#else\n    #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if defined(JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE)\n    #undef JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE\n#endif\n#if defined(__has_declspec_attribute)\n    #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute)\n#else\n    #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if defined(JSON_HEDLEY_HAS_WARNING)\n    #undef JSON_HEDLEY_HAS_WARNING\n#endif\n#if defined(__has_warning)\n    #define JSON_HEDLEY_HAS_WARNING(warning) __has_warning(warning)\n#else\n    #define JSON_HEDLEY_HAS_WARNING(warning) (0)\n#endif\n\n#if defined(JSON_HEDLEY_GNUC_HAS_WARNING)\n    #undef JSON_HEDLEY_GNUC_HAS_WARNING\n#endif\n#if defined(__has_warning)\n    #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning)\n#else\n    #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if defined(JSON_HEDLEY_GCC_HAS_WARNING)\n    #undef JSON_HEDLEY_GCC_HAS_WARNING\n#endif\n#if defined(__has_warning)\n    #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning)\n#else\n    #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if \\\n    (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \\\n    defined(__clang__) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \\\n    JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \\\n    JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \\\n    JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \\\n    JSON_HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \\\n    JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,0,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n    JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \\\n    JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) || \\\n    JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,17) || \\\n    JSON_HEDLEY_SUNPRO_VERSION_CHECK(8,0,0) || \\\n    (JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) && defined(__C99_PRAGMA_OPERATOR))\n    #define JSON_HEDLEY_PRAGMA(value) _Pragma(#value)\n#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0)\n    #define JSON_HEDLEY_PRAGMA(value) __pragma(value)\n#else\n    #define JSON_HEDLEY_PRAGMA(value)\n#endif\n\n#if defined(JSON_HEDLEY_DIAGNOSTIC_PUSH)\n    #undef JSON_HEDLEY_DIAGNOSTIC_PUSH\n#endif\n#if defined(JSON_HEDLEY_DIAGNOSTIC_POP)\n    #undef JSON_HEDLEY_DIAGNOSTIC_POP\n#endif\n#if defined(__clang__)\n    #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma(\"clang diagnostic push\")\n    #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma(\"clang diagnostic pop\")\n#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma(\"warning(push)\")\n    #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma(\"warning(pop)\")\n#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma(\"GCC diagnostic push\")\n    #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma(\"GCC diagnostic pop\")\n#elif \\\n    JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \\\n    JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(push))\n    #define JSON_HEDLEY_DIAGNOSTIC_POP __pragma(warning(pop))\n#elif JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma(\"push\")\n    #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma(\"pop\")\n#elif \\\n    JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \\\n    JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \\\n    JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,4,0) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n    JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma(\"diag_push\")\n    #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma(\"diag_pop\")\n#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma(\"warning(push)\")\n    #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma(\"warning(pop)\")\n#else\n    #define JSON_HEDLEY_DIAGNOSTIC_PUSH\n    #define JSON_HEDLEY_DIAGNOSTIC_POP\n#endif\n\n/* JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ is for\n   HEDLEY INTERNAL USE ONLY.  API subject to change without notice. */\n#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_)\n    #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_\n#endif\n#if defined(__cplusplus)\n#  if JSON_HEDLEY_HAS_WARNING(\"-Wc++98-compat\")\n#    if JSON_HEDLEY_HAS_WARNING(\"-Wc++17-extensions\")\n#      if JSON_HEDLEY_HAS_WARNING(\"-Wc++1z-extensions\")\n#        define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \\\n    JSON_HEDLEY_DIAGNOSTIC_PUSH \\\n    _Pragma(\"clang diagnostic ignored \\\"-Wc++98-compat\\\"\") \\\n    _Pragma(\"clang diagnostic ignored \\\"-Wc++17-extensions\\\"\") \\\n    _Pragma(\"clang diagnostic ignored \\\"-Wc++1z-extensions\\\"\") \\\n    xpr \\\n    JSON_HEDLEY_DIAGNOSTIC_POP\n#      else\n#        define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \\\n    JSON_HEDLEY_DIAGNOSTIC_PUSH \\\n    _Pragma(\"clang diagnostic ignored \\\"-Wc++98-compat\\\"\") \\\n    _Pragma(\"clang diagnostic ignored \\\"-Wc++17-extensions\\\"\") \\\n    xpr \\\n    JSON_HEDLEY_DIAGNOSTIC_POP\n#      endif\n#    else\n#      define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \\\n    JSON_HEDLEY_DIAGNOSTIC_PUSH \\\n    _Pragma(\"clang diagnostic ignored \\\"-Wc++98-compat\\\"\") \\\n    xpr \\\n    JSON_HEDLEY_DIAGNOSTIC_POP\n#    endif\n#  endif\n#endif\n#if !defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(x) x\n#endif\n\n#if defined(JSON_HEDLEY_CONST_CAST)\n    #undef JSON_HEDLEY_CONST_CAST\n#endif\n#if defined(__cplusplus)\n#  define JSON_HEDLEY_CONST_CAST(T, expr) (const_cast<T>(expr))\n#elif \\\n  JSON_HEDLEY_HAS_WARNING(\"-Wcast-qual\") || \\\n  JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) || \\\n  JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0)\n#  define JSON_HEDLEY_CONST_CAST(T, expr) (__extension__ ({ \\\n        JSON_HEDLEY_DIAGNOSTIC_PUSH \\\n        JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL \\\n        ((T) (expr)); \\\n        JSON_HEDLEY_DIAGNOSTIC_POP \\\n    }))\n#else\n#  define JSON_HEDLEY_CONST_CAST(T, expr) ((T) (expr))\n#endif\n\n#if defined(JSON_HEDLEY_REINTERPRET_CAST)\n    #undef JSON_HEDLEY_REINTERPRET_CAST\n#endif\n#if defined(__cplusplus)\n    #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) (reinterpret_cast<T>(expr))\n#else\n    #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) ((T) (expr))\n#endif\n\n#if defined(JSON_HEDLEY_STATIC_CAST)\n    #undef JSON_HEDLEY_STATIC_CAST\n#endif\n#if defined(__cplusplus)\n    #define JSON_HEDLEY_STATIC_CAST(T, expr) (static_cast<T>(expr))\n#else\n    #define JSON_HEDLEY_STATIC_CAST(T, expr) ((T) (expr))\n#endif\n\n#if defined(JSON_HEDLEY_CPP_CAST)\n    #undef JSON_HEDLEY_CPP_CAST\n#endif\n#if defined(__cplusplus)\n#  if JSON_HEDLEY_HAS_WARNING(\"-Wold-style-cast\")\n#    define JSON_HEDLEY_CPP_CAST(T, expr) \\\n    JSON_HEDLEY_DIAGNOSTIC_PUSH \\\n    _Pragma(\"clang diagnostic ignored \\\"-Wold-style-cast\\\"\") \\\n    ((T) (expr)) \\\n    JSON_HEDLEY_DIAGNOSTIC_POP\n#  elif JSON_HEDLEY_IAR_VERSION_CHECK(8,3,0)\n#    define JSON_HEDLEY_CPP_CAST(T, expr) \\\n    JSON_HEDLEY_DIAGNOSTIC_PUSH \\\n    _Pragma(\"diag_suppress=Pe137\") \\\n    JSON_HEDLEY_DIAGNOSTIC_POP\n#  else\n#    define JSON_HEDLEY_CPP_CAST(T, expr) ((T) (expr))\n#  endif\n#else\n#  define JSON_HEDLEY_CPP_CAST(T, expr) (expr)\n#endif\n\n#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED)\n    #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED\n#endif\n#if JSON_HEDLEY_HAS_WARNING(\"-Wdeprecated-declarations\")\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma(\"clang diagnostic ignored \\\"-Wdeprecated-declarations\\\"\")\n#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma(\"warning(disable:1478 1786)\")\n#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:1478 1786))\n#elif JSON_HEDLEY_PGI_VERSION_CHECK(20,7,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma(\"diag_suppress 1215,1216,1444,1445\")\n#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma(\"diag_suppress 1215,1444\")\n#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma(\"GCC diagnostic ignored \\\"-Wdeprecated-declarations\\\"\")\n#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:4996))\n#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma(\"diag_suppress 1215,1444\")\n#elif \\\n    JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \\\n    (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \\\n    (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \\\n    (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \\\n    (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n    JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma(\"diag_suppress 1291,1718\")\n#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && !defined(__cplusplus)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma(\"error_messages(off,E_DEPRECATED_ATT,E_DEPRECATED_ATT_MESS)\")\n#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && defined(__cplusplus)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma(\"error_messages(off,symdeprecated,symdeprecated2)\")\n#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma(\"diag_suppress=Pe1444,Pe1215\")\n#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma(\"warn(disable:2241)\")\n#else\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED\n#endif\n\n#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS)\n    #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS\n#endif\n#if JSON_HEDLEY_HAS_WARNING(\"-Wunknown-pragmas\")\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma(\"clang diagnostic ignored \\\"-Wunknown-pragmas\\\"\")\n#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma(\"warning(disable:161)\")\n#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:161))\n#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma(\"diag_suppress 1675\")\n#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma(\"GCC diagnostic ignored \\\"-Wunknown-pragmas\\\"\")\n#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:4068))\n#elif \\\n    JSON_HEDLEY_TI_VERSION_CHECK(16,9,0) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n    JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma(\"diag_suppress 163\")\n#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma(\"diag_suppress 163\")\n#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma(\"diag_suppress=Pe161\")\n#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma(\"diag_suppress 161\")\n#else\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS\n#endif\n\n#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES)\n    #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES\n#endif\n#if JSON_HEDLEY_HAS_WARNING(\"-Wunknown-attributes\")\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma(\"clang diagnostic ignored \\\"-Wunknown-attributes\\\"\")\n#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma(\"GCC diagnostic ignored \\\"-Wdeprecated-declarations\\\"\")\n#elif JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma(\"warning(disable:1292)\")\n#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:1292))\n#elif JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:5030))\n#elif JSON_HEDLEY_PGI_VERSION_CHECK(20,7,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma(\"diag_suppress 1097,1098\")\n#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma(\"diag_suppress 1097\")\n#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma(\"error_messages(off,attrskipunsup)\")\n#elif \\\n    JSON_HEDLEY_TI_VERSION_CHECK(18,1,0) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma(\"diag_suppress 1173\")\n#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma(\"diag_suppress=Pe1097\")\n#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma(\"diag_suppress 1097\")\n#else\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES\n#endif\n\n#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL)\n    #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL\n#endif\n#if JSON_HEDLEY_HAS_WARNING(\"-Wcast-qual\")\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma(\"clang diagnostic ignored \\\"-Wcast-qual\\\"\")\n#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma(\"warning(disable:2203 2331)\")\n#elif JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma(\"GCC diagnostic ignored \\\"-Wcast-qual\\\"\")\n#else\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL\n#endif\n\n#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION)\n    #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION\n#endif\n#if JSON_HEDLEY_HAS_WARNING(\"-Wunused-function\")\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma(\"clang diagnostic ignored \\\"-Wunused-function\\\"\")\n#elif JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma(\"GCC diagnostic ignored \\\"-Wunused-function\\\"\")\n#elif JSON_HEDLEY_MSVC_VERSION_CHECK(1,0,0)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION __pragma(warning(disable:4505))\n#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma(\"diag_suppress 3142\")\n#else\n    #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION\n#endif\n\n#if defined(JSON_HEDLEY_DEPRECATED)\n    #undef JSON_HEDLEY_DEPRECATED\n#endif\n#if defined(JSON_HEDLEY_DEPRECATED_FOR)\n    #undef JSON_HEDLEY_DEPRECATED_FOR\n#endif\n#if \\\n    JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \\\n    JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)\n    #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated(\"Since \" # since))\n    #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated(\"Since \" #since \"; use \" #replacement))\n#elif \\\n    (JSON_HEDLEY_HAS_EXTENSION(attribute_deprecated_with_message) && !defined(JSON_HEDLEY_IAR_VERSION)) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \\\n    JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) || \\\n    JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \\\n    JSON_HEDLEY_TI_VERSION_CHECK(18,1,0) || \\\n    JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(18,1,0) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n    JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__(\"Since \" #since)))\n    #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__(\"Since \" #since \"; use \" #replacement)))\n#elif defined(__cplusplus) && (__cplusplus >= 201402L)\n    #define JSON_HEDLEY_DEPRECATED(since) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated(\"Since \" #since)]])\n    #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated(\"Since \" #since \"; use \" #replacement)]])\n#elif \\\n    JSON_HEDLEY_HAS_ATTRIBUTE(deprecated) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \\\n    JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \\\n    (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \\\n    (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \\\n    (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \\\n    (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n    JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \\\n    JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0)\n    #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__))\n    #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__))\n#elif \\\n    JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \\\n    JSON_HEDLEY_PELLES_VERSION_CHECK(6,50,0) || \\\n    JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)\n    #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated)\n    #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated)\n#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0)\n    #define JSON_HEDLEY_DEPRECATED(since) _Pragma(\"deprecated\")\n    #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) _Pragma(\"deprecated\")\n#else\n    #define JSON_HEDLEY_DEPRECATED(since)\n    #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement)\n#endif\n\n#if defined(JSON_HEDLEY_UNAVAILABLE)\n    #undef JSON_HEDLEY_UNAVAILABLE\n#endif\n#if \\\n    JSON_HEDLEY_HAS_ATTRIBUTE(warning) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_UNAVAILABLE(available_since) __attribute__((__warning__(\"Not available until \" #available_since)))\n#else\n    #define JSON_HEDLEY_UNAVAILABLE(available_since)\n#endif\n\n#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT)\n    #undef JSON_HEDLEY_WARN_UNUSED_RESULT\n#endif\n#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT_MSG)\n    #undef JSON_HEDLEY_WARN_UNUSED_RESULT_MSG\n#endif\n#if \\\n    JSON_HEDLEY_HAS_ATTRIBUTE(warn_unused_result) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \\\n    (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \\\n    (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \\\n    (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \\\n    (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n    JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \\\n    (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \\\n    JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__))\n    #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) __attribute__((__warn_unused_result__))\n#elif (JSON_HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) >= 201907L)\n    #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]])\n    #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard(msg)]])\n#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard)\n    #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]])\n    #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]])\n#elif defined(_Check_return_) /* SAL */\n    #define JSON_HEDLEY_WARN_UNUSED_RESULT _Check_return_\n    #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) _Check_return_\n#else\n    #define JSON_HEDLEY_WARN_UNUSED_RESULT\n    #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg)\n#endif\n\n#if defined(JSON_HEDLEY_SENTINEL)\n    #undef JSON_HEDLEY_SENTINEL\n#endif\n#if \\\n    JSON_HEDLEY_HAS_ATTRIBUTE(sentinel) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_SENTINEL(position) __attribute__((__sentinel__(position)))\n#else\n    #define JSON_HEDLEY_SENTINEL(position)\n#endif\n\n#if defined(JSON_HEDLEY_NO_RETURN)\n    #undef JSON_HEDLEY_NO_RETURN\n#endif\n#if JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0)\n    #define JSON_HEDLEY_NO_RETURN __noreturn\n#elif \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__))\n#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L\n    #define JSON_HEDLEY_NO_RETURN _Noreturn\n#elif defined(__cplusplus) && (__cplusplus >= 201103L)\n    #define JSON_HEDLEY_NO_RETURN JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[noreturn]])\n#elif \\\n    JSON_HEDLEY_HAS_ATTRIBUTE(noreturn) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(3,2,0) || \\\n    JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \\\n    JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \\\n    JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \\\n    (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \\\n    (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \\\n    (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \\\n    (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n    JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \\\n    JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0)\n    #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__))\n#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0)\n    #define JSON_HEDLEY_NO_RETURN _Pragma(\"does_not_return\")\n#elif \\\n    JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \\\n    JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)\n    #define JSON_HEDLEY_NO_RETURN __declspec(noreturn)\n#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus)\n    #define JSON_HEDLEY_NO_RETURN _Pragma(\"FUNC_NEVER_RETURNS;\")\n#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0)\n    #define JSON_HEDLEY_NO_RETURN __attribute((noreturn))\n#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0)\n    #define JSON_HEDLEY_NO_RETURN __declspec(noreturn)\n#else\n    #define JSON_HEDLEY_NO_RETURN\n#endif\n\n#if defined(JSON_HEDLEY_NO_ESCAPE)\n    #undef JSON_HEDLEY_NO_ESCAPE\n#endif\n#if JSON_HEDLEY_HAS_ATTRIBUTE(noescape)\n    #define JSON_HEDLEY_NO_ESCAPE __attribute__((__noescape__))\n#else\n    #define JSON_HEDLEY_NO_ESCAPE\n#endif\n\n#if defined(JSON_HEDLEY_UNREACHABLE)\n    #undef JSON_HEDLEY_UNREACHABLE\n#endif\n#if defined(JSON_HEDLEY_UNREACHABLE_RETURN)\n    #undef JSON_HEDLEY_UNREACHABLE_RETURN\n#endif\n#if defined(JSON_HEDLEY_ASSUME)\n    #undef JSON_HEDLEY_ASSUME\n#endif\n#if \\\n    JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)\n    #define JSON_HEDLEY_ASSUME(expr) __assume(expr)\n#elif JSON_HEDLEY_HAS_BUILTIN(__builtin_assume)\n    #define JSON_HEDLEY_ASSUME(expr) __builtin_assume(expr)\n#elif \\\n    JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0)\n    #if defined(__cplusplus)\n        #define JSON_HEDLEY_ASSUME(expr) std::_nassert(expr)\n    #else\n        #define JSON_HEDLEY_ASSUME(expr) _nassert(expr)\n    #endif\n#endif\n#if \\\n    (JSON_HEDLEY_HAS_BUILTIN(__builtin_unreachable) && (!defined(JSON_HEDLEY_ARM_VERSION))) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \\\n    JSON_HEDLEY_PGI_VERSION_CHECK(18,10,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_IBM_VERSION_CHECK(13,1,5) || \\\n    JSON_HEDLEY_CRAY_VERSION_CHECK(10,0,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_UNREACHABLE() __builtin_unreachable()\n#elif defined(JSON_HEDLEY_ASSUME)\n    #define JSON_HEDLEY_UNREACHABLE() JSON_HEDLEY_ASSUME(0)\n#endif\n#if !defined(JSON_HEDLEY_ASSUME)\n    #if defined(JSON_HEDLEY_UNREACHABLE)\n        #define JSON_HEDLEY_ASSUME(expr) JSON_HEDLEY_STATIC_CAST(void, ((expr) ? 1 : (JSON_HEDLEY_UNREACHABLE(), 1)))\n    #else\n        #define JSON_HEDLEY_ASSUME(expr) JSON_HEDLEY_STATIC_CAST(void, expr)\n    #endif\n#endif\n#if defined(JSON_HEDLEY_UNREACHABLE)\n    #if  \\\n        JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \\\n        JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0)\n        #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return (JSON_HEDLEY_STATIC_CAST(void, JSON_HEDLEY_ASSUME(0)), (value))\n    #else\n        #define JSON_HEDLEY_UNREACHABLE_RETURN(value) JSON_HEDLEY_UNREACHABLE()\n    #endif\n#else\n    #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return (value)\n#endif\n#if !defined(JSON_HEDLEY_UNREACHABLE)\n    #define JSON_HEDLEY_UNREACHABLE() JSON_HEDLEY_ASSUME(0)\n#endif\n\nJSON_HEDLEY_DIAGNOSTIC_PUSH\n#if JSON_HEDLEY_HAS_WARNING(\"-Wpedantic\")\n    #pragma clang diagnostic ignored \"-Wpedantic\"\n#endif\n#if JSON_HEDLEY_HAS_WARNING(\"-Wc++98-compat-pedantic\") && defined(__cplusplus)\n    #pragma clang diagnostic ignored \"-Wc++98-compat-pedantic\"\n#endif\n#if JSON_HEDLEY_GCC_HAS_WARNING(\"-Wvariadic-macros\",4,0,0)\n    #if defined(__clang__)\n        #pragma clang diagnostic ignored \"-Wvariadic-macros\"\n    #elif defined(JSON_HEDLEY_GCC_VERSION)\n        #pragma GCC diagnostic ignored \"-Wvariadic-macros\"\n    #endif\n#endif\n#if defined(JSON_HEDLEY_NON_NULL)\n    #undef JSON_HEDLEY_NON_NULL\n#endif\n#if \\\n    JSON_HEDLEY_HAS_ATTRIBUTE(nonnull) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0)\n    #define JSON_HEDLEY_NON_NULL(...) __attribute__((__nonnull__(__VA_ARGS__)))\n#else\n    #define JSON_HEDLEY_NON_NULL(...)\n#endif\nJSON_HEDLEY_DIAGNOSTIC_POP\n\n#if defined(JSON_HEDLEY_PRINTF_FORMAT)\n    #undef JSON_HEDLEY_PRINTF_FORMAT\n#endif\n#if defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && !defined(__USE_MINGW_ANSI_STDIO)\n    #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(ms_printf, string_idx, first_to_check)))\n#elif defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && defined(__USE_MINGW_ANSI_STDIO)\n    #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(gnu_printf, string_idx, first_to_check)))\n#elif \\\n    JSON_HEDLEY_HAS_ATTRIBUTE(format) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \\\n    JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \\\n    JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \\\n    (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \\\n    (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \\\n    (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \\\n    (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n    JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(__printf__, string_idx, first_to_check)))\n#elif JSON_HEDLEY_PELLES_VERSION_CHECK(6,0,0)\n    #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __declspec(vaformat(printf,string_idx,first_to_check))\n#else\n    #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check)\n#endif\n\n#if defined(JSON_HEDLEY_CONSTEXPR)\n    #undef JSON_HEDLEY_CONSTEXPR\n#endif\n#if defined(__cplusplus)\n    #if __cplusplus >= 201103L\n        #define JSON_HEDLEY_CONSTEXPR JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(constexpr)\n    #endif\n#endif\n#if !defined(JSON_HEDLEY_CONSTEXPR)\n    #define JSON_HEDLEY_CONSTEXPR\n#endif\n\n#if defined(JSON_HEDLEY_PREDICT)\n    #undef JSON_HEDLEY_PREDICT\n#endif\n#if defined(JSON_HEDLEY_LIKELY)\n    #undef JSON_HEDLEY_LIKELY\n#endif\n#if defined(JSON_HEDLEY_UNLIKELY)\n    #undef JSON_HEDLEY_UNLIKELY\n#endif\n#if defined(JSON_HEDLEY_UNPREDICTABLE)\n    #undef JSON_HEDLEY_UNPREDICTABLE\n#endif\n#if JSON_HEDLEY_HAS_BUILTIN(__builtin_unpredictable)\n    #define JSON_HEDLEY_UNPREDICTABLE(expr) __builtin_unpredictable((expr))\n#endif\n#if \\\n  (JSON_HEDLEY_HAS_BUILTIN(__builtin_expect_with_probability) && !defined(JSON_HEDLEY_PGI_VERSION)) || \\\n  JSON_HEDLEY_GCC_VERSION_CHECK(9,0,0) || \\\n  JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n#  define JSON_HEDLEY_PREDICT(expr, value, probability) __builtin_expect_with_probability(  (expr), (value), (probability))\n#  define JSON_HEDLEY_PREDICT_TRUE(expr, probability)   __builtin_expect_with_probability(!!(expr),    1   , (probability))\n#  define JSON_HEDLEY_PREDICT_FALSE(expr, probability)  __builtin_expect_with_probability(!!(expr),    0   , (probability))\n#  define JSON_HEDLEY_LIKELY(expr)                      __builtin_expect                 (!!(expr),    1                  )\n#  define JSON_HEDLEY_UNLIKELY(expr)                    __builtin_expect                 (!!(expr),    0                  )\n#elif \\\n  (JSON_HEDLEY_HAS_BUILTIN(__builtin_expect) && !defined(JSON_HEDLEY_INTEL_CL_VERSION)) || \\\n  JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \\\n  JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n  (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \\\n  JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \\\n  JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \\\n  JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \\\n  JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \\\n  JSON_HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \\\n  JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \\\n  JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \\\n  JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n  JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \\\n  JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,27) || \\\n  JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \\\n  JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n#  define JSON_HEDLEY_PREDICT(expr, expected, probability) \\\n    (((probability) >= 0.9) ? __builtin_expect((expr), (expected)) : (JSON_HEDLEY_STATIC_CAST(void, expected), (expr)))\n#  define JSON_HEDLEY_PREDICT_TRUE(expr, probability) \\\n    (__extension__ ({ \\\n        double hedley_probability_ = (probability); \\\n        ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 1) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 0) : !!(expr))); \\\n    }))\n#  define JSON_HEDLEY_PREDICT_FALSE(expr, probability) \\\n    (__extension__ ({ \\\n        double hedley_probability_ = (probability); \\\n        ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 0) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 1) : !!(expr))); \\\n    }))\n#  define JSON_HEDLEY_LIKELY(expr)   __builtin_expect(!!(expr), 1)\n#  define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect(!!(expr), 0)\n#else\n#  define JSON_HEDLEY_PREDICT(expr, expected, probability) (JSON_HEDLEY_STATIC_CAST(void, expected), (expr))\n#  define JSON_HEDLEY_PREDICT_TRUE(expr, probability) (!!(expr))\n#  define JSON_HEDLEY_PREDICT_FALSE(expr, probability) (!!(expr))\n#  define JSON_HEDLEY_LIKELY(expr) (!!(expr))\n#  define JSON_HEDLEY_UNLIKELY(expr) (!!(expr))\n#endif\n#if !defined(JSON_HEDLEY_UNPREDICTABLE)\n    #define JSON_HEDLEY_UNPREDICTABLE(expr) JSON_HEDLEY_PREDICT(expr, 1, 0.5)\n#endif\n\n#if defined(JSON_HEDLEY_MALLOC)\n    #undef JSON_HEDLEY_MALLOC\n#endif\n#if \\\n    JSON_HEDLEY_HAS_ATTRIBUTE(malloc) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \\\n    JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \\\n    JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \\\n    (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \\\n    (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \\\n    (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \\\n    (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n    JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_MALLOC __attribute__((__malloc__))\n#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0)\n    #define JSON_HEDLEY_MALLOC _Pragma(\"returns_new_memory\")\n#elif \\\n    JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \\\n    JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)\n    #define JSON_HEDLEY_MALLOC __declspec(restrict)\n#else\n    #define JSON_HEDLEY_MALLOC\n#endif\n\n#if defined(JSON_HEDLEY_PURE)\n    #undef JSON_HEDLEY_PURE\n#endif\n#if \\\n  JSON_HEDLEY_HAS_ATTRIBUTE(pure) || \\\n  JSON_HEDLEY_GCC_VERSION_CHECK(2,96,0) || \\\n  JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n  JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \\\n  JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \\\n  JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \\\n  JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \\\n  (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n  JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \\\n  (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n  JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \\\n  (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n  JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \\\n  (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n  JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \\\n  JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n  JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \\\n  JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \\\n  JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n#  define JSON_HEDLEY_PURE __attribute__((__pure__))\n#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0)\n#  define JSON_HEDLEY_PURE _Pragma(\"does_not_write_global_data\")\n#elif defined(__cplusplus) && \\\n    ( \\\n      JSON_HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \\\n      JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) || \\\n      JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) \\\n    )\n#  define JSON_HEDLEY_PURE _Pragma(\"FUNC_IS_PURE;\")\n#else\n#  define JSON_HEDLEY_PURE\n#endif\n\n#if defined(JSON_HEDLEY_CONST)\n    #undef JSON_HEDLEY_CONST\n#endif\n#if \\\n    JSON_HEDLEY_HAS_ATTRIBUTE(const) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(2,5,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \\\n    JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \\\n    JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \\\n    (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \\\n    (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \\\n    (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \\\n    (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n    JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \\\n    JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_CONST __attribute__((__const__))\n#elif \\\n    JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0)\n    #define JSON_HEDLEY_CONST _Pragma(\"no_side_effect\")\n#else\n    #define JSON_HEDLEY_CONST JSON_HEDLEY_PURE\n#endif\n\n#if defined(JSON_HEDLEY_RESTRICT)\n    #undef JSON_HEDLEY_RESTRICT\n#endif\n#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && !defined(__cplusplus)\n    #define JSON_HEDLEY_RESTRICT restrict\n#elif \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \\\n    JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \\\n    JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \\\n    JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \\\n    JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \\\n    JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,4) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n    (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)) || \\\n    JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \\\n    defined(__clang__) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_RESTRICT __restrict\n#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,3,0) && !defined(__cplusplus)\n    #define JSON_HEDLEY_RESTRICT _Restrict\n#else\n    #define JSON_HEDLEY_RESTRICT\n#endif\n\n#if defined(JSON_HEDLEY_INLINE)\n    #undef JSON_HEDLEY_INLINE\n#endif\n#if \\\n    (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \\\n    (defined(__cplusplus) && (__cplusplus >= 199711L))\n    #define JSON_HEDLEY_INLINE inline\n#elif \\\n    defined(JSON_HEDLEY_GCC_VERSION) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(6,2,0)\n    #define JSON_HEDLEY_INLINE __inline__\n#elif \\\n    JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \\\n    JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \\\n    JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,1,0) || \\\n    JSON_HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \\\n    JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n    JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_INLINE __inline\n#else\n    #define JSON_HEDLEY_INLINE\n#endif\n\n#if defined(JSON_HEDLEY_ALWAYS_INLINE)\n    #undef JSON_HEDLEY_ALWAYS_INLINE\n#endif\n#if \\\n  JSON_HEDLEY_HAS_ATTRIBUTE(always_inline) || \\\n  JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \\\n  JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n  JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \\\n  JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \\\n  JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \\\n  JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \\\n  (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n  JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \\\n  (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n  JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \\\n  (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n  JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \\\n  (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n  JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \\\n  JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n  JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \\\n  JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \\\n  JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0)\n#  define JSON_HEDLEY_ALWAYS_INLINE __attribute__((__always_inline__)) JSON_HEDLEY_INLINE\n#elif \\\n  JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \\\n  JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)\n#  define JSON_HEDLEY_ALWAYS_INLINE __forceinline\n#elif defined(__cplusplus) && \\\n    ( \\\n      JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \\\n      JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \\\n      JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \\\n      JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \\\n      JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n      JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) \\\n    )\n#  define JSON_HEDLEY_ALWAYS_INLINE _Pragma(\"FUNC_ALWAYS_INLINE;\")\n#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0)\n#  define JSON_HEDLEY_ALWAYS_INLINE _Pragma(\"inline=forced\")\n#else\n#  define JSON_HEDLEY_ALWAYS_INLINE JSON_HEDLEY_INLINE\n#endif\n\n#if defined(JSON_HEDLEY_NEVER_INLINE)\n    #undef JSON_HEDLEY_NEVER_INLINE\n#endif\n#if \\\n    JSON_HEDLEY_HAS_ATTRIBUTE(noinline) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \\\n    JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \\\n    JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \\\n    (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \\\n    (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \\\n    (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \\\n    (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \\\n    JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \\\n    JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \\\n    JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0)\n    #define JSON_HEDLEY_NEVER_INLINE __attribute__((__noinline__))\n#elif \\\n    JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \\\n    JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)\n    #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline)\n#elif JSON_HEDLEY_PGI_VERSION_CHECK(10,2,0)\n    #define JSON_HEDLEY_NEVER_INLINE _Pragma(\"noinline\")\n#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus)\n    #define JSON_HEDLEY_NEVER_INLINE _Pragma(\"FUNC_CANNOT_INLINE;\")\n#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0)\n    #define JSON_HEDLEY_NEVER_INLINE _Pragma(\"inline=never\")\n#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0)\n    #define JSON_HEDLEY_NEVER_INLINE __attribute((noinline))\n#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0)\n    #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline)\n#else\n    #define JSON_HEDLEY_NEVER_INLINE\n#endif\n\n#if defined(JSON_HEDLEY_PRIVATE)\n    #undef JSON_HEDLEY_PRIVATE\n#endif\n#if defined(JSON_HEDLEY_PUBLIC)\n    #undef JSON_HEDLEY_PUBLIC\n#endif\n#if defined(JSON_HEDLEY_IMPORT)\n    #undef JSON_HEDLEY_IMPORT\n#endif\n#if defined(_WIN32) || defined(__CYGWIN__)\n#  define JSON_HEDLEY_PRIVATE\n#  define JSON_HEDLEY_PUBLIC   __declspec(dllexport)\n#  define JSON_HEDLEY_IMPORT   __declspec(dllimport)\n#else\n#  if \\\n    JSON_HEDLEY_HAS_ATTRIBUTE(visibility) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \\\n    JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \\\n    JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \\\n    ( \\\n      defined(__TI_EABI__) && \\\n      ( \\\n        (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \\\n        JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) \\\n      ) \\\n    ) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n#    define JSON_HEDLEY_PRIVATE __attribute__((__visibility__(\"hidden\")))\n#    define JSON_HEDLEY_PUBLIC  __attribute__((__visibility__(\"default\")))\n#  else\n#    define JSON_HEDLEY_PRIVATE\n#    define JSON_HEDLEY_PUBLIC\n#  endif\n#  define JSON_HEDLEY_IMPORT    extern\n#endif\n\n#if defined(JSON_HEDLEY_NO_THROW)\n    #undef JSON_HEDLEY_NO_THROW\n#endif\n#if \\\n    JSON_HEDLEY_HAS_ATTRIBUTE(nothrow) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_NO_THROW __attribute__((__nothrow__))\n#elif \\\n    JSON_HEDLEY_MSVC_VERSION_CHECK(13,1,0) || \\\n    JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0)\n    #define JSON_HEDLEY_NO_THROW __declspec(nothrow)\n#else\n    #define JSON_HEDLEY_NO_THROW\n#endif\n\n#if defined(JSON_HEDLEY_FALL_THROUGH)\n    #undef JSON_HEDLEY_FALL_THROUGH\n#endif\n#if \\\n    JSON_HEDLEY_HAS_ATTRIBUTE(fallthrough) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(7,0,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_FALL_THROUGH __attribute__((__fallthrough__))\n#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(clang,fallthrough)\n    #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[clang::fallthrough]])\n#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(fallthrough)\n    #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[fallthrough]])\n#elif defined(__fallthrough) /* SAL */\n    #define JSON_HEDLEY_FALL_THROUGH __fallthrough\n#else\n    #define JSON_HEDLEY_FALL_THROUGH\n#endif\n\n#if defined(JSON_HEDLEY_RETURNS_NON_NULL)\n    #undef JSON_HEDLEY_RETURNS_NON_NULL\n#endif\n#if \\\n    JSON_HEDLEY_HAS_ATTRIBUTE(returns_nonnull) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_RETURNS_NON_NULL __attribute__((__returns_nonnull__))\n#elif defined(_Ret_notnull_) /* SAL */\n    #define JSON_HEDLEY_RETURNS_NON_NULL _Ret_notnull_\n#else\n    #define JSON_HEDLEY_RETURNS_NON_NULL\n#endif\n\n#if defined(JSON_HEDLEY_ARRAY_PARAM)\n    #undef JSON_HEDLEY_ARRAY_PARAM\n#endif\n#if \\\n    defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \\\n    !defined(__STDC_NO_VLA__) && \\\n    !defined(__cplusplus) && \\\n    !defined(JSON_HEDLEY_PGI_VERSION) && \\\n    !defined(JSON_HEDLEY_TINYC_VERSION)\n    #define JSON_HEDLEY_ARRAY_PARAM(name) (name)\n#else\n    #define JSON_HEDLEY_ARRAY_PARAM(name)\n#endif\n\n#if defined(JSON_HEDLEY_IS_CONSTANT)\n    #undef JSON_HEDLEY_IS_CONSTANT\n#endif\n#if defined(JSON_HEDLEY_REQUIRE_CONSTEXPR)\n    #undef JSON_HEDLEY_REQUIRE_CONSTEXPR\n#endif\n/* JSON_HEDLEY_IS_CONSTEXPR_ is for\n   HEDLEY INTERNAL USE ONLY.  API subject to change without notice. */\n#if defined(JSON_HEDLEY_IS_CONSTEXPR_)\n    #undef JSON_HEDLEY_IS_CONSTEXPR_\n#endif\n#if \\\n    JSON_HEDLEY_HAS_BUILTIN(__builtin_constant_p) || \\\n    JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \\\n    JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n    JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,19) || \\\n    JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \\\n    JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \\\n    JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \\\n    (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) && !defined(__cplusplus)) || \\\n    JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \\\n    JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10)\n    #define JSON_HEDLEY_IS_CONSTANT(expr) __builtin_constant_p(expr)\n#endif\n#if !defined(__cplusplus)\n#  if \\\n       JSON_HEDLEY_HAS_BUILTIN(__builtin_types_compatible_p) || \\\n       JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \\\n       JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n       JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \\\n       JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \\\n       JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \\\n       JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,24)\n#if defined(__INTPTR_TYPE__)\n    #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0)), int*)\n#else\n    #include <stdint.h>\n    #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((intptr_t) ((expr) * 0)) : (int*) 0)), int*)\n#endif\n#  elif \\\n       ( \\\n          defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \\\n          !defined(JSON_HEDLEY_SUNPRO_VERSION) && \\\n          !defined(JSON_HEDLEY_PGI_VERSION) && \\\n          !defined(JSON_HEDLEY_IAR_VERSION)) || \\\n       (JSON_HEDLEY_HAS_EXTENSION(c_generic_selections) && !defined(JSON_HEDLEY_IAR_VERSION)) || \\\n       JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \\\n       JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \\\n       JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \\\n       JSON_HEDLEY_ARM_VERSION_CHECK(5,3,0)\n#if defined(__INTPTR_TYPE__)\n    #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0), int*: 1, void*: 0)\n#else\n    #include <stdint.h>\n    #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((intptr_t) * 0) : (int*) 0), int*: 1, void*: 0)\n#endif\n#  elif \\\n       defined(JSON_HEDLEY_GCC_VERSION) || \\\n       defined(JSON_HEDLEY_INTEL_VERSION) || \\\n       defined(JSON_HEDLEY_TINYC_VERSION) || \\\n       defined(JSON_HEDLEY_TI_ARMCL_VERSION) || \\\n       JSON_HEDLEY_TI_CL430_VERSION_CHECK(18,12,0) || \\\n       defined(JSON_HEDLEY_TI_CL2000_VERSION) || \\\n       defined(JSON_HEDLEY_TI_CL6X_VERSION) || \\\n       defined(JSON_HEDLEY_TI_CL7X_VERSION) || \\\n       defined(JSON_HEDLEY_TI_CLPRU_VERSION) || \\\n       defined(__clang__)\n#    define JSON_HEDLEY_IS_CONSTEXPR_(expr) ( \\\n        sizeof(void) != \\\n        sizeof(*( \\\n                  1 ? \\\n                  ((void*) ((expr) * 0L) ) : \\\n((struct { char v[sizeof(void) * 2]; } *) 1) \\\n                ) \\\n              ) \\\n                                            )\n#  endif\n#endif\n#if defined(JSON_HEDLEY_IS_CONSTEXPR_)\n    #if !defined(JSON_HEDLEY_IS_CONSTANT)\n        #define JSON_HEDLEY_IS_CONSTANT(expr) JSON_HEDLEY_IS_CONSTEXPR_(expr)\n    #endif\n    #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (JSON_HEDLEY_IS_CONSTEXPR_(expr) ? (expr) : (-1))\n#else\n    #if !defined(JSON_HEDLEY_IS_CONSTANT)\n        #define JSON_HEDLEY_IS_CONSTANT(expr) (0)\n    #endif\n    #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (expr)\n#endif\n\n#if defined(JSON_HEDLEY_BEGIN_C_DECLS)\n    #undef JSON_HEDLEY_BEGIN_C_DECLS\n#endif\n#if defined(JSON_HEDLEY_END_C_DECLS)\n    #undef JSON_HEDLEY_END_C_DECLS\n#endif\n#if defined(JSON_HEDLEY_C_DECL)\n    #undef JSON_HEDLEY_C_DECL\n#endif\n#if defined(__cplusplus)\n    #define JSON_HEDLEY_BEGIN_C_DECLS extern \"C\" {\n    #define JSON_HEDLEY_END_C_DECLS }\n    #define JSON_HEDLEY_C_DECL extern \"C\"\n#else\n    #define JSON_HEDLEY_BEGIN_C_DECLS\n    #define JSON_HEDLEY_END_C_DECLS\n    #define JSON_HEDLEY_C_DECL\n#endif\n\n#if defined(JSON_HEDLEY_STATIC_ASSERT)\n    #undef JSON_HEDLEY_STATIC_ASSERT\n#endif\n#if \\\n  !defined(__cplusplus) && ( \\\n      (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \\\n      (JSON_HEDLEY_HAS_FEATURE(c_static_assert) && !defined(JSON_HEDLEY_INTEL_CL_VERSION)) || \\\n      JSON_HEDLEY_GCC_VERSION_CHECK(6,0,0) || \\\n      JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \\\n      defined(_Static_assert) \\\n    )\n#  define JSON_HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message)\n#elif \\\n  (defined(__cplusplus) && (__cplusplus >= 201103L)) || \\\n  JSON_HEDLEY_MSVC_VERSION_CHECK(16,0,0) || \\\n  JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)\n#  define JSON_HEDLEY_STATIC_ASSERT(expr, message) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(static_assert(expr, message))\n#else\n#  define JSON_HEDLEY_STATIC_ASSERT(expr, message)\n#endif\n\n#if defined(JSON_HEDLEY_NULL)\n    #undef JSON_HEDLEY_NULL\n#endif\n#if defined(__cplusplus)\n    #if __cplusplus >= 201103L\n        #define JSON_HEDLEY_NULL JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(nullptr)\n    #elif defined(NULL)\n        #define JSON_HEDLEY_NULL NULL\n    #else\n        #define JSON_HEDLEY_NULL JSON_HEDLEY_STATIC_CAST(void*, 0)\n    #endif\n#elif defined(NULL)\n    #define JSON_HEDLEY_NULL NULL\n#else\n    #define JSON_HEDLEY_NULL ((void*) 0)\n#endif\n\n#if defined(JSON_HEDLEY_MESSAGE)\n    #undef JSON_HEDLEY_MESSAGE\n#endif\n#if JSON_HEDLEY_HAS_WARNING(\"-Wunknown-pragmas\")\n#  define JSON_HEDLEY_MESSAGE(msg) \\\n    JSON_HEDLEY_DIAGNOSTIC_PUSH \\\n    JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \\\n    JSON_HEDLEY_PRAGMA(message msg) \\\n    JSON_HEDLEY_DIAGNOSTIC_POP\n#elif \\\n  JSON_HEDLEY_GCC_VERSION_CHECK(4,4,0) || \\\n  JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0)\n#  define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message msg)\n#elif JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0)\n#  define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(_CRI message msg)\n#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0)\n#  define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg))\n#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,0,0)\n#  define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg))\n#else\n#  define JSON_HEDLEY_MESSAGE(msg)\n#endif\n\n#if defined(JSON_HEDLEY_WARNING)\n    #undef JSON_HEDLEY_WARNING\n#endif\n#if JSON_HEDLEY_HAS_WARNING(\"-Wunknown-pragmas\")\n#  define JSON_HEDLEY_WARNING(msg) \\\n    JSON_HEDLEY_DIAGNOSTIC_PUSH \\\n    JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \\\n    JSON_HEDLEY_PRAGMA(clang warning msg) \\\n    JSON_HEDLEY_DIAGNOSTIC_POP\n#elif \\\n  JSON_HEDLEY_GCC_VERSION_CHECK(4,8,0) || \\\n  JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \\\n  JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0)\n#  define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(GCC warning msg)\n#elif \\\n  JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \\\n  JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)\n#  define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(message(msg))\n#else\n#  define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_MESSAGE(msg)\n#endif\n\n#if defined(JSON_HEDLEY_REQUIRE)\n    #undef JSON_HEDLEY_REQUIRE\n#endif\n#if defined(JSON_HEDLEY_REQUIRE_MSG)\n    #undef JSON_HEDLEY_REQUIRE_MSG\n#endif\n#if JSON_HEDLEY_HAS_ATTRIBUTE(diagnose_if)\n#  if JSON_HEDLEY_HAS_WARNING(\"-Wgcc-compat\")\n#    define JSON_HEDLEY_REQUIRE(expr) \\\n    JSON_HEDLEY_DIAGNOSTIC_PUSH \\\n    _Pragma(\"clang diagnostic ignored \\\"-Wgcc-compat\\\"\") \\\n    __attribute__((diagnose_if(!(expr), #expr, \"error\"))) \\\n    JSON_HEDLEY_DIAGNOSTIC_POP\n#    define JSON_HEDLEY_REQUIRE_MSG(expr,msg) \\\n    JSON_HEDLEY_DIAGNOSTIC_PUSH \\\n    _Pragma(\"clang diagnostic ignored \\\"-Wgcc-compat\\\"\") \\\n    __attribute__((diagnose_if(!(expr), msg, \"error\"))) \\\n    JSON_HEDLEY_DIAGNOSTIC_POP\n#  else\n#    define JSON_HEDLEY_REQUIRE(expr) __attribute__((diagnose_if(!(expr), #expr, \"error\")))\n#    define JSON_HEDLEY_REQUIRE_MSG(expr,msg) __attribute__((diagnose_if(!(expr), msg, \"error\")))\n#  endif\n#else\n#  define JSON_HEDLEY_REQUIRE(expr)\n#  define JSON_HEDLEY_REQUIRE_MSG(expr,msg)\n#endif\n\n#if defined(JSON_HEDLEY_FLAGS)\n    #undef JSON_HEDLEY_FLAGS\n#endif\n#if JSON_HEDLEY_HAS_ATTRIBUTE(flag_enum) && (!defined(__cplusplus) || JSON_HEDLEY_HAS_WARNING(\"-Wbitfield-enum-conversion\"))\n    #define JSON_HEDLEY_FLAGS __attribute__((__flag_enum__))\n#else\n    #define JSON_HEDLEY_FLAGS\n#endif\n\n#if defined(JSON_HEDLEY_FLAGS_CAST)\n    #undef JSON_HEDLEY_FLAGS_CAST\n#endif\n#if JSON_HEDLEY_INTEL_VERSION_CHECK(19,0,0)\n#  define JSON_HEDLEY_FLAGS_CAST(T, expr) (__extension__ ({ \\\n        JSON_HEDLEY_DIAGNOSTIC_PUSH \\\n        _Pragma(\"warning(disable:188)\") \\\n        ((T) (expr)); \\\n        JSON_HEDLEY_DIAGNOSTIC_POP \\\n    }))\n#else\n#  define JSON_HEDLEY_FLAGS_CAST(T, expr) JSON_HEDLEY_STATIC_CAST(T, expr)\n#endif\n\n#if defined(JSON_HEDLEY_EMPTY_BASES)\n    #undef JSON_HEDLEY_EMPTY_BASES\n#endif\n#if \\\n    (JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,23918) && !JSON_HEDLEY_MSVC_VERSION_CHECK(20,0,0)) || \\\n    JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0)\n    #define JSON_HEDLEY_EMPTY_BASES __declspec(empty_bases)\n#else\n    #define JSON_HEDLEY_EMPTY_BASES\n#endif\n\n/* Remaining macros are deprecated. */\n\n#if defined(JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK)\n    #undef JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK\n#endif\n#if defined(__clang__)\n    #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) (0)\n#else\n    #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)\n#endif\n\n#if defined(JSON_HEDLEY_CLANG_HAS_ATTRIBUTE)\n    #undef JSON_HEDLEY_CLANG_HAS_ATTRIBUTE\n#endif\n#define JSON_HEDLEY_CLANG_HAS_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_ATTRIBUTE(attribute)\n\n#if defined(JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE)\n    #undef JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE\n#endif\n#define JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute)\n\n#if defined(JSON_HEDLEY_CLANG_HAS_BUILTIN)\n    #undef JSON_HEDLEY_CLANG_HAS_BUILTIN\n#endif\n#define JSON_HEDLEY_CLANG_HAS_BUILTIN(builtin) JSON_HEDLEY_HAS_BUILTIN(builtin)\n\n#if defined(JSON_HEDLEY_CLANG_HAS_FEATURE)\n    #undef JSON_HEDLEY_CLANG_HAS_FEATURE\n#endif\n#define JSON_HEDLEY_CLANG_HAS_FEATURE(feature) JSON_HEDLEY_HAS_FEATURE(feature)\n\n#if defined(JSON_HEDLEY_CLANG_HAS_EXTENSION)\n    #undef JSON_HEDLEY_CLANG_HAS_EXTENSION\n#endif\n#define JSON_HEDLEY_CLANG_HAS_EXTENSION(extension) JSON_HEDLEY_HAS_EXTENSION(extension)\n\n#if defined(JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE)\n    #undef JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE\n#endif\n#define JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute)\n\n#if defined(JSON_HEDLEY_CLANG_HAS_WARNING)\n    #undef JSON_HEDLEY_CLANG_HAS_WARNING\n#endif\n#define JSON_HEDLEY_CLANG_HAS_WARNING(warning) JSON_HEDLEY_HAS_WARNING(warning)\n\n#endif /* !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < X) */\n\n\n// This file contains all internal macro definitions (except those affecting ABI)\n// You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them\n\n// #include <nlohmann/detail/abi_macros.hpp>\n\n\n// exclude unsupported compilers\n#if !defined(JSON_SKIP_UNSUPPORTED_COMPILER_CHECK)\n    #if defined(__clang__)\n        #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400\n            #error \"unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers\"\n        #endif\n    #elif defined(__GNUC__) && !(defined(__ICC) || defined(__INTEL_COMPILER))\n        #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40800\n            #error \"unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers\"\n        #endif\n    #endif\n#endif\n\n// C++ language standard detection\n// if the user manually specified the used c++ version this is skipped\n#if !defined(JSON_HAS_CPP_20) && !defined(JSON_HAS_CPP_17) && !defined(JSON_HAS_CPP_14) && !defined(JSON_HAS_CPP_11)\n    #if (defined(__cplusplus) && __cplusplus >= 202002L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L)\n        #define JSON_HAS_CPP_20\n        #define JSON_HAS_CPP_17\n        #define JSON_HAS_CPP_14\n    #elif (defined(__cplusplus) && __cplusplus >= 201703L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464\n        #define JSON_HAS_CPP_17\n        #define JSON_HAS_CPP_14\n    #elif (defined(__cplusplus) && __cplusplus >= 201402L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1)\n        #define JSON_HAS_CPP_14\n    #endif\n    // the cpp 11 flag is always specified because it is the minimal required version\n    #define JSON_HAS_CPP_11\n#endif\n\n#ifdef __has_include\n    #if __has_include(<version>)\n        #include <version>\n    #endif\n#endif\n\n#if !defined(JSON_HAS_FILESYSTEM) && !defined(JSON_HAS_EXPERIMENTAL_FILESYSTEM)\n    #ifdef JSON_HAS_CPP_17\n        #if defined(__cpp_lib_filesystem)\n            #define JSON_HAS_FILESYSTEM 1\n        #elif defined(__cpp_lib_experimental_filesystem)\n            #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1\n        #elif !defined(__has_include)\n            #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1\n        #elif __has_include(<filesystem>)\n            #define JSON_HAS_FILESYSTEM 1\n        #elif __has_include(<experimental/filesystem>)\n            #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1\n        #endif\n\n        // std::filesystem does not work on MinGW GCC 8: https://sourceforge.net/p/mingw-w64/bugs/737/\n        #if defined(__MINGW32__) && defined(__GNUC__) && __GNUC__ == 8\n            #undef JSON_HAS_FILESYSTEM\n            #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM\n        #endif\n\n        // no filesystem support before GCC 8: https://en.cppreference.com/w/cpp/compiler_support\n        #if defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 8\n            #undef JSON_HAS_FILESYSTEM\n            #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM\n        #endif\n\n        // no filesystem support before Clang 7: https://en.cppreference.com/w/cpp/compiler_support\n        #if defined(__clang_major__) && __clang_major__ < 7\n            #undef JSON_HAS_FILESYSTEM\n            #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM\n        #endif\n\n        // no filesystem support before MSVC 19.14: https://en.cppreference.com/w/cpp/compiler_support\n        #if defined(_MSC_VER) && _MSC_VER < 1914\n            #undef JSON_HAS_FILESYSTEM\n            #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM\n        #endif\n\n        // no filesystem support before iOS 13\n        #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < 130000\n            #undef JSON_HAS_FILESYSTEM\n            #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM\n        #endif\n\n        // no filesystem support before macOS Catalina\n        #if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101500\n            #undef JSON_HAS_FILESYSTEM\n            #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM\n        #endif\n    #endif\n#endif\n\n#ifndef JSON_HAS_EXPERIMENTAL_FILESYSTEM\n    #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 0\n#endif\n\n#ifndef JSON_HAS_FILESYSTEM\n    #define JSON_HAS_FILESYSTEM 0\n#endif\n\n#ifndef JSON_HAS_THREE_WAY_COMPARISON\n    #if defined(__cpp_impl_three_way_comparison) && __cpp_impl_three_way_comparison >= 201907L \\\n        && defined(__cpp_lib_three_way_comparison) && __cpp_lib_three_way_comparison >= 201907L\n        #define JSON_HAS_THREE_WAY_COMPARISON 1\n    #else\n        #define JSON_HAS_THREE_WAY_COMPARISON 0\n    #endif\n#endif\n\n#ifndef JSON_HAS_RANGES\n    // ranges header shipping in GCC 11.1.0 (released 2021-04-27) has syntax error\n    #if defined(__GLIBCXX__) && __GLIBCXX__ == 20210427\n        #define JSON_HAS_RANGES 0\n    #elif defined(__cpp_lib_ranges)\n        #define JSON_HAS_RANGES 1\n    #else\n        #define JSON_HAS_RANGES 0\n    #endif\n#endif\n\n#ifdef JSON_HAS_CPP_17\n    #define JSON_INLINE_VARIABLE inline\n#else\n    #define JSON_INLINE_VARIABLE\n#endif\n\n#if JSON_HEDLEY_HAS_ATTRIBUTE(no_unique_address)\n    #define JSON_NO_UNIQUE_ADDRESS [[no_unique_address]]\n#else\n    #define JSON_NO_UNIQUE_ADDRESS\n#endif\n\n// disable documentation warnings on clang\n#if defined(__clang__)\n    #pragma clang diagnostic push\n    #pragma clang diagnostic ignored \"-Wdocumentation\"\n    #pragma clang diagnostic ignored \"-Wdocumentation-unknown-command\"\n#endif\n\n// allow disabling exceptions\n#if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND)) && !defined(JSON_NOEXCEPTION)\n    #define JSON_THROW(exception) throw exception\n    #define JSON_TRY try\n    #define JSON_CATCH(exception) catch(exception)\n    #define JSON_INTERNAL_CATCH(exception) catch(exception)\n#else\n    #include <cstdlib>\n    #define JSON_THROW(exception) std::abort()\n    #define JSON_TRY if(true)\n    #define JSON_CATCH(exception) if(false)\n    #define JSON_INTERNAL_CATCH(exception) if(false)\n#endif\n\n// override exception macros\n#if defined(JSON_THROW_USER)\n    #undef JSON_THROW\n    #define JSON_THROW JSON_THROW_USER\n#endif\n#if defined(JSON_TRY_USER)\n    #undef JSON_TRY\n    #define JSON_TRY JSON_TRY_USER\n#endif\n#if defined(JSON_CATCH_USER)\n    #undef JSON_CATCH\n    #define JSON_CATCH JSON_CATCH_USER\n    #undef JSON_INTERNAL_CATCH\n    #define JSON_INTERNAL_CATCH JSON_CATCH_USER\n#endif\n#if defined(JSON_INTERNAL_CATCH_USER)\n    #undef JSON_INTERNAL_CATCH\n    #define JSON_INTERNAL_CATCH JSON_INTERNAL_CATCH_USER\n#endif\n\n// allow overriding assert\n#if !defined(JSON_ASSERT)\n    #include <cassert> // assert\n    #define JSON_ASSERT(x) assert(x)\n#endif\n\n// allow to access some private functions (needed by the test suite)\n#if defined(JSON_TESTS_PRIVATE)\n    #define JSON_PRIVATE_UNLESS_TESTED public\n#else\n    #define JSON_PRIVATE_UNLESS_TESTED private\n#endif\n\n/*!\n@brief macro to briefly define a mapping between an enum and JSON\n@def NLOHMANN_JSON_SERIALIZE_ENUM\n@since version 3.4.0\n*/\n#define NLOHMANN_JSON_SERIALIZE_ENUM(ENUM_TYPE, ...)                                            \\\n    template<typename BasicJsonType>                                                            \\\n    inline void to_json(BasicJsonType& j, const ENUM_TYPE& e)                                   \\\n    {                                                                                           \\\n        static_assert(std::is_enum<ENUM_TYPE>::value, #ENUM_TYPE \" must be an enum!\");          \\\n        static const std::pair<ENUM_TYPE, BasicJsonType> m[] = __VA_ARGS__;                     \\\n        auto it = std::find_if(std::begin(m), std::end(m),                                      \\\n                               [e](const std::pair<ENUM_TYPE, BasicJsonType>& ej_pair) -> bool  \\\n        {                                                                                       \\\n            return ej_pair.first == e;                                                          \\\n        });                                                                                     \\\n        j = ((it != std::end(m)) ? it : std::begin(m))->second;                                 \\\n    }                                                                                           \\\n    template<typename BasicJsonType>                                                            \\\n    inline void from_json(const BasicJsonType& j, ENUM_TYPE& e)                                 \\\n    {                                                                                           \\\n        static_assert(std::is_enum<ENUM_TYPE>::value, #ENUM_TYPE \" must be an enum!\");          \\\n        static const std::pair<ENUM_TYPE, BasicJsonType> m[] = __VA_ARGS__;                     \\\n        auto it = std::find_if(std::begin(m), std::end(m),                                      \\\n                               [&j](const std::pair<ENUM_TYPE, BasicJsonType>& ej_pair) -> bool \\\n        {                                                                                       \\\n            return ej_pair.second == j;                                                         \\\n        });                                                                                     \\\n        e = ((it != std::end(m)) ? it : std::begin(m))->first;                                  \\\n    }\n\n// Ugly macros to avoid uglier copy-paste when specializing basic_json. They\n// may be removed in the future once the class is split.\n\n#define NLOHMANN_BASIC_JSON_TPL_DECLARATION                                \\\n    template<template<typename, typename, typename...> class ObjectType,   \\\n             template<typename, typename...> class ArrayType,              \\\n             class StringType, class BooleanType, class NumberIntegerType, \\\n             class NumberUnsignedType, class NumberFloatType,              \\\n             template<typename> class AllocatorType,                       \\\n             template<typename, typename = void> class JSONSerializer,     \\\n             class BinaryType,                                             \\\n             class CustomBaseClass>\n\n#define NLOHMANN_BASIC_JSON_TPL                                            \\\n    basic_json<ObjectType, ArrayType, StringType, BooleanType,             \\\n    NumberIntegerType, NumberUnsignedType, NumberFloatType,                \\\n    AllocatorType, JSONSerializer, BinaryType, CustomBaseClass>\n\n// Macros to simplify conversion from/to types\n\n#define NLOHMANN_JSON_EXPAND( x ) x\n#define NLOHMANN_JSON_GET_MACRO(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, NAME,...) NAME\n#define NLOHMANN_JSON_PASTE(...) NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_GET_MACRO(__VA_ARGS__, \\\n        NLOHMANN_JSON_PASTE64, \\\n        NLOHMANN_JSON_PASTE63, \\\n        NLOHMANN_JSON_PASTE62, \\\n        NLOHMANN_JSON_PASTE61, \\\n        NLOHMANN_JSON_PASTE60, \\\n        NLOHMANN_JSON_PASTE59, \\\n        NLOHMANN_JSON_PASTE58, \\\n        NLOHMANN_JSON_PASTE57, \\\n        NLOHMANN_JSON_PASTE56, \\\n        NLOHMANN_JSON_PASTE55, \\\n        NLOHMANN_JSON_PASTE54, \\\n        NLOHMANN_JSON_PASTE53, \\\n        NLOHMANN_JSON_PASTE52, \\\n        NLOHMANN_JSON_PASTE51, \\\n        NLOHMANN_JSON_PASTE50, \\\n        NLOHMANN_JSON_PASTE49, \\\n        NLOHMANN_JSON_PASTE48, \\\n        NLOHMANN_JSON_PASTE47, \\\n        NLOHMANN_JSON_PASTE46, \\\n        NLOHMANN_JSON_PASTE45, \\\n        NLOHMANN_JSON_PASTE44, \\\n        NLOHMANN_JSON_PASTE43, \\\n        NLOHMANN_JSON_PASTE42, \\\n        NLOHMANN_JSON_PASTE41, \\\n        NLOHMANN_JSON_PASTE40, \\\n        NLOHMANN_JSON_PASTE39, \\\n        NLOHMANN_JSON_PASTE38, \\\n        NLOHMANN_JSON_PASTE37, \\\n        NLOHMANN_JSON_PASTE36, \\\n        NLOHMANN_JSON_PASTE35, \\\n        NLOHMANN_JSON_PASTE34, \\\n        NLOHMANN_JSON_PASTE33, \\\n        NLOHMANN_JSON_PASTE32, \\\n        NLOHMANN_JSON_PASTE31, \\\n        NLOHMANN_JSON_PASTE30, \\\n        NLOHMANN_JSON_PASTE29, \\\n        NLOHMANN_JSON_PASTE28, \\\n        NLOHMANN_JSON_PASTE27, \\\n        NLOHMANN_JSON_PASTE26, \\\n        NLOHMANN_JSON_PASTE25, \\\n        NLOHMANN_JSON_PASTE24, \\\n        NLOHMANN_JSON_PASTE23, \\\n        NLOHMANN_JSON_PASTE22, \\\n        NLOHMANN_JSON_PASTE21, \\\n        NLOHMANN_JSON_PASTE20, \\\n        NLOHMANN_JSON_PASTE19, \\\n        NLOHMANN_JSON_PASTE18, \\\n        NLOHMANN_JSON_PASTE17, \\\n        NLOHMANN_JSON_PASTE16, \\\n        NLOHMANN_JSON_PASTE15, \\\n        NLOHMANN_JSON_PASTE14, \\\n        NLOHMANN_JSON_PASTE13, \\\n        NLOHMANN_JSON_PASTE12, \\\n        NLOHMANN_JSON_PASTE11, \\\n        NLOHMANN_JSON_PASTE10, \\\n        NLOHMANN_JSON_PASTE9, \\\n        NLOHMANN_JSON_PASTE8, \\\n        NLOHMANN_JSON_PASTE7, \\\n        NLOHMANN_JSON_PASTE6, \\\n        NLOHMANN_JSON_PASTE5, \\\n        NLOHMANN_JSON_PASTE4, \\\n        NLOHMANN_JSON_PASTE3, \\\n        NLOHMANN_JSON_PASTE2, \\\n        NLOHMANN_JSON_PASTE1)(__VA_ARGS__))\n#define NLOHMANN_JSON_PASTE2(func, v1) func(v1)\n#define NLOHMANN_JSON_PASTE3(func, v1, v2) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE2(func, v2)\n#define NLOHMANN_JSON_PASTE4(func, v1, v2, v3) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE3(func, v2, v3)\n#define NLOHMANN_JSON_PASTE5(func, v1, v2, v3, v4) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE4(func, v2, v3, v4)\n#define NLOHMANN_JSON_PASTE6(func, v1, v2, v3, v4, v5) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE5(func, v2, v3, v4, v5)\n#define NLOHMANN_JSON_PASTE7(func, v1, v2, v3, v4, v5, v6) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE6(func, v2, v3, v4, v5, v6)\n#define NLOHMANN_JSON_PASTE8(func, v1, v2, v3, v4, v5, v6, v7) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE7(func, v2, v3, v4, v5, v6, v7)\n#define NLOHMANN_JSON_PASTE9(func, v1, v2, v3, v4, v5, v6, v7, v8) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE8(func, v2, v3, v4, v5, v6, v7, v8)\n#define NLOHMANN_JSON_PASTE10(func, v1, v2, v3, v4, v5, v6, v7, v8, v9) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE9(func, v2, v3, v4, v5, v6, v7, v8, v9)\n#define NLOHMANN_JSON_PASTE11(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE10(func, v2, v3, v4, v5, v6, v7, v8, v9, v10)\n#define NLOHMANN_JSON_PASTE12(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE11(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)\n#define NLOHMANN_JSON_PASTE13(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE12(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12)\n#define NLOHMANN_JSON_PASTE14(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE13(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)\n#define NLOHMANN_JSON_PASTE15(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE14(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14)\n#define NLOHMANN_JSON_PASTE16(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE15(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15)\n#define NLOHMANN_JSON_PASTE17(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE16(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16)\n#define NLOHMANN_JSON_PASTE18(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE17(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17)\n#define NLOHMANN_JSON_PASTE19(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE18(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18)\n#define NLOHMANN_JSON_PASTE20(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE19(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19)\n#define NLOHMANN_JSON_PASTE21(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE20(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20)\n#define NLOHMANN_JSON_PASTE22(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE21(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21)\n#define NLOHMANN_JSON_PASTE23(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE22(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22)\n#define NLOHMANN_JSON_PASTE24(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE23(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23)\n#define NLOHMANN_JSON_PASTE25(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE24(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24)\n#define NLOHMANN_JSON_PASTE26(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE25(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25)\n#define NLOHMANN_JSON_PASTE27(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE26(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26)\n#define NLOHMANN_JSON_PASTE28(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE27(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27)\n#define NLOHMANN_JSON_PASTE29(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE28(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28)\n#define NLOHMANN_JSON_PASTE30(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE29(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29)\n#define NLOHMANN_JSON_PASTE31(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE30(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30)\n#define NLOHMANN_JSON_PASTE32(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE31(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31)\n#define NLOHMANN_JSON_PASTE33(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE32(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32)\n#define NLOHMANN_JSON_PASTE34(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE33(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33)\n#define NLOHMANN_JSON_PASTE35(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE34(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34)\n#define NLOHMANN_JSON_PASTE36(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE35(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35)\n#define NLOHMANN_JSON_PASTE37(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE36(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36)\n#define NLOHMANN_JSON_PASTE38(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE37(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37)\n#define NLOHMANN_JSON_PASTE39(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE38(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38)\n#define NLOHMANN_JSON_PASTE40(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE39(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39)\n#define NLOHMANN_JSON_PASTE41(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE40(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40)\n#define NLOHMANN_JSON_PASTE42(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE41(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41)\n#define NLOHMANN_JSON_PASTE43(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE42(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42)\n#define NLOHMANN_JSON_PASTE44(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE43(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43)\n#define NLOHMANN_JSON_PASTE45(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE44(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44)\n#define NLOHMANN_JSON_PASTE46(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE45(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45)\n#define NLOHMANN_JSON_PASTE47(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE46(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46)\n#define NLOHMANN_JSON_PASTE48(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE47(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47)\n#define NLOHMANN_JSON_PASTE49(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE48(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48)\n#define NLOHMANN_JSON_PASTE50(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE49(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49)\n#define NLOHMANN_JSON_PASTE51(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE50(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50)\n#define NLOHMANN_JSON_PASTE52(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE51(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51)\n#define NLOHMANN_JSON_PASTE53(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE52(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52)\n#define NLOHMANN_JSON_PASTE54(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE53(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53)\n#define NLOHMANN_JSON_PASTE55(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE54(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54)\n#define NLOHMANN_JSON_PASTE56(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE55(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55)\n#define NLOHMANN_JSON_PASTE57(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE56(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56)\n#define NLOHMANN_JSON_PASTE58(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE57(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57)\n#define NLOHMANN_JSON_PASTE59(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE58(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58)\n#define NLOHMANN_JSON_PASTE60(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE59(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59)\n#define NLOHMANN_JSON_PASTE61(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE60(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60)\n#define NLOHMANN_JSON_PASTE62(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE61(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61)\n#define NLOHMANN_JSON_PASTE63(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE62(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62)\n#define NLOHMANN_JSON_PASTE64(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE63(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63)\n\n#define NLOHMANN_JSON_TO(v1) nlohmann_json_j[#v1] = nlohmann_json_t.v1;\n#define NLOHMANN_JSON_FROM(v1) nlohmann_json_j.at(#v1).get_to(nlohmann_json_t.v1);\n#define NLOHMANN_JSON_FROM_WITH_DEFAULT(v1) nlohmann_json_t.v1 = nlohmann_json_j.value(#v1, nlohmann_json_default_obj.v1);\n\n/*!\n@brief macro\n@def NLOHMANN_DEFINE_TYPE_INTRUSIVE\n@since version 3.9.0\n*/\n#define NLOHMANN_DEFINE_TYPE_INTRUSIVE(Type, ...)  \\\n    friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \\\n    friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) }\n\n#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(Type, ...)  \\\n    friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \\\n    friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) }\n\n/*!\n@brief macro\n@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE\n@since version 3.9.0\n*/\n#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Type, ...)  \\\n    inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \\\n    inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) }\n\n#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, ...)  \\\n    inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \\\n    inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) }\n\n\n// inspired from https://stackoverflow.com/a/26745591\n// allows to call any std function as if (e.g. with begin):\n// using std::begin; begin(x);\n//\n// it allows using the detected idiom to retrieve the return type\n// of such an expression\n#define NLOHMANN_CAN_CALL_STD_FUNC_IMPL(std_name)                                 \\\n    namespace detail {                                                            \\\n    using std::std_name;                                                          \\\n    \\\n    template<typename... T>                                                       \\\n    using result_of_##std_name = decltype(std_name(std::declval<T>()...));        \\\n    }                                                                             \\\n    \\\n    namespace detail2 {                                                           \\\n    struct std_name##_tag                                                         \\\n    {                                                                             \\\n    };                                                                            \\\n    \\\n    template<typename... T>                                                       \\\n    std_name##_tag std_name(T&&...);                                              \\\n    \\\n    template<typename... T>                                                       \\\n    using result_of_##std_name = decltype(std_name(std::declval<T>()...));        \\\n    \\\n    template<typename... T>                                                       \\\n    struct would_call_std_##std_name                                              \\\n    {                                                                             \\\n        static constexpr auto const value = ::nlohmann::detail::                  \\\n                                            is_detected_exact<std_name##_tag, result_of_##std_name, T...>::value; \\\n    };                                                                            \\\n    } /* namespace detail2 */ \\\n    \\\n    template<typename... T>                                                       \\\n    struct would_call_std_##std_name : detail2::would_call_std_##std_name<T...>   \\\n    {                                                                             \\\n    }\n\n#ifndef JSON_USE_IMPLICIT_CONVERSIONS\n    #define JSON_USE_IMPLICIT_CONVERSIONS 1\n#endif\n\n#if JSON_USE_IMPLICIT_CONVERSIONS\n    #define JSON_EXPLICIT\n#else\n    #define JSON_EXPLICIT explicit\n#endif\n\n#ifndef JSON_DISABLE_ENUM_SERIALIZATION\n    #define JSON_DISABLE_ENUM_SERIALIZATION 0\n#endif\n\n#ifndef JSON_USE_GLOBAL_UDLS\n    #define JSON_USE_GLOBAL_UDLS 1\n#endif\n\n#if JSON_HAS_THREE_WAY_COMPARISON\n    #include <compare> // partial_ordering\n#endif\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n///////////////////////////\n// JSON type enumeration //\n///////////////////////////\n\n/*!\n@brief the JSON type enumeration\n\nThis enumeration collects the different JSON types. It is internally used to\ndistinguish the stored values, and the functions @ref basic_json::is_null(),\n@ref basic_json::is_object(), @ref basic_json::is_array(),\n@ref basic_json::is_string(), @ref basic_json::is_boolean(),\n@ref basic_json::is_number() (with @ref basic_json::is_number_integer(),\n@ref basic_json::is_number_unsigned(), and @ref basic_json::is_number_float()),\n@ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and\n@ref basic_json::is_structured() rely on it.\n\n@note There are three enumeration entries (number_integer, number_unsigned, and\nnumber_float), because the library distinguishes these three types for numbers:\n@ref basic_json::number_unsigned_t is used for unsigned integers,\n@ref basic_json::number_integer_t is used for signed integers, and\n@ref basic_json::number_float_t is used for floating-point numbers or to\napproximate integers which do not fit in the limits of their respective type.\n\n@sa see @ref basic_json::basic_json(const value_t value_type) -- create a JSON\nvalue with the default value for a given type\n\n@since version 1.0.0\n*/\nenum class value_t : std::uint8_t\n{\n    null,             ///< null value\n    object,           ///< object (unordered set of name/value pairs)\n    array,            ///< array (ordered collection of values)\n    string,           ///< string value\n    boolean,          ///< boolean value\n    number_integer,   ///< number value (signed integer)\n    number_unsigned,  ///< number value (unsigned integer)\n    number_float,     ///< number value (floating-point)\n    binary,           ///< binary array (ordered collection of bytes)\n    discarded         ///< discarded by the parser callback function\n};\n\n/*!\n@brief comparison operator for JSON types\n\nReturns an ordering that is similar to Python:\n- order: null < boolean < number < object < array < string < binary\n- furthermore, each type is not smaller than itself\n- discarded values are not comparable\n- binary is represented as a b\"\" string in python and directly comparable to a\n  string; however, making a binary array directly comparable with a string would\n  be surprising behavior in a JSON file.\n\n@since version 1.0.0\n*/\n#if JSON_HAS_THREE_WAY_COMPARISON\n    inline std::partial_ordering operator<=>(const value_t lhs, const value_t rhs) noexcept // *NOPAD*\n#else\n    inline bool operator<(const value_t lhs, const value_t rhs) noexcept\n#endif\n{\n    static constexpr std::array<std::uint8_t, 9> order = {{\n            0 /* null */, 3 /* object */, 4 /* array */, 5 /* string */,\n            1 /* boolean */, 2 /* integer */, 2 /* unsigned */, 2 /* float */,\n            6 /* binary */\n        }\n    };\n\n    const auto l_index = static_cast<std::size_t>(lhs);\n    const auto r_index = static_cast<std::size_t>(rhs);\n#if JSON_HAS_THREE_WAY_COMPARISON\n    if (l_index < order.size() && r_index < order.size())\n    {\n        return order[l_index] <=> order[r_index]; // *NOPAD*\n    }\n    return std::partial_ordering::unordered;\n#else\n    return l_index < order.size() && r_index < order.size() && order[l_index] < order[r_index];\n#endif\n}\n\n// GCC selects the built-in operator< over an operator rewritten from\n// a user-defined spaceship operator\n// Clang, MSVC, and ICC select the rewritten candidate\n// (see GCC bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105200)\n#if JSON_HAS_THREE_WAY_COMPARISON && defined(__GNUC__)\ninline bool operator<(const value_t lhs, const value_t rhs) noexcept\n{\n    return std::is_lt(lhs <=> rhs); // *NOPAD*\n}\n#endif\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/string_escape.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n// #include <nlohmann/detail/abi_macros.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n/*!\n@brief replace all occurrences of a substring by another string\n\n@param[in,out] s  the string to manipulate; changed so that all\n               occurrences of @a f are replaced with @a t\n@param[in]     f  the substring to replace with @a t\n@param[in]     t  the string to replace @a f\n\n@pre The search string @a f must not be empty. **This precondition is\nenforced with an assertion.**\n\n@since version 2.0.0\n*/\ntemplate<typename StringType>\ninline void replace_substring(StringType& s, const StringType& f,\n                              const StringType& t)\n{\n    JSON_ASSERT(!f.empty());\n    for (auto pos = s.find(f);                // find first occurrence of f\n            pos != StringType::npos;          // make sure f was found\n            s.replace(pos, f.size(), t),      // replace with t, and\n            pos = s.find(f, pos + t.size()))  // find next occurrence of f\n    {}\n}\n\n/*!\n * @brief string escaping as described in RFC 6901 (Sect. 4)\n * @param[in] s string to escape\n * @return    escaped string\n *\n * Note the order of escaping \"~\" to \"~0\" and \"/\" to \"~1\" is important.\n */\ntemplate<typename StringType>\ninline StringType escape(StringType s)\n{\n    replace_substring(s, StringType{\"~\"}, StringType{\"~0\"});\n    replace_substring(s, StringType{\"/\"}, StringType{\"~1\"});\n    return s;\n}\n\n/*!\n * @brief string unescaping as described in RFC 6901 (Sect. 4)\n * @param[in] s string to unescape\n * @return    unescaped string\n *\n * Note the order of escaping \"~1\" to \"/\" and \"~0\" to \"~\" is important.\n */\ntemplate<typename StringType>\nstatic void unescape(StringType& s)\n{\n    replace_substring(s, StringType{\"~1\"}, StringType{\"/\"});\n    replace_substring(s, StringType{\"~0\"}, StringType{\"~\"});\n}\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/input/position_t.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <cstddef> // size_t\n\n// #include <nlohmann/detail/abi_macros.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n/// struct to capture the start position of the current token\nstruct position_t\n{\n    /// the total number of characters read\n    std::size_t chars_read_total = 0;\n    /// the number of characters read in the current line\n    std::size_t chars_read_current_line = 0;\n    /// the number of lines read\n    std::size_t lines_read = 0;\n\n    /// conversion to size_t to preserve SAX interface\n    constexpr operator size_t() const\n    {\n        return chars_read_total;\n    }\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n// #include <nlohmann/detail/meta/cpp_future.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-FileCopyrightText: 2018 The Abseil Authors\n// SPDX-License-Identifier: MIT\n\n\n\n#include <array> // array\n#include <cstddef> // size_t\n#include <type_traits> // conditional, enable_if, false_type, integral_constant, is_constructible, is_integral, is_same, remove_cv, remove_reference, true_type\n#include <utility> // index_sequence, make_index_sequence, index_sequence_for\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\ntemplate<typename T>\nusing uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type;\n\n#ifdef JSON_HAS_CPP_14\n\n// the following utilities are natively available in C++14\nusing std::enable_if_t;\nusing std::index_sequence;\nusing std::make_index_sequence;\nusing std::index_sequence_for;\n\n#else\n\n// alias templates to reduce boilerplate\ntemplate<bool B, typename T = void>\nusing enable_if_t = typename std::enable_if<B, T>::type;\n\n// The following code is taken from https://github.com/abseil/abseil-cpp/blob/10cb35e459f5ecca5b2ff107635da0bfa41011b4/absl/utility/utility.h\n// which is part of Google Abseil (https://github.com/abseil/abseil-cpp), licensed under the Apache License 2.0.\n\n//// START OF CODE FROM GOOGLE ABSEIL\n\n// integer_sequence\n//\n// Class template representing a compile-time integer sequence. An instantiation\n// of `integer_sequence<T, Ints...>` has a sequence of integers encoded in its\n// type through its template arguments (which is a common need when\n// working with C++11 variadic templates). `absl::integer_sequence` is designed\n// to be a drop-in replacement for C++14's `std::integer_sequence`.\n//\n// Example:\n//\n//   template< class T, T... Ints >\n//   void user_function(integer_sequence<T, Ints...>);\n//\n//   int main()\n//   {\n//     // user_function's `T` will be deduced to `int` and `Ints...`\n//     // will be deduced to `0, 1, 2, 3, 4`.\n//     user_function(make_integer_sequence<int, 5>());\n//   }\ntemplate <typename T, T... Ints>\nstruct integer_sequence\n{\n    using value_type = T;\n    static constexpr std::size_t size() noexcept\n    {\n        return sizeof...(Ints);\n    }\n};\n\n// index_sequence\n//\n// A helper template for an `integer_sequence` of `size_t`,\n// `absl::index_sequence` is designed to be a drop-in replacement for C++14's\n// `std::index_sequence`.\ntemplate <size_t... Ints>\nusing index_sequence = integer_sequence<size_t, Ints...>;\n\nnamespace utility_internal\n{\n\ntemplate <typename Seq, size_t SeqSize, size_t Rem>\nstruct Extend;\n\n// Note that SeqSize == sizeof...(Ints). It's passed explicitly for efficiency.\ntemplate <typename T, T... Ints, size_t SeqSize>\nstruct Extend<integer_sequence<T, Ints...>, SeqSize, 0>\n{\n    using type = integer_sequence < T, Ints..., (Ints + SeqSize)... >;\n};\n\ntemplate <typename T, T... Ints, size_t SeqSize>\nstruct Extend<integer_sequence<T, Ints...>, SeqSize, 1>\n{\n    using type = integer_sequence < T, Ints..., (Ints + SeqSize)..., 2 * SeqSize >;\n};\n\n// Recursion helper for 'make_integer_sequence<T, N>'.\n// 'Gen<T, N>::type' is an alias for 'integer_sequence<T, 0, 1, ... N-1>'.\ntemplate <typename T, size_t N>\nstruct Gen\n{\n    using type =\n        typename Extend < typename Gen < T, N / 2 >::type, N / 2, N % 2 >::type;\n};\n\ntemplate <typename T>\nstruct Gen<T, 0>\n{\n    using type = integer_sequence<T>;\n};\n\n}  // namespace utility_internal\n\n// Compile-time sequences of integers\n\n// make_integer_sequence\n//\n// This template alias is equivalent to\n// `integer_sequence<int, 0, 1, ..., N-1>`, and is designed to be a drop-in\n// replacement for C++14's `std::make_integer_sequence`.\ntemplate <typename T, T N>\nusing make_integer_sequence = typename utility_internal::Gen<T, N>::type;\n\n// make_index_sequence\n//\n// This template alias is equivalent to `index_sequence<0, 1, ..., N-1>`,\n// and is designed to be a drop-in replacement for C++14's\n// `std::make_index_sequence`.\ntemplate <size_t N>\nusing make_index_sequence = make_integer_sequence<size_t, N>;\n\n// index_sequence_for\n//\n// Converts a typename pack into an index sequence of the same length, and\n// is designed to be a drop-in replacement for C++14's\n// `std::index_sequence_for()`\ntemplate <typename... Ts>\nusing index_sequence_for = make_index_sequence<sizeof...(Ts)>;\n\n//// END OF CODE FROM GOOGLE ABSEIL\n\n#endif\n\n// dispatch utility (taken from ranges-v3)\ntemplate<unsigned N> struct priority_tag : priority_tag < N - 1 > {};\ntemplate<> struct priority_tag<0> {};\n\n// taken from ranges-v3\ntemplate<typename T>\nstruct static_const\n{\n    static JSON_INLINE_VARIABLE constexpr T value{};\n};\n\n#ifndef JSON_HAS_CPP_17\n    template<typename T>\n    constexpr T static_const<T>::value;\n#endif\n\ntemplate<typename T, typename... Args>\ninline constexpr std::array<T, sizeof...(Args)> make_array(Args&& ... args)\n{\n    return std::array<T, sizeof...(Args)> {{static_cast<T>(std::forward<Args>(args))...}};\n}\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/meta/type_traits.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <limits> // numeric_limits\n#include <type_traits> // false_type, is_constructible, is_integral, is_same, true_type\n#include <utility> // declval\n#include <tuple> // tuple\n\n// #include <nlohmann/detail/iterators/iterator_traits.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <iterator> // random_access_iterator_tag\n\n// #include <nlohmann/detail/abi_macros.hpp>\n\n// #include <nlohmann/detail/meta/void_t.hpp>\n\n// #include <nlohmann/detail/meta/cpp_future.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\ntemplate<typename It, typename = void>\nstruct iterator_types {};\n\ntemplate<typename It>\nstruct iterator_types <\n    It,\n    void_t<typename It::difference_type, typename It::value_type, typename It::pointer,\n    typename It::reference, typename It::iterator_category >>\n{\n    using difference_type = typename It::difference_type;\n    using value_type = typename It::value_type;\n    using pointer = typename It::pointer;\n    using reference = typename It::reference;\n    using iterator_category = typename It::iterator_category;\n};\n\n// This is required as some compilers implement std::iterator_traits in a way that\n// doesn't work with SFINAE. See https://github.com/nlohmann/json/issues/1341.\ntemplate<typename T, typename = void>\nstruct iterator_traits\n{\n};\n\ntemplate<typename T>\nstruct iterator_traits < T, enable_if_t < !std::is_pointer<T>::value >>\n            : iterator_types<T>\n{\n};\n\ntemplate<typename T>\nstruct iterator_traits<T*, enable_if_t<std::is_object<T>::value>>\n{\n    using iterator_category = std::random_access_iterator_tag;\n    using value_type = T;\n    using difference_type = ptrdiff_t;\n    using pointer = T*;\n    using reference = T&;\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n// #include <nlohmann/detail/meta/call_std/begin.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\n\nNLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin);\n\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/meta/call_std/end.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\n\nNLOHMANN_CAN_CALL_STD_FUNC_IMPL(end);\n\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/meta/cpp_future.hpp>\n\n// #include <nlohmann/detail/meta/detected.hpp>\n\n// #include <nlohmann/json_fwd.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_\n    #define INCLUDE_NLOHMANN_JSON_FWD_HPP_\n\n    #include <cstdint> // int64_t, uint64_t\n    #include <map> // map\n    #include <memory> // allocator\n    #include <string> // string\n    #include <vector> // vector\n\n    // #include <nlohmann/detail/abi_macros.hpp>\n\n\n    /*!\n    @brief namespace for Niels Lohmann\n    @see https://github.com/nlohmann\n    @since version 1.0.0\n    */\n    NLOHMANN_JSON_NAMESPACE_BEGIN\n\n    /*!\n    @brief default JSONSerializer template argument\n\n    This serializer ignores the template arguments and uses ADL\n    ([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl))\n    for serialization.\n    */\n    template<typename T = void, typename SFINAE = void>\n    struct adl_serializer;\n\n    /// a class to store JSON values\n    /// @sa https://json.nlohmann.me/api/basic_json/\n    template<template<typename U, typename V, typename... Args> class ObjectType =\n    std::map,\n    template<typename U, typename... Args> class ArrayType = std::vector,\n    class StringType = std::string, class BooleanType = bool,\n    class NumberIntegerType = std::int64_t,\n    class NumberUnsignedType = std::uint64_t,\n    class NumberFloatType = double,\n    template<typename U> class AllocatorType = std::allocator,\n    template<typename T, typename SFINAE = void> class JSONSerializer =\n    adl_serializer,\n    class BinaryType = std::vector<std::uint8_t>, // cppcheck-suppress syntaxError\n    class CustomBaseClass = void>\n    class basic_json;\n\n    /// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document\n    /// @sa https://json.nlohmann.me/api/json_pointer/\n    template<typename RefStringType>\n    class json_pointer;\n\n    /*!\n    @brief default specialization\n    @sa https://json.nlohmann.me/api/json/\n    */\n    using json = basic_json<>;\n\n    /// @brief a minimal map-like container that preserves insertion order\n    /// @sa https://json.nlohmann.me/api/ordered_map/\n    template<class Key, class T, class IgnoredLess, class Allocator>\n    struct ordered_map;\n\n    /// @brief specialization that maintains the insertion order of object keys\n    /// @sa https://json.nlohmann.me/api/ordered_json/\n    using ordered_json = basic_json<nlohmann::ordered_map>;\n\n    NLOHMANN_JSON_NAMESPACE_END\n\n#endif  // INCLUDE_NLOHMANN_JSON_FWD_HPP_\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\n/*!\n@brief detail namespace with internal helper functions\n\nThis namespace collects functions that should not be exposed,\nimplementations of some @ref basic_json methods, and meta-programming helpers.\n\n@since version 2.1.0\n*/\nnamespace detail\n{\n\n/////////////\n// helpers //\n/////////////\n\n// Note to maintainers:\n//\n// Every trait in this file expects a non CV-qualified type.\n// The only exceptions are in the 'aliases for detected' section\n// (i.e. those of the form: decltype(T::member_function(std::declval<T>())))\n//\n// In this case, T has to be properly CV-qualified to constraint the function arguments\n// (e.g. to_json(BasicJsonType&, const T&))\n\ntemplate<typename> struct is_basic_json : std::false_type {};\n\nNLOHMANN_BASIC_JSON_TPL_DECLARATION\nstruct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {};\n\n// used by exceptions create() member functions\n// true_type for pointer to possibly cv-qualified basic_json or std::nullptr_t\n// false_type otherwise\ntemplate<typename BasicJsonContext>\nstruct is_basic_json_context :\n    std::integral_constant < bool,\n    is_basic_json<typename std::remove_cv<typename std::remove_pointer<BasicJsonContext>::type>::type>::value\n    || std::is_same<BasicJsonContext, std::nullptr_t>::value >\n{};\n\n//////////////////////\n// json_ref helpers //\n//////////////////////\n\ntemplate<typename>\nclass json_ref;\n\ntemplate<typename>\nstruct is_json_ref : std::false_type {};\n\ntemplate<typename T>\nstruct is_json_ref<json_ref<T>> : std::true_type {};\n\n//////////////////////////\n// aliases for detected //\n//////////////////////////\n\ntemplate<typename T>\nusing mapped_type_t = typename T::mapped_type;\n\ntemplate<typename T>\nusing key_type_t = typename T::key_type;\n\ntemplate<typename T>\nusing value_type_t = typename T::value_type;\n\ntemplate<typename T>\nusing difference_type_t = typename T::difference_type;\n\ntemplate<typename T>\nusing pointer_t = typename T::pointer;\n\ntemplate<typename T>\nusing reference_t = typename T::reference;\n\ntemplate<typename T>\nusing iterator_category_t = typename T::iterator_category;\n\ntemplate<typename T, typename... Args>\nusing to_json_function = decltype(T::to_json(std::declval<Args>()...));\n\ntemplate<typename T, typename... Args>\nusing from_json_function = decltype(T::from_json(std::declval<Args>()...));\n\ntemplate<typename T, typename U>\nusing get_template_function = decltype(std::declval<T>().template get<U>());\n\n// trait checking if JSONSerializer<T>::from_json(json const&, udt&) exists\ntemplate<typename BasicJsonType, typename T, typename = void>\nstruct has_from_json : std::false_type {};\n\n// trait checking if j.get<T> is valid\n// use this trait instead of std::is_constructible or std::is_convertible,\n// both rely on, or make use of implicit conversions, and thus fail when T\n// has several constructors/operator= (see https://github.com/nlohmann/json/issues/958)\ntemplate <typename BasicJsonType, typename T>\nstruct is_getable\n{\n    static constexpr bool value = is_detected<get_template_function, const BasicJsonType&, T>::value;\n};\n\ntemplate<typename BasicJsonType, typename T>\nstruct has_from_json < BasicJsonType, T, enable_if_t < !is_basic_json<T>::value >>\n{\n    using serializer = typename BasicJsonType::template json_serializer<T, void>;\n\n    static constexpr bool value =\n        is_detected_exact<void, from_json_function, serializer,\n        const BasicJsonType&, T&>::value;\n};\n\n// This trait checks if JSONSerializer<T>::from_json(json const&) exists\n// this overload is used for non-default-constructible user-defined-types\ntemplate<typename BasicJsonType, typename T, typename = void>\nstruct has_non_default_from_json : std::false_type {};\n\ntemplate<typename BasicJsonType, typename T>\nstruct has_non_default_from_json < BasicJsonType, T, enable_if_t < !is_basic_json<T>::value >>\n{\n    using serializer = typename BasicJsonType::template json_serializer<T, void>;\n\n    static constexpr bool value =\n        is_detected_exact<T, from_json_function, serializer,\n        const BasicJsonType&>::value;\n};\n\n// This trait checks if BasicJsonType::json_serializer<T>::to_json exists\n// Do not evaluate the trait when T is a basic_json type, to avoid template instantiation infinite recursion.\ntemplate<typename BasicJsonType, typename T, typename = void>\nstruct has_to_json : std::false_type {};\n\ntemplate<typename BasicJsonType, typename T>\nstruct has_to_json < BasicJsonType, T, enable_if_t < !is_basic_json<T>::value >>\n{\n    using serializer = typename BasicJsonType::template json_serializer<T, void>;\n\n    static constexpr bool value =\n        is_detected_exact<void, to_json_function, serializer, BasicJsonType&,\n        T>::value;\n};\n\ntemplate<typename T>\nusing detect_key_compare = typename T::key_compare;\n\ntemplate<typename T>\nstruct has_key_compare : std::integral_constant<bool, is_detected<detect_key_compare, T>::value> {};\n\n// obtains the actual object key comparator\ntemplate<typename BasicJsonType>\nstruct actual_object_comparator\n{\n    using object_t = typename BasicJsonType::object_t;\n    using object_comparator_t = typename BasicJsonType::default_object_comparator_t;\n    using type = typename std::conditional < has_key_compare<object_t>::value,\n          typename object_t::key_compare, object_comparator_t>::type;\n};\n\ntemplate<typename BasicJsonType>\nusing actual_object_comparator_t = typename actual_object_comparator<BasicJsonType>::type;\n\n///////////////////\n// is_ functions //\n///////////////////\n\n// https://en.cppreference.com/w/cpp/types/conjunction\ntemplate<class...> struct conjunction : std::true_type { };\ntemplate<class B> struct conjunction<B> : B { };\ntemplate<class B, class... Bn>\nstruct conjunction<B, Bn...>\n: std::conditional<static_cast<bool>(B::value), conjunction<Bn...>, B>::type {};\n\n// https://en.cppreference.com/w/cpp/types/negation\ntemplate<class B> struct negation : std::integral_constant < bool, !B::value > { };\n\n// Reimplementation of is_constructible and is_default_constructible, due to them being broken for\n// std::pair and std::tuple until LWG 2367 fix (see https://cplusplus.github.io/LWG/lwg-defects.html#2367).\n// This causes compile errors in e.g. clang 3.5 or gcc 4.9.\ntemplate <typename T>\nstruct is_default_constructible : std::is_default_constructible<T> {};\n\ntemplate <typename T1, typename T2>\nstruct is_default_constructible<std::pair<T1, T2>>\n            : conjunction<is_default_constructible<T1>, is_default_constructible<T2>> {};\n\ntemplate <typename T1, typename T2>\nstruct is_default_constructible<const std::pair<T1, T2>>\n            : conjunction<is_default_constructible<T1>, is_default_constructible<T2>> {};\n\ntemplate <typename... Ts>\nstruct is_default_constructible<std::tuple<Ts...>>\n            : conjunction<is_default_constructible<Ts>...> {};\n\ntemplate <typename... Ts>\nstruct is_default_constructible<const std::tuple<Ts...>>\n            : conjunction<is_default_constructible<Ts>...> {};\n\n\ntemplate <typename T, typename... Args>\nstruct is_constructible : std::is_constructible<T, Args...> {};\n\ntemplate <typename T1, typename T2>\nstruct is_constructible<std::pair<T1, T2>> : is_default_constructible<std::pair<T1, T2>> {};\n\ntemplate <typename T1, typename T2>\nstruct is_constructible<const std::pair<T1, T2>> : is_default_constructible<const std::pair<T1, T2>> {};\n\ntemplate <typename... Ts>\nstruct is_constructible<std::tuple<Ts...>> : is_default_constructible<std::tuple<Ts...>> {};\n\ntemplate <typename... Ts>\nstruct is_constructible<const std::tuple<Ts...>> : is_default_constructible<const std::tuple<Ts...>> {};\n\n\ntemplate<typename T, typename = void>\nstruct is_iterator_traits : std::false_type {};\n\ntemplate<typename T>\nstruct is_iterator_traits<iterator_traits<T>>\n{\n  private:\n    using traits = iterator_traits<T>;\n\n  public:\n    static constexpr auto value =\n        is_detected<value_type_t, traits>::value &&\n        is_detected<difference_type_t, traits>::value &&\n        is_detected<pointer_t, traits>::value &&\n        is_detected<iterator_category_t, traits>::value &&\n        is_detected<reference_t, traits>::value;\n};\n\ntemplate<typename T>\nstruct is_range\n{\n  private:\n    using t_ref = typename std::add_lvalue_reference<T>::type;\n\n    using iterator = detected_t<result_of_begin, t_ref>;\n    using sentinel = detected_t<result_of_end, t_ref>;\n\n    // to be 100% correct, it should use https://en.cppreference.com/w/cpp/iterator/input_or_output_iterator\n    // and https://en.cppreference.com/w/cpp/iterator/sentinel_for\n    // but reimplementing these would be too much work, as a lot of other concepts are used underneath\n    static constexpr auto is_iterator_begin =\n        is_iterator_traits<iterator_traits<iterator>>::value;\n\n  public:\n    static constexpr bool value = !std::is_same<iterator, nonesuch>::value && !std::is_same<sentinel, nonesuch>::value && is_iterator_begin;\n};\n\ntemplate<typename R>\nusing iterator_t = enable_if_t<is_range<R>::value, result_of_begin<decltype(std::declval<R&>())>>;\n\ntemplate<typename T>\nusing range_value_t = value_type_t<iterator_traits<iterator_t<T>>>;\n\n// The following implementation of is_complete_type is taken from\n// https://blogs.msdn.microsoft.com/vcblog/2015/12/02/partial-support-for-expression-sfinae-in-vs-2015-update-1/\n// and is written by Xiang Fan who agreed to using it in this library.\n\ntemplate<typename T, typename = void>\nstruct is_complete_type : std::false_type {};\n\ntemplate<typename T>\nstruct is_complete_type<T, decltype(void(sizeof(T)))> : std::true_type {};\n\ntemplate<typename BasicJsonType, typename CompatibleObjectType,\n         typename = void>\nstruct is_compatible_object_type_impl : std::false_type {};\n\ntemplate<typename BasicJsonType, typename CompatibleObjectType>\nstruct is_compatible_object_type_impl <\n    BasicJsonType, CompatibleObjectType,\n    enable_if_t < is_detected<mapped_type_t, CompatibleObjectType>::value&&\n    is_detected<key_type_t, CompatibleObjectType>::value >>\n{\n    using object_t = typename BasicJsonType::object_t;\n\n    // macOS's is_constructible does not play well with nonesuch...\n    static constexpr bool value =\n        is_constructible<typename object_t::key_type,\n        typename CompatibleObjectType::key_type>::value &&\n        is_constructible<typename object_t::mapped_type,\n        typename CompatibleObjectType::mapped_type>::value;\n};\n\ntemplate<typename BasicJsonType, typename CompatibleObjectType>\nstruct is_compatible_object_type\n    : is_compatible_object_type_impl<BasicJsonType, CompatibleObjectType> {};\n\ntemplate<typename BasicJsonType, typename ConstructibleObjectType,\n         typename = void>\nstruct is_constructible_object_type_impl : std::false_type {};\n\ntemplate<typename BasicJsonType, typename ConstructibleObjectType>\nstruct is_constructible_object_type_impl <\n    BasicJsonType, ConstructibleObjectType,\n    enable_if_t < is_detected<mapped_type_t, ConstructibleObjectType>::value&&\n    is_detected<key_type_t, ConstructibleObjectType>::value >>\n{\n    using object_t = typename BasicJsonType::object_t;\n\n    static constexpr bool value =\n        (is_default_constructible<ConstructibleObjectType>::value &&\n         (std::is_move_assignable<ConstructibleObjectType>::value ||\n          std::is_copy_assignable<ConstructibleObjectType>::value) &&\n         (is_constructible<typename ConstructibleObjectType::key_type,\n          typename object_t::key_type>::value &&\n          std::is_same <\n          typename object_t::mapped_type,\n          typename ConstructibleObjectType::mapped_type >::value)) ||\n        (has_from_json<BasicJsonType,\n         typename ConstructibleObjectType::mapped_type>::value ||\n         has_non_default_from_json <\n         BasicJsonType,\n         typename ConstructibleObjectType::mapped_type >::value);\n};\n\ntemplate<typename BasicJsonType, typename ConstructibleObjectType>\nstruct is_constructible_object_type\n    : is_constructible_object_type_impl<BasicJsonType,\n      ConstructibleObjectType> {};\n\ntemplate<typename BasicJsonType, typename CompatibleStringType>\nstruct is_compatible_string_type\n{\n    static constexpr auto value =\n        is_constructible<typename BasicJsonType::string_t, CompatibleStringType>::value;\n};\n\ntemplate<typename BasicJsonType, typename ConstructibleStringType>\nstruct is_constructible_string_type\n{\n    // launder type through decltype() to fix compilation failure on ICPC\n#ifdef __INTEL_COMPILER\n    using laundered_type = decltype(std::declval<ConstructibleStringType>());\n#else\n    using laundered_type = ConstructibleStringType;\n#endif\n\n    static constexpr auto value =\n        conjunction <\n        is_constructible<laundered_type, typename BasicJsonType::string_t>,\n        is_detected_exact<typename BasicJsonType::string_t::value_type,\n        value_type_t, laundered_type >>::value;\n};\n\ntemplate<typename BasicJsonType, typename CompatibleArrayType, typename = void>\nstruct is_compatible_array_type_impl : std::false_type {};\n\ntemplate<typename BasicJsonType, typename CompatibleArrayType>\nstruct is_compatible_array_type_impl <\n    BasicJsonType, CompatibleArrayType,\n    enable_if_t <\n    is_detected<iterator_t, CompatibleArrayType>::value&&\n    is_iterator_traits<iterator_traits<detected_t<iterator_t, CompatibleArrayType>>>::value&&\n// special case for types like std::filesystem::path whose iterator's value_type are themselves\n// c.f. https://github.com/nlohmann/json/pull/3073\n    !std::is_same<CompatibleArrayType, detected_t<range_value_t, CompatibleArrayType>>::value >>\n{\n    static constexpr bool value =\n        is_constructible<BasicJsonType,\n        range_value_t<CompatibleArrayType>>::value;\n};\n\ntemplate<typename BasicJsonType, typename CompatibleArrayType>\nstruct is_compatible_array_type\n    : is_compatible_array_type_impl<BasicJsonType, CompatibleArrayType> {};\n\ntemplate<typename BasicJsonType, typename ConstructibleArrayType, typename = void>\nstruct is_constructible_array_type_impl : std::false_type {};\n\ntemplate<typename BasicJsonType, typename ConstructibleArrayType>\nstruct is_constructible_array_type_impl <\n    BasicJsonType, ConstructibleArrayType,\n    enable_if_t<std::is_same<ConstructibleArrayType,\n    typename BasicJsonType::value_type>::value >>\n            : std::true_type {};\n\ntemplate<typename BasicJsonType, typename ConstructibleArrayType>\nstruct is_constructible_array_type_impl <\n    BasicJsonType, ConstructibleArrayType,\n    enable_if_t < !std::is_same<ConstructibleArrayType,\n    typename BasicJsonType::value_type>::value&&\n    !is_compatible_string_type<BasicJsonType, ConstructibleArrayType>::value&&\n    is_default_constructible<ConstructibleArrayType>::value&&\n(std::is_move_assignable<ConstructibleArrayType>::value ||\n std::is_copy_assignable<ConstructibleArrayType>::value)&&\nis_detected<iterator_t, ConstructibleArrayType>::value&&\nis_iterator_traits<iterator_traits<detected_t<iterator_t, ConstructibleArrayType>>>::value&&\nis_detected<range_value_t, ConstructibleArrayType>::value&&\n// special case for types like std::filesystem::path whose iterator's value_type are themselves\n// c.f. https://github.com/nlohmann/json/pull/3073\n!std::is_same<ConstructibleArrayType, detected_t<range_value_t, ConstructibleArrayType>>::value&&\n        is_complete_type <\n        detected_t<range_value_t, ConstructibleArrayType >>::value >>\n{\n    using value_type = range_value_t<ConstructibleArrayType>;\n\n    static constexpr bool value =\n        std::is_same<value_type,\n        typename BasicJsonType::array_t::value_type>::value ||\n        has_from_json<BasicJsonType,\n        value_type>::value ||\n        has_non_default_from_json <\n        BasicJsonType,\n        value_type >::value;\n};\n\ntemplate<typename BasicJsonType, typename ConstructibleArrayType>\nstruct is_constructible_array_type\n    : is_constructible_array_type_impl<BasicJsonType, ConstructibleArrayType> {};\n\ntemplate<typename RealIntegerType, typename CompatibleNumberIntegerType,\n         typename = void>\nstruct is_compatible_integer_type_impl : std::false_type {};\n\ntemplate<typename RealIntegerType, typename CompatibleNumberIntegerType>\nstruct is_compatible_integer_type_impl <\n    RealIntegerType, CompatibleNumberIntegerType,\n    enable_if_t < std::is_integral<RealIntegerType>::value&&\n    std::is_integral<CompatibleNumberIntegerType>::value&&\n    !std::is_same<bool, CompatibleNumberIntegerType>::value >>\n{\n    // is there an assert somewhere on overflows?\n    using RealLimits = std::numeric_limits<RealIntegerType>;\n    using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>;\n\n    static constexpr auto value =\n        is_constructible<RealIntegerType,\n        CompatibleNumberIntegerType>::value &&\n        CompatibleLimits::is_integer &&\n        RealLimits::is_signed == CompatibleLimits::is_signed;\n};\n\ntemplate<typename RealIntegerType, typename CompatibleNumberIntegerType>\nstruct is_compatible_integer_type\n    : is_compatible_integer_type_impl<RealIntegerType,\n      CompatibleNumberIntegerType> {};\n\ntemplate<typename BasicJsonType, typename CompatibleType, typename = void>\nstruct is_compatible_type_impl: std::false_type {};\n\ntemplate<typename BasicJsonType, typename CompatibleType>\nstruct is_compatible_type_impl <\n    BasicJsonType, CompatibleType,\n    enable_if_t<is_complete_type<CompatibleType>::value >>\n{\n    static constexpr bool value =\n        has_to_json<BasicJsonType, CompatibleType>::value;\n};\n\ntemplate<typename BasicJsonType, typename CompatibleType>\nstruct is_compatible_type\n    : is_compatible_type_impl<BasicJsonType, CompatibleType> {};\n\ntemplate<typename T1, typename T2>\nstruct is_constructible_tuple : std::false_type {};\n\ntemplate<typename T1, typename... Args>\nstruct is_constructible_tuple<T1, std::tuple<Args...>> : conjunction<is_constructible<T1, Args>...> {};\n\ntemplate<typename BasicJsonType, typename T>\nstruct is_json_iterator_of : std::false_type {};\n\ntemplate<typename BasicJsonType>\nstruct is_json_iterator_of<BasicJsonType, typename BasicJsonType::iterator> : std::true_type {};\n\ntemplate<typename BasicJsonType>\nstruct is_json_iterator_of<BasicJsonType, typename BasicJsonType::const_iterator> : std::true_type\n{};\n\n// checks if a given type T is a template specialization of Primary\ntemplate<template <typename...> class Primary, typename T>\nstruct is_specialization_of : std::false_type {};\n\ntemplate<template <typename...> class Primary, typename... Args>\nstruct is_specialization_of<Primary, Primary<Args...>> : std::true_type {};\n\ntemplate<typename T>\nusing is_json_pointer = is_specialization_of<::nlohmann::json_pointer, uncvref_t<T>>;\n\n// checks if A and B are comparable using Compare functor\ntemplate<typename Compare, typename A, typename B, typename = void>\nstruct is_comparable : std::false_type {};\n\ntemplate<typename Compare, typename A, typename B>\nstruct is_comparable<Compare, A, B, void_t<\ndecltype(std::declval<Compare>()(std::declval<A>(), std::declval<B>())),\ndecltype(std::declval<Compare>()(std::declval<B>(), std::declval<A>()))\n>> : std::true_type {};\n\ntemplate<typename T>\nusing detect_is_transparent = typename T::is_transparent;\n\n// type trait to check if KeyType can be used as object key (without a BasicJsonType)\n// see is_usable_as_basic_json_key_type below\ntemplate<typename Comparator, typename ObjectKeyType, typename KeyTypeCVRef, bool RequireTransparentComparator = true,\n         bool ExcludeObjectKeyType = RequireTransparentComparator, typename KeyType = uncvref_t<KeyTypeCVRef>>\nusing is_usable_as_key_type = typename std::conditional <\n                              is_comparable<Comparator, ObjectKeyType, KeyTypeCVRef>::value\n                              && !(ExcludeObjectKeyType && std::is_same<KeyType,\n                                   ObjectKeyType>::value)\n                              && (!RequireTransparentComparator\n                                  || is_detected <detect_is_transparent, Comparator>::value)\n                              && !is_json_pointer<KeyType>::value,\n                              std::true_type,\n                              std::false_type >::type;\n\n// type trait to check if KeyType can be used as object key\n// true if:\n//   - KeyType is comparable with BasicJsonType::object_t::key_type\n//   - if ExcludeObjectKeyType is true, KeyType is not BasicJsonType::object_t::key_type\n//   - the comparator is transparent or RequireTransparentComparator is false\n//   - KeyType is not a JSON iterator or json_pointer\ntemplate<typename BasicJsonType, typename KeyTypeCVRef, bool RequireTransparentComparator = true,\n         bool ExcludeObjectKeyType = RequireTransparentComparator, typename KeyType = uncvref_t<KeyTypeCVRef>>\nusing is_usable_as_basic_json_key_type = typename std::conditional <\n        is_usable_as_key_type<typename BasicJsonType::object_comparator_t,\n        typename BasicJsonType::object_t::key_type, KeyTypeCVRef,\n        RequireTransparentComparator, ExcludeObjectKeyType>::value\n        && !is_json_iterator_of<BasicJsonType, KeyType>::value,\n        std::true_type,\n        std::false_type >::type;\n\ntemplate<typename ObjectType, typename KeyType>\nusing detect_erase_with_key_type = decltype(std::declval<ObjectType&>().erase(std::declval<KeyType>()));\n\n// type trait to check if object_t has an erase() member functions accepting KeyType\ntemplate<typename BasicJsonType, typename KeyType>\nusing has_erase_with_key_type = typename std::conditional <\n                                is_detected <\n                                detect_erase_with_key_type,\n                                typename BasicJsonType::object_t, KeyType >::value,\n                                std::true_type,\n                                std::false_type >::type;\n\n// a naive helper to check if a type is an ordered_map (exploits the fact that\n// ordered_map inherits capacity() from std::vector)\ntemplate <typename T>\nstruct is_ordered_map\n{\n    using one = char;\n\n    struct two\n    {\n        char x[2]; // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)\n    };\n\n    template <typename C> static one test( decltype(&C::capacity) ) ;\n    template <typename C> static two test(...);\n\n    enum { value = sizeof(test<T>(nullptr)) == sizeof(char) }; // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg)\n};\n\n// to avoid useless casts (see https://github.com/nlohmann/json/issues/2893#issuecomment-889152324)\ntemplate < typename T, typename U, enable_if_t < !std::is_same<T, U>::value, int > = 0 >\nT conditional_static_cast(U value)\n{\n    return static_cast<T>(value);\n}\n\ntemplate<typename T, typename U, enable_if_t<std::is_same<T, U>::value, int> = 0>\nT conditional_static_cast(U value)\n{\n    return value;\n}\n\ntemplate<typename... Types>\nusing all_integral = conjunction<std::is_integral<Types>...>;\n\ntemplate<typename... Types>\nusing all_signed = conjunction<std::is_signed<Types>...>;\n\ntemplate<typename... Types>\nusing all_unsigned = conjunction<std::is_unsigned<Types>...>;\n\n// there's a disjunction trait in another PR; replace when merged\ntemplate<typename... Types>\nusing same_sign = std::integral_constant < bool,\n      all_signed<Types...>::value || all_unsigned<Types...>::value >;\n\ntemplate<typename OfType, typename T>\nusing never_out_of_range = std::integral_constant < bool,\n      (std::is_signed<OfType>::value && (sizeof(T) < sizeof(OfType)))\n      || (same_sign<OfType, T>::value && sizeof(OfType) == sizeof(T)) >;\n\ntemplate<typename OfType, typename T,\n         bool OfTypeSigned = std::is_signed<OfType>::value,\n         bool TSigned = std::is_signed<T>::value>\nstruct value_in_range_of_impl2;\n\ntemplate<typename OfType, typename T>\nstruct value_in_range_of_impl2<OfType, T, false, false>\n{\n    static constexpr bool test(T val)\n    {\n        using CommonType = typename std::common_type<OfType, T>::type;\n        return static_cast<CommonType>(val) <= static_cast<CommonType>((std::numeric_limits<OfType>::max)());\n    }\n};\n\ntemplate<typename OfType, typename T>\nstruct value_in_range_of_impl2<OfType, T, true, false>\n{\n    static constexpr bool test(T val)\n    {\n        using CommonType = typename std::common_type<OfType, T>::type;\n        return static_cast<CommonType>(val) <= static_cast<CommonType>((std::numeric_limits<OfType>::max)());\n    }\n};\n\ntemplate<typename OfType, typename T>\nstruct value_in_range_of_impl2<OfType, T, false, true>\n{\n    static constexpr bool test(T val)\n    {\n        using CommonType = typename std::common_type<OfType, T>::type;\n        return val >= 0 && static_cast<CommonType>(val) <= static_cast<CommonType>((std::numeric_limits<OfType>::max)());\n    }\n};\n\n\ntemplate<typename OfType, typename T>\nstruct value_in_range_of_impl2<OfType, T, true, true>\n{\n    static constexpr bool test(T val)\n    {\n        using CommonType = typename std::common_type<OfType, T>::type;\n        return static_cast<CommonType>(val) >= static_cast<CommonType>((std::numeric_limits<OfType>::min)())\n               && static_cast<CommonType>(val) <= static_cast<CommonType>((std::numeric_limits<OfType>::max)());\n    }\n};\n\ntemplate<typename OfType, typename T,\n         bool NeverOutOfRange = never_out_of_range<OfType, T>::value,\n         typename = detail::enable_if_t<all_integral<OfType, T>::value>>\nstruct value_in_range_of_impl1;\n\ntemplate<typename OfType, typename T>\nstruct value_in_range_of_impl1<OfType, T, false>\n{\n    static constexpr bool test(T val)\n    {\n        return value_in_range_of_impl2<OfType, T>::test(val);\n    }\n};\n\ntemplate<typename OfType, typename T>\nstruct value_in_range_of_impl1<OfType, T, true>\n{\n    static constexpr bool test(T /*val*/)\n    {\n        return true;\n    }\n};\n\ntemplate<typename OfType, typename T>\ninline constexpr bool value_in_range_of(T val)\n{\n    return value_in_range_of_impl1<OfType, T>::test(val);\n}\n\ntemplate<bool Value>\nusing bool_constant = std::integral_constant<bool, Value>;\n\n///////////////////////////////////////////////////////////////////////////////\n// is_c_string\n///////////////////////////////////////////////////////////////////////////////\n\nnamespace impl\n{\n\ntemplate<typename T>\ninline constexpr bool is_c_string()\n{\n    using TUnExt = typename std::remove_extent<T>::type;\n    using TUnCVExt = typename std::remove_cv<TUnExt>::type;\n    using TUnPtr = typename std::remove_pointer<T>::type;\n    using TUnCVPtr = typename std::remove_cv<TUnPtr>::type;\n    return\n        (std::is_array<T>::value && std::is_same<TUnCVExt, char>::value)\n        || (std::is_pointer<T>::value && std::is_same<TUnCVPtr, char>::value);\n}\n\n}  // namespace impl\n\n// checks whether T is a [cv] char */[cv] char[] C string\ntemplate<typename T>\nstruct is_c_string : bool_constant<impl::is_c_string<T>()> {};\n\ntemplate<typename T>\nusing is_c_string_uncvref = is_c_string<uncvref_t<T>>;\n\n///////////////////////////////////////////////////////////////////////////////\n// is_transparent\n///////////////////////////////////////////////////////////////////////////////\n\nnamespace impl\n{\n\ntemplate<typename T>\ninline constexpr bool is_transparent()\n{\n    return is_detected<detect_is_transparent, T>::value;\n}\n\n}  // namespace impl\n\n// checks whether T has a member named is_transparent\ntemplate<typename T>\nstruct is_transparent : bool_constant<impl::is_transparent<T>()> {};\n\n///////////////////////////////////////////////////////////////////////////////\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/string_concat.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <cstring> // strlen\n#include <string> // string\n#include <utility> // forward\n\n// #include <nlohmann/detail/meta/cpp_future.hpp>\n\n// #include <nlohmann/detail/meta/detected.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\ninline std::size_t concat_length()\n{\n    return 0;\n}\n\ntemplate<typename... Args>\ninline std::size_t concat_length(const char* cstr, const Args& ... rest);\n\ntemplate<typename StringType, typename... Args>\ninline std::size_t concat_length(const StringType& str, const Args& ... rest);\n\ntemplate<typename... Args>\ninline std::size_t concat_length(const char /*c*/, const Args& ... rest)\n{\n    return 1 + concat_length(rest...);\n}\n\ntemplate<typename... Args>\ninline std::size_t concat_length(const char* cstr, const Args& ... rest)\n{\n    // cppcheck-suppress ignoredReturnValue\n    return ::strlen(cstr) + concat_length(rest...);\n}\n\ntemplate<typename StringType, typename... Args>\ninline std::size_t concat_length(const StringType& str, const Args& ... rest)\n{\n    return str.size() + concat_length(rest...);\n}\n\ntemplate<typename OutStringType>\ninline void concat_into(OutStringType& /*out*/)\n{}\n\ntemplate<typename StringType, typename Arg>\nusing string_can_append = decltype(std::declval<StringType&>().append(std::declval < Arg && > ()));\n\ntemplate<typename StringType, typename Arg>\nusing detect_string_can_append = is_detected<string_can_append, StringType, Arg>;\n\ntemplate<typename StringType, typename Arg>\nusing string_can_append_op = decltype(std::declval<StringType&>() += std::declval < Arg && > ());\n\ntemplate<typename StringType, typename Arg>\nusing detect_string_can_append_op = is_detected<string_can_append_op, StringType, Arg>;\n\ntemplate<typename StringType, typename Arg>\nusing string_can_append_iter = decltype(std::declval<StringType&>().append(std::declval<const Arg&>().begin(), std::declval<const Arg&>().end()));\n\ntemplate<typename StringType, typename Arg>\nusing detect_string_can_append_iter = is_detected<string_can_append_iter, StringType, Arg>;\n\ntemplate<typename StringType, typename Arg>\nusing string_can_append_data = decltype(std::declval<StringType&>().append(std::declval<const Arg&>().data(), std::declval<const Arg&>().size()));\n\ntemplate<typename StringType, typename Arg>\nusing detect_string_can_append_data = is_detected<string_can_append_data, StringType, Arg>;\n\ntemplate < typename OutStringType, typename Arg, typename... Args,\n           enable_if_t < !detect_string_can_append<OutStringType, Arg>::value\n                         && detect_string_can_append_op<OutStringType, Arg>::value, int > = 0 >\ninline void concat_into(OutStringType& out, Arg && arg, Args && ... rest);\n\ntemplate < typename OutStringType, typename Arg, typename... Args,\n           enable_if_t < !detect_string_can_append<OutStringType, Arg>::value\n                         && !detect_string_can_append_op<OutStringType, Arg>::value\n                         && detect_string_can_append_iter<OutStringType, Arg>::value, int > = 0 >\ninline void concat_into(OutStringType& out, const Arg& arg, Args && ... rest);\n\ntemplate < typename OutStringType, typename Arg, typename... Args,\n           enable_if_t < !detect_string_can_append<OutStringType, Arg>::value\n                         && !detect_string_can_append_op<OutStringType, Arg>::value\n                         && !detect_string_can_append_iter<OutStringType, Arg>::value\n                         && detect_string_can_append_data<OutStringType, Arg>::value, int > = 0 >\ninline void concat_into(OutStringType& out, const Arg& arg, Args && ... rest);\n\ntemplate<typename OutStringType, typename Arg, typename... Args,\n         enable_if_t<detect_string_can_append<OutStringType, Arg>::value, int> = 0>\ninline void concat_into(OutStringType& out, Arg && arg, Args && ... rest)\n{\n    out.append(std::forward<Arg>(arg));\n    concat_into(out, std::forward<Args>(rest)...);\n}\n\ntemplate < typename OutStringType, typename Arg, typename... Args,\n           enable_if_t < !detect_string_can_append<OutStringType, Arg>::value\n                         && detect_string_can_append_op<OutStringType, Arg>::value, int > >\ninline void concat_into(OutStringType& out, Arg&& arg, Args&& ... rest)\n{\n    out += std::forward<Arg>(arg);\n    concat_into(out, std::forward<Args>(rest)...);\n}\n\ntemplate < typename OutStringType, typename Arg, typename... Args,\n           enable_if_t < !detect_string_can_append<OutStringType, Arg>::value\n                         && !detect_string_can_append_op<OutStringType, Arg>::value\n                         && detect_string_can_append_iter<OutStringType, Arg>::value, int > >\ninline void concat_into(OutStringType& out, const Arg& arg, Args&& ... rest)\n{\n    out.append(arg.begin(), arg.end());\n    concat_into(out, std::forward<Args>(rest)...);\n}\n\ntemplate < typename OutStringType, typename Arg, typename... Args,\n           enable_if_t < !detect_string_can_append<OutStringType, Arg>::value\n                         && !detect_string_can_append_op<OutStringType, Arg>::value\n                         && !detect_string_can_append_iter<OutStringType, Arg>::value\n                         && detect_string_can_append_data<OutStringType, Arg>::value, int > >\ninline void concat_into(OutStringType& out, const Arg& arg, Args&& ... rest)\n{\n    out.append(arg.data(), arg.size());\n    concat_into(out, std::forward<Args>(rest)...);\n}\n\ntemplate<typename OutStringType = std::string, typename... Args>\ninline OutStringType concat(Args && ... args)\n{\n    OutStringType str;\n    str.reserve(concat_length(args...));\n    concat_into(str, std::forward<Args>(args)...);\n    return str;\n}\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n////////////////\n// exceptions //\n////////////////\n\n/// @brief general exception of the @ref basic_json class\n/// @sa https://json.nlohmann.me/api/basic_json/exception/\nclass exception : public std::exception\n{\n  public:\n    /// returns the explanatory string\n    const char* what() const noexcept override\n    {\n        return m.what();\n    }\n\n    /// the id of the exception\n    const int id; // NOLINT(cppcoreguidelines-non-private-member-variables-in-classes)\n\n  protected:\n    JSON_HEDLEY_NON_NULL(3)\n    exception(int id_, const char* what_arg) : id(id_), m(what_arg) {} // NOLINT(bugprone-throw-keyword-missing)\n\n    static std::string name(const std::string& ename, int id_)\n    {\n        return concat(\"[json.exception.\", ename, '.', std::to_string(id_), \"] \");\n    }\n\n    static std::string diagnostics(std::nullptr_t /*leaf_element*/)\n    {\n        return \"\";\n    }\n\n    template<typename BasicJsonType>\n    static std::string diagnostics(const BasicJsonType* leaf_element)\n    {\n#if JSON_DIAGNOSTICS\n        std::vector<std::string> tokens;\n        for (const auto* current = leaf_element; current != nullptr && current->m_parent != nullptr; current = current->m_parent)\n        {\n            switch (current->m_parent->type())\n            {\n                case value_t::array:\n                {\n                    for (std::size_t i = 0; i < current->m_parent->m_data.m_value.array->size(); ++i)\n                    {\n                        if (&current->m_parent->m_data.m_value.array->operator[](i) == current)\n                        {\n                            tokens.emplace_back(std::to_string(i));\n                            break;\n                        }\n                    }\n                    break;\n                }\n\n                case value_t::object:\n                {\n                    for (const auto& element : *current->m_parent->m_data.m_value.object)\n                    {\n                        if (&element.second == current)\n                        {\n                            tokens.emplace_back(element.first.c_str());\n                            break;\n                        }\n                    }\n                    break;\n                }\n\n                case value_t::null: // LCOV_EXCL_LINE\n                case value_t::string: // LCOV_EXCL_LINE\n                case value_t::boolean: // LCOV_EXCL_LINE\n                case value_t::number_integer: // LCOV_EXCL_LINE\n                case value_t::number_unsigned: // LCOV_EXCL_LINE\n                case value_t::number_float: // LCOV_EXCL_LINE\n                case value_t::binary: // LCOV_EXCL_LINE\n                case value_t::discarded: // LCOV_EXCL_LINE\n                default:   // LCOV_EXCL_LINE\n                    break; // LCOV_EXCL_LINE\n            }\n        }\n\n        if (tokens.empty())\n        {\n            return \"\";\n        }\n\n        auto str = std::accumulate(tokens.rbegin(), tokens.rend(), std::string{},\n                                   [](const std::string & a, const std::string & b)\n        {\n            return concat(a, '/', detail::escape(b));\n        });\n        return concat('(', str, \") \");\n#else\n        static_cast<void>(leaf_element);\n        return \"\";\n#endif\n    }\n\n  private:\n    /// an exception object as storage for error messages\n    std::runtime_error m;\n};\n\n/// @brief exception indicating a parse error\n/// @sa https://json.nlohmann.me/api/basic_json/parse_error/\nclass parse_error : public exception\n{\n  public:\n    /*!\n    @brief create a parse error exception\n    @param[in] id_       the id of the exception\n    @param[in] pos       the position where the error occurred (or with\n                         chars_read_total=0 if the position cannot be\n                         determined)\n    @param[in] what_arg  the explanatory string\n    @return parse_error object\n    */\n    template<typename BasicJsonContext, enable_if_t<is_basic_json_context<BasicJsonContext>::value, int> = 0>\n    static parse_error create(int id_, const position_t& pos, const std::string& what_arg, BasicJsonContext context)\n    {\n        const std::string w = concat(exception::name(\"parse_error\", id_), \"parse error\",\n                                     position_string(pos), \": \", exception::diagnostics(context), what_arg);\n        return {id_, pos.chars_read_total, w.c_str()};\n    }\n\n    template<typename BasicJsonContext, enable_if_t<is_basic_json_context<BasicJsonContext>::value, int> = 0>\n    static parse_error create(int id_, std::size_t byte_, const std::string& what_arg, BasicJsonContext context)\n    {\n        const std::string w = concat(exception::name(\"parse_error\", id_), \"parse error\",\n                                     (byte_ != 0 ? (concat(\" at byte \", std::to_string(byte_))) : \"\"),\n                                     \": \", exception::diagnostics(context), what_arg);\n        return {id_, byte_, w.c_str()};\n    }\n\n    /*!\n    @brief byte index of the parse error\n\n    The byte index of the last read character in the input file.\n\n    @note For an input with n bytes, 1 is the index of the first character and\n          n+1 is the index of the terminating null byte or the end of file.\n          This also holds true when reading a byte vector (CBOR or MessagePack).\n    */\n    const std::size_t byte;\n\n  private:\n    parse_error(int id_, std::size_t byte_, const char* what_arg)\n        : exception(id_, what_arg), byte(byte_) {}\n\n    static std::string position_string(const position_t& pos)\n    {\n        return concat(\" at line \", std::to_string(pos.lines_read + 1),\n                      \", column \", std::to_string(pos.chars_read_current_line));\n    }\n};\n\n/// @brief exception indicating errors with iterators\n/// @sa https://json.nlohmann.me/api/basic_json/invalid_iterator/\nclass invalid_iterator : public exception\n{\n  public:\n    template<typename BasicJsonContext, enable_if_t<is_basic_json_context<BasicJsonContext>::value, int> = 0>\n    static invalid_iterator create(int id_, const std::string& what_arg, BasicJsonContext context)\n    {\n        const std::string w = concat(exception::name(\"invalid_iterator\", id_), exception::diagnostics(context), what_arg);\n        return {id_, w.c_str()};\n    }\n\n  private:\n    JSON_HEDLEY_NON_NULL(3)\n    invalid_iterator(int id_, const char* what_arg)\n        : exception(id_, what_arg) {}\n};\n\n/// @brief exception indicating executing a member function with a wrong type\n/// @sa https://json.nlohmann.me/api/basic_json/type_error/\nclass type_error : public exception\n{\n  public:\n    template<typename BasicJsonContext, enable_if_t<is_basic_json_context<BasicJsonContext>::value, int> = 0>\n    static type_error create(int id_, const std::string& what_arg, BasicJsonContext context)\n    {\n        const std::string w = concat(exception::name(\"type_error\", id_), exception::diagnostics(context), what_arg);\n        return {id_, w.c_str()};\n    }\n\n  private:\n    JSON_HEDLEY_NON_NULL(3)\n    type_error(int id_, const char* what_arg) : exception(id_, what_arg) {}\n};\n\n/// @brief exception indicating access out of the defined range\n/// @sa https://json.nlohmann.me/api/basic_json/out_of_range/\nclass out_of_range : public exception\n{\n  public:\n    template<typename BasicJsonContext, enable_if_t<is_basic_json_context<BasicJsonContext>::value, int> = 0>\n    static out_of_range create(int id_, const std::string& what_arg, BasicJsonContext context)\n    {\n        const std::string w = concat(exception::name(\"out_of_range\", id_), exception::diagnostics(context), what_arg);\n        return {id_, w.c_str()};\n    }\n\n  private:\n    JSON_HEDLEY_NON_NULL(3)\n    out_of_range(int id_, const char* what_arg) : exception(id_, what_arg) {}\n};\n\n/// @brief exception indicating other library errors\n/// @sa https://json.nlohmann.me/api/basic_json/other_error/\nclass other_error : public exception\n{\n  public:\n    template<typename BasicJsonContext, enable_if_t<is_basic_json_context<BasicJsonContext>::value, int> = 0>\n    static other_error create(int id_, const std::string& what_arg, BasicJsonContext context)\n    {\n        const std::string w = concat(exception::name(\"other_error\", id_), exception::diagnostics(context), what_arg);\n        return {id_, w.c_str()};\n    }\n\n  private:\n    JSON_HEDLEY_NON_NULL(3)\n    other_error(int id_, const char* what_arg) : exception(id_, what_arg) {}\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n// #include <nlohmann/detail/meta/cpp_future.hpp>\n\n// #include <nlohmann/detail/meta/identity_tag.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n// #include <nlohmann/detail/abi_macros.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n// dispatching helper struct\ntemplate <class T> struct identity_tag {};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/meta/std_fs.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n\n#if JSON_HAS_EXPERIMENTAL_FILESYSTEM\n#include <experimental/filesystem>\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\nnamespace std_fs = std::experimental::filesystem;\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n#elif JSON_HAS_FILESYSTEM\n#include <filesystem>\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\nnamespace std_fs = std::filesystem;\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n#endif\n\n// #include <nlohmann/detail/meta/type_traits.hpp>\n\n// #include <nlohmann/detail/string_concat.hpp>\n\n// #include <nlohmann/detail/value_t.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\ntemplate<typename BasicJsonType>\ninline void from_json(const BasicJsonType& j, typename std::nullptr_t& n)\n{\n    if (JSON_HEDLEY_UNLIKELY(!j.is_null()))\n    {\n        JSON_THROW(type_error::create(302, concat(\"type must be null, but is \", j.type_name()), &j));\n    }\n    n = nullptr;\n}\n\n// overloads for basic_json template parameters\ntemplate < typename BasicJsonType, typename ArithmeticType,\n           enable_if_t < std::is_arithmetic<ArithmeticType>::value&&\n                         !std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value,\n                         int > = 0 >\nvoid get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val)\n{\n    switch (static_cast<value_t>(j))\n    {\n        case value_t::number_unsigned:\n        {\n            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());\n            break;\n        }\n        case value_t::number_integer:\n        {\n            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_integer_t*>());\n            break;\n        }\n        case value_t::number_float:\n        {\n            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_float_t*>());\n            break;\n        }\n\n        case value_t::null:\n        case value_t::object:\n        case value_t::array:\n        case value_t::string:\n        case value_t::boolean:\n        case value_t::binary:\n        case value_t::discarded:\n        default:\n            JSON_THROW(type_error::create(302, concat(\"type must be number, but is \", j.type_name()), &j));\n    }\n}\n\ntemplate<typename BasicJsonType>\ninline void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b)\n{\n    if (JSON_HEDLEY_UNLIKELY(!j.is_boolean()))\n    {\n        JSON_THROW(type_error::create(302, concat(\"type must be boolean, but is \", j.type_name()), &j));\n    }\n    b = *j.template get_ptr<const typename BasicJsonType::boolean_t*>();\n}\n\ntemplate<typename BasicJsonType>\ninline void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s)\n{\n    if (JSON_HEDLEY_UNLIKELY(!j.is_string()))\n    {\n        JSON_THROW(type_error::create(302, concat(\"type must be string, but is \", j.type_name()), &j));\n    }\n    s = *j.template get_ptr<const typename BasicJsonType::string_t*>();\n}\n\ntemplate <\n    typename BasicJsonType, typename StringType,\n    enable_if_t <\n        std::is_assignable<StringType&, const typename BasicJsonType::string_t>::value\n        && is_detected_exact<typename BasicJsonType::string_t::value_type, value_type_t, StringType>::value\n        && !std::is_same<typename BasicJsonType::string_t, StringType>::value\n        && !is_json_ref<StringType>::value, int > = 0 >\ninline void from_json(const BasicJsonType& j, StringType& s)\n{\n    if (JSON_HEDLEY_UNLIKELY(!j.is_string()))\n    {\n        JSON_THROW(type_error::create(302, concat(\"type must be string, but is \", j.type_name()), &j));\n    }\n\n    s = *j.template get_ptr<const typename BasicJsonType::string_t*>();\n}\n\ntemplate<typename BasicJsonType>\ninline void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t& val)\n{\n    get_arithmetic_value(j, val);\n}\n\ntemplate<typename BasicJsonType>\ninline void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t& val)\n{\n    get_arithmetic_value(j, val);\n}\n\ntemplate<typename BasicJsonType>\ninline void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t& val)\n{\n    get_arithmetic_value(j, val);\n}\n\n#if !JSON_DISABLE_ENUM_SERIALIZATION\ntemplate<typename BasicJsonType, typename EnumType,\n         enable_if_t<std::is_enum<EnumType>::value, int> = 0>\ninline void from_json(const BasicJsonType& j, EnumType& e)\n{\n    typename std::underlying_type<EnumType>::type val;\n    get_arithmetic_value(j, val);\n    e = static_cast<EnumType>(val);\n}\n#endif  // JSON_DISABLE_ENUM_SERIALIZATION\n\n// forward_list doesn't have an insert method\ntemplate<typename BasicJsonType, typename T, typename Allocator,\n         enable_if_t<is_getable<BasicJsonType, T>::value, int> = 0>\ninline void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l)\n{\n    if (JSON_HEDLEY_UNLIKELY(!j.is_array()))\n    {\n        JSON_THROW(type_error::create(302, concat(\"type must be array, but is \", j.type_name()), &j));\n    }\n    l.clear();\n    std::transform(j.rbegin(), j.rend(),\n                   std::front_inserter(l), [](const BasicJsonType & i)\n    {\n        return i.template get<T>();\n    });\n}\n\n// valarray doesn't have an insert method\ntemplate<typename BasicJsonType, typename T,\n         enable_if_t<is_getable<BasicJsonType, T>::value, int> = 0>\ninline void from_json(const BasicJsonType& j, std::valarray<T>& l)\n{\n    if (JSON_HEDLEY_UNLIKELY(!j.is_array()))\n    {\n        JSON_THROW(type_error::create(302, concat(\"type must be array, but is \", j.type_name()), &j));\n    }\n    l.resize(j.size());\n    std::transform(j.begin(), j.end(), std::begin(l),\n                   [](const BasicJsonType & elem)\n    {\n        return elem.template get<T>();\n    });\n}\n\ntemplate<typename BasicJsonType, typename T, std::size_t N>\nauto from_json(const BasicJsonType& j, T (&arr)[N])  // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)\n-> decltype(j.template get<T>(), void())\n{\n    for (std::size_t i = 0; i < N; ++i)\n    {\n        arr[i] = j.at(i).template get<T>();\n    }\n}\n\ntemplate<typename BasicJsonType>\ninline void from_json_array_impl(const BasicJsonType& j, typename BasicJsonType::array_t& arr, priority_tag<3> /*unused*/)\n{\n    arr = *j.template get_ptr<const typename BasicJsonType::array_t*>();\n}\n\ntemplate<typename BasicJsonType, typename T, std::size_t N>\nauto from_json_array_impl(const BasicJsonType& j, std::array<T, N>& arr,\n                          priority_tag<2> /*unused*/)\n-> decltype(j.template get<T>(), void())\n{\n    for (std::size_t i = 0; i < N; ++i)\n    {\n        arr[i] = j.at(i).template get<T>();\n    }\n}\n\ntemplate<typename BasicJsonType, typename ConstructibleArrayType,\n         enable_if_t<\n             std::is_assignable<ConstructibleArrayType&, ConstructibleArrayType>::value,\n             int> = 0>\nauto from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType& arr, priority_tag<1> /*unused*/)\n-> decltype(\n    arr.reserve(std::declval<typename ConstructibleArrayType::size_type>()),\n    j.template get<typename ConstructibleArrayType::value_type>(),\n    void())\n{\n    using std::end;\n\n    ConstructibleArrayType ret;\n    ret.reserve(j.size());\n    std::transform(j.begin(), j.end(),\n                   std::inserter(ret, end(ret)), [](const BasicJsonType & i)\n    {\n        // get<BasicJsonType>() returns *this, this won't call a from_json\n        // method when value_type is BasicJsonType\n        return i.template get<typename ConstructibleArrayType::value_type>();\n    });\n    arr = std::move(ret);\n}\n\ntemplate<typename BasicJsonType, typename ConstructibleArrayType,\n         enable_if_t<\n             std::is_assignable<ConstructibleArrayType&, ConstructibleArrayType>::value,\n             int> = 0>\ninline void from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType& arr,\n                                 priority_tag<0> /*unused*/)\n{\n    using std::end;\n\n    ConstructibleArrayType ret;\n    std::transform(\n        j.begin(), j.end(), std::inserter(ret, end(ret)),\n        [](const BasicJsonType & i)\n    {\n        // get<BasicJsonType>() returns *this, this won't call a from_json\n        // method when value_type is BasicJsonType\n        return i.template get<typename ConstructibleArrayType::value_type>();\n    });\n    arr = std::move(ret);\n}\n\ntemplate < typename BasicJsonType, typename ConstructibleArrayType,\n           enable_if_t <\n               is_constructible_array_type<BasicJsonType, ConstructibleArrayType>::value&&\n               !is_constructible_object_type<BasicJsonType, ConstructibleArrayType>::value&&\n               !is_constructible_string_type<BasicJsonType, ConstructibleArrayType>::value&&\n               !std::is_same<ConstructibleArrayType, typename BasicJsonType::binary_t>::value&&\n               !is_basic_json<ConstructibleArrayType>::value,\n               int > = 0 >\nauto from_json(const BasicJsonType& j, ConstructibleArrayType& arr)\n-> decltype(from_json_array_impl(j, arr, priority_tag<3> {}),\nj.template get<typename ConstructibleArrayType::value_type>(),\nvoid())\n{\n    if (JSON_HEDLEY_UNLIKELY(!j.is_array()))\n    {\n        JSON_THROW(type_error::create(302, concat(\"type must be array, but is \", j.type_name()), &j));\n    }\n\n    from_json_array_impl(j, arr, priority_tag<3> {});\n}\n\ntemplate < typename BasicJsonType, typename T, std::size_t... Idx >\nstd::array<T, sizeof...(Idx)> from_json_inplace_array_impl(BasicJsonType&& j,\n        identity_tag<std::array<T, sizeof...(Idx)>> /*unused*/, index_sequence<Idx...> /*unused*/)\n{\n    return { { std::forward<BasicJsonType>(j).at(Idx).template get<T>()... } };\n}\n\ntemplate < typename BasicJsonType, typename T, std::size_t N >\nauto from_json(BasicJsonType&& j, identity_tag<std::array<T, N>> tag)\n-> decltype(from_json_inplace_array_impl(std::forward<BasicJsonType>(j), tag, make_index_sequence<N> {}))\n{\n    if (JSON_HEDLEY_UNLIKELY(!j.is_array()))\n    {\n        JSON_THROW(type_error::create(302, concat(\"type must be array, but is \", j.type_name()), &j));\n    }\n\n    return from_json_inplace_array_impl(std::forward<BasicJsonType>(j), tag, make_index_sequence<N> {});\n}\n\ntemplate<typename BasicJsonType>\ninline void from_json(const BasicJsonType& j, typename BasicJsonType::binary_t& bin)\n{\n    if (JSON_HEDLEY_UNLIKELY(!j.is_binary()))\n    {\n        JSON_THROW(type_error::create(302, concat(\"type must be binary, but is \", j.type_name()), &j));\n    }\n\n    bin = *j.template get_ptr<const typename BasicJsonType::binary_t*>();\n}\n\ntemplate<typename BasicJsonType, typename ConstructibleObjectType,\n         enable_if_t<is_constructible_object_type<BasicJsonType, ConstructibleObjectType>::value, int> = 0>\ninline void from_json(const BasicJsonType& j, ConstructibleObjectType& obj)\n{\n    if (JSON_HEDLEY_UNLIKELY(!j.is_object()))\n    {\n        JSON_THROW(type_error::create(302, concat(\"type must be object, but is \", j.type_name()), &j));\n    }\n\n    ConstructibleObjectType ret;\n    const auto* inner_object = j.template get_ptr<const typename BasicJsonType::object_t*>();\n    using value_type = typename ConstructibleObjectType::value_type;\n    std::transform(\n        inner_object->begin(), inner_object->end(),\n        std::inserter(ret, ret.begin()),\n        [](typename BasicJsonType::object_t::value_type const & p)\n    {\n        return value_type(p.first, p.second.template get<typename ConstructibleObjectType::mapped_type>());\n    });\n    obj = std::move(ret);\n}\n\n// overload for arithmetic types, not chosen for basic_json template arguments\n// (BooleanType, etc..); note: Is it really necessary to provide explicit\n// overloads for boolean_t etc. in case of a custom BooleanType which is not\n// an arithmetic type?\ntemplate < typename BasicJsonType, typename ArithmeticType,\n           enable_if_t <\n               std::is_arithmetic<ArithmeticType>::value&&\n               !std::is_same<ArithmeticType, typename BasicJsonType::number_unsigned_t>::value&&\n               !std::is_same<ArithmeticType, typename BasicJsonType::number_integer_t>::value&&\n               !std::is_same<ArithmeticType, typename BasicJsonType::number_float_t>::value&&\n               !std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value,\n               int > = 0 >\ninline void from_json(const BasicJsonType& j, ArithmeticType& val)\n{\n    switch (static_cast<value_t>(j))\n    {\n        case value_t::number_unsigned:\n        {\n            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());\n            break;\n        }\n        case value_t::number_integer:\n        {\n            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_integer_t*>());\n            break;\n        }\n        case value_t::number_float:\n        {\n            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_float_t*>());\n            break;\n        }\n        case value_t::boolean:\n        {\n            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::boolean_t*>());\n            break;\n        }\n\n        case value_t::null:\n        case value_t::object:\n        case value_t::array:\n        case value_t::string:\n        case value_t::binary:\n        case value_t::discarded:\n        default:\n            JSON_THROW(type_error::create(302, concat(\"type must be number, but is \", j.type_name()), &j));\n    }\n}\n\ntemplate<typename BasicJsonType, typename... Args, std::size_t... Idx>\nstd::tuple<Args...> from_json_tuple_impl_base(BasicJsonType&& j, index_sequence<Idx...> /*unused*/)\n{\n    return std::make_tuple(std::forward<BasicJsonType>(j).at(Idx).template get<Args>()...);\n}\n\ntemplate < typename BasicJsonType, class A1, class A2 >\nstd::pair<A1, A2> from_json_tuple_impl(BasicJsonType&& j, identity_tag<std::pair<A1, A2>> /*unused*/, priority_tag<0> /*unused*/)\n{\n    return {std::forward<BasicJsonType>(j).at(0).template get<A1>(),\n            std::forward<BasicJsonType>(j).at(1).template get<A2>()};\n}\n\ntemplate<typename BasicJsonType, typename A1, typename A2>\ninline void from_json_tuple_impl(BasicJsonType&& j, std::pair<A1, A2>& p, priority_tag<1> /*unused*/)\n{\n    p = from_json_tuple_impl(std::forward<BasicJsonType>(j), identity_tag<std::pair<A1, A2>> {}, priority_tag<0> {});\n}\n\ntemplate<typename BasicJsonType, typename... Args>\nstd::tuple<Args...> from_json_tuple_impl(BasicJsonType&& j, identity_tag<std::tuple<Args...>> /*unused*/, priority_tag<2> /*unused*/)\n{\n    return from_json_tuple_impl_base<BasicJsonType, Args...>(std::forward<BasicJsonType>(j), index_sequence_for<Args...> {});\n}\n\ntemplate<typename BasicJsonType, typename... Args>\ninline void from_json_tuple_impl(BasicJsonType&& j, std::tuple<Args...>& t, priority_tag<3> /*unused*/)\n{\n    t = from_json_tuple_impl_base<BasicJsonType, Args...>(std::forward<BasicJsonType>(j), index_sequence_for<Args...> {});\n}\n\ntemplate<typename BasicJsonType, typename TupleRelated>\nauto from_json(BasicJsonType&& j, TupleRelated&& t)\n-> decltype(from_json_tuple_impl(std::forward<BasicJsonType>(j), std::forward<TupleRelated>(t), priority_tag<3> {}))\n{\n    if (JSON_HEDLEY_UNLIKELY(!j.is_array()))\n    {\n        JSON_THROW(type_error::create(302, concat(\"type must be array, but is \", j.type_name()), &j));\n    }\n\n    return from_json_tuple_impl(std::forward<BasicJsonType>(j), std::forward<TupleRelated>(t), priority_tag<3> {});\n}\n\ntemplate < typename BasicJsonType, typename Key, typename Value, typename Compare, typename Allocator,\n           typename = enable_if_t < !std::is_constructible <\n                                        typename BasicJsonType::string_t, Key >::value >>\ninline void from_json(const BasicJsonType& j, std::map<Key, Value, Compare, Allocator>& m)\n{\n    if (JSON_HEDLEY_UNLIKELY(!j.is_array()))\n    {\n        JSON_THROW(type_error::create(302, concat(\"type must be array, but is \", j.type_name()), &j));\n    }\n    m.clear();\n    for (const auto& p : j)\n    {\n        if (JSON_HEDLEY_UNLIKELY(!p.is_array()))\n        {\n            JSON_THROW(type_error::create(302, concat(\"type must be array, but is \", p.type_name()), &j));\n        }\n        m.emplace(p.at(0).template get<Key>(), p.at(1).template get<Value>());\n    }\n}\n\ntemplate < typename BasicJsonType, typename Key, typename Value, typename Hash, typename KeyEqual, typename Allocator,\n           typename = enable_if_t < !std::is_constructible <\n                                        typename BasicJsonType::string_t, Key >::value >>\ninline void from_json(const BasicJsonType& j, std::unordered_map<Key, Value, Hash, KeyEqual, Allocator>& m)\n{\n    if (JSON_HEDLEY_UNLIKELY(!j.is_array()))\n    {\n        JSON_THROW(type_error::create(302, concat(\"type must be array, but is \", j.type_name()), &j));\n    }\n    m.clear();\n    for (const auto& p : j)\n    {\n        if (JSON_HEDLEY_UNLIKELY(!p.is_array()))\n        {\n            JSON_THROW(type_error::create(302, concat(\"type must be array, but is \", p.type_name()), &j));\n        }\n        m.emplace(p.at(0).template get<Key>(), p.at(1).template get<Value>());\n    }\n}\n\n#if JSON_HAS_FILESYSTEM || JSON_HAS_EXPERIMENTAL_FILESYSTEM\ntemplate<typename BasicJsonType>\ninline void from_json(const BasicJsonType& j, std_fs::path& p)\n{\n    if (JSON_HEDLEY_UNLIKELY(!j.is_string()))\n    {\n        JSON_THROW(type_error::create(302, concat(\"type must be string, but is \", j.type_name()), &j));\n    }\n    p = *j.template get_ptr<const typename BasicJsonType::string_t*>();\n}\n#endif\n\nstruct from_json_fn\n{\n    template<typename BasicJsonType, typename T>\n    auto operator()(const BasicJsonType& j, T&& val) const\n    noexcept(noexcept(from_json(j, std::forward<T>(val))))\n    -> decltype(from_json(j, std::forward<T>(val)))\n    {\n        return from_json(j, std::forward<T>(val));\n    }\n};\n\n}  // namespace detail\n\n#ifndef JSON_HAS_CPP_17\n/// namespace to hold default `from_json` function\n/// to see why this is required:\n/// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4381.html\nnamespace // NOLINT(cert-dcl59-cpp,fuchsia-header-anon-namespaces,google-build-namespaces)\n{\n#endif\nJSON_INLINE_VARIABLE constexpr const auto& from_json = // NOLINT(misc-definitions-in-headers)\n    detail::static_const<detail::from_json_fn>::value;\n#ifndef JSON_HAS_CPP_17\n}  // namespace\n#endif\n\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/conversions/to_json.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <algorithm> // copy\n#include <iterator> // begin, end\n#include <string> // string\n#include <tuple> // tuple, get\n#include <type_traits> // is_same, is_constructible, is_floating_point, is_enum, underlying_type\n#include <utility> // move, forward, declval, pair\n#include <valarray> // valarray\n#include <vector> // vector\n\n// #include <nlohmann/detail/iterators/iteration_proxy.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <cstddef> // size_t\n#include <iterator> // input_iterator_tag\n#include <string> // string, to_string\n#include <tuple> // tuple_size, get, tuple_element\n#include <utility> // move\n\n#if JSON_HAS_RANGES\n    #include <ranges> // enable_borrowed_range\n#endif\n\n// #include <nlohmann/detail/abi_macros.hpp>\n\n// #include <nlohmann/detail/meta/type_traits.hpp>\n\n// #include <nlohmann/detail/value_t.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\ntemplate<typename string_type>\nvoid int_to_string( string_type& target, std::size_t value )\n{\n    // For ADL\n    using std::to_string;\n    target = to_string(value);\n}\ntemplate<typename IteratorType> class iteration_proxy_value\n{\n  public:\n    using difference_type = std::ptrdiff_t;\n    using value_type = iteration_proxy_value;\n    using pointer = value_type *;\n    using reference = value_type &;\n    using iterator_category = std::input_iterator_tag;\n    using string_type = typename std::remove_cv< typename std::remove_reference<decltype( std::declval<IteratorType>().key() ) >::type >::type;\n\n  private:\n    /// the iterator\n    IteratorType anchor{};\n    /// an index for arrays (used to create key names)\n    std::size_t array_index = 0;\n    /// last stringified array index\n    mutable std::size_t array_index_last = 0;\n    /// a string representation of the array index\n    mutable string_type array_index_str = \"0\";\n    /// an empty string (to return a reference for primitive values)\n    string_type empty_str{};\n\n  public:\n    explicit iteration_proxy_value() = default;\n    explicit iteration_proxy_value(IteratorType it, std::size_t array_index_ = 0)\n    noexcept(std::is_nothrow_move_constructible<IteratorType>::value\n             && std::is_nothrow_default_constructible<string_type>::value)\n        : anchor(std::move(it))\n        , array_index(array_index_)\n    {}\n\n    iteration_proxy_value(iteration_proxy_value const&) = default;\n    iteration_proxy_value& operator=(iteration_proxy_value const&) = default;\n    // older GCCs are a bit fussy and require explicit noexcept specifiers on defaulted functions\n    iteration_proxy_value(iteration_proxy_value&&)\n    noexcept(std::is_nothrow_move_constructible<IteratorType>::value\n             && std::is_nothrow_move_constructible<string_type>::value) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor)\n    iteration_proxy_value& operator=(iteration_proxy_value&&)\n    noexcept(std::is_nothrow_move_assignable<IteratorType>::value\n             && std::is_nothrow_move_assignable<string_type>::value) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor)\n    ~iteration_proxy_value() = default;\n\n    /// dereference operator (needed for range-based for)\n    const iteration_proxy_value& operator*() const\n    {\n        return *this;\n    }\n\n    /// increment operator (needed for range-based for)\n    iteration_proxy_value& operator++()\n    {\n        ++anchor;\n        ++array_index;\n\n        return *this;\n    }\n\n    iteration_proxy_value operator++(int)& // NOLINT(cert-dcl21-cpp)\n    {\n        auto tmp = iteration_proxy_value(anchor, array_index);\n        ++anchor;\n        ++array_index;\n        return tmp;\n    }\n\n    /// equality operator (needed for InputIterator)\n    bool operator==(const iteration_proxy_value& o) const\n    {\n        return anchor == o.anchor;\n    }\n\n    /// inequality operator (needed for range-based for)\n    bool operator!=(const iteration_proxy_value& o) const\n    {\n        return anchor != o.anchor;\n    }\n\n    /// return key of the iterator\n    const string_type& key() const\n    {\n        JSON_ASSERT(anchor.m_object != nullptr);\n\n        switch (anchor.m_object->type())\n        {\n            // use integer array index as key\n            case value_t::array:\n            {\n                if (array_index != array_index_last)\n                {\n                    int_to_string( array_index_str, array_index );\n                    array_index_last = array_index;\n                }\n                return array_index_str;\n            }\n\n            // use key from the object\n            case value_t::object:\n                return anchor.key();\n\n            // use an empty key for all primitive types\n            case value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n                return empty_str;\n        }\n    }\n\n    /// return value of the iterator\n    typename IteratorType::reference value() const\n    {\n        return anchor.value();\n    }\n};\n\n/// proxy class for the items() function\ntemplate<typename IteratorType> class iteration_proxy\n{\n  private:\n    /// the container to iterate\n    typename IteratorType::pointer container = nullptr;\n\n  public:\n    explicit iteration_proxy() = default;\n\n    /// construct iteration proxy from a container\n    explicit iteration_proxy(typename IteratorType::reference cont) noexcept\n        : container(&cont) {}\n\n    iteration_proxy(iteration_proxy const&) = default;\n    iteration_proxy& operator=(iteration_proxy const&) = default;\n    iteration_proxy(iteration_proxy&&) noexcept = default;\n    iteration_proxy& operator=(iteration_proxy&&) noexcept = default;\n    ~iteration_proxy() = default;\n\n    /// return iterator begin (needed for range-based for)\n    iteration_proxy_value<IteratorType> begin() const noexcept\n    {\n        return iteration_proxy_value<IteratorType>(container->begin());\n    }\n\n    /// return iterator end (needed for range-based for)\n    iteration_proxy_value<IteratorType> end() const noexcept\n    {\n        return iteration_proxy_value<IteratorType>(container->end());\n    }\n};\n\n// Structured Bindings Support\n// For further reference see https://blog.tartanllama.xyz/structured-bindings/\n// And see https://github.com/nlohmann/json/pull/1391\ntemplate<std::size_t N, typename IteratorType, enable_if_t<N == 0, int> = 0>\nauto get(const nlohmann::detail::iteration_proxy_value<IteratorType>& i) -> decltype(i.key())\n{\n    return i.key();\n}\n// Structured Bindings Support\n// For further reference see https://blog.tartanllama.xyz/structured-bindings/\n// And see https://github.com/nlohmann/json/pull/1391\ntemplate<std::size_t N, typename IteratorType, enable_if_t<N == 1, int> = 0>\nauto get(const nlohmann::detail::iteration_proxy_value<IteratorType>& i) -> decltype(i.value())\n{\n    return i.value();\n}\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// The Addition to the STD Namespace is required to add\n// Structured Bindings Support to the iteration_proxy_value class\n// For further reference see https://blog.tartanllama.xyz/structured-bindings/\n// And see https://github.com/nlohmann/json/pull/1391\nnamespace std\n{\n\n#if defined(__clang__)\n    // Fix: https://github.com/nlohmann/json/issues/1401\n    #pragma clang diagnostic push\n    #pragma clang diagnostic ignored \"-Wmismatched-tags\"\n#endif\ntemplate<typename IteratorType>\nclass tuple_size<::nlohmann::detail::iteration_proxy_value<IteratorType>> // NOLINT(cert-dcl58-cpp)\n            : public std::integral_constant<std::size_t, 2> {};\n\ntemplate<std::size_t N, typename IteratorType>\nclass tuple_element<N, ::nlohmann::detail::iteration_proxy_value<IteratorType >> // NOLINT(cert-dcl58-cpp)\n{\n  public:\n    using type = decltype(\n                     get<N>(std::declval <\n                            ::nlohmann::detail::iteration_proxy_value<IteratorType >> ()));\n};\n#if defined(__clang__)\n    #pragma clang diagnostic pop\n#endif\n\n}  // namespace std\n\n#if JSON_HAS_RANGES\n    template <typename IteratorType>\n    inline constexpr bool ::std::ranges::enable_borrowed_range<::nlohmann::detail::iteration_proxy<IteratorType>> = true;\n#endif\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n// #include <nlohmann/detail/meta/cpp_future.hpp>\n\n// #include <nlohmann/detail/meta/std_fs.hpp>\n\n// #include <nlohmann/detail/meta/type_traits.hpp>\n\n// #include <nlohmann/detail/value_t.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n//////////////////\n// constructors //\n//////////////////\n\n/*\n * Note all external_constructor<>::construct functions need to call\n * j.m_data.m_value.destroy(j.m_data.m_type) to avoid a memory leak in case j contains an\n * allocated value (e.g., a string). See bug issue\n * https://github.com/nlohmann/json/issues/2865 for more information.\n */\n\ntemplate<value_t> struct external_constructor;\n\ntemplate<>\nstruct external_constructor<value_t::boolean>\n{\n    template<typename BasicJsonType>\n    static void construct(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::boolean;\n        j.m_data.m_value = b;\n        j.assert_invariant();\n    }\n};\n\ntemplate<>\nstruct external_constructor<value_t::string>\n{\n    template<typename BasicJsonType>\n    static void construct(BasicJsonType& j, const typename BasicJsonType::string_t& s)\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::string;\n        j.m_data.m_value = s;\n        j.assert_invariant();\n    }\n\n    template<typename BasicJsonType>\n    static void construct(BasicJsonType& j, typename BasicJsonType::string_t&& s)\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::string;\n        j.m_data.m_value = std::move(s);\n        j.assert_invariant();\n    }\n\n    template < typename BasicJsonType, typename CompatibleStringType,\n               enable_if_t < !std::is_same<CompatibleStringType, typename BasicJsonType::string_t>::value,\n                             int > = 0 >\n    static void construct(BasicJsonType& j, const CompatibleStringType& str)\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::string;\n        j.m_data.m_value.string = j.template create<typename BasicJsonType::string_t>(str);\n        j.assert_invariant();\n    }\n};\n\ntemplate<>\nstruct external_constructor<value_t::binary>\n{\n    template<typename BasicJsonType>\n    static void construct(BasicJsonType& j, const typename BasicJsonType::binary_t& b)\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::binary;\n        j.m_data.m_value = typename BasicJsonType::binary_t(b);\n        j.assert_invariant();\n    }\n\n    template<typename BasicJsonType>\n    static void construct(BasicJsonType& j, typename BasicJsonType::binary_t&& b)\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::binary;\n        j.m_data.m_value = typename BasicJsonType::binary_t(std::move(b));\n        j.assert_invariant();\n    }\n};\n\ntemplate<>\nstruct external_constructor<value_t::number_float>\n{\n    template<typename BasicJsonType>\n    static void construct(BasicJsonType& j, typename BasicJsonType::number_float_t val) noexcept\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::number_float;\n        j.m_data.m_value = val;\n        j.assert_invariant();\n    }\n};\n\ntemplate<>\nstruct external_constructor<value_t::number_unsigned>\n{\n    template<typename BasicJsonType>\n    static void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t val) noexcept\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::number_unsigned;\n        j.m_data.m_value = val;\n        j.assert_invariant();\n    }\n};\n\ntemplate<>\nstruct external_constructor<value_t::number_integer>\n{\n    template<typename BasicJsonType>\n    static void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t val) noexcept\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::number_integer;\n        j.m_data.m_value = val;\n        j.assert_invariant();\n    }\n};\n\ntemplate<>\nstruct external_constructor<value_t::array>\n{\n    template<typename BasicJsonType>\n    static void construct(BasicJsonType& j, const typename BasicJsonType::array_t& arr)\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::array;\n        j.m_data.m_value = arr;\n        j.set_parents();\n        j.assert_invariant();\n    }\n\n    template<typename BasicJsonType>\n    static void construct(BasicJsonType& j, typename BasicJsonType::array_t&& arr)\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::array;\n        j.m_data.m_value = std::move(arr);\n        j.set_parents();\n        j.assert_invariant();\n    }\n\n    template < typename BasicJsonType, typename CompatibleArrayType,\n               enable_if_t < !std::is_same<CompatibleArrayType, typename BasicJsonType::array_t>::value,\n                             int > = 0 >\n    static void construct(BasicJsonType& j, const CompatibleArrayType& arr)\n    {\n        using std::begin;\n        using std::end;\n\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::array;\n        j.m_data.m_value.array = j.template create<typename BasicJsonType::array_t>(begin(arr), end(arr));\n        j.set_parents();\n        j.assert_invariant();\n    }\n\n    template<typename BasicJsonType>\n    static void construct(BasicJsonType& j, const std::vector<bool>& arr)\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::array;\n        j.m_data.m_value = value_t::array;\n        j.m_data.m_value.array->reserve(arr.size());\n        for (const bool x : arr)\n        {\n            j.m_data.m_value.array->push_back(x);\n            j.set_parent(j.m_data.m_value.array->back());\n        }\n        j.assert_invariant();\n    }\n\n    template<typename BasicJsonType, typename T,\n             enable_if_t<std::is_convertible<T, BasicJsonType>::value, int> = 0>\n    static void construct(BasicJsonType& j, const std::valarray<T>& arr)\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::array;\n        j.m_data.m_value = value_t::array;\n        j.m_data.m_value.array->resize(arr.size());\n        if (arr.size() > 0)\n        {\n            std::copy(std::begin(arr), std::end(arr), j.m_data.m_value.array->begin());\n        }\n        j.set_parents();\n        j.assert_invariant();\n    }\n};\n\ntemplate<>\nstruct external_constructor<value_t::object>\n{\n    template<typename BasicJsonType>\n    static void construct(BasicJsonType& j, const typename BasicJsonType::object_t& obj)\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::object;\n        j.m_data.m_value = obj;\n        j.set_parents();\n        j.assert_invariant();\n    }\n\n    template<typename BasicJsonType>\n    static void construct(BasicJsonType& j, typename BasicJsonType::object_t&& obj)\n    {\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::object;\n        j.m_data.m_value = std::move(obj);\n        j.set_parents();\n        j.assert_invariant();\n    }\n\n    template < typename BasicJsonType, typename CompatibleObjectType,\n               enable_if_t < !std::is_same<CompatibleObjectType, typename BasicJsonType::object_t>::value, int > = 0 >\n    static void construct(BasicJsonType& j, const CompatibleObjectType& obj)\n    {\n        using std::begin;\n        using std::end;\n\n        j.m_data.m_value.destroy(j.m_data.m_type);\n        j.m_data.m_type = value_t::object;\n        j.m_data.m_value.object = j.template create<typename BasicJsonType::object_t>(begin(obj), end(obj));\n        j.set_parents();\n        j.assert_invariant();\n    }\n};\n\n/////////////\n// to_json //\n/////////////\n\ntemplate<typename BasicJsonType, typename T,\n         enable_if_t<std::is_same<T, typename BasicJsonType::boolean_t>::value, int> = 0>\ninline void to_json(BasicJsonType& j, T b) noexcept\n{\n    external_constructor<value_t::boolean>::construct(j, b);\n}\n\ntemplate < typename BasicJsonType, typename BoolRef,\n           enable_if_t <\n               ((std::is_same<std::vector<bool>::reference, BoolRef>::value\n                 && !std::is_same <std::vector<bool>::reference, typename BasicJsonType::boolean_t&>::value)\n                || (std::is_same<std::vector<bool>::const_reference, BoolRef>::value\n                    && !std::is_same <detail::uncvref_t<std::vector<bool>::const_reference>,\n                                      typename BasicJsonType::boolean_t >::value))\n               && std::is_convertible<const BoolRef&, typename BasicJsonType::boolean_t>::value, int > = 0 >\ninline void to_json(BasicJsonType& j, const BoolRef& b) noexcept\n{\n    external_constructor<value_t::boolean>::construct(j, static_cast<typename BasicJsonType::boolean_t>(b));\n}\n\ntemplate<typename BasicJsonType, typename CompatibleString,\n         enable_if_t<std::is_constructible<typename BasicJsonType::string_t, CompatibleString>::value, int> = 0>\ninline void to_json(BasicJsonType& j, const CompatibleString& s)\n{\n    external_constructor<value_t::string>::construct(j, s);\n}\n\ntemplate<typename BasicJsonType>\ninline void to_json(BasicJsonType& j, typename BasicJsonType::string_t&& s)\n{\n    external_constructor<value_t::string>::construct(j, std::move(s));\n}\n\ntemplate<typename BasicJsonType, typename FloatType,\n         enable_if_t<std::is_floating_point<FloatType>::value, int> = 0>\ninline void to_json(BasicJsonType& j, FloatType val) noexcept\n{\n    external_constructor<value_t::number_float>::construct(j, static_cast<typename BasicJsonType::number_float_t>(val));\n}\n\ntemplate<typename BasicJsonType, typename CompatibleNumberUnsignedType,\n         enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_unsigned_t, CompatibleNumberUnsignedType>::value, int> = 0>\ninline void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept\n{\n    external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename BasicJsonType::number_unsigned_t>(val));\n}\n\ntemplate<typename BasicJsonType, typename CompatibleNumberIntegerType,\n         enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_integer_t, CompatibleNumberIntegerType>::value, int> = 0>\ninline void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept\n{\n    external_constructor<value_t::number_integer>::construct(j, static_cast<typename BasicJsonType::number_integer_t>(val));\n}\n\n#if !JSON_DISABLE_ENUM_SERIALIZATION\ntemplate<typename BasicJsonType, typename EnumType,\n         enable_if_t<std::is_enum<EnumType>::value, int> = 0>\ninline void to_json(BasicJsonType& j, EnumType e) noexcept\n{\n    using underlying_type = typename std::underlying_type<EnumType>::type;\n    external_constructor<value_t::number_integer>::construct(j, static_cast<underlying_type>(e));\n}\n#endif  // JSON_DISABLE_ENUM_SERIALIZATION\n\ntemplate<typename BasicJsonType>\ninline void to_json(BasicJsonType& j, const std::vector<bool>& e)\n{\n    external_constructor<value_t::array>::construct(j, e);\n}\n\ntemplate < typename BasicJsonType, typename CompatibleArrayType,\n           enable_if_t < is_compatible_array_type<BasicJsonType,\n                         CompatibleArrayType>::value&&\n                         !is_compatible_object_type<BasicJsonType, CompatibleArrayType>::value&&\n                         !is_compatible_string_type<BasicJsonType, CompatibleArrayType>::value&&\n                         !std::is_same<typename BasicJsonType::binary_t, CompatibleArrayType>::value&&\n                         !is_basic_json<CompatibleArrayType>::value,\n                         int > = 0 >\ninline void to_json(BasicJsonType& j, const CompatibleArrayType& arr)\n{\n    external_constructor<value_t::array>::construct(j, arr);\n}\n\ntemplate<typename BasicJsonType>\ninline void to_json(BasicJsonType& j, const typename BasicJsonType::binary_t& bin)\n{\n    external_constructor<value_t::binary>::construct(j, bin);\n}\n\ntemplate<typename BasicJsonType, typename T,\n         enable_if_t<std::is_convertible<T, BasicJsonType>::value, int> = 0>\ninline void to_json(BasicJsonType& j, const std::valarray<T>& arr)\n{\n    external_constructor<value_t::array>::construct(j, std::move(arr));\n}\n\ntemplate<typename BasicJsonType>\ninline void to_json(BasicJsonType& j, typename BasicJsonType::array_t&& arr)\n{\n    external_constructor<value_t::array>::construct(j, std::move(arr));\n}\n\ntemplate < typename BasicJsonType, typename CompatibleObjectType,\n           enable_if_t < is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value&& !is_basic_json<CompatibleObjectType>::value, int > = 0 >\ninline void to_json(BasicJsonType& j, const CompatibleObjectType& obj)\n{\n    external_constructor<value_t::object>::construct(j, obj);\n}\n\ntemplate<typename BasicJsonType>\ninline void to_json(BasicJsonType& j, typename BasicJsonType::object_t&& obj)\n{\n    external_constructor<value_t::object>::construct(j, std::move(obj));\n}\n\ntemplate <\n    typename BasicJsonType, typename T, std::size_t N,\n    enable_if_t < !std::is_constructible<typename BasicJsonType::string_t,\n                  const T(&)[N]>::value, // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)\n                  int > = 0 >\ninline void to_json(BasicJsonType& j, const T(&arr)[N]) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)\n{\n    external_constructor<value_t::array>::construct(j, arr);\n}\n\ntemplate < typename BasicJsonType, typename T1, typename T2, enable_if_t < std::is_constructible<BasicJsonType, T1>::value&& std::is_constructible<BasicJsonType, T2>::value, int > = 0 >\ninline void to_json(BasicJsonType& j, const std::pair<T1, T2>& p)\n{\n    j = { p.first, p.second };\n}\n\n// for https://github.com/nlohmann/json/pull/1134\ntemplate<typename BasicJsonType, typename T,\n         enable_if_t<std::is_same<T, iteration_proxy_value<typename BasicJsonType::iterator>>::value, int> = 0>\ninline void to_json(BasicJsonType& j, const T& b)\n{\n    j = { {b.key(), b.value()} };\n}\n\ntemplate<typename BasicJsonType, typename Tuple, std::size_t... Idx>\ninline void to_json_tuple_impl(BasicJsonType& j, const Tuple& t, index_sequence<Idx...> /*unused*/)\n{\n    j = { std::get<Idx>(t)... };\n}\n\ntemplate<typename BasicJsonType, typename T, enable_if_t<is_constructible_tuple<BasicJsonType, T>::value, int > = 0>\ninline void to_json(BasicJsonType& j, const T& t)\n{\n    to_json_tuple_impl(j, t, make_index_sequence<std::tuple_size<T>::value> {});\n}\n\n#if JSON_HAS_FILESYSTEM || JSON_HAS_EXPERIMENTAL_FILESYSTEM\ntemplate<typename BasicJsonType>\ninline void to_json(BasicJsonType& j, const std_fs::path& p)\n{\n    j = p.string();\n}\n#endif\n\nstruct to_json_fn\n{\n    template<typename BasicJsonType, typename T>\n    auto operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j, std::forward<T>(val))))\n    -> decltype(to_json(j, std::forward<T>(val)), void())\n    {\n        return to_json(j, std::forward<T>(val));\n    }\n};\n}  // namespace detail\n\n#ifndef JSON_HAS_CPP_17\n/// namespace to hold default `to_json` function\n/// to see why this is required:\n/// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4381.html\nnamespace // NOLINT(cert-dcl59-cpp,fuchsia-header-anon-namespaces,google-build-namespaces)\n{\n#endif\nJSON_INLINE_VARIABLE constexpr const auto& to_json = // NOLINT(misc-definitions-in-headers)\n    detail::static_const<detail::to_json_fn>::value;\n#ifndef JSON_HAS_CPP_17\n}  // namespace\n#endif\n\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/meta/identity_tag.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\n\n/// @sa https://json.nlohmann.me/api/adl_serializer/\ntemplate<typename ValueType, typename>\nstruct adl_serializer\n{\n    /// @brief convert a JSON value to any value type\n    /// @sa https://json.nlohmann.me/api/adl_serializer/from_json/\n    template<typename BasicJsonType, typename TargetType = ValueType>\n    static auto from_json(BasicJsonType && j, TargetType& val) noexcept(\n        noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val)))\n    -> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j), val), void())\n    {\n        ::nlohmann::from_json(std::forward<BasicJsonType>(j), val);\n    }\n\n    /// @brief convert a JSON value to any value type\n    /// @sa https://json.nlohmann.me/api/adl_serializer/from_json/\n    template<typename BasicJsonType, typename TargetType = ValueType>\n    static auto from_json(BasicJsonType && j) noexcept(\n    noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), detail::identity_tag<TargetType> {})))\n    -> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j), detail::identity_tag<TargetType> {}))\n    {\n        return ::nlohmann::from_json(std::forward<BasicJsonType>(j), detail::identity_tag<TargetType> {});\n    }\n\n    /// @brief convert any value type to a JSON value\n    /// @sa https://json.nlohmann.me/api/adl_serializer/to_json/\n    template<typename BasicJsonType, typename TargetType = ValueType>\n    static auto to_json(BasicJsonType& j, TargetType && val) noexcept(\n        noexcept(::nlohmann::to_json(j, std::forward<TargetType>(val))))\n    -> decltype(::nlohmann::to_json(j, std::forward<TargetType>(val)), void())\n    {\n        ::nlohmann::to_json(j, std::forward<TargetType>(val));\n    }\n};\n\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/byte_container_with_subtype.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <cstdint> // uint8_t, uint64_t\n#include <tuple> // tie\n#include <utility> // move\n\n// #include <nlohmann/detail/abi_macros.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\n\n/// @brief an internal type for a backed binary type\n/// @sa https://json.nlohmann.me/api/byte_container_with_subtype/\ntemplate<typename BinaryType>\nclass byte_container_with_subtype : public BinaryType\n{\n  public:\n    using container_type = BinaryType;\n    using subtype_type = std::uint64_t;\n\n    /// @sa https://json.nlohmann.me/api/byte_container_with_subtype/byte_container_with_subtype/\n    byte_container_with_subtype() noexcept(noexcept(container_type()))\n        : container_type()\n    {}\n\n    /// @sa https://json.nlohmann.me/api/byte_container_with_subtype/byte_container_with_subtype/\n    byte_container_with_subtype(const container_type& b) noexcept(noexcept(container_type(b)))\n        : container_type(b)\n    {}\n\n    /// @sa https://json.nlohmann.me/api/byte_container_with_subtype/byte_container_with_subtype/\n    byte_container_with_subtype(container_type&& b) noexcept(noexcept(container_type(std::move(b))))\n        : container_type(std::move(b))\n    {}\n\n    /// @sa https://json.nlohmann.me/api/byte_container_with_subtype/byte_container_with_subtype/\n    byte_container_with_subtype(const container_type& b, subtype_type subtype_) noexcept(noexcept(container_type(b)))\n        : container_type(b)\n        , m_subtype(subtype_)\n        , m_has_subtype(true)\n    {}\n\n    /// @sa https://json.nlohmann.me/api/byte_container_with_subtype/byte_container_with_subtype/\n    byte_container_with_subtype(container_type&& b, subtype_type subtype_) noexcept(noexcept(container_type(std::move(b))))\n        : container_type(std::move(b))\n        , m_subtype(subtype_)\n        , m_has_subtype(true)\n    {}\n\n    bool operator==(const byte_container_with_subtype& rhs) const\n    {\n        return std::tie(static_cast<const BinaryType&>(*this), m_subtype, m_has_subtype) ==\n               std::tie(static_cast<const BinaryType&>(rhs), rhs.m_subtype, rhs.m_has_subtype);\n    }\n\n    bool operator!=(const byte_container_with_subtype& rhs) const\n    {\n        return !(rhs == *this);\n    }\n\n    /// @brief sets the binary subtype\n    /// @sa https://json.nlohmann.me/api/byte_container_with_subtype/set_subtype/\n    void set_subtype(subtype_type subtype_) noexcept\n    {\n        m_subtype = subtype_;\n        m_has_subtype = true;\n    }\n\n    /// @brief return the binary subtype\n    /// @sa https://json.nlohmann.me/api/byte_container_with_subtype/subtype/\n    constexpr subtype_type subtype() const noexcept\n    {\n        return m_has_subtype ? m_subtype : static_cast<subtype_type>(-1);\n    }\n\n    /// @brief return whether the value has a subtype\n    /// @sa https://json.nlohmann.me/api/byte_container_with_subtype/has_subtype/\n    constexpr bool has_subtype() const noexcept\n    {\n        return m_has_subtype;\n    }\n\n    /// @brief clears the binary subtype\n    /// @sa https://json.nlohmann.me/api/byte_container_with_subtype/clear_subtype/\n    void clear_subtype() noexcept\n    {\n        m_subtype = 0;\n        m_has_subtype = false;\n    }\n\n  private:\n    subtype_type m_subtype = 0;\n    bool m_has_subtype = false;\n};\n\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/conversions/from_json.hpp>\n\n// #include <nlohmann/detail/conversions/to_json.hpp>\n\n// #include <nlohmann/detail/exceptions.hpp>\n\n// #include <nlohmann/detail/hash.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <cstdint> // uint8_t\n#include <cstddef> // size_t\n#include <functional> // hash\n\n// #include <nlohmann/detail/abi_macros.hpp>\n\n// #include <nlohmann/detail/value_t.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n// boost::hash_combine\ninline std::size_t combine(std::size_t seed, std::size_t h) noexcept\n{\n    seed ^= h + 0x9e3779b9 + (seed << 6U) + (seed >> 2U);\n    return seed;\n}\n\n/*!\n@brief hash a JSON value\n\nThe hash function tries to rely on std::hash where possible. Furthermore, the\ntype of the JSON value is taken into account to have different hash values for\nnull, 0, 0U, and false, etc.\n\n@tparam BasicJsonType basic_json specialization\n@param j JSON value to hash\n@return hash value of j\n*/\ntemplate<typename BasicJsonType>\nstd::size_t hash(const BasicJsonType& j)\n{\n    using string_t = typename BasicJsonType::string_t;\n    using number_integer_t = typename BasicJsonType::number_integer_t;\n    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;\n    using number_float_t = typename BasicJsonType::number_float_t;\n\n    const auto type = static_cast<std::size_t>(j.type());\n    switch (j.type())\n    {\n        case BasicJsonType::value_t::null:\n        case BasicJsonType::value_t::discarded:\n        {\n            return combine(type, 0);\n        }\n\n        case BasicJsonType::value_t::object:\n        {\n            auto seed = combine(type, j.size());\n            for (const auto& element : j.items())\n            {\n                const auto h = std::hash<string_t> {}(element.key());\n                seed = combine(seed, h);\n                seed = combine(seed, hash(element.value()));\n            }\n            return seed;\n        }\n\n        case BasicJsonType::value_t::array:\n        {\n            auto seed = combine(type, j.size());\n            for (const auto& element : j)\n            {\n                seed = combine(seed, hash(element));\n            }\n            return seed;\n        }\n\n        case BasicJsonType::value_t::string:\n        {\n            const auto h = std::hash<string_t> {}(j.template get_ref<const string_t&>());\n            return combine(type, h);\n        }\n\n        case BasicJsonType::value_t::boolean:\n        {\n            const auto h = std::hash<bool> {}(j.template get<bool>());\n            return combine(type, h);\n        }\n\n        case BasicJsonType::value_t::number_integer:\n        {\n            const auto h = std::hash<number_integer_t> {}(j.template get<number_integer_t>());\n            return combine(type, h);\n        }\n\n        case BasicJsonType::value_t::number_unsigned:\n        {\n            const auto h = std::hash<number_unsigned_t> {}(j.template get<number_unsigned_t>());\n            return combine(type, h);\n        }\n\n        case BasicJsonType::value_t::number_float:\n        {\n            const auto h = std::hash<number_float_t> {}(j.template get<number_float_t>());\n            return combine(type, h);\n        }\n\n        case BasicJsonType::value_t::binary:\n        {\n            auto seed = combine(type, j.get_binary().size());\n            const auto h = std::hash<bool> {}(j.get_binary().has_subtype());\n            seed = combine(seed, h);\n            seed = combine(seed, static_cast<std::size_t>(j.get_binary().subtype()));\n            for (const auto byte : j.get_binary())\n            {\n                seed = combine(seed, std::hash<std::uint8_t> {}(byte));\n            }\n            return seed;\n        }\n\n        default:                   // LCOV_EXCL_LINE\n            JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE\n            return 0;              // LCOV_EXCL_LINE\n    }\n}\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/input/binary_reader.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <algorithm> // generate_n\n#include <array> // array\n#include <cmath> // ldexp\n#include <cstddef> // size_t\n#include <cstdint> // uint8_t, uint16_t, uint32_t, uint64_t\n#include <cstdio> // snprintf\n#include <cstring> // memcpy\n#include <iterator> // back_inserter\n#include <limits> // numeric_limits\n#include <string> // char_traits, string\n#include <utility> // make_pair, move\n#include <vector> // vector\n\n// #include <nlohmann/detail/exceptions.hpp>\n\n// #include <nlohmann/detail/input/input_adapters.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <array> // array\n#include <cstddef> // size_t\n#include <cstring> // strlen\n#include <iterator> // begin, end, iterator_traits, random_access_iterator_tag, distance, next\n#include <memory> // shared_ptr, make_shared, addressof\n#include <numeric> // accumulate\n#include <string> // string, char_traits\n#include <type_traits> // enable_if, is_base_of, is_pointer, is_integral, remove_pointer\n#include <utility> // pair, declval\n\n#ifndef JSON_NO_IO\n    #include <cstdio>   // FILE *\n    #include <istream>  // istream\n#endif                  // JSON_NO_IO\n\n// #include <nlohmann/detail/iterators/iterator_traits.hpp>\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n/// the supported input formats\nenum class input_format_t { json, cbor, msgpack, ubjson, bson, bjdata };\n\n////////////////////\n// input adapters //\n////////////////////\n\n#ifndef JSON_NO_IO\n/*!\nInput adapter for stdio file access. This adapter read only 1 byte and do not use any\n buffer. This adapter is a very low level adapter.\n*/\nclass file_input_adapter\n{\n  public:\n    using char_type = char;\n\n    JSON_HEDLEY_NON_NULL(2)\n    explicit file_input_adapter(std::FILE* f) noexcept\n        : m_file(f)\n    {\n        JSON_ASSERT(m_file != nullptr);\n    }\n\n    // make class move-only\n    file_input_adapter(const file_input_adapter&) = delete;\n    file_input_adapter(file_input_adapter&&) noexcept = default;\n    file_input_adapter& operator=(const file_input_adapter&) = delete;\n    file_input_adapter& operator=(file_input_adapter&&) = delete;\n    ~file_input_adapter() = default;\n\n    std::char_traits<char>::int_type get_character() noexcept\n    {\n        return std::fgetc(m_file);\n    }\n\n  private:\n    /// the file pointer to read from\n    std::FILE* m_file;\n};\n\n\n/*!\nInput adapter for a (caching) istream. Ignores a UFT Byte Order Mark at\nbeginning of input. Does not support changing the underlying std::streambuf\nin mid-input. Maintains underlying std::istream and std::streambuf to support\nsubsequent use of standard std::istream operations to process any input\ncharacters following those used in parsing the JSON input.  Clears the\nstd::istream flags; any input errors (e.g., EOF) will be detected by the first\nsubsequent call for input from the std::istream.\n*/\nclass input_stream_adapter\n{\n  public:\n    using char_type = char;\n\n    ~input_stream_adapter()\n    {\n        // clear stream flags; we use underlying streambuf I/O, do not\n        // maintain ifstream flags, except eof\n        if (is != nullptr)\n        {\n            is->clear(is->rdstate() & std::ios::eofbit);\n        }\n    }\n\n    explicit input_stream_adapter(std::istream& i)\n        : is(&i), sb(i.rdbuf())\n    {}\n\n    // delete because of pointer members\n    input_stream_adapter(const input_stream_adapter&) = delete;\n    input_stream_adapter& operator=(input_stream_adapter&) = delete;\n    input_stream_adapter& operator=(input_stream_adapter&&) = delete;\n\n    input_stream_adapter(input_stream_adapter&& rhs) noexcept\n        : is(rhs.is), sb(rhs.sb)\n    {\n        rhs.is = nullptr;\n        rhs.sb = nullptr;\n    }\n\n    // std::istream/std::streambuf use std::char_traits<char>::to_int_type, to\n    // ensure that std::char_traits<char>::eof() and the character 0xFF do not\n    // end up as the same value, e.g. 0xFFFFFFFF.\n    std::char_traits<char>::int_type get_character()\n    {\n        auto res = sb->sbumpc();\n        // set eof manually, as we don't use the istream interface.\n        if (JSON_HEDLEY_UNLIKELY(res == std::char_traits<char>::eof()))\n        {\n            is->clear(is->rdstate() | std::ios::eofbit);\n        }\n        return res;\n    }\n\n  private:\n    /// the associated input stream\n    std::istream* is = nullptr;\n    std::streambuf* sb = nullptr;\n};\n#endif  // JSON_NO_IO\n\n// General-purpose iterator-based adapter. It might not be as fast as\n// theoretically possible for some containers, but it is extremely versatile.\ntemplate<typename IteratorType>\nclass iterator_input_adapter\n{\n  public:\n    using char_type = typename std::iterator_traits<IteratorType>::value_type;\n\n    iterator_input_adapter(IteratorType first, IteratorType last)\n        : current(std::move(first)), end(std::move(last))\n    {}\n\n    typename std::char_traits<char_type>::int_type get_character()\n    {\n        if (JSON_HEDLEY_LIKELY(current != end))\n        {\n            auto result = std::char_traits<char_type>::to_int_type(*current);\n            std::advance(current, 1);\n            return result;\n        }\n\n        return std::char_traits<char_type>::eof();\n    }\n\n  private:\n    IteratorType current;\n    IteratorType end;\n\n    template<typename BaseInputAdapter, size_t T>\n    friend struct wide_string_input_helper;\n\n    bool empty() const\n    {\n        return current == end;\n    }\n};\n\n\ntemplate<typename BaseInputAdapter, size_t T>\nstruct wide_string_input_helper;\n\ntemplate<typename BaseInputAdapter>\nstruct wide_string_input_helper<BaseInputAdapter, 4>\n{\n    // UTF-32\n    static void fill_buffer(BaseInputAdapter& input,\n                            std::array<std::char_traits<char>::int_type, 4>& utf8_bytes,\n                            size_t& utf8_bytes_index,\n                            size_t& utf8_bytes_filled)\n    {\n        utf8_bytes_index = 0;\n\n        if (JSON_HEDLEY_UNLIKELY(input.empty()))\n        {\n            utf8_bytes[0] = std::char_traits<char>::eof();\n            utf8_bytes_filled = 1;\n        }\n        else\n        {\n            // get the current character\n            const auto wc = input.get_character();\n\n            // UTF-32 to UTF-8 encoding\n            if (wc < 0x80)\n            {\n                utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(wc);\n                utf8_bytes_filled = 1;\n            }\n            else if (wc <= 0x7FF)\n            {\n                utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(0xC0u | ((static_cast<unsigned int>(wc) >> 6u) & 0x1Fu));\n                utf8_bytes[1] = static_cast<std::char_traits<char>::int_type>(0x80u | (static_cast<unsigned int>(wc) & 0x3Fu));\n                utf8_bytes_filled = 2;\n            }\n            else if (wc <= 0xFFFF)\n            {\n                utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(0xE0u | ((static_cast<unsigned int>(wc) >> 12u) & 0x0Fu));\n                utf8_bytes[1] = static_cast<std::char_traits<char>::int_type>(0x80u | ((static_cast<unsigned int>(wc) >> 6u) & 0x3Fu));\n                utf8_bytes[2] = static_cast<std::char_traits<char>::int_type>(0x80u | (static_cast<unsigned int>(wc) & 0x3Fu));\n                utf8_bytes_filled = 3;\n            }\n            else if (wc <= 0x10FFFF)\n            {\n                utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(0xF0u | ((static_cast<unsigned int>(wc) >> 18u) & 0x07u));\n                utf8_bytes[1] = static_cast<std::char_traits<char>::int_type>(0x80u | ((static_cast<unsigned int>(wc) >> 12u) & 0x3Fu));\n                utf8_bytes[2] = static_cast<std::char_traits<char>::int_type>(0x80u | ((static_cast<unsigned int>(wc) >> 6u) & 0x3Fu));\n                utf8_bytes[3] = static_cast<std::char_traits<char>::int_type>(0x80u | (static_cast<unsigned int>(wc) & 0x3Fu));\n                utf8_bytes_filled = 4;\n            }\n            else\n            {\n                // unknown character\n                utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(wc);\n                utf8_bytes_filled = 1;\n            }\n        }\n    }\n};\n\ntemplate<typename BaseInputAdapter>\nstruct wide_string_input_helper<BaseInputAdapter, 2>\n{\n    // UTF-16\n    static void fill_buffer(BaseInputAdapter& input,\n                            std::array<std::char_traits<char>::int_type, 4>& utf8_bytes,\n                            size_t& utf8_bytes_index,\n                            size_t& utf8_bytes_filled)\n    {\n        utf8_bytes_index = 0;\n\n        if (JSON_HEDLEY_UNLIKELY(input.empty()))\n        {\n            utf8_bytes[0] = std::char_traits<char>::eof();\n            utf8_bytes_filled = 1;\n        }\n        else\n        {\n            // get the current character\n            const auto wc = input.get_character();\n\n            // UTF-16 to UTF-8 encoding\n            if (wc < 0x80)\n            {\n                utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(wc);\n                utf8_bytes_filled = 1;\n            }\n            else if (wc <= 0x7FF)\n            {\n                utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(0xC0u | ((static_cast<unsigned int>(wc) >> 6u)));\n                utf8_bytes[1] = static_cast<std::char_traits<char>::int_type>(0x80u | (static_cast<unsigned int>(wc) & 0x3Fu));\n                utf8_bytes_filled = 2;\n            }\n            else if (0xD800 > wc || wc >= 0xE000)\n            {\n                utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(0xE0u | ((static_cast<unsigned int>(wc) >> 12u)));\n                utf8_bytes[1] = static_cast<std::char_traits<char>::int_type>(0x80u | ((static_cast<unsigned int>(wc) >> 6u) & 0x3Fu));\n                utf8_bytes[2] = static_cast<std::char_traits<char>::int_type>(0x80u | (static_cast<unsigned int>(wc) & 0x3Fu));\n                utf8_bytes_filled = 3;\n            }\n            else\n            {\n                if (JSON_HEDLEY_UNLIKELY(!input.empty()))\n                {\n                    const auto wc2 = static_cast<unsigned int>(input.get_character());\n                    const auto charcode = 0x10000u + (((static_cast<unsigned int>(wc) & 0x3FFu) << 10u) | (wc2 & 0x3FFu));\n                    utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(0xF0u | (charcode >> 18u));\n                    utf8_bytes[1] = static_cast<std::char_traits<char>::int_type>(0x80u | ((charcode >> 12u) & 0x3Fu));\n                    utf8_bytes[2] = static_cast<std::char_traits<char>::int_type>(0x80u | ((charcode >> 6u) & 0x3Fu));\n                    utf8_bytes[3] = static_cast<std::char_traits<char>::int_type>(0x80u | (charcode & 0x3Fu));\n                    utf8_bytes_filled = 4;\n                }\n                else\n                {\n                    utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(wc);\n                    utf8_bytes_filled = 1;\n                }\n            }\n        }\n    }\n};\n\n// Wraps another input apdater to convert wide character types into individual bytes.\ntemplate<typename BaseInputAdapter, typename WideCharType>\nclass wide_string_input_adapter\n{\n  public:\n    using char_type = char;\n\n    wide_string_input_adapter(BaseInputAdapter base)\n        : base_adapter(base) {}\n\n    typename std::char_traits<char>::int_type get_character() noexcept\n    {\n        // check if buffer needs to be filled\n        if (utf8_bytes_index == utf8_bytes_filled)\n        {\n            fill_buffer<sizeof(WideCharType)>();\n\n            JSON_ASSERT(utf8_bytes_filled > 0);\n            JSON_ASSERT(utf8_bytes_index == 0);\n        }\n\n        // use buffer\n        JSON_ASSERT(utf8_bytes_filled > 0);\n        JSON_ASSERT(utf8_bytes_index < utf8_bytes_filled);\n        return utf8_bytes[utf8_bytes_index++];\n    }\n\n  private:\n    BaseInputAdapter base_adapter;\n\n    template<size_t T>\n    void fill_buffer()\n    {\n        wide_string_input_helper<BaseInputAdapter, T>::fill_buffer(base_adapter, utf8_bytes, utf8_bytes_index, utf8_bytes_filled);\n    }\n\n    /// a buffer for UTF-8 bytes\n    std::array<std::char_traits<char>::int_type, 4> utf8_bytes = {{0, 0, 0, 0}};\n\n    /// index to the utf8_codes array for the next valid byte\n    std::size_t utf8_bytes_index = 0;\n    /// number of valid bytes in the utf8_codes array\n    std::size_t utf8_bytes_filled = 0;\n};\n\n\ntemplate<typename IteratorType, typename Enable = void>\nstruct iterator_input_adapter_factory\n{\n    using iterator_type = IteratorType;\n    using char_type = typename std::iterator_traits<iterator_type>::value_type;\n    using adapter_type = iterator_input_adapter<iterator_type>;\n\n    static adapter_type create(IteratorType first, IteratorType last)\n    {\n        return adapter_type(std::move(first), std::move(last));\n    }\n};\n\ntemplate<typename T>\nstruct is_iterator_of_multibyte\n{\n    using value_type = typename std::iterator_traits<T>::value_type;\n    enum\n    {\n        value = sizeof(value_type) > 1\n    };\n};\n\ntemplate<typename IteratorType>\nstruct iterator_input_adapter_factory<IteratorType, enable_if_t<is_iterator_of_multibyte<IteratorType>::value>>\n{\n    using iterator_type = IteratorType;\n    using char_type = typename std::iterator_traits<iterator_type>::value_type;\n    using base_adapter_type = iterator_input_adapter<iterator_type>;\n    using adapter_type = wide_string_input_adapter<base_adapter_type, char_type>;\n\n    static adapter_type create(IteratorType first, IteratorType last)\n    {\n        return adapter_type(base_adapter_type(std::move(first), std::move(last)));\n    }\n};\n\n// General purpose iterator-based input\ntemplate<typename IteratorType>\ntypename iterator_input_adapter_factory<IteratorType>::adapter_type input_adapter(IteratorType first, IteratorType last)\n{\n    using factory_type = iterator_input_adapter_factory<IteratorType>;\n    return factory_type::create(first, last);\n}\n\n// Convenience shorthand from container to iterator\n// Enables ADL on begin(container) and end(container)\n// Encloses the using declarations in namespace for not to leak them to outside scope\n\nnamespace container_input_adapter_factory_impl\n{\n\nusing std::begin;\nusing std::end;\n\ntemplate<typename ContainerType, typename Enable = void>\nstruct container_input_adapter_factory {};\n\ntemplate<typename ContainerType>\nstruct container_input_adapter_factory< ContainerType,\n       void_t<decltype(begin(std::declval<ContainerType>()), end(std::declval<ContainerType>()))>>\n       {\n           using adapter_type = decltype(input_adapter(begin(std::declval<ContainerType>()), end(std::declval<ContainerType>())));\n\n           static adapter_type create(const ContainerType& container)\n{\n    return input_adapter(begin(container), end(container));\n}\n       };\n\n}  // namespace container_input_adapter_factory_impl\n\ntemplate<typename ContainerType>\ntypename container_input_adapter_factory_impl::container_input_adapter_factory<ContainerType>::adapter_type input_adapter(const ContainerType& container)\n{\n    return container_input_adapter_factory_impl::container_input_adapter_factory<ContainerType>::create(container);\n}\n\n#ifndef JSON_NO_IO\n// Special cases with fast paths\ninline file_input_adapter input_adapter(std::FILE* file)\n{\n    return file_input_adapter(file);\n}\n\ninline input_stream_adapter input_adapter(std::istream& stream)\n{\n    return input_stream_adapter(stream);\n}\n\ninline input_stream_adapter input_adapter(std::istream&& stream)\n{\n    return input_stream_adapter(stream);\n}\n#endif  // JSON_NO_IO\n\nusing contiguous_bytes_input_adapter = decltype(input_adapter(std::declval<const char*>(), std::declval<const char*>()));\n\n// Null-delimited strings, and the like.\ntemplate < typename CharT,\n           typename std::enable_if <\n               std::is_pointer<CharT>::value&&\n               !std::is_array<CharT>::value&&\n               std::is_integral<typename std::remove_pointer<CharT>::type>::value&&\n               sizeof(typename std::remove_pointer<CharT>::type) == 1,\n               int >::type = 0 >\ncontiguous_bytes_input_adapter input_adapter(CharT b)\n{\n    auto length = std::strlen(reinterpret_cast<const char*>(b));\n    const auto* ptr = reinterpret_cast<const char*>(b);\n    return input_adapter(ptr, ptr + length);\n}\n\ntemplate<typename T, std::size_t N>\nauto input_adapter(T (&array)[N]) -> decltype(input_adapter(array, array + N)) // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)\n{\n    return input_adapter(array, array + N);\n}\n\n// This class only handles inputs of input_buffer_adapter type.\n// It's required so that expressions like {ptr, len} can be implicitly cast\n// to the correct adapter.\nclass span_input_adapter\n{\n  public:\n    template < typename CharT,\n               typename std::enable_if <\n                   std::is_pointer<CharT>::value&&\n                   std::is_integral<typename std::remove_pointer<CharT>::type>::value&&\n                   sizeof(typename std::remove_pointer<CharT>::type) == 1,\n                   int >::type = 0 >\n    span_input_adapter(CharT b, std::size_t l)\n        : ia(reinterpret_cast<const char*>(b), reinterpret_cast<const char*>(b) + l) {}\n\n    template<class IteratorType,\n             typename std::enable_if<\n                 std::is_same<typename iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value,\n                 int>::type = 0>\n    span_input_adapter(IteratorType first, IteratorType last)\n        : ia(input_adapter(first, last)) {}\n\n    contiguous_bytes_input_adapter&& get()\n    {\n        return std::move(ia); // NOLINT(hicpp-move-const-arg,performance-move-const-arg)\n    }\n\n  private:\n    contiguous_bytes_input_adapter ia;\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/input/json_sax.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <cstddef>\n#include <string> // string\n#include <utility> // move\n#include <vector> // vector\n\n// #include <nlohmann/detail/exceptions.hpp>\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n// #include <nlohmann/detail/string_concat.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\n\n/*!\n@brief SAX interface\n\nThis class describes the SAX interface used by @ref nlohmann::json::sax_parse.\nEach function is called in different situations while the input is parsed. The\nboolean return value informs the parser whether to continue processing the\ninput.\n*/\ntemplate<typename BasicJsonType>\nstruct json_sax\n{\n    using number_integer_t = typename BasicJsonType::number_integer_t;\n    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;\n    using number_float_t = typename BasicJsonType::number_float_t;\n    using string_t = typename BasicJsonType::string_t;\n    using binary_t = typename BasicJsonType::binary_t;\n\n    /*!\n    @brief a null value was read\n    @return whether parsing should proceed\n    */\n    virtual bool null() = 0;\n\n    /*!\n    @brief a boolean value was read\n    @param[in] val  boolean value\n    @return whether parsing should proceed\n    */\n    virtual bool boolean(bool val) = 0;\n\n    /*!\n    @brief an integer number was read\n    @param[in] val  integer value\n    @return whether parsing should proceed\n    */\n    virtual bool number_integer(number_integer_t val) = 0;\n\n    /*!\n    @brief an unsigned integer number was read\n    @param[in] val  unsigned integer value\n    @return whether parsing should proceed\n    */\n    virtual bool number_unsigned(number_unsigned_t val) = 0;\n\n    /*!\n    @brief a floating-point number was read\n    @param[in] val  floating-point value\n    @param[in] s    raw token value\n    @return whether parsing should proceed\n    */\n    virtual bool number_float(number_float_t val, const string_t& s) = 0;\n\n    /*!\n    @brief a string value was read\n    @param[in] val  string value\n    @return whether parsing should proceed\n    @note It is safe to move the passed string value.\n    */\n    virtual bool string(string_t& val) = 0;\n\n    /*!\n    @brief a binary value was read\n    @param[in] val  binary value\n    @return whether parsing should proceed\n    @note It is safe to move the passed binary value.\n    */\n    virtual bool binary(binary_t& val) = 0;\n\n    /*!\n    @brief the beginning of an object was read\n    @param[in] elements  number of object elements or -1 if unknown\n    @return whether parsing should proceed\n    @note binary formats may report the number of elements\n    */\n    virtual bool start_object(std::size_t elements) = 0;\n\n    /*!\n    @brief an object key was read\n    @param[in] val  object key\n    @return whether parsing should proceed\n    @note It is safe to move the passed string.\n    */\n    virtual bool key(string_t& val) = 0;\n\n    /*!\n    @brief the end of an object was read\n    @return whether parsing should proceed\n    */\n    virtual bool end_object() = 0;\n\n    /*!\n    @brief the beginning of an array was read\n    @param[in] elements  number of array elements or -1 if unknown\n    @return whether parsing should proceed\n    @note binary formats may report the number of elements\n    */\n    virtual bool start_array(std::size_t elements) = 0;\n\n    /*!\n    @brief the end of an array was read\n    @return whether parsing should proceed\n    */\n    virtual bool end_array() = 0;\n\n    /*!\n    @brief a parse error occurred\n    @param[in] position    the position in the input where the error occurs\n    @param[in] last_token  the last read token\n    @param[in] ex          an exception object describing the error\n    @return whether parsing should proceed (must return false)\n    */\n    virtual bool parse_error(std::size_t position,\n                             const std::string& last_token,\n                             const detail::exception& ex) = 0;\n\n    json_sax() = default;\n    json_sax(const json_sax&) = default;\n    json_sax(json_sax&&) noexcept = default;\n    json_sax& operator=(const json_sax&) = default;\n    json_sax& operator=(json_sax&&) noexcept = default;\n    virtual ~json_sax() = default;\n};\n\n\nnamespace detail\n{\n/*!\n@brief SAX implementation to create a JSON value from SAX events\n\nThis class implements the @ref json_sax interface and processes the SAX events\nto create a JSON value which makes it basically a DOM parser. The structure or\nhierarchy of the JSON value is managed by the stack `ref_stack` which contains\na pointer to the respective array or object for each recursion depth.\n\nAfter successful parsing, the value that is passed by reference to the\nconstructor contains the parsed value.\n\n@tparam BasicJsonType  the JSON type\n*/\ntemplate<typename BasicJsonType>\nclass json_sax_dom_parser\n{\n  public:\n    using number_integer_t = typename BasicJsonType::number_integer_t;\n    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;\n    using number_float_t = typename BasicJsonType::number_float_t;\n    using string_t = typename BasicJsonType::string_t;\n    using binary_t = typename BasicJsonType::binary_t;\n\n    /*!\n    @param[in,out] r  reference to a JSON value that is manipulated while\n                       parsing\n    @param[in] allow_exceptions_  whether parse errors yield exceptions\n    */\n    explicit json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_ = true)\n        : root(r), allow_exceptions(allow_exceptions_)\n    {}\n\n    // make class move-only\n    json_sax_dom_parser(const json_sax_dom_parser&) = delete;\n    json_sax_dom_parser(json_sax_dom_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor)\n    json_sax_dom_parser& operator=(const json_sax_dom_parser&) = delete;\n    json_sax_dom_parser& operator=(json_sax_dom_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor)\n    ~json_sax_dom_parser() = default;\n\n    bool null()\n    {\n        handle_value(nullptr);\n        return true;\n    }\n\n    bool boolean(bool val)\n    {\n        handle_value(val);\n        return true;\n    }\n\n    bool number_integer(number_integer_t val)\n    {\n        handle_value(val);\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val)\n    {\n        handle_value(val);\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& /*unused*/)\n    {\n        handle_value(val);\n        return true;\n    }\n\n    bool string(string_t& val)\n    {\n        handle_value(val);\n        return true;\n    }\n\n    bool binary(binary_t& val)\n    {\n        handle_value(std::move(val));\n        return true;\n    }\n\n    bool start_object(std::size_t len)\n    {\n        ref_stack.push_back(handle_value(BasicJsonType::value_t::object));\n\n        if (JSON_HEDLEY_UNLIKELY(len != static_cast<std::size_t>(-1) && len > ref_stack.back()->max_size()))\n        {\n            JSON_THROW(out_of_range::create(408, concat(\"excessive object size: \", std::to_string(len)), ref_stack.back()));\n        }\n\n        return true;\n    }\n\n    bool key(string_t& val)\n    {\n        JSON_ASSERT(!ref_stack.empty());\n        JSON_ASSERT(ref_stack.back()->is_object());\n\n        // add null at given key and store the reference for later\n        object_element = &(ref_stack.back()->m_data.m_value.object->operator[](val));\n        return true;\n    }\n\n    bool end_object()\n    {\n        JSON_ASSERT(!ref_stack.empty());\n        JSON_ASSERT(ref_stack.back()->is_object());\n\n        ref_stack.back()->set_parents();\n        ref_stack.pop_back();\n        return true;\n    }\n\n    bool start_array(std::size_t len)\n    {\n        ref_stack.push_back(handle_value(BasicJsonType::value_t::array));\n\n        if (JSON_HEDLEY_UNLIKELY(len != static_cast<std::size_t>(-1) && len > ref_stack.back()->max_size()))\n        {\n            JSON_THROW(out_of_range::create(408, concat(\"excessive array size: \", std::to_string(len)), ref_stack.back()));\n        }\n\n        return true;\n    }\n\n    bool end_array()\n    {\n        JSON_ASSERT(!ref_stack.empty());\n        JSON_ASSERT(ref_stack.back()->is_array());\n\n        ref_stack.back()->set_parents();\n        ref_stack.pop_back();\n        return true;\n    }\n\n    template<class Exception>\n    bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,\n                     const Exception& ex)\n    {\n        errored = true;\n        static_cast<void>(ex);\n        if (allow_exceptions)\n        {\n            JSON_THROW(ex);\n        }\n        return false;\n    }\n\n    constexpr bool is_errored() const\n    {\n        return errored;\n    }\n\n  private:\n    /*!\n    @invariant If the ref stack is empty, then the passed value will be the new\n               root.\n    @invariant If the ref stack contains a value, then it is an array or an\n               object to which we can add elements\n    */\n    template<typename Value>\n    JSON_HEDLEY_RETURNS_NON_NULL\n    BasicJsonType* handle_value(Value&& v)\n    {\n        if (ref_stack.empty())\n        {\n            root = BasicJsonType(std::forward<Value>(v));\n            return &root;\n        }\n\n        JSON_ASSERT(ref_stack.back()->is_array() || ref_stack.back()->is_object());\n\n        if (ref_stack.back()->is_array())\n        {\n            ref_stack.back()->m_data.m_value.array->emplace_back(std::forward<Value>(v));\n            return &(ref_stack.back()->m_data.m_value.array->back());\n        }\n\n        JSON_ASSERT(ref_stack.back()->is_object());\n        JSON_ASSERT(object_element);\n        *object_element = BasicJsonType(std::forward<Value>(v));\n        return object_element;\n    }\n\n    /// the parsed JSON value\n    BasicJsonType& root;\n    /// stack to model hierarchy of values\n    std::vector<BasicJsonType*> ref_stack {};\n    /// helper to hold the reference for the next object element\n    BasicJsonType* object_element = nullptr;\n    /// whether a syntax error occurred\n    bool errored = false;\n    /// whether to throw exceptions in case of errors\n    const bool allow_exceptions = true;\n};\n\ntemplate<typename BasicJsonType>\nclass json_sax_dom_callback_parser\n{\n  public:\n    using number_integer_t = typename BasicJsonType::number_integer_t;\n    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;\n    using number_float_t = typename BasicJsonType::number_float_t;\n    using string_t = typename BasicJsonType::string_t;\n    using binary_t = typename BasicJsonType::binary_t;\n    using parser_callback_t = typename BasicJsonType::parser_callback_t;\n    using parse_event_t = typename BasicJsonType::parse_event_t;\n\n    json_sax_dom_callback_parser(BasicJsonType& r,\n                                 const parser_callback_t cb,\n                                 const bool allow_exceptions_ = true)\n        : root(r), callback(cb), allow_exceptions(allow_exceptions_)\n    {\n        keep_stack.push_back(true);\n    }\n\n    // make class move-only\n    json_sax_dom_callback_parser(const json_sax_dom_callback_parser&) = delete;\n    json_sax_dom_callback_parser(json_sax_dom_callback_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor)\n    json_sax_dom_callback_parser& operator=(const json_sax_dom_callback_parser&) = delete;\n    json_sax_dom_callback_parser& operator=(json_sax_dom_callback_parser&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor)\n    ~json_sax_dom_callback_parser() = default;\n\n    bool null()\n    {\n        handle_value(nullptr);\n        return true;\n    }\n\n    bool boolean(bool val)\n    {\n        handle_value(val);\n        return true;\n    }\n\n    bool number_integer(number_integer_t val)\n    {\n        handle_value(val);\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t val)\n    {\n        handle_value(val);\n        return true;\n    }\n\n    bool number_float(number_float_t val, const string_t& /*unused*/)\n    {\n        handle_value(val);\n        return true;\n    }\n\n    bool string(string_t& val)\n    {\n        handle_value(val);\n        return true;\n    }\n\n    bool binary(binary_t& val)\n    {\n        handle_value(std::move(val));\n        return true;\n    }\n\n    bool start_object(std::size_t len)\n    {\n        // check callback for object start\n        const bool keep = callback(static_cast<int>(ref_stack.size()), parse_event_t::object_start, discarded);\n        keep_stack.push_back(keep);\n\n        auto val = handle_value(BasicJsonType::value_t::object, true);\n        ref_stack.push_back(val.second);\n\n        // check object limit\n        if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != static_cast<std::size_t>(-1) && len > ref_stack.back()->max_size()))\n        {\n            JSON_THROW(out_of_range::create(408, concat(\"excessive object size: \", std::to_string(len)), ref_stack.back()));\n        }\n\n        return true;\n    }\n\n    bool key(string_t& val)\n    {\n        BasicJsonType k = BasicJsonType(val);\n\n        // check callback for key\n        const bool keep = callback(static_cast<int>(ref_stack.size()), parse_event_t::key, k);\n        key_keep_stack.push_back(keep);\n\n        // add discarded value at given key and store the reference for later\n        if (keep && ref_stack.back())\n        {\n            object_element = &(ref_stack.back()->m_data.m_value.object->operator[](val) = discarded);\n        }\n\n        return true;\n    }\n\n    bool end_object()\n    {\n        if (ref_stack.back())\n        {\n            if (!callback(static_cast<int>(ref_stack.size()) - 1, parse_event_t::object_end, *ref_stack.back()))\n            {\n                // discard object\n                *ref_stack.back() = discarded;\n            }\n            else\n            {\n                ref_stack.back()->set_parents();\n            }\n        }\n\n        JSON_ASSERT(!ref_stack.empty());\n        JSON_ASSERT(!keep_stack.empty());\n        ref_stack.pop_back();\n        keep_stack.pop_back();\n\n        if (!ref_stack.empty() && ref_stack.back() && ref_stack.back()->is_structured())\n        {\n            // remove discarded value\n            for (auto it = ref_stack.back()->begin(); it != ref_stack.back()->end(); ++it)\n            {\n                if (it->is_discarded())\n                {\n                    ref_stack.back()->erase(it);\n                    break;\n                }\n            }\n        }\n\n        return true;\n    }\n\n    bool start_array(std::size_t len)\n    {\n        const bool keep = callback(static_cast<int>(ref_stack.size()), parse_event_t::array_start, discarded);\n        keep_stack.push_back(keep);\n\n        auto val = handle_value(BasicJsonType::value_t::array, true);\n        ref_stack.push_back(val.second);\n\n        // check array limit\n        if (ref_stack.back() && JSON_HEDLEY_UNLIKELY(len != static_cast<std::size_t>(-1) && len > ref_stack.back()->max_size()))\n        {\n            JSON_THROW(out_of_range::create(408, concat(\"excessive array size: \", std::to_string(len)), ref_stack.back()));\n        }\n\n        return true;\n    }\n\n    bool end_array()\n    {\n        bool keep = true;\n\n        if (ref_stack.back())\n        {\n            keep = callback(static_cast<int>(ref_stack.size()) - 1, parse_event_t::array_end, *ref_stack.back());\n            if (keep)\n            {\n                ref_stack.back()->set_parents();\n            }\n            else\n            {\n                // discard array\n                *ref_stack.back() = discarded;\n            }\n        }\n\n        JSON_ASSERT(!ref_stack.empty());\n        JSON_ASSERT(!keep_stack.empty());\n        ref_stack.pop_back();\n        keep_stack.pop_back();\n\n        // remove discarded value\n        if (!keep && !ref_stack.empty() && ref_stack.back()->is_array())\n        {\n            ref_stack.back()->m_data.m_value.array->pop_back();\n        }\n\n        return true;\n    }\n\n    template<class Exception>\n    bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,\n                     const Exception& ex)\n    {\n        errored = true;\n        static_cast<void>(ex);\n        if (allow_exceptions)\n        {\n            JSON_THROW(ex);\n        }\n        return false;\n    }\n\n    constexpr bool is_errored() const\n    {\n        return errored;\n    }\n\n  private:\n    /*!\n    @param[in] v  value to add to the JSON value we build during parsing\n    @param[in] skip_callback  whether we should skip calling the callback\n               function; this is required after start_array() and\n               start_object() SAX events, because otherwise we would call the\n               callback function with an empty array or object, respectively.\n\n    @invariant If the ref stack is empty, then the passed value will be the new\n               root.\n    @invariant If the ref stack contains a value, then it is an array or an\n               object to which we can add elements\n\n    @return pair of boolean (whether value should be kept) and pointer (to the\n            passed value in the ref_stack hierarchy; nullptr if not kept)\n    */\n    template<typename Value>\n    std::pair<bool, BasicJsonType*> handle_value(Value&& v, const bool skip_callback = false)\n    {\n        JSON_ASSERT(!keep_stack.empty());\n\n        // do not handle this value if we know it would be added to a discarded\n        // container\n        if (!keep_stack.back())\n        {\n            return {false, nullptr};\n        }\n\n        // create value\n        auto value = BasicJsonType(std::forward<Value>(v));\n\n        // check callback\n        const bool keep = skip_callback || callback(static_cast<int>(ref_stack.size()), parse_event_t::value, value);\n\n        // do not handle this value if we just learnt it shall be discarded\n        if (!keep)\n        {\n            return {false, nullptr};\n        }\n\n        if (ref_stack.empty())\n        {\n            root = std::move(value);\n            return {true, &root};\n        }\n\n        // skip this value if we already decided to skip the parent\n        // (https://github.com/nlohmann/json/issues/971#issuecomment-413678360)\n        if (!ref_stack.back())\n        {\n            return {false, nullptr};\n        }\n\n        // we now only expect arrays and objects\n        JSON_ASSERT(ref_stack.back()->is_array() || ref_stack.back()->is_object());\n\n        // array\n        if (ref_stack.back()->is_array())\n        {\n            ref_stack.back()->m_data.m_value.array->emplace_back(std::move(value));\n            return {true, &(ref_stack.back()->m_data.m_value.array->back())};\n        }\n\n        // object\n        JSON_ASSERT(ref_stack.back()->is_object());\n        // check if we should store an element for the current key\n        JSON_ASSERT(!key_keep_stack.empty());\n        const bool store_element = key_keep_stack.back();\n        key_keep_stack.pop_back();\n\n        if (!store_element)\n        {\n            return {false, nullptr};\n        }\n\n        JSON_ASSERT(object_element);\n        *object_element = std::move(value);\n        return {true, object_element};\n    }\n\n    /// the parsed JSON value\n    BasicJsonType& root;\n    /// stack to model hierarchy of values\n    std::vector<BasicJsonType*> ref_stack {};\n    /// stack to manage which values to keep\n    std::vector<bool> keep_stack {};\n    /// stack to manage which object keys to keep\n    std::vector<bool> key_keep_stack {};\n    /// helper to hold the reference for the next object element\n    BasicJsonType* object_element = nullptr;\n    /// whether a syntax error occurred\n    bool errored = false;\n    /// callback function\n    const parser_callback_t callback = nullptr;\n    /// whether to throw exceptions in case of errors\n    const bool allow_exceptions = true;\n    /// a discarded value for the callback\n    BasicJsonType discarded = BasicJsonType::value_t::discarded;\n};\n\ntemplate<typename BasicJsonType>\nclass json_sax_acceptor\n{\n  public:\n    using number_integer_t = typename BasicJsonType::number_integer_t;\n    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;\n    using number_float_t = typename BasicJsonType::number_float_t;\n    using string_t = typename BasicJsonType::string_t;\n    using binary_t = typename BasicJsonType::binary_t;\n\n    bool null()\n    {\n        return true;\n    }\n\n    bool boolean(bool /*unused*/)\n    {\n        return true;\n    }\n\n    bool number_integer(number_integer_t /*unused*/)\n    {\n        return true;\n    }\n\n    bool number_unsigned(number_unsigned_t /*unused*/)\n    {\n        return true;\n    }\n\n    bool number_float(number_float_t /*unused*/, const string_t& /*unused*/)\n    {\n        return true;\n    }\n\n    bool string(string_t& /*unused*/)\n    {\n        return true;\n    }\n\n    bool binary(binary_t& /*unused*/)\n    {\n        return true;\n    }\n\n    bool start_object(std::size_t /*unused*/ = static_cast<std::size_t>(-1))\n    {\n        return true;\n    }\n\n    bool key(string_t& /*unused*/)\n    {\n        return true;\n    }\n\n    bool end_object()\n    {\n        return true;\n    }\n\n    bool start_array(std::size_t /*unused*/ = static_cast<std::size_t>(-1))\n    {\n        return true;\n    }\n\n    bool end_array()\n    {\n        return true;\n    }\n\n    bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, const detail::exception& /*unused*/)\n    {\n        return false;\n    }\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/input/lexer.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <array> // array\n#include <clocale> // localeconv\n#include <cstddef> // size_t\n#include <cstdio> // snprintf\n#include <cstdlib> // strtof, strtod, strtold, strtoll, strtoull\n#include <initializer_list> // initializer_list\n#include <string> // char_traits, string\n#include <utility> // move\n#include <vector> // vector\n\n// #include <nlohmann/detail/input/input_adapters.hpp>\n\n// #include <nlohmann/detail/input/position_t.hpp>\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n///////////\n// lexer //\n///////////\n\ntemplate<typename BasicJsonType>\nclass lexer_base\n{\n  public:\n    /// token types for the parser\n    enum class token_type\n    {\n        uninitialized,    ///< indicating the scanner is uninitialized\n        literal_true,     ///< the `true` literal\n        literal_false,    ///< the `false` literal\n        literal_null,     ///< the `null` literal\n        value_string,     ///< a string -- use get_string() for actual value\n        value_unsigned,   ///< an unsigned integer -- use get_number_unsigned() for actual value\n        value_integer,    ///< a signed integer -- use get_number_integer() for actual value\n        value_float,      ///< an floating point number -- use get_number_float() for actual value\n        begin_array,      ///< the character for array begin `[`\n        begin_object,     ///< the character for object begin `{`\n        end_array,        ///< the character for array end `]`\n        end_object,       ///< the character for object end `}`\n        name_separator,   ///< the name separator `:`\n        value_separator,  ///< the value separator `,`\n        parse_error,      ///< indicating a parse error\n        end_of_input,     ///< indicating the end of the input buffer\n        literal_or_value  ///< a literal or the begin of a value (only for diagnostics)\n    };\n\n    /// return name of values of type token_type (only used for errors)\n    JSON_HEDLEY_RETURNS_NON_NULL\n    JSON_HEDLEY_CONST\n    static const char* token_type_name(const token_type t) noexcept\n    {\n        switch (t)\n        {\n            case token_type::uninitialized:\n                return \"<uninitialized>\";\n            case token_type::literal_true:\n                return \"true literal\";\n            case token_type::literal_false:\n                return \"false literal\";\n            case token_type::literal_null:\n                return \"null literal\";\n            case token_type::value_string:\n                return \"string literal\";\n            case token_type::value_unsigned:\n            case token_type::value_integer:\n            case token_type::value_float:\n                return \"number literal\";\n            case token_type::begin_array:\n                return \"'['\";\n            case token_type::begin_object:\n                return \"'{'\";\n            case token_type::end_array:\n                return \"']'\";\n            case token_type::end_object:\n                return \"'}'\";\n            case token_type::name_separator:\n                return \"':'\";\n            case token_type::value_separator:\n                return \"','\";\n            case token_type::parse_error:\n                return \"<parse error>\";\n            case token_type::end_of_input:\n                return \"end of input\";\n            case token_type::literal_or_value:\n                return \"'[', '{', or a literal\";\n            // LCOV_EXCL_START\n            default: // catch non-enum values\n                return \"unknown token\";\n                // LCOV_EXCL_STOP\n        }\n    }\n};\n/*!\n@brief lexical analysis\n\nThis class organizes the lexical analysis during JSON deserialization.\n*/\ntemplate<typename BasicJsonType, typename InputAdapterType>\nclass lexer : public lexer_base<BasicJsonType>\n{\n    using number_integer_t = typename BasicJsonType::number_integer_t;\n    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;\n    using number_float_t = typename BasicJsonType::number_float_t;\n    using string_t = typename BasicJsonType::string_t;\n    using char_type = typename InputAdapterType::char_type;\n    using char_int_type = typename std::char_traits<char_type>::int_type;\n\n  public:\n    using token_type = typename lexer_base<BasicJsonType>::token_type;\n\n    explicit lexer(InputAdapterType&& adapter, bool ignore_comments_ = false) noexcept\n        : ia(std::move(adapter))\n        , ignore_comments(ignore_comments_)\n        , decimal_point_char(static_cast<char_int_type>(get_decimal_point()))\n    {}\n\n    // delete because of pointer members\n    lexer(const lexer&) = delete;\n    lexer(lexer&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor)\n    lexer& operator=(lexer&) = delete;\n    lexer& operator=(lexer&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor)\n    ~lexer() = default;\n\n  private:\n    /////////////////////\n    // locales\n    /////////////////////\n\n    /// return the locale-dependent decimal point\n    JSON_HEDLEY_PURE\n    static char get_decimal_point() noexcept\n    {\n        const auto* loc = localeconv();\n        JSON_ASSERT(loc != nullptr);\n        return (loc->decimal_point == nullptr) ? '.' : *(loc->decimal_point);\n    }\n\n    /////////////////////\n    // scan functions\n    /////////////////////\n\n    /*!\n    @brief get codepoint from 4 hex characters following `\\u`\n\n    For input \"\\u c1 c2 c3 c4\" the codepoint is:\n      (c1 * 0x1000) + (c2 * 0x0100) + (c3 * 0x0010) + c4\n    = (c1 << 12) + (c2 << 8) + (c3 << 4) + (c4 << 0)\n\n    Furthermore, the possible characters '0'..'9', 'A'..'F', and 'a'..'f'\n    must be converted to the integers 0x0..0x9, 0xA..0xF, 0xA..0xF, resp. The\n    conversion is done by subtracting the offset (0x30, 0x37, and 0x57)\n    between the ASCII value of the character and the desired integer value.\n\n    @return codepoint (0x0000..0xFFFF) or -1 in case of an error (e.g. EOF or\n            non-hex character)\n    */\n    int get_codepoint()\n    {\n        // this function only makes sense after reading `\\u`\n        JSON_ASSERT(current == 'u');\n        int codepoint = 0;\n\n        const auto factors = { 12u, 8u, 4u, 0u };\n        for (const auto factor : factors)\n        {\n            get();\n\n            if (current >= '0' && current <= '9')\n            {\n                codepoint += static_cast<int>((static_cast<unsigned int>(current) - 0x30u) << factor);\n            }\n            else if (current >= 'A' && current <= 'F')\n            {\n                codepoint += static_cast<int>((static_cast<unsigned int>(current) - 0x37u) << factor);\n            }\n            else if (current >= 'a' && current <= 'f')\n            {\n                codepoint += static_cast<int>((static_cast<unsigned int>(current) - 0x57u) << factor);\n            }\n            else\n            {\n                return -1;\n            }\n        }\n\n        JSON_ASSERT(0x0000 <= codepoint && codepoint <= 0xFFFF);\n        return codepoint;\n    }\n\n    /*!\n    @brief check if the next byte(s) are inside a given range\n\n    Adds the current byte and, for each passed range, reads a new byte and\n    checks if it is inside the range. If a violation was detected, set up an\n    error message and return false. Otherwise, return true.\n\n    @param[in] ranges  list of integers; interpreted as list of pairs of\n                       inclusive lower and upper bound, respectively\n\n    @pre The passed list @a ranges must have 2, 4, or 6 elements; that is,\n         1, 2, or 3 pairs. This precondition is enforced by an assertion.\n\n    @return true if and only if no range violation was detected\n    */\n    bool next_byte_in_range(std::initializer_list<char_int_type> ranges)\n    {\n        JSON_ASSERT(ranges.size() == 2 || ranges.size() == 4 || ranges.size() == 6);\n        add(current);\n\n        for (auto range = ranges.begin(); range != ranges.end(); ++range)\n        {\n            get();\n            if (JSON_HEDLEY_LIKELY(*range <= current && current <= *(++range)))\n            {\n                add(current);\n            }\n            else\n            {\n                error_message = \"invalid string: ill-formed UTF-8 byte\";\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /*!\n    @brief scan a string literal\n\n    This function scans a string according to Sect. 7 of RFC 8259. While\n    scanning, bytes are escaped and copied into buffer token_buffer. Then the\n    function returns successfully, token_buffer is *not* null-terminated (as it\n    may contain \\0 bytes), and token_buffer.size() is the number of bytes in the\n    string.\n\n    @return token_type::value_string if string could be successfully scanned,\n            token_type::parse_error otherwise\n\n    @note In case of errors, variable error_message contains a textual\n          description.\n    */\n    token_type scan_string()\n    {\n        // reset token_buffer (ignore opening quote)\n        reset();\n\n        // we entered the function by reading an open quote\n        JSON_ASSERT(current == '\\\"');\n\n        while (true)\n        {\n            // get next character\n            switch (get())\n            {\n                // end of file while parsing string\n                case std::char_traits<char_type>::eof():\n                {\n                    error_message = \"invalid string: missing closing quote\";\n                    return token_type::parse_error;\n                }\n\n                // closing quote\n                case '\\\"':\n                {\n                    return token_type::value_string;\n                }\n\n                // escapes\n                case '\\\\':\n                {\n                    switch (get())\n                    {\n                        // quotation mark\n                        case '\\\"':\n                            add('\\\"');\n                            break;\n                        // reverse solidus\n                        case '\\\\':\n                            add('\\\\');\n                            break;\n                        // solidus\n                        case '/':\n                            add('/');\n                            break;\n                        // backspace\n                        case 'b':\n                            add('\\b');\n                            break;\n                        // form feed\n                        case 'f':\n                            add('\\f');\n                            break;\n                        // line feed\n                        case 'n':\n                            add('\\n');\n                            break;\n                        // carriage return\n                        case 'r':\n                            add('\\r');\n                            break;\n                        // tab\n                        case 't':\n                            add('\\t');\n                            break;\n\n                        // unicode escapes\n                        case 'u':\n                        {\n                            const int codepoint1 = get_codepoint();\n                            int codepoint = codepoint1; // start with codepoint1\n\n                            if (JSON_HEDLEY_UNLIKELY(codepoint1 == -1))\n                            {\n                                error_message = \"invalid string: '\\\\u' must be followed by 4 hex digits\";\n                                return token_type::parse_error;\n                            }\n\n                            // check if code point is a high surrogate\n                            if (0xD800 <= codepoint1 && codepoint1 <= 0xDBFF)\n                            {\n                                // expect next \\uxxxx entry\n                                if (JSON_HEDLEY_LIKELY(get() == '\\\\' && get() == 'u'))\n                                {\n                                    const int codepoint2 = get_codepoint();\n\n                                    if (JSON_HEDLEY_UNLIKELY(codepoint2 == -1))\n                                    {\n                                        error_message = \"invalid string: '\\\\u' must be followed by 4 hex digits\";\n                                        return token_type::parse_error;\n                                    }\n\n                                    // check if codepoint2 is a low surrogate\n                                    if (JSON_HEDLEY_LIKELY(0xDC00 <= codepoint2 && codepoint2 <= 0xDFFF))\n                                    {\n                                        // overwrite codepoint\n                                        codepoint = static_cast<int>(\n                                                        // high surrogate occupies the most significant 22 bits\n                                                        (static_cast<unsigned int>(codepoint1) << 10u)\n                                                        // low surrogate occupies the least significant 15 bits\n                                                        + static_cast<unsigned int>(codepoint2)\n                                                        // there is still the 0xD800, 0xDC00 and 0x10000 noise\n                                                        // in the result, so we have to subtract with:\n                                                        // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00\n                                                        - 0x35FDC00u);\n                                    }\n                                    else\n                                    {\n                                        error_message = \"invalid string: surrogate U+D800..U+DBFF must be followed by U+DC00..U+DFFF\";\n                                        return token_type::parse_error;\n                                    }\n                                }\n                                else\n                                {\n                                    error_message = \"invalid string: surrogate U+D800..U+DBFF must be followed by U+DC00..U+DFFF\";\n                                    return token_type::parse_error;\n                                }\n                            }\n                            else\n                            {\n                                if (JSON_HEDLEY_UNLIKELY(0xDC00 <= codepoint1 && codepoint1 <= 0xDFFF))\n                                {\n                                    error_message = \"invalid string: surrogate U+DC00..U+DFFF must follow U+D800..U+DBFF\";\n                                    return token_type::parse_error;\n                                }\n                            }\n\n                            // result of the above calculation yields a proper codepoint\n                            JSON_ASSERT(0x00 <= codepoint && codepoint <= 0x10FFFF);\n\n                            // translate codepoint into bytes\n                            if (codepoint < 0x80)\n                            {\n                                // 1-byte characters: 0xxxxxxx (ASCII)\n                                add(static_cast<char_int_type>(codepoint));\n                            }\n                            else if (codepoint <= 0x7FF)\n                            {\n                                // 2-byte characters: 110xxxxx 10xxxxxx\n                                add(static_cast<char_int_type>(0xC0u | (static_cast<unsigned int>(codepoint) >> 6u)));\n                                add(static_cast<char_int_type>(0x80u | (static_cast<unsigned int>(codepoint) & 0x3Fu)));\n                            }\n                            else if (codepoint <= 0xFFFF)\n                            {\n                                // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx\n                                add(static_cast<char_int_type>(0xE0u | (static_cast<unsigned int>(codepoint) >> 12u)));\n                                add(static_cast<char_int_type>(0x80u | ((static_cast<unsigned int>(codepoint) >> 6u) & 0x3Fu)));\n                                add(static_cast<char_int_type>(0x80u | (static_cast<unsigned int>(codepoint) & 0x3Fu)));\n                            }\n                            else\n                            {\n                                // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n                                add(static_cast<char_int_type>(0xF0u | (static_cast<unsigned int>(codepoint) >> 18u)));\n                                add(static_cast<char_int_type>(0x80u | ((static_cast<unsigned int>(codepoint) >> 12u) & 0x3Fu)));\n                                add(static_cast<char_int_type>(0x80u | ((static_cast<unsigned int>(codepoint) >> 6u) & 0x3Fu)));\n                                add(static_cast<char_int_type>(0x80u | (static_cast<unsigned int>(codepoint) & 0x3Fu)));\n                            }\n\n                            break;\n                        }\n\n                        // other characters after escape\n                        default:\n                            error_message = \"invalid string: forbidden character after backslash\";\n                            return token_type::parse_error;\n                    }\n\n                    break;\n                }\n\n                // invalid control characters\n                case 0x00:\n                {\n                    error_message = \"invalid string: control character U+0000 (NUL) must be escaped to \\\\u0000\";\n                    return token_type::parse_error;\n                }\n\n                case 0x01:\n                {\n                    error_message = \"invalid string: control character U+0001 (SOH) must be escaped to \\\\u0001\";\n                    return token_type::parse_error;\n                }\n\n                case 0x02:\n                {\n                    error_message = \"invalid string: control character U+0002 (STX) must be escaped to \\\\u0002\";\n                    return token_type::parse_error;\n                }\n\n                case 0x03:\n                {\n                    error_message = \"invalid string: control character U+0003 (ETX) must be escaped to \\\\u0003\";\n                    return token_type::parse_error;\n                }\n\n                case 0x04:\n                {\n                    error_message = \"invalid string: control character U+0004 (EOT) must be escaped to \\\\u0004\";\n                    return token_type::parse_error;\n                }\n\n                case 0x05:\n                {\n                    error_message = \"invalid string: control character U+0005 (ENQ) must be escaped to \\\\u0005\";\n                    return token_type::parse_error;\n                }\n\n                case 0x06:\n                {\n                    error_message = \"invalid string: control character U+0006 (ACK) must be escaped to \\\\u0006\";\n                    return token_type::parse_error;\n                }\n\n                case 0x07:\n                {\n                    error_message = \"invalid string: control character U+0007 (BEL) must be escaped to \\\\u0007\";\n                    return token_type::parse_error;\n                }\n\n                case 0x08:\n                {\n                    error_message = \"invalid string: control character U+0008 (BS) must be escaped to \\\\u0008 or \\\\b\";\n                    return token_type::parse_error;\n                }\n\n                case 0x09:\n                {\n                    error_message = \"invalid string: control character U+0009 (HT) must be escaped to \\\\u0009 or \\\\t\";\n                    return token_type::parse_error;\n                }\n\n                case 0x0A:\n                {\n                    error_message = \"invalid string: control character U+000A (LF) must be escaped to \\\\u000A or \\\\n\";\n                    return token_type::parse_error;\n                }\n\n                case 0x0B:\n                {\n                    error_message = \"invalid string: control character U+000B (VT) must be escaped to \\\\u000B\";\n                    return token_type::parse_error;\n                }\n\n                case 0x0C:\n                {\n                    error_message = \"invalid string: control character U+000C (FF) must be escaped to \\\\u000C or \\\\f\";\n                    return token_type::parse_error;\n                }\n\n                case 0x0D:\n                {\n                    error_message = \"invalid string: control character U+000D (CR) must be escaped to \\\\u000D or \\\\r\";\n                    return token_type::parse_error;\n                }\n\n                case 0x0E:\n                {\n                    error_message = \"invalid string: control character U+000E (SO) must be escaped to \\\\u000E\";\n                    return token_type::parse_error;\n                }\n\n                case 0x0F:\n                {\n                    error_message = \"invalid string: control character U+000F (SI) must be escaped to \\\\u000F\";\n                    return token_type::parse_error;\n                }\n\n                case 0x10:\n                {\n                    error_message = \"invalid string: control character U+0010 (DLE) must be escaped to \\\\u0010\";\n                    return token_type::parse_error;\n                }\n\n                case 0x11:\n                {\n                    error_message = \"invalid string: control character U+0011 (DC1) must be escaped to \\\\u0011\";\n                    return token_type::parse_error;\n                }\n\n                case 0x12:\n                {\n                    error_message = \"invalid string: control character U+0012 (DC2) must be escaped to \\\\u0012\";\n                    return token_type::parse_error;\n                }\n\n                case 0x13:\n                {\n                    error_message = \"invalid string: control character U+0013 (DC3) must be escaped to \\\\u0013\";\n                    return token_type::parse_error;\n                }\n\n                case 0x14:\n                {\n                    error_message = \"invalid string: control character U+0014 (DC4) must be escaped to \\\\u0014\";\n                    return token_type::parse_error;\n                }\n\n                case 0x15:\n                {\n                    error_message = \"invalid string: control character U+0015 (NAK) must be escaped to \\\\u0015\";\n                    return token_type::parse_error;\n                }\n\n                case 0x16:\n                {\n                    error_message = \"invalid string: control character U+0016 (SYN) must be escaped to \\\\u0016\";\n                    return token_type::parse_error;\n                }\n\n                case 0x17:\n                {\n                    error_message = \"invalid string: control character U+0017 (ETB) must be escaped to \\\\u0017\";\n                    return token_type::parse_error;\n                }\n\n                case 0x18:\n                {\n                    error_message = \"invalid string: control character U+0018 (CAN) must be escaped to \\\\u0018\";\n                    return token_type::parse_error;\n                }\n\n                case 0x19:\n                {\n                    error_message = \"invalid string: control character U+0019 (EM) must be escaped to \\\\u0019\";\n                    return token_type::parse_error;\n                }\n\n                case 0x1A:\n                {\n                    error_message = \"invalid string: control character U+001A (SUB) must be escaped to \\\\u001A\";\n                    return token_type::parse_error;\n                }\n\n                case 0x1B:\n                {\n                    error_message = \"invalid string: control character U+001B (ESC) must be escaped to \\\\u001B\";\n                    return token_type::parse_error;\n                }\n\n                case 0x1C:\n                {\n                    error_message = \"invalid string: control character U+001C (FS) must be escaped to \\\\u001C\";\n                    return token_type::parse_error;\n                }\n\n                case 0x1D:\n                {\n                    error_message = \"invalid string: control character U+001D (GS) must be escaped to \\\\u001D\";\n                    return token_type::parse_error;\n                }\n\n                case 0x1E:\n                {\n                    error_message = \"invalid string: control character U+001E (RS) must be escaped to \\\\u001E\";\n                    return token_type::parse_error;\n                }\n\n                case 0x1F:\n                {\n                    error_message = \"invalid string: control character U+001F (US) must be escaped to \\\\u001F\";\n                    return token_type::parse_error;\n                }\n\n                // U+0020..U+007F (except U+0022 (quote) and U+005C (backspace))\n                case 0x20:\n                case 0x21:\n                case 0x23:\n                case 0x24:\n                case 0x25:\n                case 0x26:\n                case 0x27:\n                case 0x28:\n                case 0x29:\n                case 0x2A:\n                case 0x2B:\n                case 0x2C:\n                case 0x2D:\n                case 0x2E:\n                case 0x2F:\n                case 0x30:\n                case 0x31:\n                case 0x32:\n                case 0x33:\n                case 0x34:\n                case 0x35:\n                case 0x36:\n                case 0x37:\n                case 0x38:\n                case 0x39:\n                case 0x3A:\n                case 0x3B:\n                case 0x3C:\n                case 0x3D:\n                case 0x3E:\n                case 0x3F:\n                case 0x40:\n                case 0x41:\n                case 0x42:\n                case 0x43:\n                case 0x44:\n                case 0x45:\n                case 0x46:\n                case 0x47:\n                case 0x48:\n                case 0x49:\n                case 0x4A:\n                case 0x4B:\n                case 0x4C:\n                case 0x4D:\n                case 0x4E:\n                case 0x4F:\n                case 0x50:\n                case 0x51:\n                case 0x52:\n                case 0x53:\n                case 0x54:\n                case 0x55:\n                case 0x56:\n                case 0x57:\n                case 0x58:\n                case 0x59:\n                case 0x5A:\n                case 0x5B:\n                case 0x5D:\n                case 0x5E:\n                case 0x5F:\n                case 0x60:\n                case 0x61:\n                case 0x62:\n                case 0x63:\n                case 0x64:\n                case 0x65:\n                case 0x66:\n                case 0x67:\n                case 0x68:\n                case 0x69:\n                case 0x6A:\n                case 0x6B:\n                case 0x6C:\n                case 0x6D:\n                case 0x6E:\n                case 0x6F:\n                case 0x70:\n                case 0x71:\n                case 0x72:\n                case 0x73:\n                case 0x74:\n                case 0x75:\n                case 0x76:\n                case 0x77:\n                case 0x78:\n                case 0x79:\n                case 0x7A:\n                case 0x7B:\n                case 0x7C:\n                case 0x7D:\n                case 0x7E:\n                case 0x7F:\n                {\n                    add(current);\n                    break;\n                }\n\n                // U+0080..U+07FF: bytes C2..DF 80..BF\n                case 0xC2:\n                case 0xC3:\n                case 0xC4:\n                case 0xC5:\n                case 0xC6:\n                case 0xC7:\n                case 0xC8:\n                case 0xC9:\n                case 0xCA:\n                case 0xCB:\n                case 0xCC:\n                case 0xCD:\n                case 0xCE:\n                case 0xCF:\n                case 0xD0:\n                case 0xD1:\n                case 0xD2:\n                case 0xD3:\n                case 0xD4:\n                case 0xD5:\n                case 0xD6:\n                case 0xD7:\n                case 0xD8:\n                case 0xD9:\n                case 0xDA:\n                case 0xDB:\n                case 0xDC:\n                case 0xDD:\n                case 0xDE:\n                case 0xDF:\n                {\n                    if (JSON_HEDLEY_UNLIKELY(!next_byte_in_range({0x80, 0xBF})))\n                    {\n                        return token_type::parse_error;\n                    }\n                    break;\n                }\n\n                // U+0800..U+0FFF: bytes E0 A0..BF 80..BF\n                case 0xE0:\n                {\n                    if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0xA0, 0xBF, 0x80, 0xBF}))))\n                    {\n                        return token_type::parse_error;\n                    }\n                    break;\n                }\n\n                // U+1000..U+CFFF: bytes E1..EC 80..BF 80..BF\n                // U+E000..U+FFFF: bytes EE..EF 80..BF 80..BF\n                case 0xE1:\n                case 0xE2:\n                case 0xE3:\n                case 0xE4:\n                case 0xE5:\n                case 0xE6:\n                case 0xE7:\n                case 0xE8:\n                case 0xE9:\n                case 0xEA:\n                case 0xEB:\n                case 0xEC:\n                case 0xEE:\n                case 0xEF:\n                {\n                    if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x80, 0xBF, 0x80, 0xBF}))))\n                    {\n                        return token_type::parse_error;\n                    }\n                    break;\n                }\n\n                // U+D000..U+D7FF: bytes ED 80..9F 80..BF\n                case 0xED:\n                {\n                    if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x80, 0x9F, 0x80, 0xBF}))))\n                    {\n                        return token_type::parse_error;\n                    }\n                    break;\n                }\n\n                // U+10000..U+3FFFF F0 90..BF 80..BF 80..BF\n                case 0xF0:\n                {\n                    if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x90, 0xBF, 0x80, 0xBF, 0x80, 0xBF}))))\n                    {\n                        return token_type::parse_error;\n                    }\n                    break;\n                }\n\n                // U+40000..U+FFFFF F1..F3 80..BF 80..BF 80..BF\n                case 0xF1:\n                case 0xF2:\n                case 0xF3:\n                {\n                    if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x80, 0xBF, 0x80, 0xBF, 0x80, 0xBF}))))\n                    {\n                        return token_type::parse_error;\n                    }\n                    break;\n                }\n\n                // U+100000..U+10FFFF F4 80..8F 80..BF 80..BF\n                case 0xF4:\n                {\n                    if (JSON_HEDLEY_UNLIKELY(!(next_byte_in_range({0x80, 0x8F, 0x80, 0xBF, 0x80, 0xBF}))))\n                    {\n                        return token_type::parse_error;\n                    }\n                    break;\n                }\n\n                // remaining bytes (80..C1 and F5..FF) are ill-formed\n                default:\n                {\n                    error_message = \"invalid string: ill-formed UTF-8 byte\";\n                    return token_type::parse_error;\n                }\n            }\n        }\n    }\n\n    /*!\n     * @brief scan a comment\n     * @return whether comment could be scanned successfully\n     */\n    bool scan_comment()\n    {\n        switch (get())\n        {\n            // single-line comments skip input until a newline or EOF is read\n            case '/':\n            {\n                while (true)\n                {\n                    switch (get())\n                    {\n                        case '\\n':\n                        case '\\r':\n                        case std::char_traits<char_type>::eof():\n                        case '\\0':\n                            return true;\n\n                        default:\n                            break;\n                    }\n                }\n            }\n\n            // multi-line comments skip input until */ is read\n            case '*':\n            {\n                while (true)\n                {\n                    switch (get())\n                    {\n                        case std::char_traits<char_type>::eof():\n                        case '\\0':\n                        {\n                            error_message = \"invalid comment; missing closing '*/'\";\n                            return false;\n                        }\n\n                        case '*':\n                        {\n                            switch (get())\n                            {\n                                case '/':\n                                    return true;\n\n                                default:\n                                {\n                                    unget();\n                                    continue;\n                                }\n                            }\n                        }\n\n                        default:\n                            continue;\n                    }\n                }\n            }\n\n            // unexpected character after reading '/'\n            default:\n            {\n                error_message = \"invalid comment; expecting '/' or '*' after '/'\";\n                return false;\n            }\n        }\n    }\n\n    JSON_HEDLEY_NON_NULL(2)\n    static void strtof(float& f, const char* str, char** endptr) noexcept\n    {\n        f = std::strtof(str, endptr);\n    }\n\n    JSON_HEDLEY_NON_NULL(2)\n    static void strtof(double& f, const char* str, char** endptr) noexcept\n    {\n        f = std::strtod(str, endptr);\n    }\n\n    JSON_HEDLEY_NON_NULL(2)\n    static void strtof(long double& f, const char* str, char** endptr) noexcept\n    {\n        f = std::strtold(str, endptr);\n    }\n\n    /*!\n    @brief scan a number literal\n\n    This function scans a string according to Sect. 6 of RFC 8259.\n\n    The function is realized with a deterministic finite state machine derived\n    from the grammar described in RFC 8259. Starting in state \"init\", the\n    input is read and used to determined the next state. Only state \"done\"\n    accepts the number. State \"error\" is a trap state to model errors. In the\n    table below, \"anything\" means any character but the ones listed before.\n\n    state    | 0        | 1-9      | e E      | +       | -       | .        | anything\n    ---------|----------|----------|----------|---------|---------|----------|-----------\n    init     | zero     | any1     | [error]  | [error] | minus   | [error]  | [error]\n    minus    | zero     | any1     | [error]  | [error] | [error] | [error]  | [error]\n    zero     | done     | done     | exponent | done    | done    | decimal1 | done\n    any1     | any1     | any1     | exponent | done    | done    | decimal1 | done\n    decimal1 | decimal2 | decimal2 | [error]  | [error] | [error] | [error]  | [error]\n    decimal2 | decimal2 | decimal2 | exponent | done    | done    | done     | done\n    exponent | any2     | any2     | [error]  | sign    | sign    | [error]  | [error]\n    sign     | any2     | any2     | [error]  | [error] | [error] | [error]  | [error]\n    any2     | any2     | any2     | done     | done    | done    | done     | done\n\n    The state machine is realized with one label per state (prefixed with\n    \"scan_number_\") and `goto` statements between them. The state machine\n    contains cycles, but any cycle can be left when EOF is read. Therefore,\n    the function is guaranteed to terminate.\n\n    During scanning, the read bytes are stored in token_buffer. This string is\n    then converted to a signed integer, an unsigned integer, or a\n    floating-point number.\n\n    @return token_type::value_unsigned, token_type::value_integer, or\n            token_type::value_float if number could be successfully scanned,\n            token_type::parse_error otherwise\n\n    @note The scanner is independent of the current locale. Internally, the\n          locale's decimal point is used instead of `.` to work with the\n          locale-dependent converters.\n    */\n    token_type scan_number()  // lgtm [cpp/use-of-goto]\n    {\n        // reset token_buffer to store the number's bytes\n        reset();\n\n        // the type of the parsed number; initially set to unsigned; will be\n        // changed if minus sign, decimal point or exponent is read\n        token_type number_type = token_type::value_unsigned;\n\n        // state (init): we just found out we need to scan a number\n        switch (current)\n        {\n            case '-':\n            {\n                add(current);\n                goto scan_number_minus;\n            }\n\n            case '0':\n            {\n                add(current);\n                goto scan_number_zero;\n            }\n\n            case '1':\n            case '2':\n            case '3':\n            case '4':\n            case '5':\n            case '6':\n            case '7':\n            case '8':\n            case '9':\n            {\n                add(current);\n                goto scan_number_any1;\n            }\n\n            // all other characters are rejected outside scan_number()\n            default:            // LCOV_EXCL_LINE\n                JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE\n        }\n\nscan_number_minus:\n        // state: we just parsed a leading minus sign\n        number_type = token_type::value_integer;\n        switch (get())\n        {\n            case '0':\n            {\n                add(current);\n                goto scan_number_zero;\n            }\n\n            case '1':\n            case '2':\n            case '3':\n            case '4':\n            case '5':\n            case '6':\n            case '7':\n            case '8':\n            case '9':\n            {\n                add(current);\n                goto scan_number_any1;\n            }\n\n            default:\n            {\n                error_message = \"invalid number; expected digit after '-'\";\n                return token_type::parse_error;\n            }\n        }\n\nscan_number_zero:\n        // state: we just parse a zero (maybe with a leading minus sign)\n        switch (get())\n        {\n            case '.':\n            {\n                add(decimal_point_char);\n                goto scan_number_decimal1;\n            }\n\n            case 'e':\n            case 'E':\n            {\n                add(current);\n                goto scan_number_exponent;\n            }\n\n            default:\n                goto scan_number_done;\n        }\n\nscan_number_any1:\n        // state: we just parsed a number 0-9 (maybe with a leading minus sign)\n        switch (get())\n        {\n            case '0':\n            case '1':\n            case '2':\n            case '3':\n            case '4':\n            case '5':\n            case '6':\n            case '7':\n            case '8':\n            case '9':\n            {\n                add(current);\n                goto scan_number_any1;\n            }\n\n            case '.':\n            {\n                add(decimal_point_char);\n                goto scan_number_decimal1;\n            }\n\n            case 'e':\n            case 'E':\n            {\n                add(current);\n                goto scan_number_exponent;\n            }\n\n            default:\n                goto scan_number_done;\n        }\n\nscan_number_decimal1:\n        // state: we just parsed a decimal point\n        number_type = token_type::value_float;\n        switch (get())\n        {\n            case '0':\n            case '1':\n            case '2':\n            case '3':\n            case '4':\n            case '5':\n            case '6':\n            case '7':\n            case '8':\n            case '9':\n            {\n                add(current);\n                goto scan_number_decimal2;\n            }\n\n            default:\n            {\n                error_message = \"invalid number; expected digit after '.'\";\n                return token_type::parse_error;\n            }\n        }\n\nscan_number_decimal2:\n        // we just parsed at least one number after a decimal point\n        switch (get())\n        {\n            case '0':\n            case '1':\n            case '2':\n            case '3':\n            case '4':\n            case '5':\n            case '6':\n            case '7':\n            case '8':\n            case '9':\n            {\n                add(current);\n                goto scan_number_decimal2;\n            }\n\n            case 'e':\n            case 'E':\n            {\n                add(current);\n                goto scan_number_exponent;\n            }\n\n            default:\n                goto scan_number_done;\n        }\n\nscan_number_exponent:\n        // we just parsed an exponent\n        number_type = token_type::value_float;\n        switch (get())\n        {\n            case '+':\n            case '-':\n            {\n                add(current);\n                goto scan_number_sign;\n            }\n\n            case '0':\n            case '1':\n            case '2':\n            case '3':\n            case '4':\n            case '5':\n            case '6':\n            case '7':\n            case '8':\n            case '9':\n            {\n                add(current);\n                goto scan_number_any2;\n            }\n\n            default:\n            {\n                error_message =\n                    \"invalid number; expected '+', '-', or digit after exponent\";\n                return token_type::parse_error;\n            }\n        }\n\nscan_number_sign:\n        // we just parsed an exponent sign\n        switch (get())\n        {\n            case '0':\n            case '1':\n            case '2':\n            case '3':\n            case '4':\n            case '5':\n            case '6':\n            case '7':\n            case '8':\n            case '9':\n            {\n                add(current);\n                goto scan_number_any2;\n            }\n\n            default:\n            {\n                error_message = \"invalid number; expected digit after exponent sign\";\n                return token_type::parse_error;\n            }\n        }\n\nscan_number_any2:\n        // we just parsed a number after the exponent or exponent sign\n        switch (get())\n        {\n            case '0':\n            case '1':\n            case '2':\n            case '3':\n            case '4':\n            case '5':\n            case '6':\n            case '7':\n            case '8':\n            case '9':\n            {\n                add(current);\n                goto scan_number_any2;\n            }\n\n            default:\n                goto scan_number_done;\n        }\n\nscan_number_done:\n        // unget the character after the number (we only read it to know that\n        // we are done scanning a number)\n        unget();\n\n        char* endptr = nullptr; // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg)\n        errno = 0;\n\n        // try to parse integers first and fall back to floats\n        if (number_type == token_type::value_unsigned)\n        {\n            const auto x = std::strtoull(token_buffer.data(), &endptr, 10);\n\n            // we checked the number format before\n            JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size());\n\n            if (errno == 0)\n            {\n                value_unsigned = static_cast<number_unsigned_t>(x);\n                if (value_unsigned == x)\n                {\n                    return token_type::value_unsigned;\n                }\n            }\n        }\n        else if (number_type == token_type::value_integer)\n        {\n            const auto x = std::strtoll(token_buffer.data(), &endptr, 10);\n\n            // we checked the number format before\n            JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size());\n\n            if (errno == 0)\n            {\n                value_integer = static_cast<number_integer_t>(x);\n                if (value_integer == x)\n                {\n                    return token_type::value_integer;\n                }\n            }\n        }\n\n        // this code is reached if we parse a floating-point number or if an\n        // integer conversion above failed\n        strtof(value_float, token_buffer.data(), &endptr);\n\n        // we checked the number format before\n        JSON_ASSERT(endptr == token_buffer.data() + token_buffer.size());\n\n        return token_type::value_float;\n    }\n\n    /*!\n    @param[in] literal_text  the literal text to expect\n    @param[in] length        the length of the passed literal text\n    @param[in] return_type   the token type to return on success\n    */\n    JSON_HEDLEY_NON_NULL(2)\n    token_type scan_literal(const char_type* literal_text, const std::size_t length,\n                            token_type return_type)\n    {\n        JSON_ASSERT(std::char_traits<char_type>::to_char_type(current) == literal_text[0]);\n        for (std::size_t i = 1; i < length; ++i)\n        {\n            if (JSON_HEDLEY_UNLIKELY(std::char_traits<char_type>::to_char_type(get()) != literal_text[i]))\n            {\n                error_message = \"invalid literal\";\n                return token_type::parse_error;\n            }\n        }\n        return return_type;\n    }\n\n    /////////////////////\n    // input management\n    /////////////////////\n\n    /// reset token_buffer; current character is beginning of token\n    void reset() noexcept\n    {\n        token_buffer.clear();\n        token_string.clear();\n        token_string.push_back(std::char_traits<char_type>::to_char_type(current));\n    }\n\n    /*\n    @brief get next character from the input\n\n    This function provides the interface to the used input adapter. It does\n    not throw in case the input reached EOF, but returns a\n    `std::char_traits<char>::eof()` in that case.  Stores the scanned characters\n    for use in error messages.\n\n    @return character read from the input\n    */\n    char_int_type get()\n    {\n        ++position.chars_read_total;\n        ++position.chars_read_current_line;\n\n        if (next_unget)\n        {\n            // just reset the next_unget variable and work with current\n            next_unget = false;\n        }\n        else\n        {\n            current = ia.get_character();\n        }\n\n        if (JSON_HEDLEY_LIKELY(current != std::char_traits<char_type>::eof()))\n        {\n            token_string.push_back(std::char_traits<char_type>::to_char_type(current));\n        }\n\n        if (current == '\\n')\n        {\n            ++position.lines_read;\n            position.chars_read_current_line = 0;\n        }\n\n        return current;\n    }\n\n    /*!\n    @brief unget current character (read it again on next get)\n\n    We implement unget by setting variable next_unget to true. The input is not\n    changed - we just simulate ungetting by modifying chars_read_total,\n    chars_read_current_line, and token_string. The next call to get() will\n    behave as if the unget character is read again.\n    */\n    void unget()\n    {\n        next_unget = true;\n\n        --position.chars_read_total;\n\n        // in case we \"unget\" a newline, we have to also decrement the lines_read\n        if (position.chars_read_current_line == 0)\n        {\n            if (position.lines_read > 0)\n            {\n                --position.lines_read;\n            }\n        }\n        else\n        {\n            --position.chars_read_current_line;\n        }\n\n        if (JSON_HEDLEY_LIKELY(current != std::char_traits<char_type>::eof()))\n        {\n            JSON_ASSERT(!token_string.empty());\n            token_string.pop_back();\n        }\n    }\n\n    /// add a character to token_buffer\n    void add(char_int_type c)\n    {\n        token_buffer.push_back(static_cast<typename string_t::value_type>(c));\n    }\n\n  public:\n    /////////////////////\n    // value getters\n    /////////////////////\n\n    /// return integer value\n    constexpr number_integer_t get_number_integer() const noexcept\n    {\n        return value_integer;\n    }\n\n    /// return unsigned integer value\n    constexpr number_unsigned_t get_number_unsigned() const noexcept\n    {\n        return value_unsigned;\n    }\n\n    /// return floating-point value\n    constexpr number_float_t get_number_float() const noexcept\n    {\n        return value_float;\n    }\n\n    /// return current string value (implicitly resets the token; useful only once)\n    string_t& get_string()\n    {\n        return token_buffer;\n    }\n\n    /////////////////////\n    // diagnostics\n    /////////////////////\n\n    /// return position of last read token\n    constexpr position_t get_position() const noexcept\n    {\n        return position;\n    }\n\n    /// return the last read token (for errors only).  Will never contain EOF\n    /// (an arbitrary value that is not a valid char value, often -1), because\n    /// 255 may legitimately occur.  May contain NUL, which should be escaped.\n    std::string get_token_string() const\n    {\n        // escape control characters\n        std::string result;\n        for (const auto c : token_string)\n        {\n            if (static_cast<unsigned char>(c) <= '\\x1F')\n            {\n                // escape control characters\n                std::array<char, 9> cs{{}};\n                static_cast<void>((std::snprintf)(cs.data(), cs.size(), \"<U+%.4X>\", static_cast<unsigned char>(c))); // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg)\n                result += cs.data();\n            }\n            else\n            {\n                // add character as is\n                result.push_back(static_cast<std::string::value_type>(c));\n            }\n        }\n\n        return result;\n    }\n\n    /// return syntax error message\n    JSON_HEDLEY_RETURNS_NON_NULL\n    constexpr const char* get_error_message() const noexcept\n    {\n        return error_message;\n    }\n\n    /////////////////////\n    // actual scanner\n    /////////////////////\n\n    /*!\n    @brief skip the UTF-8 byte order mark\n    @return true iff there is no BOM or the correct BOM has been skipped\n    */\n    bool skip_bom()\n    {\n        if (get() == 0xEF)\n        {\n            // check if we completely parse the BOM\n            return get() == 0xBB && get() == 0xBF;\n        }\n\n        // the first character is not the beginning of the BOM; unget it to\n        // process is later\n        unget();\n        return true;\n    }\n\n    void skip_whitespace()\n    {\n        do\n        {\n            get();\n        }\n        while (current == ' ' || current == '\\t' || current == '\\n' || current == '\\r');\n    }\n\n    token_type scan()\n    {\n        // initially, skip the BOM\n        if (position.chars_read_total == 0 && !skip_bom())\n        {\n            error_message = \"invalid BOM; must be 0xEF 0xBB 0xBF if given\";\n            return token_type::parse_error;\n        }\n\n        // read next character and ignore whitespace\n        skip_whitespace();\n\n        // ignore comments\n        while (ignore_comments && current == '/')\n        {\n            if (!scan_comment())\n            {\n                return token_type::parse_error;\n            }\n\n            // skip following whitespace\n            skip_whitespace();\n        }\n\n        switch (current)\n        {\n            // structural characters\n            case '[':\n                return token_type::begin_array;\n            case ']':\n                return token_type::end_array;\n            case '{':\n                return token_type::begin_object;\n            case '}':\n                return token_type::end_object;\n            case ':':\n                return token_type::name_separator;\n            case ',':\n                return token_type::value_separator;\n\n            // literals\n            case 't':\n            {\n                std::array<char_type, 4> true_literal = {{static_cast<char_type>('t'), static_cast<char_type>('r'), static_cast<char_type>('u'), static_cast<char_type>('e')}};\n                return scan_literal(true_literal.data(), true_literal.size(), token_type::literal_true);\n            }\n            case 'f':\n            {\n                std::array<char_type, 5> false_literal = {{static_cast<char_type>('f'), static_cast<char_type>('a'), static_cast<char_type>('l'), static_cast<char_type>('s'), static_cast<char_type>('e')}};\n                return scan_literal(false_literal.data(), false_literal.size(), token_type::literal_false);\n            }\n            case 'n':\n            {\n                std::array<char_type, 4> null_literal = {{static_cast<char_type>('n'), static_cast<char_type>('u'), static_cast<char_type>('l'), static_cast<char_type>('l')}};\n                return scan_literal(null_literal.data(), null_literal.size(), token_type::literal_null);\n            }\n\n            // string\n            case '\\\"':\n                return scan_string();\n\n            // number\n            case '-':\n            case '0':\n            case '1':\n            case '2':\n            case '3':\n            case '4':\n            case '5':\n            case '6':\n            case '7':\n            case '8':\n            case '9':\n                return scan_number();\n\n            // end of input (the null byte is needed when parsing from\n            // string literals)\n            case '\\0':\n            case std::char_traits<char_type>::eof():\n                return token_type::end_of_input;\n\n            // error\n            default:\n                error_message = \"invalid literal\";\n                return token_type::parse_error;\n        }\n    }\n\n  private:\n    /// input adapter\n    InputAdapterType ia;\n\n    /// whether comments should be ignored (true) or signaled as errors (false)\n    const bool ignore_comments = false;\n\n    /// the current character\n    char_int_type current = std::char_traits<char_type>::eof();\n\n    /// whether the next get() call should just return current\n    bool next_unget = false;\n\n    /// the start position of the current token\n    position_t position {};\n\n    /// raw input token string (for error messages)\n    std::vector<char_type> token_string {};\n\n    /// buffer for variable-length tokens (numbers, strings)\n    string_t token_buffer {};\n\n    /// a description of occurred lexer errors\n    const char* error_message = \"\";\n\n    // number values\n    number_integer_t value_integer = 0;\n    number_unsigned_t value_unsigned = 0;\n    number_float_t value_float = 0;\n\n    /// the decimal point\n    const char_int_type decimal_point_char = '.';\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n// #include <nlohmann/detail/meta/is_sax.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <cstdint> // size_t\n#include <utility> // declval\n#include <string> // string\n\n// #include <nlohmann/detail/abi_macros.hpp>\n\n// #include <nlohmann/detail/meta/detected.hpp>\n\n// #include <nlohmann/detail/meta/type_traits.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\ntemplate<typename T>\nusing null_function_t = decltype(std::declval<T&>().null());\n\ntemplate<typename T>\nusing boolean_function_t =\n    decltype(std::declval<T&>().boolean(std::declval<bool>()));\n\ntemplate<typename T, typename Integer>\nusing number_integer_function_t =\n    decltype(std::declval<T&>().number_integer(std::declval<Integer>()));\n\ntemplate<typename T, typename Unsigned>\nusing number_unsigned_function_t =\n    decltype(std::declval<T&>().number_unsigned(std::declval<Unsigned>()));\n\ntemplate<typename T, typename Float, typename String>\nusing number_float_function_t = decltype(std::declval<T&>().number_float(\n                                    std::declval<Float>(), std::declval<const String&>()));\n\ntemplate<typename T, typename String>\nusing string_function_t =\n    decltype(std::declval<T&>().string(std::declval<String&>()));\n\ntemplate<typename T, typename Binary>\nusing binary_function_t =\n    decltype(std::declval<T&>().binary(std::declval<Binary&>()));\n\ntemplate<typename T>\nusing start_object_function_t =\n    decltype(std::declval<T&>().start_object(std::declval<std::size_t>()));\n\ntemplate<typename T, typename String>\nusing key_function_t =\n    decltype(std::declval<T&>().key(std::declval<String&>()));\n\ntemplate<typename T>\nusing end_object_function_t = decltype(std::declval<T&>().end_object());\n\ntemplate<typename T>\nusing start_array_function_t =\n    decltype(std::declval<T&>().start_array(std::declval<std::size_t>()));\n\ntemplate<typename T>\nusing end_array_function_t = decltype(std::declval<T&>().end_array());\n\ntemplate<typename T, typename Exception>\nusing parse_error_function_t = decltype(std::declval<T&>().parse_error(\n        std::declval<std::size_t>(), std::declval<const std::string&>(),\n        std::declval<const Exception&>()));\n\ntemplate<typename SAX, typename BasicJsonType>\nstruct is_sax\n{\n  private:\n    static_assert(is_basic_json<BasicJsonType>::value,\n                  \"BasicJsonType must be of type basic_json<...>\");\n\n    using number_integer_t = typename BasicJsonType::number_integer_t;\n    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;\n    using number_float_t = typename BasicJsonType::number_float_t;\n    using string_t = typename BasicJsonType::string_t;\n    using binary_t = typename BasicJsonType::binary_t;\n    using exception_t = typename BasicJsonType::exception;\n\n  public:\n    static constexpr bool value =\n        is_detected_exact<bool, null_function_t, SAX>::value &&\n        is_detected_exact<bool, boolean_function_t, SAX>::value &&\n        is_detected_exact<bool, number_integer_function_t, SAX, number_integer_t>::value &&\n        is_detected_exact<bool, number_unsigned_function_t, SAX, number_unsigned_t>::value &&\n        is_detected_exact<bool, number_float_function_t, SAX, number_float_t, string_t>::value &&\n        is_detected_exact<bool, string_function_t, SAX, string_t>::value &&\n        is_detected_exact<bool, binary_function_t, SAX, binary_t>::value &&\n        is_detected_exact<bool, start_object_function_t, SAX>::value &&\n        is_detected_exact<bool, key_function_t, SAX, string_t>::value &&\n        is_detected_exact<bool, end_object_function_t, SAX>::value &&\n        is_detected_exact<bool, start_array_function_t, SAX>::value &&\n        is_detected_exact<bool, end_array_function_t, SAX>::value &&\n        is_detected_exact<bool, parse_error_function_t, SAX, exception_t>::value;\n};\n\ntemplate<typename SAX, typename BasicJsonType>\nstruct is_sax_static_asserts\n{\n  private:\n    static_assert(is_basic_json<BasicJsonType>::value,\n                  \"BasicJsonType must be of type basic_json<...>\");\n\n    using number_integer_t = typename BasicJsonType::number_integer_t;\n    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;\n    using number_float_t = typename BasicJsonType::number_float_t;\n    using string_t = typename BasicJsonType::string_t;\n    using binary_t = typename BasicJsonType::binary_t;\n    using exception_t = typename BasicJsonType::exception;\n\n  public:\n    static_assert(is_detected_exact<bool, null_function_t, SAX>::value,\n                  \"Missing/invalid function: bool null()\");\n    static_assert(is_detected_exact<bool, boolean_function_t, SAX>::value,\n                  \"Missing/invalid function: bool boolean(bool)\");\n    static_assert(is_detected_exact<bool, boolean_function_t, SAX>::value,\n                  \"Missing/invalid function: bool boolean(bool)\");\n    static_assert(\n        is_detected_exact<bool, number_integer_function_t, SAX,\n        number_integer_t>::value,\n        \"Missing/invalid function: bool number_integer(number_integer_t)\");\n    static_assert(\n        is_detected_exact<bool, number_unsigned_function_t, SAX,\n        number_unsigned_t>::value,\n        \"Missing/invalid function: bool number_unsigned(number_unsigned_t)\");\n    static_assert(is_detected_exact<bool, number_float_function_t, SAX,\n                  number_float_t, string_t>::value,\n                  \"Missing/invalid function: bool number_float(number_float_t, const string_t&)\");\n    static_assert(\n        is_detected_exact<bool, string_function_t, SAX, string_t>::value,\n        \"Missing/invalid function: bool string(string_t&)\");\n    static_assert(\n        is_detected_exact<bool, binary_function_t, SAX, binary_t>::value,\n        \"Missing/invalid function: bool binary(binary_t&)\");\n    static_assert(is_detected_exact<bool, start_object_function_t, SAX>::value,\n                  \"Missing/invalid function: bool start_object(std::size_t)\");\n    static_assert(is_detected_exact<bool, key_function_t, SAX, string_t>::value,\n                  \"Missing/invalid function: bool key(string_t&)\");\n    static_assert(is_detected_exact<bool, end_object_function_t, SAX>::value,\n                  \"Missing/invalid function: bool end_object()\");\n    static_assert(is_detected_exact<bool, start_array_function_t, SAX>::value,\n                  \"Missing/invalid function: bool start_array(std::size_t)\");\n    static_assert(is_detected_exact<bool, end_array_function_t, SAX>::value,\n                  \"Missing/invalid function: bool end_array()\");\n    static_assert(\n        is_detected_exact<bool, parse_error_function_t, SAX, exception_t>::value,\n        \"Missing/invalid function: bool parse_error(std::size_t, const \"\n        \"std::string&, const exception&)\");\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/meta/type_traits.hpp>\n\n// #include <nlohmann/detail/string_concat.hpp>\n\n// #include <nlohmann/detail/value_t.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n/// how to treat CBOR tags\nenum class cbor_tag_handler_t\n{\n    error,   ///< throw a parse_error exception in case of a tag\n    ignore,  ///< ignore tags\n    store    ///< store tags as binary type\n};\n\n/*!\n@brief determine system byte order\n\n@return true if and only if system's byte order is little endian\n\n@note from https://stackoverflow.com/a/1001328/266378\n*/\nstatic inline bool little_endianness(int num = 1) noexcept\n{\n    return *reinterpret_cast<char*>(&num) == 1;\n}\n\n\n///////////////////\n// binary reader //\n///////////////////\n\n/*!\n@brief deserialization of CBOR, MessagePack, and UBJSON values\n*/\ntemplate<typename BasicJsonType, typename InputAdapterType, typename SAX = json_sax_dom_parser<BasicJsonType>>\nclass binary_reader\n{\n    using number_integer_t = typename BasicJsonType::number_integer_t;\n    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;\n    using number_float_t = typename BasicJsonType::number_float_t;\n    using string_t = typename BasicJsonType::string_t;\n    using binary_t = typename BasicJsonType::binary_t;\n    using json_sax_t = SAX;\n    using char_type = typename InputAdapterType::char_type;\n    using char_int_type = typename std::char_traits<char_type>::int_type;\n\n  public:\n    /*!\n    @brief create a binary reader\n\n    @param[in] adapter  input adapter to read from\n    */\n    explicit binary_reader(InputAdapterType&& adapter, const input_format_t format = input_format_t::json) noexcept : ia(std::move(adapter)), input_format(format)\n    {\n        (void)detail::is_sax_static_asserts<SAX, BasicJsonType> {};\n    }\n\n    // make class move-only\n    binary_reader(const binary_reader&) = delete;\n    binary_reader(binary_reader&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor)\n    binary_reader& operator=(const binary_reader&) = delete;\n    binary_reader& operator=(binary_reader&&) = default; // NOLINT(hicpp-noexcept-move,performance-noexcept-move-constructor)\n    ~binary_reader() = default;\n\n    /*!\n    @param[in] format  the binary format to parse\n    @param[in] sax_    a SAX event processor\n    @param[in] strict  whether to expect the input to be consumed completed\n    @param[in] tag_handler  how to treat CBOR tags\n\n    @return whether parsing was successful\n    */\n    JSON_HEDLEY_NON_NULL(3)\n    bool sax_parse(const input_format_t format,\n                   json_sax_t* sax_,\n                   const bool strict = true,\n                   const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error)\n    {\n        sax = sax_;\n        bool result = false;\n\n        switch (format)\n        {\n            case input_format_t::bson:\n                result = parse_bson_internal();\n                break;\n\n            case input_format_t::cbor:\n                result = parse_cbor_internal(true, tag_handler);\n                break;\n\n            case input_format_t::msgpack:\n                result = parse_msgpack_internal();\n                break;\n\n            case input_format_t::ubjson:\n            case input_format_t::bjdata:\n                result = parse_ubjson_internal();\n                break;\n\n            case input_format_t::json: // LCOV_EXCL_LINE\n            default:            // LCOV_EXCL_LINE\n                JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE\n        }\n\n        // strict mode: next byte must be EOF\n        if (result && strict)\n        {\n            if (input_format == input_format_t::ubjson || input_format == input_format_t::bjdata)\n            {\n                get_ignore_noop();\n            }\n            else\n            {\n                get();\n            }\n\n            if (JSON_HEDLEY_UNLIKELY(current != std::char_traits<char_type>::eof()))\n            {\n                return sax->parse_error(chars_read, get_token_string(), parse_error::create(110, chars_read,\n                                        exception_message(input_format, concat(\"expected end of input; last byte: 0x\", get_token_string()), \"value\"), nullptr));\n            }\n        }\n\n        return result;\n    }\n\n  private:\n    //////////\n    // BSON //\n    //////////\n\n    /*!\n    @brief Reads in a BSON-object and passes it to the SAX-parser.\n    @return whether a valid BSON-value was passed to the SAX parser\n    */\n    bool parse_bson_internal()\n    {\n        std::int32_t document_size{};\n        get_number<std::int32_t, true>(input_format_t::bson, document_size);\n\n        if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast<std::size_t>(-1))))\n        {\n            return false;\n        }\n\n        if (JSON_HEDLEY_UNLIKELY(!parse_bson_element_list(/*is_array*/false)))\n        {\n            return false;\n        }\n\n        return sax->end_object();\n    }\n\n    /*!\n    @brief Parses a C-style string from the BSON input.\n    @param[in,out] result  A reference to the string variable where the read\n                            string is to be stored.\n    @return `true` if the \\x00-byte indicating the end of the string was\n             encountered before the EOF; false` indicates an unexpected EOF.\n    */\n    bool get_bson_cstr(string_t& result)\n    {\n        auto out = std::back_inserter(result);\n        while (true)\n        {\n            get();\n            if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::bson, \"cstring\")))\n            {\n                return false;\n            }\n            if (current == 0x00)\n            {\n                return true;\n            }\n            *out++ = static_cast<typename string_t::value_type>(current);\n        }\n    }\n\n    /*!\n    @brief Parses a zero-terminated string of length @a len from the BSON\n           input.\n    @param[in] len  The length (including the zero-byte at the end) of the\n                    string to be read.\n    @param[in,out] result  A reference to the string variable where the read\n                            string is to be stored.\n    @tparam NumberType The type of the length @a len\n    @pre len >= 1\n    @return `true` if the string was successfully parsed\n    */\n    template<typename NumberType>\n    bool get_bson_string(const NumberType len, string_t& result)\n    {\n        if (JSON_HEDLEY_UNLIKELY(len < 1))\n        {\n            auto last_token = get_token_string();\n            return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read,\n                                    exception_message(input_format_t::bson, concat(\"string length must be at least 1, is \", std::to_string(len)), \"string\"), nullptr));\n        }\n\n        return get_string(input_format_t::bson, len - static_cast<NumberType>(1), result) && get() != std::char_traits<char_type>::eof();\n    }\n\n    /*!\n    @brief Parses a byte array input of length @a len from the BSON input.\n    @param[in] len  The length of the byte array to be read.\n    @param[in,out] result  A reference to the binary variable where the read\n                            array is to be stored.\n    @tparam NumberType The type of the length @a len\n    @pre len >= 0\n    @return `true` if the byte array was successfully parsed\n    */\n    template<typename NumberType>\n    bool get_bson_binary(const NumberType len, binary_t& result)\n    {\n        if (JSON_HEDLEY_UNLIKELY(len < 0))\n        {\n            auto last_token = get_token_string();\n            return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read,\n                                    exception_message(input_format_t::bson, concat(\"byte array length cannot be negative, is \", std::to_string(len)), \"binary\"), nullptr));\n        }\n\n        // All BSON binary values have a subtype\n        std::uint8_t subtype{};\n        get_number<std::uint8_t>(input_format_t::bson, subtype);\n        result.set_subtype(subtype);\n\n        return get_binary(input_format_t::bson, len, result);\n    }\n\n    /*!\n    @brief Read a BSON document element of the given @a element_type.\n    @param[in] element_type The BSON element type, c.f. http://bsonspec.org/spec.html\n    @param[in] element_type_parse_position The position in the input stream,\n               where the `element_type` was read.\n    @warning Not all BSON element types are supported yet. An unsupported\n             @a element_type will give rise to a parse_error.114:\n             Unsupported BSON record type 0x...\n    @return whether a valid BSON-object/array was passed to the SAX parser\n    */\n    bool parse_bson_element_internal(const char_int_type element_type,\n                                     const std::size_t element_type_parse_position)\n    {\n        switch (element_type)\n        {\n            case 0x01: // double\n            {\n                double number{};\n                return get_number<double, true>(input_format_t::bson, number) && sax->number_float(static_cast<number_float_t>(number), \"\");\n            }\n\n            case 0x02: // string\n            {\n                std::int32_t len{};\n                string_t value;\n                return get_number<std::int32_t, true>(input_format_t::bson, len) && get_bson_string(len, value) && sax->string(value);\n            }\n\n            case 0x03: // object\n            {\n                return parse_bson_internal();\n            }\n\n            case 0x04: // array\n            {\n                return parse_bson_array();\n            }\n\n            case 0x05: // binary\n            {\n                std::int32_t len{};\n                binary_t value;\n                return get_number<std::int32_t, true>(input_format_t::bson, len) && get_bson_binary(len, value) && sax->binary(value);\n            }\n\n            case 0x08: // boolean\n            {\n                return sax->boolean(get() != 0);\n            }\n\n            case 0x0A: // null\n            {\n                return sax->null();\n            }\n\n            case 0x10: // int32\n            {\n                std::int32_t value{};\n                return get_number<std::int32_t, true>(input_format_t::bson, value) && sax->number_integer(value);\n            }\n\n            case 0x12: // int64\n            {\n                std::int64_t value{};\n                return get_number<std::int64_t, true>(input_format_t::bson, value) && sax->number_integer(value);\n            }\n\n            default: // anything else not supported (yet)\n            {\n                std::array<char, 3> cr{{}};\n                static_cast<void>((std::snprintf)(cr.data(), cr.size(), \"%.2hhX\", static_cast<unsigned char>(element_type))); // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg)\n                const std::string cr_str{cr.data()};\n                return sax->parse_error(element_type_parse_position, cr_str,\n                                        parse_error::create(114, element_type_parse_position, concat(\"Unsupported BSON record type 0x\", cr_str), nullptr));\n            }\n        }\n    }\n\n    /*!\n    @brief Read a BSON element list (as specified in the BSON-spec)\n\n    The same binary layout is used for objects and arrays, hence it must be\n    indicated with the argument @a is_array which one is expected\n    (true --> array, false --> object).\n\n    @param[in] is_array Determines if the element list being read is to be\n                        treated as an object (@a is_array == false), or as an\n                        array (@a is_array == true).\n    @return whether a valid BSON-object/array was passed to the SAX parser\n    */\n    bool parse_bson_element_list(const bool is_array)\n    {\n        string_t key;\n\n        while (auto element_type = get())\n        {\n            if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::bson, \"element list\")))\n            {\n                return false;\n            }\n\n            const std::size_t element_type_parse_position = chars_read;\n            if (JSON_HEDLEY_UNLIKELY(!get_bson_cstr(key)))\n            {\n                return false;\n            }\n\n            if (!is_array && !sax->key(key))\n            {\n                return false;\n            }\n\n            if (JSON_HEDLEY_UNLIKELY(!parse_bson_element_internal(element_type, element_type_parse_position)))\n            {\n                return false;\n            }\n\n            // get_bson_cstr only appends\n            key.clear();\n        }\n\n        return true;\n    }\n\n    /*!\n    @brief Reads an array from the BSON input and passes it to the SAX-parser.\n    @return whether a valid BSON-array was passed to the SAX parser\n    */\n    bool parse_bson_array()\n    {\n        std::int32_t document_size{};\n        get_number<std::int32_t, true>(input_format_t::bson, document_size);\n\n        if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast<std::size_t>(-1))))\n        {\n            return false;\n        }\n\n        if (JSON_HEDLEY_UNLIKELY(!parse_bson_element_list(/*is_array*/true)))\n        {\n            return false;\n        }\n\n        return sax->end_array();\n    }\n\n    //////////\n    // CBOR //\n    //////////\n\n    /*!\n    @param[in] get_char  whether a new character should be retrieved from the\n                         input (true) or whether the last read character should\n                         be considered instead (false)\n    @param[in] tag_handler how CBOR tags should be treated\n\n    @return whether a valid CBOR value was passed to the SAX parser\n    */\n    bool parse_cbor_internal(const bool get_char,\n                             const cbor_tag_handler_t tag_handler)\n    {\n        switch (get_char ? get() : current)\n        {\n            // EOF\n            case std::char_traits<char_type>::eof():\n                return unexpect_eof(input_format_t::cbor, \"value\");\n\n            // Integer 0x00..0x17 (0..23)\n            case 0x00:\n            case 0x01:\n            case 0x02:\n            case 0x03:\n            case 0x04:\n            case 0x05:\n            case 0x06:\n            case 0x07:\n            case 0x08:\n            case 0x09:\n            case 0x0A:\n            case 0x0B:\n            case 0x0C:\n            case 0x0D:\n            case 0x0E:\n            case 0x0F:\n            case 0x10:\n            case 0x11:\n            case 0x12:\n            case 0x13:\n            case 0x14:\n            case 0x15:\n            case 0x16:\n            case 0x17:\n                return sax->number_unsigned(static_cast<number_unsigned_t>(current));\n\n            case 0x18: // Unsigned integer (one-byte uint8_t follows)\n            {\n                std::uint8_t number{};\n                return get_number(input_format_t::cbor, number) && sax->number_unsigned(number);\n            }\n\n            case 0x19: // Unsigned integer (two-byte uint16_t follows)\n            {\n                std::uint16_t number{};\n                return get_number(input_format_t::cbor, number) && sax->number_unsigned(number);\n            }\n\n            case 0x1A: // Unsigned integer (four-byte uint32_t follows)\n            {\n                std::uint32_t number{};\n                return get_number(input_format_t::cbor, number) && sax->number_unsigned(number);\n            }\n\n            case 0x1B: // Unsigned integer (eight-byte uint64_t follows)\n            {\n                std::uint64_t number{};\n                return get_number(input_format_t::cbor, number) && sax->number_unsigned(number);\n            }\n\n            // Negative integer -1-0x00..-1-0x17 (-1..-24)\n            case 0x20:\n            case 0x21:\n            case 0x22:\n            case 0x23:\n            case 0x24:\n            case 0x25:\n            case 0x26:\n            case 0x27:\n            case 0x28:\n            case 0x29:\n            case 0x2A:\n            case 0x2B:\n            case 0x2C:\n            case 0x2D:\n            case 0x2E:\n            case 0x2F:\n            case 0x30:\n            case 0x31:\n            case 0x32:\n            case 0x33:\n            case 0x34:\n            case 0x35:\n            case 0x36:\n            case 0x37:\n                return sax->number_integer(static_cast<std::int8_t>(0x20 - 1 - current));\n\n            case 0x38: // Negative integer (one-byte uint8_t follows)\n            {\n                std::uint8_t number{};\n                return get_number(input_format_t::cbor, number) && sax->number_integer(static_cast<number_integer_t>(-1) - number);\n            }\n\n            case 0x39: // Negative integer -1-n (two-byte uint16_t follows)\n            {\n                std::uint16_t number{};\n                return get_number(input_format_t::cbor, number) && sax->number_integer(static_cast<number_integer_t>(-1) - number);\n            }\n\n            case 0x3A: // Negative integer -1-n (four-byte uint32_t follows)\n            {\n                std::uint32_t number{};\n                return get_number(input_format_t::cbor, number) && sax->number_integer(static_cast<number_integer_t>(-1) - number);\n            }\n\n            case 0x3B: // Negative integer -1-n (eight-byte uint64_t follows)\n            {\n                std::uint64_t number{};\n                return get_number(input_format_t::cbor, number) && sax->number_integer(static_cast<number_integer_t>(-1)\n                        - static_cast<number_integer_t>(number));\n            }\n\n            // Binary data (0x00..0x17 bytes follow)\n            case 0x40:\n            case 0x41:\n            case 0x42:\n            case 0x43:\n            case 0x44:\n            case 0x45:\n            case 0x46:\n            case 0x47:\n            case 0x48:\n            case 0x49:\n            case 0x4A:\n            case 0x4B:\n            case 0x4C:\n            case 0x4D:\n            case 0x4E:\n            case 0x4F:\n            case 0x50:\n            case 0x51:\n            case 0x52:\n            case 0x53:\n            case 0x54:\n            case 0x55:\n            case 0x56:\n            case 0x57:\n            case 0x58: // Binary data (one-byte uint8_t for n follows)\n            case 0x59: // Binary data (two-byte uint16_t for n follow)\n            case 0x5A: // Binary data (four-byte uint32_t for n follow)\n            case 0x5B: // Binary data (eight-byte uint64_t for n follow)\n            case 0x5F: // Binary data (indefinite length)\n            {\n                binary_t b;\n                return get_cbor_binary(b) && sax->binary(b);\n            }\n\n            // UTF-8 string (0x00..0x17 bytes follow)\n            case 0x60:\n            case 0x61:\n            case 0x62:\n            case 0x63:\n            case 0x64:\n            case 0x65:\n            case 0x66:\n            case 0x67:\n            case 0x68:\n            case 0x69:\n            case 0x6A:\n            case 0x6B:\n            case 0x6C:\n            case 0x6D:\n            case 0x6E:\n            case 0x6F:\n            case 0x70:\n            case 0x71:\n            case 0x72:\n            case 0x73:\n            case 0x74:\n            case 0x75:\n            case 0x76:\n            case 0x77:\n            case 0x78: // UTF-8 string (one-byte uint8_t for n follows)\n            case 0x79: // UTF-8 string (two-byte uint16_t for n follow)\n            case 0x7A: // UTF-8 string (four-byte uint32_t for n follow)\n            case 0x7B: // UTF-8 string (eight-byte uint64_t for n follow)\n            case 0x7F: // UTF-8 string (indefinite length)\n            {\n                string_t s;\n                return get_cbor_string(s) && sax->string(s);\n            }\n\n            // array (0x00..0x17 data items follow)\n            case 0x80:\n            case 0x81:\n            case 0x82:\n            case 0x83:\n            case 0x84:\n            case 0x85:\n            case 0x86:\n            case 0x87:\n            case 0x88:\n            case 0x89:\n            case 0x8A:\n            case 0x8B:\n            case 0x8C:\n            case 0x8D:\n            case 0x8E:\n            case 0x8F:\n            case 0x90:\n            case 0x91:\n            case 0x92:\n            case 0x93:\n            case 0x94:\n            case 0x95:\n            case 0x96:\n            case 0x97:\n                return get_cbor_array(\n                           conditional_static_cast<std::size_t>(static_cast<unsigned int>(current) & 0x1Fu), tag_handler);\n\n            case 0x98: // array (one-byte uint8_t for n follows)\n            {\n                std::uint8_t len{};\n                return get_number(input_format_t::cbor, len) && get_cbor_array(static_cast<std::size_t>(len), tag_handler);\n            }\n\n            case 0x99: // array (two-byte uint16_t for n follow)\n            {\n                std::uint16_t len{};\n                return get_number(input_format_t::cbor, len) && get_cbor_array(static_cast<std::size_t>(len), tag_handler);\n            }\n\n            case 0x9A: // array (four-byte uint32_t for n follow)\n            {\n                std::uint32_t len{};\n                return get_number(input_format_t::cbor, len) && get_cbor_array(conditional_static_cast<std::size_t>(len), tag_handler);\n            }\n\n            case 0x9B: // array (eight-byte uint64_t for n follow)\n            {\n                std::uint64_t len{};\n                return get_number(input_format_t::cbor, len) && get_cbor_array(conditional_static_cast<std::size_t>(len), tag_handler);\n            }\n\n            case 0x9F: // array (indefinite length)\n                return get_cbor_array(static_cast<std::size_t>(-1), tag_handler);\n\n            // map (0x00..0x17 pairs of data items follow)\n            case 0xA0:\n            case 0xA1:\n            case 0xA2:\n            case 0xA3:\n            case 0xA4:\n            case 0xA5:\n            case 0xA6:\n            case 0xA7:\n            case 0xA8:\n            case 0xA9:\n            case 0xAA:\n            case 0xAB:\n            case 0xAC:\n            case 0xAD:\n            case 0xAE:\n            case 0xAF:\n            case 0xB0:\n            case 0xB1:\n            case 0xB2:\n            case 0xB3:\n            case 0xB4:\n            case 0xB5:\n            case 0xB6:\n            case 0xB7:\n                return get_cbor_object(conditional_static_cast<std::size_t>(static_cast<unsigned int>(current) & 0x1Fu), tag_handler);\n\n            case 0xB8: // map (one-byte uint8_t for n follows)\n            {\n                std::uint8_t len{};\n                return get_number(input_format_t::cbor, len) && get_cbor_object(static_cast<std::size_t>(len), tag_handler);\n            }\n\n            case 0xB9: // map (two-byte uint16_t for n follow)\n            {\n                std::uint16_t len{};\n                return get_number(input_format_t::cbor, len) && get_cbor_object(static_cast<std::size_t>(len), tag_handler);\n            }\n\n            case 0xBA: // map (four-byte uint32_t for n follow)\n            {\n                std::uint32_t len{};\n                return get_number(input_format_t::cbor, len) && get_cbor_object(conditional_static_cast<std::size_t>(len), tag_handler);\n            }\n\n            case 0xBB: // map (eight-byte uint64_t for n follow)\n            {\n                std::uint64_t len{};\n                return get_number(input_format_t::cbor, len) && get_cbor_object(conditional_static_cast<std::size_t>(len), tag_handler);\n            }\n\n            case 0xBF: // map (indefinite length)\n                return get_cbor_object(static_cast<std::size_t>(-1), tag_handler);\n\n            case 0xC6: // tagged item\n            case 0xC7:\n            case 0xC8:\n            case 0xC9:\n            case 0xCA:\n            case 0xCB:\n            case 0xCC:\n            case 0xCD:\n            case 0xCE:\n            case 0xCF:\n            case 0xD0:\n            case 0xD1:\n            case 0xD2:\n            case 0xD3:\n            case 0xD4:\n            case 0xD8: // tagged item (1 bytes follow)\n            case 0xD9: // tagged item (2 bytes follow)\n            case 0xDA: // tagged item (4 bytes follow)\n            case 0xDB: // tagged item (8 bytes follow)\n            {\n                switch (tag_handler)\n                {\n                    case cbor_tag_handler_t::error:\n                    {\n                        auto last_token = get_token_string();\n                        return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read,\n                                                exception_message(input_format_t::cbor, concat(\"invalid byte: 0x\", last_token), \"value\"), nullptr));\n                    }\n\n                    case cbor_tag_handler_t::ignore:\n                    {\n                        // ignore binary subtype\n                        switch (current)\n                        {\n                            case 0xD8:\n                            {\n                                std::uint8_t subtype_to_ignore{};\n                                get_number(input_format_t::cbor, subtype_to_ignore);\n                                break;\n                            }\n                            case 0xD9:\n                            {\n                                std::uint16_t subtype_to_ignore{};\n                                get_number(input_format_t::cbor, subtype_to_ignore);\n                                break;\n                            }\n                            case 0xDA:\n                            {\n                                std::uint32_t subtype_to_ignore{};\n                                get_number(input_format_t::cbor, subtype_to_ignore);\n                                break;\n                            }\n                            case 0xDB:\n                            {\n                                std::uint64_t subtype_to_ignore{};\n                                get_number(input_format_t::cbor, subtype_to_ignore);\n                                break;\n                            }\n                            default:\n                                break;\n                        }\n                        return parse_cbor_internal(true, tag_handler);\n                    }\n\n                    case cbor_tag_handler_t::store:\n                    {\n                        binary_t b;\n                        // use binary subtype and store in binary container\n                        switch (current)\n                        {\n                            case 0xD8:\n                            {\n                                std::uint8_t subtype{};\n                                get_number(input_format_t::cbor, subtype);\n                                b.set_subtype(detail::conditional_static_cast<typename binary_t::subtype_type>(subtype));\n                                break;\n                            }\n                            case 0xD9:\n                            {\n                                std::uint16_t subtype{};\n                                get_number(input_format_t::cbor, subtype);\n                                b.set_subtype(detail::conditional_static_cast<typename binary_t::subtype_type>(subtype));\n                                break;\n                            }\n                            case 0xDA:\n                            {\n                                std::uint32_t subtype{};\n                                get_number(input_format_t::cbor, subtype);\n                                b.set_subtype(detail::conditional_static_cast<typename binary_t::subtype_type>(subtype));\n                                break;\n                            }\n                            case 0xDB:\n                            {\n                                std::uint64_t subtype{};\n                                get_number(input_format_t::cbor, subtype);\n                                b.set_subtype(detail::conditional_static_cast<typename binary_t::subtype_type>(subtype));\n                                break;\n                            }\n                            default:\n                                return parse_cbor_internal(true, tag_handler);\n                        }\n                        get();\n                        return get_cbor_binary(b) && sax->binary(b);\n                    }\n\n                    default:                 // LCOV_EXCL_LINE\n                        JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE\n                        return false;        // LCOV_EXCL_LINE\n                }\n            }\n\n            case 0xF4: // false\n                return sax->boolean(false);\n\n            case 0xF5: // true\n                return sax->boolean(true);\n\n            case 0xF6: // null\n                return sax->null();\n\n            case 0xF9: // Half-Precision Float (two-byte IEEE 754)\n            {\n                const auto byte1_raw = get();\n                if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::cbor, \"number\")))\n                {\n                    return false;\n                }\n                const auto byte2_raw = get();\n                if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::cbor, \"number\")))\n                {\n                    return false;\n                }\n\n                const auto byte1 = static_cast<unsigned char>(byte1_raw);\n                const auto byte2 = static_cast<unsigned char>(byte2_raw);\n\n                // code from RFC 7049, Appendix D, Figure 3:\n                // As half-precision floating-point numbers were only added\n                // to IEEE 754 in 2008, today's programming platforms often\n                // still only have limited support for them. It is very\n                // easy to include at least decoding support for them even\n                // without such support. An example of a small decoder for\n                // half-precision floating-point numbers in the C language\n                // is shown in Fig. 3.\n                const auto half = static_cast<unsigned int>((byte1 << 8u) + byte2);\n                const double val = [&half]\n                {\n                    const int exp = (half >> 10u) & 0x1Fu;\n                    const unsigned int mant = half & 0x3FFu;\n                    JSON_ASSERT(0 <= exp&& exp <= 32);\n                    JSON_ASSERT(mant <= 1024);\n                    switch (exp)\n                    {\n                        case 0:\n                            return std::ldexp(mant, -24);\n                        case 31:\n                            return (mant == 0)\n                            ? std::numeric_limits<double>::infinity()\n                            : std::numeric_limits<double>::quiet_NaN();\n                        default:\n                            return std::ldexp(mant + 1024, exp - 25);\n                    }\n                }();\n                return sax->number_float((half & 0x8000u) != 0\n                                         ? static_cast<number_float_t>(-val)\n                                         : static_cast<number_float_t>(val), \"\");\n            }\n\n            case 0xFA: // Single-Precision Float (four-byte IEEE 754)\n            {\n                float number{};\n                return get_number(input_format_t::cbor, number) && sax->number_float(static_cast<number_float_t>(number), \"\");\n            }\n\n            case 0xFB: // Double-Precision Float (eight-byte IEEE 754)\n            {\n                double number{};\n                return get_number(input_format_t::cbor, number) && sax->number_float(static_cast<number_float_t>(number), \"\");\n            }\n\n            default: // anything else (0xFF is handled inside the other types)\n            {\n                auto last_token = get_token_string();\n                return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read,\n                                        exception_message(input_format_t::cbor, concat(\"invalid byte: 0x\", last_token), \"value\"), nullptr));\n            }\n        }\n    }\n\n    /*!\n    @brief reads a CBOR string\n\n    This function first reads starting bytes to determine the expected\n    string length and then copies this number of bytes into a string.\n    Additionally, CBOR's strings with indefinite lengths are supported.\n\n    @param[out] result  created string\n\n    @return whether string creation completed\n    */\n    bool get_cbor_string(string_t& result)\n    {\n        if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::cbor, \"string\")))\n        {\n            return false;\n        }\n\n        switch (current)\n        {\n            // UTF-8 string (0x00..0x17 bytes follow)\n            case 0x60:\n            case 0x61:\n            case 0x62:\n            case 0x63:\n            case 0x64:\n            case 0x65:\n            case 0x66:\n            case 0x67:\n            case 0x68:\n            case 0x69:\n            case 0x6A:\n            case 0x6B:\n            case 0x6C:\n            case 0x6D:\n            case 0x6E:\n            case 0x6F:\n            case 0x70:\n            case 0x71:\n            case 0x72:\n            case 0x73:\n            case 0x74:\n            case 0x75:\n            case 0x76:\n            case 0x77:\n            {\n                return get_string(input_format_t::cbor, static_cast<unsigned int>(current) & 0x1Fu, result);\n            }\n\n            case 0x78: // UTF-8 string (one-byte uint8_t for n follows)\n            {\n                std::uint8_t len{};\n                return get_number(input_format_t::cbor, len) && get_string(input_format_t::cbor, len, result);\n            }\n\n            case 0x79: // UTF-8 string (two-byte uint16_t for n follow)\n            {\n                std::uint16_t len{};\n                return get_number(input_format_t::cbor, len) && get_string(input_format_t::cbor, len, result);\n            }\n\n            case 0x7A: // UTF-8 string (four-byte uint32_t for n follow)\n            {\n                std::uint32_t len{};\n                return get_number(input_format_t::cbor, len) && get_string(input_format_t::cbor, len, result);\n            }\n\n            case 0x7B: // UTF-8 string (eight-byte uint64_t for n follow)\n            {\n                std::uint64_t len{};\n                return get_number(input_format_t::cbor, len) && get_string(input_format_t::cbor, len, result);\n            }\n\n            case 0x7F: // UTF-8 string (indefinite length)\n            {\n                while (get() != 0xFF)\n                {\n                    string_t chunk;\n                    if (!get_cbor_string(chunk))\n                    {\n                        return false;\n                    }\n                    result.append(chunk);\n                }\n                return true;\n            }\n\n            default:\n            {\n                auto last_token = get_token_string();\n                return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read,\n                                        exception_message(input_format_t::cbor, concat(\"expected length specification (0x60-0x7B) or indefinite string type (0x7F); last byte: 0x\", last_token), \"string\"), nullptr));\n            }\n        }\n    }\n\n    /*!\n    @brief reads a CBOR byte array\n\n    This function first reads starting bytes to determine the expected\n    byte array length and then copies this number of bytes into the byte array.\n    Additionally, CBOR's byte arrays with indefinite lengths are supported.\n\n    @param[out] result  created byte array\n\n    @return whether byte array creation completed\n    */\n    bool get_cbor_binary(binary_t& result)\n    {\n        if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::cbor, \"binary\")))\n        {\n            return false;\n        }\n\n        switch (current)\n        {\n            // Binary data (0x00..0x17 bytes follow)\n            case 0x40:\n            case 0x41:\n            case 0x42:\n            case 0x43:\n            case 0x44:\n            case 0x45:\n            case 0x46:\n            case 0x47:\n            case 0x48:\n            case 0x49:\n            case 0x4A:\n            case 0x4B:\n            case 0x4C:\n            case 0x4D:\n            case 0x4E:\n            case 0x4F:\n            case 0x50:\n            case 0x51:\n            case 0x52:\n            case 0x53:\n            case 0x54:\n            case 0x55:\n            case 0x56:\n            case 0x57:\n            {\n                return get_binary(input_format_t::cbor, static_cast<unsigned int>(current) & 0x1Fu, result);\n            }\n\n            case 0x58: // Binary data (one-byte uint8_t for n follows)\n            {\n                std::uint8_t len{};\n                return get_number(input_format_t::cbor, len) &&\n                       get_binary(input_format_t::cbor, len, result);\n            }\n\n            case 0x59: // Binary data (two-byte uint16_t for n follow)\n            {\n                std::uint16_t len{};\n                return get_number(input_format_t::cbor, len) &&\n                       get_binary(input_format_t::cbor, len, result);\n            }\n\n            case 0x5A: // Binary data (four-byte uint32_t for n follow)\n            {\n                std::uint32_t len{};\n                return get_number(input_format_t::cbor, len) &&\n                       get_binary(input_format_t::cbor, len, result);\n            }\n\n            case 0x5B: // Binary data (eight-byte uint64_t for n follow)\n            {\n                std::uint64_t len{};\n                return get_number(input_format_t::cbor, len) &&\n                       get_binary(input_format_t::cbor, len, result);\n            }\n\n            case 0x5F: // Binary data (indefinite length)\n            {\n                while (get() != 0xFF)\n                {\n                    binary_t chunk;\n                    if (!get_cbor_binary(chunk))\n                    {\n                        return false;\n                    }\n                    result.insert(result.end(), chunk.begin(), chunk.end());\n                }\n                return true;\n            }\n\n            default:\n            {\n                auto last_token = get_token_string();\n                return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read,\n                                        exception_message(input_format_t::cbor, concat(\"expected length specification (0x40-0x5B) or indefinite binary array type (0x5F); last byte: 0x\", last_token), \"binary\"), nullptr));\n            }\n        }\n    }\n\n    /*!\n    @param[in] len  the length of the array or static_cast<std::size_t>(-1) for an\n                    array of indefinite size\n    @param[in] tag_handler how CBOR tags should be treated\n    @return whether array creation completed\n    */\n    bool get_cbor_array(const std::size_t len,\n                        const cbor_tag_handler_t tag_handler)\n    {\n        if (JSON_HEDLEY_UNLIKELY(!sax->start_array(len)))\n        {\n            return false;\n        }\n\n        if (len != static_cast<std::size_t>(-1))\n        {\n            for (std::size_t i = 0; i < len; ++i)\n            {\n                if (JSON_HEDLEY_UNLIKELY(!parse_cbor_internal(true, tag_handler)))\n                {\n                    return false;\n                }\n            }\n        }\n        else\n        {\n            while (get() != 0xFF)\n            {\n                if (JSON_HEDLEY_UNLIKELY(!parse_cbor_internal(false, tag_handler)))\n                {\n                    return false;\n                }\n            }\n        }\n\n        return sax->end_array();\n    }\n\n    /*!\n    @param[in] len  the length of the object or static_cast<std::size_t>(-1) for an\n                    object of indefinite size\n    @param[in] tag_handler how CBOR tags should be treated\n    @return whether object creation completed\n    */\n    bool get_cbor_object(const std::size_t len,\n                         const cbor_tag_handler_t tag_handler)\n    {\n        if (JSON_HEDLEY_UNLIKELY(!sax->start_object(len)))\n        {\n            return false;\n        }\n\n        if (len != 0)\n        {\n            string_t key;\n            if (len != static_cast<std::size_t>(-1))\n            {\n                for (std::size_t i = 0; i < len; ++i)\n                {\n                    get();\n                    if (JSON_HEDLEY_UNLIKELY(!get_cbor_string(key) || !sax->key(key)))\n                    {\n                        return false;\n                    }\n\n                    if (JSON_HEDLEY_UNLIKELY(!parse_cbor_internal(true, tag_handler)))\n                    {\n                        return false;\n                    }\n                    key.clear();\n                }\n            }\n            else\n            {\n                while (get() != 0xFF)\n                {\n                    if (JSON_HEDLEY_UNLIKELY(!get_cbor_string(key) || !sax->key(key)))\n                    {\n                        return false;\n                    }\n\n                    if (JSON_HEDLEY_UNLIKELY(!parse_cbor_internal(true, tag_handler)))\n                    {\n                        return false;\n                    }\n                    key.clear();\n                }\n            }\n        }\n\n        return sax->end_object();\n    }\n\n    /////////////\n    // MsgPack //\n    /////////////\n\n    /*!\n    @return whether a valid MessagePack value was passed to the SAX parser\n    */\n    bool parse_msgpack_internal()\n    {\n        switch (get())\n        {\n            // EOF\n            case std::char_traits<char_type>::eof():\n                return unexpect_eof(input_format_t::msgpack, \"value\");\n\n            // positive fixint\n            case 0x00:\n            case 0x01:\n            case 0x02:\n            case 0x03:\n            case 0x04:\n            case 0x05:\n            case 0x06:\n            case 0x07:\n            case 0x08:\n            case 0x09:\n            case 0x0A:\n            case 0x0B:\n            case 0x0C:\n            case 0x0D:\n            case 0x0E:\n            case 0x0F:\n            case 0x10:\n            case 0x11:\n            case 0x12:\n            case 0x13:\n            case 0x14:\n            case 0x15:\n            case 0x16:\n            case 0x17:\n            case 0x18:\n            case 0x19:\n            case 0x1A:\n            case 0x1B:\n            case 0x1C:\n            case 0x1D:\n            case 0x1E:\n            case 0x1F:\n            case 0x20:\n            case 0x21:\n            case 0x22:\n            case 0x23:\n            case 0x24:\n            case 0x25:\n            case 0x26:\n            case 0x27:\n            case 0x28:\n            case 0x29:\n            case 0x2A:\n            case 0x2B:\n            case 0x2C:\n            case 0x2D:\n            case 0x2E:\n            case 0x2F:\n            case 0x30:\n            case 0x31:\n            case 0x32:\n            case 0x33:\n            case 0x34:\n            case 0x35:\n            case 0x36:\n            case 0x37:\n            case 0x38:\n            case 0x39:\n            case 0x3A:\n            case 0x3B:\n            case 0x3C:\n            case 0x3D:\n            case 0x3E:\n            case 0x3F:\n            case 0x40:\n            case 0x41:\n            case 0x42:\n            case 0x43:\n            case 0x44:\n            case 0x45:\n            case 0x46:\n            case 0x47:\n            case 0x48:\n            case 0x49:\n            case 0x4A:\n            case 0x4B:\n            case 0x4C:\n            case 0x4D:\n            case 0x4E:\n            case 0x4F:\n            case 0x50:\n            case 0x51:\n            case 0x52:\n            case 0x53:\n            case 0x54:\n            case 0x55:\n            case 0x56:\n            case 0x57:\n            case 0x58:\n            case 0x59:\n            case 0x5A:\n            case 0x5B:\n            case 0x5C:\n            case 0x5D:\n            case 0x5E:\n            case 0x5F:\n            case 0x60:\n            case 0x61:\n            case 0x62:\n            case 0x63:\n            case 0x64:\n            case 0x65:\n            case 0x66:\n            case 0x67:\n            case 0x68:\n            case 0x69:\n            case 0x6A:\n            case 0x6B:\n            case 0x6C:\n            case 0x6D:\n            case 0x6E:\n            case 0x6F:\n            case 0x70:\n            case 0x71:\n            case 0x72:\n            case 0x73:\n            case 0x74:\n            case 0x75:\n            case 0x76:\n            case 0x77:\n            case 0x78:\n            case 0x79:\n            case 0x7A:\n            case 0x7B:\n            case 0x7C:\n            case 0x7D:\n            case 0x7E:\n            case 0x7F:\n                return sax->number_unsigned(static_cast<number_unsigned_t>(current));\n\n            // fixmap\n            case 0x80:\n            case 0x81:\n            case 0x82:\n            case 0x83:\n            case 0x84:\n            case 0x85:\n            case 0x86:\n            case 0x87:\n            case 0x88:\n            case 0x89:\n            case 0x8A:\n            case 0x8B:\n            case 0x8C:\n            case 0x8D:\n            case 0x8E:\n            case 0x8F:\n                return get_msgpack_object(conditional_static_cast<std::size_t>(static_cast<unsigned int>(current) & 0x0Fu));\n\n            // fixarray\n            case 0x90:\n            case 0x91:\n            case 0x92:\n            case 0x93:\n            case 0x94:\n            case 0x95:\n            case 0x96:\n            case 0x97:\n            case 0x98:\n            case 0x99:\n            case 0x9A:\n            case 0x9B:\n            case 0x9C:\n            case 0x9D:\n            case 0x9E:\n            case 0x9F:\n                return get_msgpack_array(conditional_static_cast<std::size_t>(static_cast<unsigned int>(current) & 0x0Fu));\n\n            // fixstr\n            case 0xA0:\n            case 0xA1:\n            case 0xA2:\n            case 0xA3:\n            case 0xA4:\n            case 0xA5:\n            case 0xA6:\n            case 0xA7:\n            case 0xA8:\n            case 0xA9:\n            case 0xAA:\n            case 0xAB:\n            case 0xAC:\n            case 0xAD:\n            case 0xAE:\n            case 0xAF:\n            case 0xB0:\n            case 0xB1:\n            case 0xB2:\n            case 0xB3:\n            case 0xB4:\n            case 0xB5:\n            case 0xB6:\n            case 0xB7:\n            case 0xB8:\n            case 0xB9:\n            case 0xBA:\n            case 0xBB:\n            case 0xBC:\n            case 0xBD:\n            case 0xBE:\n            case 0xBF:\n            case 0xD9: // str 8\n            case 0xDA: // str 16\n            case 0xDB: // str 32\n            {\n                string_t s;\n                return get_msgpack_string(s) && sax->string(s);\n            }\n\n            case 0xC0: // nil\n                return sax->null();\n\n            case 0xC2: // false\n                return sax->boolean(false);\n\n            case 0xC3: // true\n                return sax->boolean(true);\n\n            case 0xC4: // bin 8\n            case 0xC5: // bin 16\n            case 0xC6: // bin 32\n            case 0xC7: // ext 8\n            case 0xC8: // ext 16\n            case 0xC9: // ext 32\n            case 0xD4: // fixext 1\n            case 0xD5: // fixext 2\n            case 0xD6: // fixext 4\n            case 0xD7: // fixext 8\n            case 0xD8: // fixext 16\n            {\n                binary_t b;\n                return get_msgpack_binary(b) && sax->binary(b);\n            }\n\n            case 0xCA: // float 32\n            {\n                float number{};\n                return get_number(input_format_t::msgpack, number) && sax->number_float(static_cast<number_float_t>(number), \"\");\n            }\n\n            case 0xCB: // float 64\n            {\n                double number{};\n                return get_number(input_format_t::msgpack, number) && sax->number_float(static_cast<number_float_t>(number), \"\");\n            }\n\n            case 0xCC: // uint 8\n            {\n                std::uint8_t number{};\n                return get_number(input_format_t::msgpack, number) && sax->number_unsigned(number);\n            }\n\n            case 0xCD: // uint 16\n            {\n                std::uint16_t number{};\n                return get_number(input_format_t::msgpack, number) && sax->number_unsigned(number);\n            }\n\n            case 0xCE: // uint 32\n            {\n                std::uint32_t number{};\n                return get_number(input_format_t::msgpack, number) && sax->number_unsigned(number);\n            }\n\n            case 0xCF: // uint 64\n            {\n                std::uint64_t number{};\n                return get_number(input_format_t::msgpack, number) && sax->number_unsigned(number);\n            }\n\n            case 0xD0: // int 8\n            {\n                std::int8_t number{};\n                return get_number(input_format_t::msgpack, number) && sax->number_integer(number);\n            }\n\n            case 0xD1: // int 16\n            {\n                std::int16_t number{};\n                return get_number(input_format_t::msgpack, number) && sax->number_integer(number);\n            }\n\n            case 0xD2: // int 32\n            {\n                std::int32_t number{};\n                return get_number(input_format_t::msgpack, number) && sax->number_integer(number);\n            }\n\n            case 0xD3: // int 64\n            {\n                std::int64_t number{};\n                return get_number(input_format_t::msgpack, number) && sax->number_integer(number);\n            }\n\n            case 0xDC: // array 16\n            {\n                std::uint16_t len{};\n                return get_number(input_format_t::msgpack, len) && get_msgpack_array(static_cast<std::size_t>(len));\n            }\n\n            case 0xDD: // array 32\n            {\n                std::uint32_t len{};\n                return get_number(input_format_t::msgpack, len) && get_msgpack_array(conditional_static_cast<std::size_t>(len));\n            }\n\n            case 0xDE: // map 16\n            {\n                std::uint16_t len{};\n                return get_number(input_format_t::msgpack, len) && get_msgpack_object(static_cast<std::size_t>(len));\n            }\n\n            case 0xDF: // map 32\n            {\n                std::uint32_t len{};\n                return get_number(input_format_t::msgpack, len) && get_msgpack_object(conditional_static_cast<std::size_t>(len));\n            }\n\n            // negative fixint\n            case 0xE0:\n            case 0xE1:\n            case 0xE2:\n            case 0xE3:\n            case 0xE4:\n            case 0xE5:\n            case 0xE6:\n            case 0xE7:\n            case 0xE8:\n            case 0xE9:\n            case 0xEA:\n            case 0xEB:\n            case 0xEC:\n            case 0xED:\n            case 0xEE:\n            case 0xEF:\n            case 0xF0:\n            case 0xF1:\n            case 0xF2:\n            case 0xF3:\n            case 0xF4:\n            case 0xF5:\n            case 0xF6:\n            case 0xF7:\n            case 0xF8:\n            case 0xF9:\n            case 0xFA:\n            case 0xFB:\n            case 0xFC:\n            case 0xFD:\n            case 0xFE:\n            case 0xFF:\n                return sax->number_integer(static_cast<std::int8_t>(current));\n\n            default: // anything else\n            {\n                auto last_token = get_token_string();\n                return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read,\n                                        exception_message(input_format_t::msgpack, concat(\"invalid byte: 0x\", last_token), \"value\"), nullptr));\n            }\n        }\n    }\n\n    /*!\n    @brief reads a MessagePack string\n\n    This function first reads starting bytes to determine the expected\n    string length and then copies this number of bytes into a string.\n\n    @param[out] result  created string\n\n    @return whether string creation completed\n    */\n    bool get_msgpack_string(string_t& result)\n    {\n        if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format_t::msgpack, \"string\")))\n        {\n            return false;\n        }\n\n        switch (current)\n        {\n            // fixstr\n            case 0xA0:\n            case 0xA1:\n            case 0xA2:\n            case 0xA3:\n            case 0xA4:\n            case 0xA5:\n            case 0xA6:\n            case 0xA7:\n            case 0xA8:\n            case 0xA9:\n            case 0xAA:\n            case 0xAB:\n            case 0xAC:\n            case 0xAD:\n            case 0xAE:\n            case 0xAF:\n            case 0xB0:\n            case 0xB1:\n            case 0xB2:\n            case 0xB3:\n            case 0xB4:\n            case 0xB5:\n            case 0xB6:\n            case 0xB7:\n            case 0xB8:\n            case 0xB9:\n            case 0xBA:\n            case 0xBB:\n            case 0xBC:\n            case 0xBD:\n            case 0xBE:\n            case 0xBF:\n            {\n                return get_string(input_format_t::msgpack, static_cast<unsigned int>(current) & 0x1Fu, result);\n            }\n\n            case 0xD9: // str 8\n            {\n                std::uint8_t len{};\n                return get_number(input_format_t::msgpack, len) && get_string(input_format_t::msgpack, len, result);\n            }\n\n            case 0xDA: // str 16\n            {\n                std::uint16_t len{};\n                return get_number(input_format_t::msgpack, len) && get_string(input_format_t::msgpack, len, result);\n            }\n\n            case 0xDB: // str 32\n            {\n                std::uint32_t len{};\n                return get_number(input_format_t::msgpack, len) && get_string(input_format_t::msgpack, len, result);\n            }\n\n            default:\n            {\n                auto last_token = get_token_string();\n                return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read,\n                                        exception_message(input_format_t::msgpack, concat(\"expected length specification (0xA0-0xBF, 0xD9-0xDB); last byte: 0x\", last_token), \"string\"), nullptr));\n            }\n        }\n    }\n\n    /*!\n    @brief reads a MessagePack byte array\n\n    This function first reads starting bytes to determine the expected\n    byte array length and then copies this number of bytes into a byte array.\n\n    @param[out] result  created byte array\n\n    @return whether byte array creation completed\n    */\n    bool get_msgpack_binary(binary_t& result)\n    {\n        // helper function to set the subtype\n        auto assign_and_return_true = [&result](std::int8_t subtype)\n        {\n            result.set_subtype(static_cast<std::uint8_t>(subtype));\n            return true;\n        };\n\n        switch (current)\n        {\n            case 0xC4: // bin 8\n            {\n                std::uint8_t len{};\n                return get_number(input_format_t::msgpack, len) &&\n                       get_binary(input_format_t::msgpack, len, result);\n            }\n\n            case 0xC5: // bin 16\n            {\n                std::uint16_t len{};\n                return get_number(input_format_t::msgpack, len) &&\n                       get_binary(input_format_t::msgpack, len, result);\n            }\n\n            case 0xC6: // bin 32\n            {\n                std::uint32_t len{};\n                return get_number(input_format_t::msgpack, len) &&\n                       get_binary(input_format_t::msgpack, len, result);\n            }\n\n            case 0xC7: // ext 8\n            {\n                std::uint8_t len{};\n                std::int8_t subtype{};\n                return get_number(input_format_t::msgpack, len) &&\n                       get_number(input_format_t::msgpack, subtype) &&\n                       get_binary(input_format_t::msgpack, len, result) &&\n                       assign_and_return_true(subtype);\n            }\n\n            case 0xC8: // ext 16\n            {\n                std::uint16_t len{};\n                std::int8_t subtype{};\n                return get_number(input_format_t::msgpack, len) &&\n                       get_number(input_format_t::msgpack, subtype) &&\n                       get_binary(input_format_t::msgpack, len, result) &&\n                       assign_and_return_true(subtype);\n            }\n\n            case 0xC9: // ext 32\n            {\n                std::uint32_t len{};\n                std::int8_t subtype{};\n                return get_number(input_format_t::msgpack, len) &&\n                       get_number(input_format_t::msgpack, subtype) &&\n                       get_binary(input_format_t::msgpack, len, result) &&\n                       assign_and_return_true(subtype);\n            }\n\n            case 0xD4: // fixext 1\n            {\n                std::int8_t subtype{};\n                return get_number(input_format_t::msgpack, subtype) &&\n                       get_binary(input_format_t::msgpack, 1, result) &&\n                       assign_and_return_true(subtype);\n            }\n\n            case 0xD5: // fixext 2\n            {\n                std::int8_t subtype{};\n                return get_number(input_format_t::msgpack, subtype) &&\n                       get_binary(input_format_t::msgpack, 2, result) &&\n                       assign_and_return_true(subtype);\n            }\n\n            case 0xD6: // fixext 4\n            {\n                std::int8_t subtype{};\n                return get_number(input_format_t::msgpack, subtype) &&\n                       get_binary(input_format_t::msgpack, 4, result) &&\n                       assign_and_return_true(subtype);\n            }\n\n            case 0xD7: // fixext 8\n            {\n                std::int8_t subtype{};\n                return get_number(input_format_t::msgpack, subtype) &&\n                       get_binary(input_format_t::msgpack, 8, result) &&\n                       assign_and_return_true(subtype);\n            }\n\n            case 0xD8: // fixext 16\n            {\n                std::int8_t subtype{};\n                return get_number(input_format_t::msgpack, subtype) &&\n                       get_binary(input_format_t::msgpack, 16, result) &&\n                       assign_and_return_true(subtype);\n            }\n\n            default:           // LCOV_EXCL_LINE\n                return false;  // LCOV_EXCL_LINE\n        }\n    }\n\n    /*!\n    @param[in] len  the length of the array\n    @return whether array creation completed\n    */\n    bool get_msgpack_array(const std::size_t len)\n    {\n        if (JSON_HEDLEY_UNLIKELY(!sax->start_array(len)))\n        {\n            return false;\n        }\n\n        for (std::size_t i = 0; i < len; ++i)\n        {\n            if (JSON_HEDLEY_UNLIKELY(!parse_msgpack_internal()))\n            {\n                return false;\n            }\n        }\n\n        return sax->end_array();\n    }\n\n    /*!\n    @param[in] len  the length of the object\n    @return whether object creation completed\n    */\n    bool get_msgpack_object(const std::size_t len)\n    {\n        if (JSON_HEDLEY_UNLIKELY(!sax->start_object(len)))\n        {\n            return false;\n        }\n\n        string_t key;\n        for (std::size_t i = 0; i < len; ++i)\n        {\n            get();\n            if (JSON_HEDLEY_UNLIKELY(!get_msgpack_string(key) || !sax->key(key)))\n            {\n                return false;\n            }\n\n            if (JSON_HEDLEY_UNLIKELY(!parse_msgpack_internal()))\n            {\n                return false;\n            }\n            key.clear();\n        }\n\n        return sax->end_object();\n    }\n\n    ////////////\n    // UBJSON //\n    ////////////\n\n    /*!\n    @param[in] get_char  whether a new character should be retrieved from the\n                         input (true, default) or whether the last read\n                         character should be considered instead\n\n    @return whether a valid UBJSON value was passed to the SAX parser\n    */\n    bool parse_ubjson_internal(const bool get_char = true)\n    {\n        return get_ubjson_value(get_char ? get_ignore_noop() : current);\n    }\n\n    /*!\n    @brief reads a UBJSON string\n\n    This function is either called after reading the 'S' byte explicitly\n    indicating a string, or in case of an object key where the 'S' byte can be\n    left out.\n\n    @param[out] result   created string\n    @param[in] get_char  whether a new character should be retrieved from the\n                         input (true, default) or whether the last read\n                         character should be considered instead\n\n    @return whether string creation completed\n    */\n    bool get_ubjson_string(string_t& result, const bool get_char = true)\n    {\n        if (get_char)\n        {\n            get();  // TODO(niels): may we ignore N here?\n        }\n\n        if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format, \"value\")))\n        {\n            return false;\n        }\n\n        switch (current)\n        {\n            case 'U':\n            {\n                std::uint8_t len{};\n                return get_number(input_format, len) && get_string(input_format, len, result);\n            }\n\n            case 'i':\n            {\n                std::int8_t len{};\n                return get_number(input_format, len) && get_string(input_format, len, result);\n            }\n\n            case 'I':\n            {\n                std::int16_t len{};\n                return get_number(input_format, len) && get_string(input_format, len, result);\n            }\n\n            case 'l':\n            {\n                std::int32_t len{};\n                return get_number(input_format, len) && get_string(input_format, len, result);\n            }\n\n            case 'L':\n            {\n                std::int64_t len{};\n                return get_number(input_format, len) && get_string(input_format, len, result);\n            }\n\n            case 'u':\n            {\n                if (input_format != input_format_t::bjdata)\n                {\n                    break;\n                }\n                std::uint16_t len{};\n                return get_number(input_format, len) && get_string(input_format, len, result);\n            }\n\n            case 'm':\n            {\n                if (input_format != input_format_t::bjdata)\n                {\n                    break;\n                }\n                std::uint32_t len{};\n                return get_number(input_format, len) && get_string(input_format, len, result);\n            }\n\n            case 'M':\n            {\n                if (input_format != input_format_t::bjdata)\n                {\n                    break;\n                }\n                std::uint64_t len{};\n                return get_number(input_format, len) && get_string(input_format, len, result);\n            }\n\n            default:\n                break;\n        }\n        auto last_token = get_token_string();\n        std::string message;\n\n        if (input_format != input_format_t::bjdata)\n        {\n            message = \"expected length type specification (U, i, I, l, L); last byte: 0x\" + last_token;\n        }\n        else\n        {\n            message = \"expected length type specification (U, i, u, I, m, l, M, L); last byte: 0x\" + last_token;\n        }\n        return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format, message, \"string\"), nullptr));\n    }\n\n    /*!\n    @param[out] dim  an integer vector storing the ND array dimensions\n    @return whether reading ND array size vector is successful\n    */\n    bool get_ubjson_ndarray_size(std::vector<size_t>& dim)\n    {\n        std::pair<std::size_t, char_int_type> size_and_type;\n        size_t dimlen = 0;\n        bool no_ndarray = true;\n\n        if (JSON_HEDLEY_UNLIKELY(!get_ubjson_size_type(size_and_type, no_ndarray)))\n        {\n            return false;\n        }\n\n        if (size_and_type.first != npos)\n        {\n            if (size_and_type.second != 0)\n            {\n                if (size_and_type.second != 'N')\n                {\n                    for (std::size_t i = 0; i < size_and_type.first; ++i)\n                    {\n                        if (JSON_HEDLEY_UNLIKELY(!get_ubjson_size_value(dimlen, no_ndarray, size_and_type.second)))\n                        {\n                            return false;\n                        }\n                        dim.push_back(dimlen);\n                    }\n                }\n            }\n            else\n            {\n                for (std::size_t i = 0; i < size_and_type.first; ++i)\n                {\n                    if (JSON_HEDLEY_UNLIKELY(!get_ubjson_size_value(dimlen, no_ndarray)))\n                    {\n                        return false;\n                    }\n                    dim.push_back(dimlen);\n                }\n            }\n        }\n        else\n        {\n            while (current != ']')\n            {\n                if (JSON_HEDLEY_UNLIKELY(!get_ubjson_size_value(dimlen, no_ndarray, current)))\n                {\n                    return false;\n                }\n                dim.push_back(dimlen);\n                get_ignore_noop();\n            }\n        }\n        return true;\n    }\n\n    /*!\n    @param[out] result  determined size\n    @param[in,out] is_ndarray  for input, `true` means already inside an ndarray vector\n                               or ndarray dimension is not allowed; `false` means ndarray\n                               is allowed; for output, `true` means an ndarray is found;\n                               is_ndarray can only return `true` when its initial value\n                               is `false`\n    @param[in] prefix  type marker if already read, otherwise set to 0\n\n    @return whether size determination completed\n    */\n    bool get_ubjson_size_value(std::size_t& result, bool& is_ndarray, char_int_type prefix = 0)\n    {\n        if (prefix == 0)\n        {\n            prefix = get_ignore_noop();\n        }\n\n        switch (prefix)\n        {\n            case 'U':\n            {\n                std::uint8_t number{};\n                if (JSON_HEDLEY_UNLIKELY(!get_number(input_format, number)))\n                {\n                    return false;\n                }\n                result = static_cast<std::size_t>(number);\n                return true;\n            }\n\n            case 'i':\n            {\n                std::int8_t number{};\n                if (JSON_HEDLEY_UNLIKELY(!get_number(input_format, number)))\n                {\n                    return false;\n                }\n                if (number < 0)\n                {\n                    return sax->parse_error(chars_read, get_token_string(), parse_error::create(113, chars_read,\n                                            exception_message(input_format, \"count in an optimized container must be positive\", \"size\"), nullptr));\n                }\n                result = static_cast<std::size_t>(number); // NOLINT(bugprone-signed-char-misuse,cert-str34-c): number is not a char\n                return true;\n            }\n\n            case 'I':\n            {\n                std::int16_t number{};\n                if (JSON_HEDLEY_UNLIKELY(!get_number(input_format, number)))\n                {\n                    return false;\n                }\n                if (number < 0)\n                {\n                    return sax->parse_error(chars_read, get_token_string(), parse_error::create(113, chars_read,\n                                            exception_message(input_format, \"count in an optimized container must be positive\", \"size\"), nullptr));\n                }\n                result = static_cast<std::size_t>(number);\n                return true;\n            }\n\n            case 'l':\n            {\n                std::int32_t number{};\n                if (JSON_HEDLEY_UNLIKELY(!get_number(input_format, number)))\n                {\n                    return false;\n                }\n                if (number < 0)\n                {\n                    return sax->parse_error(chars_read, get_token_string(), parse_error::create(113, chars_read,\n                                            exception_message(input_format, \"count in an optimized container must be positive\", \"size\"), nullptr));\n                }\n                result = static_cast<std::size_t>(number);\n                return true;\n            }\n\n            case 'L':\n            {\n                std::int64_t number{};\n                if (JSON_HEDLEY_UNLIKELY(!get_number(input_format, number)))\n                {\n                    return false;\n                }\n                if (number < 0)\n                {\n                    return sax->parse_error(chars_read, get_token_string(), parse_error::create(113, chars_read,\n                                            exception_message(input_format, \"count in an optimized container must be positive\", \"size\"), nullptr));\n                }\n                if (!value_in_range_of<std::size_t>(number))\n                {\n                    return sax->parse_error(chars_read, get_token_string(), out_of_range::create(408,\n                                            exception_message(input_format, \"integer value overflow\", \"size\"), nullptr));\n                }\n                result = static_cast<std::size_t>(number);\n                return true;\n            }\n\n            case 'u':\n            {\n                if (input_format != input_format_t::bjdata)\n                {\n                    break;\n                }\n                std::uint16_t number{};\n                if (JSON_HEDLEY_UNLIKELY(!get_number(input_format, number)))\n                {\n                    return false;\n                }\n                result = static_cast<std::size_t>(number);\n                return true;\n            }\n\n            case 'm':\n            {\n                if (input_format != input_format_t::bjdata)\n                {\n                    break;\n                }\n                std::uint32_t number{};\n                if (JSON_HEDLEY_UNLIKELY(!get_number(input_format, number)))\n                {\n                    return false;\n                }\n                result = conditional_static_cast<std::size_t>(number);\n                return true;\n            }\n\n            case 'M':\n            {\n                if (input_format != input_format_t::bjdata)\n                {\n                    break;\n                }\n                std::uint64_t number{};\n                if (JSON_HEDLEY_UNLIKELY(!get_number(input_format, number)))\n                {\n                    return false;\n                }\n                if (!value_in_range_of<std::size_t>(number))\n                {\n                    return sax->parse_error(chars_read, get_token_string(), out_of_range::create(408,\n                                            exception_message(input_format, \"integer value overflow\", \"size\"), nullptr));\n                }\n                result = detail::conditional_static_cast<std::size_t>(number);\n                return true;\n            }\n\n            case '[':\n            {\n                if (input_format != input_format_t::bjdata)\n                {\n                    break;\n                }\n                if (is_ndarray) // ndarray dimensional vector can only contain integers, and can not embed another array\n                {\n                    return sax->parse_error(chars_read, get_token_string(), parse_error::create(113, chars_read, exception_message(input_format, \"ndarray dimensional vector is not allowed\", \"size\"), nullptr));\n                }\n                std::vector<size_t> dim;\n                if (JSON_HEDLEY_UNLIKELY(!get_ubjson_ndarray_size(dim)))\n                {\n                    return false;\n                }\n                if (dim.size() == 1 || (dim.size() == 2 && dim.at(0) == 1)) // return normal array size if 1D row vector\n                {\n                    result = dim.at(dim.size() - 1);\n                    return true;\n                }\n                if (!dim.empty())  // if ndarray, convert to an object in JData annotated array format\n                {\n                    for (auto i : dim) // test if any dimension in an ndarray is 0, if so, return a 1D empty container\n                    {\n                        if ( i == 0 )\n                        {\n                            result = 0;\n                            return true;\n                        }\n                    }\n\n                    string_t key = \"_ArraySize_\";\n                    if (JSON_HEDLEY_UNLIKELY(!sax->start_object(3) || !sax->key(key) || !sax->start_array(dim.size())))\n                    {\n                        return false;\n                    }\n                    result = 1;\n                    for (auto i : dim)\n                    {\n                        result *= i;\n                        if (result == 0 || result == npos) // because dim elements shall not have zeros, result = 0 means overflow happened; it also can't be npos as it is used to initialize size in get_ubjson_size_type()\n                        {\n                            return sax->parse_error(chars_read, get_token_string(), out_of_range::create(408, exception_message(input_format, \"excessive ndarray size caused overflow\", \"size\"), nullptr));\n                        }\n                        if (JSON_HEDLEY_UNLIKELY(!sax->number_unsigned(static_cast<number_unsigned_t>(i))))\n                        {\n                            return false;\n                        }\n                    }\n                    is_ndarray = true;\n                    return sax->end_array();\n                }\n                result = 0;\n                return true;\n            }\n\n            default:\n                break;\n        }\n        auto last_token = get_token_string();\n        std::string message;\n\n        if (input_format != input_format_t::bjdata)\n        {\n            message = \"expected length type specification (U, i, I, l, L) after '#'; last byte: 0x\" + last_token;\n        }\n        else\n        {\n            message = \"expected length type specification (U, i, u, I, m, l, M, L) after '#'; last byte: 0x\" + last_token;\n        }\n        return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format, message, \"size\"), nullptr));\n    }\n\n    /*!\n    @brief determine the type and size for a container\n\n    In the optimized UBJSON format, a type and a size can be provided to allow\n    for a more compact representation.\n\n    @param[out] result  pair of the size and the type\n    @param[in] inside_ndarray  whether the parser is parsing an ND array dimensional vector\n\n    @return whether pair creation completed\n    */\n    bool get_ubjson_size_type(std::pair<std::size_t, char_int_type>& result, bool inside_ndarray = false)\n    {\n        result.first = npos; // size\n        result.second = 0; // type\n        bool is_ndarray = false;\n\n        get_ignore_noop();\n\n        if (current == '$')\n        {\n            result.second = get();  // must not ignore 'N', because 'N' maybe the type\n            if (input_format == input_format_t::bjdata\n                    && JSON_HEDLEY_UNLIKELY(std::binary_search(bjd_optimized_type_markers.begin(), bjd_optimized_type_markers.end(), result.second)))\n            {\n                auto last_token = get_token_string();\n                return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read,\n                                        exception_message(input_format, concat(\"marker 0x\", last_token, \" is not a permitted optimized array type\"), \"type\"), nullptr));\n            }\n\n            if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format, \"type\")))\n            {\n                return false;\n            }\n\n            get_ignore_noop();\n            if (JSON_HEDLEY_UNLIKELY(current != '#'))\n            {\n                if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format, \"value\")))\n                {\n                    return false;\n                }\n                auto last_token = get_token_string();\n                return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read,\n                                        exception_message(input_format, concat(\"expected '#' after type information; last byte: 0x\", last_token), \"size\"), nullptr));\n            }\n\n            const bool is_error = get_ubjson_size_value(result.first, is_ndarray);\n            if (input_format == input_format_t::bjdata && is_ndarray)\n            {\n                if (inside_ndarray)\n                {\n                    return sax->parse_error(chars_read, get_token_string(), parse_error::create(112, chars_read,\n                                            exception_message(input_format, \"ndarray can not be recursive\", \"size\"), nullptr));\n                }\n                result.second |= (1 << 8); // use bit 8 to indicate ndarray, all UBJSON and BJData markers should be ASCII letters\n            }\n            return is_error;\n        }\n\n        if (current == '#')\n        {\n            const bool is_error = get_ubjson_size_value(result.first, is_ndarray);\n            if (input_format == input_format_t::bjdata && is_ndarray)\n            {\n                return sax->parse_error(chars_read, get_token_string(), parse_error::create(112, chars_read,\n                                        exception_message(input_format, \"ndarray requires both type and size\", \"size\"), nullptr));\n            }\n            return is_error;\n        }\n\n        return true;\n    }\n\n    /*!\n    @param prefix  the previously read or set type prefix\n    @return whether value creation completed\n    */\n    bool get_ubjson_value(const char_int_type prefix)\n    {\n        switch (prefix)\n        {\n            case std::char_traits<char_type>::eof():  // EOF\n                return unexpect_eof(input_format, \"value\");\n\n            case 'T':  // true\n                return sax->boolean(true);\n            case 'F':  // false\n                return sax->boolean(false);\n\n            case 'Z':  // null\n                return sax->null();\n\n            case 'U':\n            {\n                std::uint8_t number{};\n                return get_number(input_format, number) && sax->number_unsigned(number);\n            }\n\n            case 'i':\n            {\n                std::int8_t number{};\n                return get_number(input_format, number) && sax->number_integer(number);\n            }\n\n            case 'I':\n            {\n                std::int16_t number{};\n                return get_number(input_format, number) && sax->number_integer(number);\n            }\n\n            case 'l':\n            {\n                std::int32_t number{};\n                return get_number(input_format, number) && sax->number_integer(number);\n            }\n\n            case 'L':\n            {\n                std::int64_t number{};\n                return get_number(input_format, number) && sax->number_integer(number);\n            }\n\n            case 'u':\n            {\n                if (input_format != input_format_t::bjdata)\n                {\n                    break;\n                }\n                std::uint16_t number{};\n                return get_number(input_format, number) && sax->number_unsigned(number);\n            }\n\n            case 'm':\n            {\n                if (input_format != input_format_t::bjdata)\n                {\n                    break;\n                }\n                std::uint32_t number{};\n                return get_number(input_format, number) && sax->number_unsigned(number);\n            }\n\n            case 'M':\n            {\n                if (input_format != input_format_t::bjdata)\n                {\n                    break;\n                }\n                std::uint64_t number{};\n                return get_number(input_format, number) && sax->number_unsigned(number);\n            }\n\n            case 'h':\n            {\n                if (input_format != input_format_t::bjdata)\n                {\n                    break;\n                }\n                const auto byte1_raw = get();\n                if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format, \"number\")))\n                {\n                    return false;\n                }\n                const auto byte2_raw = get();\n                if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format, \"number\")))\n                {\n                    return false;\n                }\n\n                const auto byte1 = static_cast<unsigned char>(byte1_raw);\n                const auto byte2 = static_cast<unsigned char>(byte2_raw);\n\n                // code from RFC 7049, Appendix D, Figure 3:\n                // As half-precision floating-point numbers were only added\n                // to IEEE 754 in 2008, today's programming platforms often\n                // still only have limited support for them. It is very\n                // easy to include at least decoding support for them even\n                // without such support. An example of a small decoder for\n                // half-precision floating-point numbers in the C language\n                // is shown in Fig. 3.\n                const auto half = static_cast<unsigned int>((byte2 << 8u) + byte1);\n                const double val = [&half]\n                {\n                    const int exp = (half >> 10u) & 0x1Fu;\n                    const unsigned int mant = half & 0x3FFu;\n                    JSON_ASSERT(0 <= exp&& exp <= 32);\n                    JSON_ASSERT(mant <= 1024);\n                    switch (exp)\n                    {\n                        case 0:\n                            return std::ldexp(mant, -24);\n                        case 31:\n                            return (mant == 0)\n                            ? std::numeric_limits<double>::infinity()\n                            : std::numeric_limits<double>::quiet_NaN();\n                        default:\n                            return std::ldexp(mant + 1024, exp - 25);\n                    }\n                }();\n                return sax->number_float((half & 0x8000u) != 0\n                                         ? static_cast<number_float_t>(-val)\n                                         : static_cast<number_float_t>(val), \"\");\n            }\n\n            case 'd':\n            {\n                float number{};\n                return get_number(input_format, number) && sax->number_float(static_cast<number_float_t>(number), \"\");\n            }\n\n            case 'D':\n            {\n                double number{};\n                return get_number(input_format, number) && sax->number_float(static_cast<number_float_t>(number), \"\");\n            }\n\n            case 'H':\n            {\n                return get_ubjson_high_precision_number();\n            }\n\n            case 'C':  // char\n            {\n                get();\n                if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format, \"char\")))\n                {\n                    return false;\n                }\n                if (JSON_HEDLEY_UNLIKELY(current > 127))\n                {\n                    auto last_token = get_token_string();\n                    return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read,\n                                            exception_message(input_format, concat(\"byte after 'C' must be in range 0x00..0x7F; last byte: 0x\", last_token), \"char\"), nullptr));\n                }\n                string_t s(1, static_cast<typename string_t::value_type>(current));\n                return sax->string(s);\n            }\n\n            case 'S':  // string\n            {\n                string_t s;\n                return get_ubjson_string(s) && sax->string(s);\n            }\n\n            case '[':  // array\n                return get_ubjson_array();\n\n            case '{':  // object\n                return get_ubjson_object();\n\n            default: // anything else\n                break;\n        }\n        auto last_token = get_token_string();\n        return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format, \"invalid byte: 0x\" + last_token, \"value\"), nullptr));\n    }\n\n    /*!\n    @return whether array creation completed\n    */\n    bool get_ubjson_array()\n    {\n        std::pair<std::size_t, char_int_type> size_and_type;\n        if (JSON_HEDLEY_UNLIKELY(!get_ubjson_size_type(size_and_type)))\n        {\n            return false;\n        }\n\n        // if bit-8 of size_and_type.second is set to 1, encode bjdata ndarray as an object in JData annotated array format (https://github.com/NeuroJSON/jdata):\n        // {\"_ArrayType_\" : \"typeid\", \"_ArraySize_\" : [n1, n2, ...], \"_ArrayData_\" : [v1, v2, ...]}\n\n        if (input_format == input_format_t::bjdata && size_and_type.first != npos && (size_and_type.second & (1 << 8)) != 0)\n        {\n            size_and_type.second &= ~(static_cast<char_int_type>(1) << 8);  // use bit 8 to indicate ndarray, here we remove the bit to restore the type marker\n            auto it = std::lower_bound(bjd_types_map.begin(), bjd_types_map.end(), size_and_type.second, [](const bjd_type & p, char_int_type t)\n            {\n                return p.first < t;\n            });\n            string_t key = \"_ArrayType_\";\n            if (JSON_HEDLEY_UNLIKELY(it == bjd_types_map.end() || it->first != size_and_type.second))\n            {\n                auto last_token = get_token_string();\n                return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read,\n                                        exception_message(input_format, \"invalid byte: 0x\" + last_token, \"type\"), nullptr));\n            }\n\n            string_t type = it->second; // sax->string() takes a reference\n            if (JSON_HEDLEY_UNLIKELY(!sax->key(key) || !sax->string(type)))\n            {\n                return false;\n            }\n\n            if (size_and_type.second == 'C')\n            {\n                size_and_type.second = 'U';\n            }\n\n            key = \"_ArrayData_\";\n            if (JSON_HEDLEY_UNLIKELY(!sax->key(key) || !sax->start_array(size_and_type.first) ))\n            {\n                return false;\n            }\n\n            for (std::size_t i = 0; i < size_and_type.first; ++i)\n            {\n                if (JSON_HEDLEY_UNLIKELY(!get_ubjson_value(size_and_type.second)))\n                {\n                    return false;\n                }\n            }\n\n            return (sax->end_array() && sax->end_object());\n        }\n\n        if (size_and_type.first != npos)\n        {\n            if (JSON_HEDLEY_UNLIKELY(!sax->start_array(size_and_type.first)))\n            {\n                return false;\n            }\n\n            if (size_and_type.second != 0)\n            {\n                if (size_and_type.second != 'N')\n                {\n                    for (std::size_t i = 0; i < size_and_type.first; ++i)\n                    {\n                        if (JSON_HEDLEY_UNLIKELY(!get_ubjson_value(size_and_type.second)))\n                        {\n                            return false;\n                        }\n                    }\n                }\n            }\n            else\n            {\n                for (std::size_t i = 0; i < size_and_type.first; ++i)\n                {\n                    if (JSON_HEDLEY_UNLIKELY(!parse_ubjson_internal()))\n                    {\n                        return false;\n                    }\n                }\n            }\n        }\n        else\n        {\n            if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast<std::size_t>(-1))))\n            {\n                return false;\n            }\n\n            while (current != ']')\n            {\n                if (JSON_HEDLEY_UNLIKELY(!parse_ubjson_internal(false)))\n                {\n                    return false;\n                }\n                get_ignore_noop();\n            }\n        }\n\n        return sax->end_array();\n    }\n\n    /*!\n    @return whether object creation completed\n    */\n    bool get_ubjson_object()\n    {\n        std::pair<std::size_t, char_int_type> size_and_type;\n        if (JSON_HEDLEY_UNLIKELY(!get_ubjson_size_type(size_and_type)))\n        {\n            return false;\n        }\n\n        // do not accept ND-array size in objects in BJData\n        if (input_format == input_format_t::bjdata && size_and_type.first != npos && (size_and_type.second & (1 << 8)) != 0)\n        {\n            auto last_token = get_token_string();\n            return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read,\n                                    exception_message(input_format, \"BJData object does not support ND-array size in optimized format\", \"object\"), nullptr));\n        }\n\n        string_t key;\n        if (size_and_type.first != npos)\n        {\n            if (JSON_HEDLEY_UNLIKELY(!sax->start_object(size_and_type.first)))\n            {\n                return false;\n            }\n\n            if (size_and_type.second != 0)\n            {\n                for (std::size_t i = 0; i < size_and_type.first; ++i)\n                {\n                    if (JSON_HEDLEY_UNLIKELY(!get_ubjson_string(key) || !sax->key(key)))\n                    {\n                        return false;\n                    }\n                    if (JSON_HEDLEY_UNLIKELY(!get_ubjson_value(size_and_type.second)))\n                    {\n                        return false;\n                    }\n                    key.clear();\n                }\n            }\n            else\n            {\n                for (std::size_t i = 0; i < size_and_type.first; ++i)\n                {\n                    if (JSON_HEDLEY_UNLIKELY(!get_ubjson_string(key) || !sax->key(key)))\n                    {\n                        return false;\n                    }\n                    if (JSON_HEDLEY_UNLIKELY(!parse_ubjson_internal()))\n                    {\n                        return false;\n                    }\n                    key.clear();\n                }\n            }\n        }\n        else\n        {\n            if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast<std::size_t>(-1))))\n            {\n                return false;\n            }\n\n            while (current != '}')\n            {\n                if (JSON_HEDLEY_UNLIKELY(!get_ubjson_string(key, false) || !sax->key(key)))\n                {\n                    return false;\n                }\n                if (JSON_HEDLEY_UNLIKELY(!parse_ubjson_internal()))\n                {\n                    return false;\n                }\n                get_ignore_noop();\n                key.clear();\n            }\n        }\n\n        return sax->end_object();\n    }\n\n    // Note, no reader for UBJSON binary types is implemented because they do\n    // not exist\n\n    bool get_ubjson_high_precision_number()\n    {\n        // get size of following number string\n        std::size_t size{};\n        bool no_ndarray = true;\n        auto res = get_ubjson_size_value(size, no_ndarray);\n        if (JSON_HEDLEY_UNLIKELY(!res))\n        {\n            return res;\n        }\n\n        // get number string\n        std::vector<char> number_vector;\n        for (std::size_t i = 0; i < size; ++i)\n        {\n            get();\n            if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(input_format, \"number\")))\n            {\n                return false;\n            }\n            number_vector.push_back(static_cast<char>(current));\n        }\n\n        // parse number string\n        using ia_type = decltype(detail::input_adapter(number_vector));\n        auto number_lexer = detail::lexer<BasicJsonType, ia_type>(detail::input_adapter(number_vector), false);\n        const auto result_number = number_lexer.scan();\n        const auto number_string = number_lexer.get_token_string();\n        const auto result_remainder = number_lexer.scan();\n\n        using token_type = typename detail::lexer_base<BasicJsonType>::token_type;\n\n        if (JSON_HEDLEY_UNLIKELY(result_remainder != token_type::end_of_input))\n        {\n            return sax->parse_error(chars_read, number_string, parse_error::create(115, chars_read,\n                                    exception_message(input_format, concat(\"invalid number text: \", number_lexer.get_token_string()), \"high-precision number\"), nullptr));\n        }\n\n        switch (result_number)\n        {\n            case token_type::value_integer:\n                return sax->number_integer(number_lexer.get_number_integer());\n            case token_type::value_unsigned:\n                return sax->number_unsigned(number_lexer.get_number_unsigned());\n            case token_type::value_float:\n                return sax->number_float(number_lexer.get_number_float(), std::move(number_string));\n            case token_type::uninitialized:\n            case token_type::literal_true:\n            case token_type::literal_false:\n            case token_type::literal_null:\n            case token_type::value_string:\n            case token_type::begin_array:\n            case token_type::begin_object:\n            case token_type::end_array:\n            case token_type::end_object:\n            case token_type::name_separator:\n            case token_type::value_separator:\n            case token_type::parse_error:\n            case token_type::end_of_input:\n            case token_type::literal_or_value:\n            default:\n                return sax->parse_error(chars_read, number_string, parse_error::create(115, chars_read,\n                                        exception_message(input_format, concat(\"invalid number text: \", number_lexer.get_token_string()), \"high-precision number\"), nullptr));\n        }\n    }\n\n    ///////////////////////\n    // Utility functions //\n    ///////////////////////\n\n    /*!\n    @brief get next character from the input\n\n    This function provides the interface to the used input adapter. It does\n    not throw in case the input reached EOF, but returns a -'ve valued\n    `std::char_traits<char_type>::eof()` in that case.\n\n    @return character read from the input\n    */\n    char_int_type get()\n    {\n        ++chars_read;\n        return current = ia.get_character();\n    }\n\n    /*!\n    @return character read from the input after ignoring all 'N' entries\n    */\n    char_int_type get_ignore_noop()\n    {\n        do\n        {\n            get();\n        }\n        while (current == 'N');\n\n        return current;\n    }\n\n    /*\n    @brief read a number from the input\n\n    @tparam NumberType the type of the number\n    @param[in] format   the current format (for diagnostics)\n    @param[out] result  number of type @a NumberType\n\n    @return whether conversion completed\n\n    @note This function needs to respect the system's endianness, because\n          bytes in CBOR, MessagePack, and UBJSON are stored in network order\n          (big endian) and therefore need reordering on little endian systems.\n          On the other hand, BSON and BJData use little endian and should reorder\n          on big endian systems.\n    */\n    template<typename NumberType, bool InputIsLittleEndian = false>\n    bool get_number(const input_format_t format, NumberType& result)\n    {\n        // step 1: read input into array with system's byte order\n        std::array<std::uint8_t, sizeof(NumberType)> vec{};\n        for (std::size_t i = 0; i < sizeof(NumberType); ++i)\n        {\n            get();\n            if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, \"number\")))\n            {\n                return false;\n            }\n\n            // reverse byte order prior to conversion if necessary\n            if (is_little_endian != (InputIsLittleEndian || format == input_format_t::bjdata))\n            {\n                vec[sizeof(NumberType) - i - 1] = static_cast<std::uint8_t>(current);\n            }\n            else\n            {\n                vec[i] = static_cast<std::uint8_t>(current); // LCOV_EXCL_LINE\n            }\n        }\n\n        // step 2: convert array into number of type T and return\n        std::memcpy(&result, vec.data(), sizeof(NumberType));\n        return true;\n    }\n\n    /*!\n    @brief create a string by reading characters from the input\n\n    @tparam NumberType the type of the number\n    @param[in] format the current format (for diagnostics)\n    @param[in] len number of characters to read\n    @param[out] result string created by reading @a len bytes\n\n    @return whether string creation completed\n\n    @note We can not reserve @a len bytes for the result, because @a len\n          may be too large. Usually, @ref unexpect_eof() detects the end of\n          the input before we run out of string memory.\n    */\n    template<typename NumberType>\n    bool get_string(const input_format_t format,\n                    const NumberType len,\n                    string_t& result)\n    {\n        bool success = true;\n        for (NumberType i = 0; i < len; i++)\n        {\n            get();\n            if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, \"string\")))\n            {\n                success = false;\n                break;\n            }\n            result.push_back(static_cast<typename string_t::value_type>(current));\n        }\n        return success;\n    }\n\n    /*!\n    @brief create a byte array by reading bytes from the input\n\n    @tparam NumberType the type of the number\n    @param[in] format the current format (for diagnostics)\n    @param[in] len number of bytes to read\n    @param[out] result byte array created by reading @a len bytes\n\n    @return whether byte array creation completed\n\n    @note We can not reserve @a len bytes for the result, because @a len\n          may be too large. Usually, @ref unexpect_eof() detects the end of\n          the input before we run out of memory.\n    */\n    template<typename NumberType>\n    bool get_binary(const input_format_t format,\n                    const NumberType len,\n                    binary_t& result)\n    {\n        bool success = true;\n        for (NumberType i = 0; i < len; i++)\n        {\n            get();\n            if (JSON_HEDLEY_UNLIKELY(!unexpect_eof(format, \"binary\")))\n            {\n                success = false;\n                break;\n            }\n            result.push_back(static_cast<std::uint8_t>(current));\n        }\n        return success;\n    }\n\n    /*!\n    @param[in] format   the current format (for diagnostics)\n    @param[in] context  further context information (for diagnostics)\n    @return whether the last read character is not EOF\n    */\n    JSON_HEDLEY_NON_NULL(3)\n    bool unexpect_eof(const input_format_t format, const char* context) const\n    {\n        if (JSON_HEDLEY_UNLIKELY(current == std::char_traits<char_type>::eof()))\n        {\n            return sax->parse_error(chars_read, \"<end of file>\",\n                                    parse_error::create(110, chars_read, exception_message(format, \"unexpected end of input\", context), nullptr));\n        }\n        return true;\n    }\n\n    /*!\n    @return a string representation of the last read byte\n    */\n    std::string get_token_string() const\n    {\n        std::array<char, 3> cr{{}};\n        static_cast<void>((std::snprintf)(cr.data(), cr.size(), \"%.2hhX\", static_cast<unsigned char>(current))); // NOLINT(cppcoreguidelines-pro-type-vararg,hicpp-vararg)\n        return std::string{cr.data()};\n    }\n\n    /*!\n    @param[in] format   the current format\n    @param[in] detail   a detailed error message\n    @param[in] context  further context information\n    @return a message string to use in the parse_error exceptions\n    */\n    std::string exception_message(const input_format_t format,\n                                  const std::string& detail,\n                                  const std::string& context) const\n    {\n        std::string error_msg = \"syntax error while parsing \";\n\n        switch (format)\n        {\n            case input_format_t::cbor:\n                error_msg += \"CBOR\";\n                break;\n\n            case input_format_t::msgpack:\n                error_msg += \"MessagePack\";\n                break;\n\n            case input_format_t::ubjson:\n                error_msg += \"UBJSON\";\n                break;\n\n            case input_format_t::bson:\n                error_msg += \"BSON\";\n                break;\n\n            case input_format_t::bjdata:\n                error_msg += \"BJData\";\n                break;\n\n            case input_format_t::json: // LCOV_EXCL_LINE\n            default:            // LCOV_EXCL_LINE\n                JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE\n        }\n\n        return concat(error_msg, ' ', context, \": \", detail);\n    }\n\n  private:\n    static JSON_INLINE_VARIABLE constexpr std::size_t npos = static_cast<std::size_t>(-1);\n\n    /// input adapter\n    InputAdapterType ia;\n\n    /// the current character\n    char_int_type current = std::char_traits<char_type>::eof();\n\n    /// the number of characters read\n    std::size_t chars_read = 0;\n\n    /// whether we can assume little endianness\n    const bool is_little_endian = little_endianness();\n\n    /// input format\n    const input_format_t input_format = input_format_t::json;\n\n    /// the SAX parser\n    json_sax_t* sax = nullptr;\n\n    // excluded markers in bjdata optimized type\n#define JSON_BINARY_READER_MAKE_BJD_OPTIMIZED_TYPE_MARKERS_ \\\n    make_array<char_int_type>('F', 'H', 'N', 'S', 'T', 'Z', '[', '{')\n\n#define JSON_BINARY_READER_MAKE_BJD_TYPES_MAP_ \\\n    make_array<bjd_type>(                      \\\n    bjd_type{'C', \"char\"},                     \\\n    bjd_type{'D', \"double\"},                   \\\n    bjd_type{'I', \"int16\"},                    \\\n    bjd_type{'L', \"int64\"},                    \\\n    bjd_type{'M', \"uint64\"},                   \\\n    bjd_type{'U', \"uint8\"},                    \\\n    bjd_type{'d', \"single\"},                   \\\n    bjd_type{'i', \"int8\"},                     \\\n    bjd_type{'l', \"int32\"},                    \\\n    bjd_type{'m', \"uint32\"},                   \\\n    bjd_type{'u', \"uint16\"})\n\n  JSON_PRIVATE_UNLESS_TESTED:\n    // lookup tables\n    // NOLINTNEXTLINE(cppcoreguidelines-non-private-member-variables-in-classes)\n    const decltype(JSON_BINARY_READER_MAKE_BJD_OPTIMIZED_TYPE_MARKERS_) bjd_optimized_type_markers =\n        JSON_BINARY_READER_MAKE_BJD_OPTIMIZED_TYPE_MARKERS_;\n\n    using bjd_type = std::pair<char_int_type, string_t>;\n    // NOLINTNEXTLINE(cppcoreguidelines-non-private-member-variables-in-classes)\n    const decltype(JSON_BINARY_READER_MAKE_BJD_TYPES_MAP_) bjd_types_map =\n        JSON_BINARY_READER_MAKE_BJD_TYPES_MAP_;\n\n#undef JSON_BINARY_READER_MAKE_BJD_OPTIMIZED_TYPE_MARKERS_\n#undef JSON_BINARY_READER_MAKE_BJD_TYPES_MAP_\n};\n\n#ifndef JSON_HAS_CPP_17\n    template<typename BasicJsonType, typename InputAdapterType, typename SAX>\n    constexpr std::size_t binary_reader<BasicJsonType, InputAdapterType, SAX>::npos;\n#endif\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/input/input_adapters.hpp>\n\n// #include <nlohmann/detail/input/lexer.hpp>\n\n// #include <nlohmann/detail/input/parser.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <cmath> // isfinite\n#include <cstdint> // uint8_t\n#include <functional> // function\n#include <string> // string\n#include <utility> // move\n#include <vector> // vector\n\n// #include <nlohmann/detail/exceptions.hpp>\n\n// #include <nlohmann/detail/input/input_adapters.hpp>\n\n// #include <nlohmann/detail/input/json_sax.hpp>\n\n// #include <nlohmann/detail/input/lexer.hpp>\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n// #include <nlohmann/detail/meta/is_sax.hpp>\n\n// #include <nlohmann/detail/string_concat.hpp>\n\n// #include <nlohmann/detail/value_t.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n////////////\n// parser //\n////////////\n\nenum class parse_event_t : std::uint8_t\n{\n    /// the parser read `{` and started to process a JSON object\n    object_start,\n    /// the parser read `}` and finished processing a JSON object\n    object_end,\n    /// the parser read `[` and started to process a JSON array\n    array_start,\n    /// the parser read `]` and finished processing a JSON array\n    array_end,\n    /// the parser read a key of a value in an object\n    key,\n    /// the parser finished reading a JSON value\n    value\n};\n\ntemplate<typename BasicJsonType>\nusing parser_callback_t =\n    std::function<bool(int /*depth*/, parse_event_t /*event*/, BasicJsonType& /*parsed*/)>;\n\n/*!\n@brief syntax analysis\n\nThis class implements a recursive descent parser.\n*/\ntemplate<typename BasicJsonType, typename InputAdapterType>\nclass parser\n{\n    using number_integer_t = typename BasicJsonType::number_integer_t;\n    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;\n    using number_float_t = typename BasicJsonType::number_float_t;\n    using string_t = typename BasicJsonType::string_t;\n    using lexer_t = lexer<BasicJsonType, InputAdapterType>;\n    using token_type = typename lexer_t::token_type;\n\n  public:\n    /// a parser reading from an input adapter\n    explicit parser(InputAdapterType&& adapter,\n                    const parser_callback_t<BasicJsonType> cb = nullptr,\n                    const bool allow_exceptions_ = true,\n                    const bool skip_comments = false)\n        : callback(cb)\n        , m_lexer(std::move(adapter), skip_comments)\n        , allow_exceptions(allow_exceptions_)\n    {\n        // read first token\n        get_token();\n    }\n\n    /*!\n    @brief public parser interface\n\n    @param[in] strict      whether to expect the last token to be EOF\n    @param[in,out] result  parsed JSON value\n\n    @throw parse_error.101 in case of an unexpected token\n    @throw parse_error.102 if to_unicode fails or surrogate error\n    @throw parse_error.103 if to_unicode fails\n    */\n    void parse(const bool strict, BasicJsonType& result)\n    {\n        if (callback)\n        {\n            json_sax_dom_callback_parser<BasicJsonType> sdp(result, callback, allow_exceptions);\n            sax_parse_internal(&sdp);\n\n            // in strict mode, input must be completely read\n            if (strict && (get_token() != token_type::end_of_input))\n            {\n                sdp.parse_error(m_lexer.get_position(),\n                                m_lexer.get_token_string(),\n                                parse_error::create(101, m_lexer.get_position(),\n                                                    exception_message(token_type::end_of_input, \"value\"), nullptr));\n            }\n\n            // in case of an error, return discarded value\n            if (sdp.is_errored())\n            {\n                result = value_t::discarded;\n                return;\n            }\n\n            // set top-level value to null if it was discarded by the callback\n            // function\n            if (result.is_discarded())\n            {\n                result = nullptr;\n            }\n        }\n        else\n        {\n            json_sax_dom_parser<BasicJsonType> sdp(result, allow_exceptions);\n            sax_parse_internal(&sdp);\n\n            // in strict mode, input must be completely read\n            if (strict && (get_token() != token_type::end_of_input))\n            {\n                sdp.parse_error(m_lexer.get_position(),\n                                m_lexer.get_token_string(),\n                                parse_error::create(101, m_lexer.get_position(), exception_message(token_type::end_of_input, \"value\"), nullptr));\n            }\n\n            // in case of an error, return discarded value\n            if (sdp.is_errored())\n            {\n                result = value_t::discarded;\n                return;\n            }\n        }\n\n        result.assert_invariant();\n    }\n\n    /*!\n    @brief public accept interface\n\n    @param[in] strict  whether to expect the last token to be EOF\n    @return whether the input is a proper JSON text\n    */\n    bool accept(const bool strict = true)\n    {\n        json_sax_acceptor<BasicJsonType> sax_acceptor;\n        return sax_parse(&sax_acceptor, strict);\n    }\n\n    template<typename SAX>\n    JSON_HEDLEY_NON_NULL(2)\n    bool sax_parse(SAX* sax, const bool strict = true)\n    {\n        (void)detail::is_sax_static_asserts<SAX, BasicJsonType> {};\n        const bool result = sax_parse_internal(sax);\n\n        // strict mode: next byte must be EOF\n        if (result && strict && (get_token() != token_type::end_of_input))\n        {\n            return sax->parse_error(m_lexer.get_position(),\n                                    m_lexer.get_token_string(),\n                                    parse_error::create(101, m_lexer.get_position(), exception_message(token_type::end_of_input, \"value\"), nullptr));\n        }\n\n        return result;\n    }\n\n  private:\n    template<typename SAX>\n    JSON_HEDLEY_NON_NULL(2)\n    bool sax_parse_internal(SAX* sax)\n    {\n        // stack to remember the hierarchy of structured values we are parsing\n        // true = array; false = object\n        std::vector<bool> states;\n        // value to avoid a goto (see comment where set to true)\n        bool skip_to_state_evaluation = false;\n\n        while (true)\n        {\n            if (!skip_to_state_evaluation)\n            {\n                // invariant: get_token() was called before each iteration\n                switch (last_token)\n                {\n                    case token_type::begin_object:\n                    {\n                        if (JSON_HEDLEY_UNLIKELY(!sax->start_object(static_cast<std::size_t>(-1))))\n                        {\n                            return false;\n                        }\n\n                        // closing } -> we are done\n                        if (get_token() == token_type::end_object)\n                        {\n                            if (JSON_HEDLEY_UNLIKELY(!sax->end_object()))\n                            {\n                                return false;\n                            }\n                            break;\n                        }\n\n                        // parse key\n                        if (JSON_HEDLEY_UNLIKELY(last_token != token_type::value_string))\n                        {\n                            return sax->parse_error(m_lexer.get_position(),\n                                                    m_lexer.get_token_string(),\n                                                    parse_error::create(101, m_lexer.get_position(), exception_message(token_type::value_string, \"object key\"), nullptr));\n                        }\n                        if (JSON_HEDLEY_UNLIKELY(!sax->key(m_lexer.get_string())))\n                        {\n                            return false;\n                        }\n\n                        // parse separator (:)\n                        if (JSON_HEDLEY_UNLIKELY(get_token() != token_type::name_separator))\n                        {\n                            return sax->parse_error(m_lexer.get_position(),\n                                                    m_lexer.get_token_string(),\n                                                    parse_error::create(101, m_lexer.get_position(), exception_message(token_type::name_separator, \"object separator\"), nullptr));\n                        }\n\n                        // remember we are now inside an object\n                        states.push_back(false);\n\n                        // parse values\n                        get_token();\n                        continue;\n                    }\n\n                    case token_type::begin_array:\n                    {\n                        if (JSON_HEDLEY_UNLIKELY(!sax->start_array(static_cast<std::size_t>(-1))))\n                        {\n                            return false;\n                        }\n\n                        // closing ] -> we are done\n                        if (get_token() == token_type::end_array)\n                        {\n                            if (JSON_HEDLEY_UNLIKELY(!sax->end_array()))\n                            {\n                                return false;\n                            }\n                            break;\n                        }\n\n                        // remember we are now inside an array\n                        states.push_back(true);\n\n                        // parse values (no need to call get_token)\n                        continue;\n                    }\n\n                    case token_type::value_float:\n                    {\n                        const auto res = m_lexer.get_number_float();\n\n                        if (JSON_HEDLEY_UNLIKELY(!std::isfinite(res)))\n                        {\n                            return sax->parse_error(m_lexer.get_position(),\n                                                    m_lexer.get_token_string(),\n                                                    out_of_range::create(406, concat(\"number overflow parsing '\", m_lexer.get_token_string(), '\\''), nullptr));\n                        }\n\n                        if (JSON_HEDLEY_UNLIKELY(!sax->number_float(res, m_lexer.get_string())))\n                        {\n                            return false;\n                        }\n\n                        break;\n                    }\n\n                    case token_type::literal_false:\n                    {\n                        if (JSON_HEDLEY_UNLIKELY(!sax->boolean(false)))\n                        {\n                            return false;\n                        }\n                        break;\n                    }\n\n                    case token_type::literal_null:\n                    {\n                        if (JSON_HEDLEY_UNLIKELY(!sax->null()))\n                        {\n                            return false;\n                        }\n                        break;\n                    }\n\n                    case token_type::literal_true:\n                    {\n                        if (JSON_HEDLEY_UNLIKELY(!sax->boolean(true)))\n                        {\n                            return false;\n                        }\n                        break;\n                    }\n\n                    case token_type::value_integer:\n                    {\n                        if (JSON_HEDLEY_UNLIKELY(!sax->number_integer(m_lexer.get_number_integer())))\n                        {\n                            return false;\n                        }\n                        break;\n                    }\n\n                    case token_type::value_string:\n                    {\n                        if (JSON_HEDLEY_UNLIKELY(!sax->string(m_lexer.get_string())))\n                        {\n                            return false;\n                        }\n                        break;\n                    }\n\n                    case token_type::value_unsigned:\n                    {\n                        if (JSON_HEDLEY_UNLIKELY(!sax->number_unsigned(m_lexer.get_number_unsigned())))\n                        {\n                            return false;\n                        }\n                        break;\n                    }\n\n                    case token_type::parse_error:\n                    {\n                        // using \"uninitialized\" to avoid \"expected\" message\n                        return sax->parse_error(m_lexer.get_position(),\n                                                m_lexer.get_token_string(),\n                                                parse_error::create(101, m_lexer.get_position(), exception_message(token_type::uninitialized, \"value\"), nullptr));\n                    }\n\n                    case token_type::uninitialized:\n                    case token_type::end_array:\n                    case token_type::end_object:\n                    case token_type::name_separator:\n                    case token_type::value_separator:\n                    case token_type::end_of_input:\n                    case token_type::literal_or_value:\n                    default: // the last token was unexpected\n                    {\n                        return sax->parse_error(m_lexer.get_position(),\n                                                m_lexer.get_token_string(),\n                                                parse_error::create(101, m_lexer.get_position(), exception_message(token_type::literal_or_value, \"value\"), nullptr));\n                    }\n                }\n            }\n            else\n            {\n                skip_to_state_evaluation = false;\n            }\n\n            // we reached this line after we successfully parsed a value\n            if (states.empty())\n            {\n                // empty stack: we reached the end of the hierarchy: done\n                return true;\n            }\n\n            if (states.back())  // array\n            {\n                // comma -> next value\n                if (get_token() == token_type::value_separator)\n                {\n                    // parse a new value\n                    get_token();\n                    continue;\n                }\n\n                // closing ]\n                if (JSON_HEDLEY_LIKELY(last_token == token_type::end_array))\n                {\n                    if (JSON_HEDLEY_UNLIKELY(!sax->end_array()))\n                    {\n                        return false;\n                    }\n\n                    // We are done with this array. Before we can parse a\n                    // new value, we need to evaluate the new state first.\n                    // By setting skip_to_state_evaluation to false, we\n                    // are effectively jumping to the beginning of this if.\n                    JSON_ASSERT(!states.empty());\n                    states.pop_back();\n                    skip_to_state_evaluation = true;\n                    continue;\n                }\n\n                return sax->parse_error(m_lexer.get_position(),\n                                        m_lexer.get_token_string(),\n                                        parse_error::create(101, m_lexer.get_position(), exception_message(token_type::end_array, \"array\"), nullptr));\n            }\n\n            // states.back() is false -> object\n\n            // comma -> next value\n            if (get_token() == token_type::value_separator)\n            {\n                // parse key\n                if (JSON_HEDLEY_UNLIKELY(get_token() != token_type::value_string))\n                {\n                    return sax->parse_error(m_lexer.get_position(),\n                                            m_lexer.get_token_string(),\n                                            parse_error::create(101, m_lexer.get_position(), exception_message(token_type::value_string, \"object key\"), nullptr));\n                }\n\n                if (JSON_HEDLEY_UNLIKELY(!sax->key(m_lexer.get_string())))\n                {\n                    return false;\n                }\n\n                // parse separator (:)\n                if (JSON_HEDLEY_UNLIKELY(get_token() != token_type::name_separator))\n                {\n                    return sax->parse_error(m_lexer.get_position(),\n                                            m_lexer.get_token_string(),\n                                            parse_error::create(101, m_lexer.get_position(), exception_message(token_type::name_separator, \"object separator\"), nullptr));\n                }\n\n                // parse values\n                get_token();\n                continue;\n            }\n\n            // closing }\n            if (JSON_HEDLEY_LIKELY(last_token == token_type::end_object))\n            {\n                if (JSON_HEDLEY_UNLIKELY(!sax->end_object()))\n                {\n                    return false;\n                }\n\n                // We are done with this object. Before we can parse a\n                // new value, we need to evaluate the new state first.\n                // By setting skip_to_state_evaluation to false, we\n                // are effectively jumping to the beginning of this if.\n                JSON_ASSERT(!states.empty());\n                states.pop_back();\n                skip_to_state_evaluation = true;\n                continue;\n            }\n\n            return sax->parse_error(m_lexer.get_position(),\n                                    m_lexer.get_token_string(),\n                                    parse_error::create(101, m_lexer.get_position(), exception_message(token_type::end_object, \"object\"), nullptr));\n        }\n    }\n\n    /// get next token from lexer\n    token_type get_token()\n    {\n        return last_token = m_lexer.scan();\n    }\n\n    std::string exception_message(const token_type expected, const std::string& context)\n    {\n        std::string error_msg = \"syntax error \";\n\n        if (!context.empty())\n        {\n            error_msg += concat(\"while parsing \", context, ' ');\n        }\n\n        error_msg += \"- \";\n\n        if (last_token == token_type::parse_error)\n        {\n            error_msg += concat(m_lexer.get_error_message(), \"; last read: '\",\n                                m_lexer.get_token_string(), '\\'');\n        }\n        else\n        {\n            error_msg += concat(\"unexpected \", lexer_t::token_type_name(last_token));\n        }\n\n        if (expected != token_type::uninitialized)\n        {\n            error_msg += concat(\"; expected \", lexer_t::token_type_name(expected));\n        }\n\n        return error_msg;\n    }\n\n  private:\n    /// callback function\n    const parser_callback_t<BasicJsonType> callback = nullptr;\n    /// the type of the last read token\n    token_type last_token = token_type::uninitialized;\n    /// the lexer\n    lexer_t m_lexer;\n    /// whether to throw exceptions in case of errors\n    const bool allow_exceptions = true;\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/iterators/internal_iterator.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n// #include <nlohmann/detail/abi_macros.hpp>\n\n// #include <nlohmann/detail/iterators/primitive_iterator.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <cstddef> // ptrdiff_t\n#include <limits>  // numeric_limits\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n/*\n@brief an iterator for primitive JSON types\n\nThis class models an iterator for primitive JSON types (boolean, number,\nstring). It's only purpose is to allow the iterator/const_iterator classes\nto \"iterate\" over primitive values. Internally, the iterator is modeled by\na `difference_type` variable. Value begin_value (`0`) models the begin,\nend_value (`1`) models past the end.\n*/\nclass primitive_iterator_t\n{\n  private:\n    using difference_type = std::ptrdiff_t;\n    static constexpr difference_type begin_value = 0;\n    static constexpr difference_type end_value = begin_value + 1;\n\n  JSON_PRIVATE_UNLESS_TESTED:\n    /// iterator as signed integer type\n    difference_type m_it = (std::numeric_limits<std::ptrdiff_t>::min)();\n\n  public:\n    constexpr difference_type get_value() const noexcept\n    {\n        return m_it;\n    }\n\n    /// set iterator to a defined beginning\n    void set_begin() noexcept\n    {\n        m_it = begin_value;\n    }\n\n    /// set iterator to a defined past the end\n    void set_end() noexcept\n    {\n        m_it = end_value;\n    }\n\n    /// return whether the iterator can be dereferenced\n    constexpr bool is_begin() const noexcept\n    {\n        return m_it == begin_value;\n    }\n\n    /// return whether the iterator is at end\n    constexpr bool is_end() const noexcept\n    {\n        return m_it == end_value;\n    }\n\n    friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept\n    {\n        return lhs.m_it == rhs.m_it;\n    }\n\n    friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept\n    {\n        return lhs.m_it < rhs.m_it;\n    }\n\n    primitive_iterator_t operator+(difference_type n) noexcept\n    {\n        auto result = *this;\n        result += n;\n        return result;\n    }\n\n    friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept\n    {\n        return lhs.m_it - rhs.m_it;\n    }\n\n    primitive_iterator_t& operator++() noexcept\n    {\n        ++m_it;\n        return *this;\n    }\n\n    primitive_iterator_t operator++(int)& noexcept // NOLINT(cert-dcl21-cpp)\n    {\n        auto result = *this;\n        ++m_it;\n        return result;\n    }\n\n    primitive_iterator_t& operator--() noexcept\n    {\n        --m_it;\n        return *this;\n    }\n\n    primitive_iterator_t operator--(int)& noexcept // NOLINT(cert-dcl21-cpp)\n    {\n        auto result = *this;\n        --m_it;\n        return result;\n    }\n\n    primitive_iterator_t& operator+=(difference_type n) noexcept\n    {\n        m_it += n;\n        return *this;\n    }\n\n    primitive_iterator_t& operator-=(difference_type n) noexcept\n    {\n        m_it -= n;\n        return *this;\n    }\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n/*!\n@brief an iterator value\n\n@note This structure could easily be a union, but MSVC currently does not allow\nunions members with complex constructors, see https://github.com/nlohmann/json/pull/105.\n*/\ntemplate<typename BasicJsonType> struct internal_iterator\n{\n    /// iterator for JSON objects\n    typename BasicJsonType::object_t::iterator object_iterator {};\n    /// iterator for JSON arrays\n    typename BasicJsonType::array_t::iterator array_iterator {};\n    /// generic iterator for all other types\n    primitive_iterator_t primitive_iterator {};\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/iterators/iter_impl.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <iterator> // iterator, random_access_iterator_tag, bidirectional_iterator_tag, advance, next\n#include <type_traits> // conditional, is_const, remove_const\n\n// #include <nlohmann/detail/exceptions.hpp>\n\n// #include <nlohmann/detail/iterators/internal_iterator.hpp>\n\n// #include <nlohmann/detail/iterators/primitive_iterator.hpp>\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n// #include <nlohmann/detail/meta/cpp_future.hpp>\n\n// #include <nlohmann/detail/meta/type_traits.hpp>\n\n// #include <nlohmann/detail/value_t.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n// forward declare, to be able to friend it later on\ntemplate<typename IteratorType> class iteration_proxy;\ntemplate<typename IteratorType> class iteration_proxy_value;\n\n/*!\n@brief a template for a bidirectional iterator for the @ref basic_json class\nThis class implements a both iterators (iterator and const_iterator) for the\n@ref basic_json class.\n@note An iterator is called *initialized* when a pointer to a JSON value has\n      been set (e.g., by a constructor or a copy assignment). If the iterator is\n      default-constructed, it is *uninitialized* and most methods are undefined.\n      **The library uses assertions to detect calls on uninitialized iterators.**\n@requirement The class satisfies the following concept requirements:\n-\n[BidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator):\n  The iterator that can be moved can be moved in both directions (i.e.\n  incremented and decremented).\n@since version 1.0.0, simplified in version 2.0.9, change to bidirectional\n       iterators in version 3.0.0 (see https://github.com/nlohmann/json/issues/593)\n*/\ntemplate<typename BasicJsonType>\nclass iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-special-member-functions)\n{\n    /// the iterator with BasicJsonType of different const-ness\n    using other_iter_impl = iter_impl<typename std::conditional<std::is_const<BasicJsonType>::value, typename std::remove_const<BasicJsonType>::type, const BasicJsonType>::type>;\n    /// allow basic_json to access private members\n    friend other_iter_impl;\n    friend BasicJsonType;\n    friend iteration_proxy<iter_impl>;\n    friend iteration_proxy_value<iter_impl>;\n\n    using object_t = typename BasicJsonType::object_t;\n    using array_t = typename BasicJsonType::array_t;\n    // make sure BasicJsonType is basic_json or const basic_json\n    static_assert(is_basic_json<typename std::remove_const<BasicJsonType>::type>::value,\n                  \"iter_impl only accepts (const) basic_json\");\n    // superficial check for the LegacyBidirectionalIterator named requirement\n    static_assert(std::is_base_of<std::bidirectional_iterator_tag, std::bidirectional_iterator_tag>::value\n                  &&  std::is_base_of<std::bidirectional_iterator_tag, typename std::iterator_traits<typename array_t::iterator>::iterator_category>::value,\n                  \"basic_json iterator assumes array and object type iterators satisfy the LegacyBidirectionalIterator named requirement.\");\n\n  public:\n    /// The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17.\n    /// The C++ Standard has never required user-defined iterators to derive from std::iterator.\n    /// A user-defined iterator should provide publicly accessible typedefs named\n    /// iterator_category, value_type, difference_type, pointer, and reference.\n    /// Note that value_type is required to be non-const, even for constant iterators.\n    using iterator_category = std::bidirectional_iterator_tag;\n\n    /// the type of the values when the iterator is dereferenced\n    using value_type = typename BasicJsonType::value_type;\n    /// a type to represent differences between iterators\n    using difference_type = typename BasicJsonType::difference_type;\n    /// defines a pointer to the type iterated over (value_type)\n    using pointer = typename std::conditional<std::is_const<BasicJsonType>::value,\n          typename BasicJsonType::const_pointer,\n          typename BasicJsonType::pointer>::type;\n    /// defines a reference to the type iterated over (value_type)\n    using reference =\n        typename std::conditional<std::is_const<BasicJsonType>::value,\n        typename BasicJsonType::const_reference,\n        typename BasicJsonType::reference>::type;\n\n    iter_impl() = default;\n    ~iter_impl() = default;\n    iter_impl(iter_impl&&) noexcept = default;\n    iter_impl& operator=(iter_impl&&) noexcept = default;\n\n    /*!\n    @brief constructor for a given JSON instance\n    @param[in] object  pointer to a JSON object for this iterator\n    @pre object != nullptr\n    @post The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    explicit iter_impl(pointer object) noexcept : m_object(object)\n    {\n        JSON_ASSERT(m_object != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case value_t::object:\n            {\n                m_it.object_iterator = typename object_t::iterator();\n                break;\n            }\n\n            case value_t::array:\n            {\n                m_it.array_iterator = typename array_t::iterator();\n                break;\n            }\n\n            case value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n            {\n                m_it.primitive_iterator = primitive_iterator_t();\n                break;\n            }\n        }\n    }\n\n    /*!\n    @note The conventional copy constructor and copy assignment are implicitly\n          defined. Combined with the following converting constructor and\n          assignment, they support: (1) copy from iterator to iterator, (2)\n          copy from const iterator to const iterator, and (3) conversion from\n          iterator to const iterator. However conversion from const iterator\n          to iterator is not defined.\n    */\n\n    /*!\n    @brief const copy constructor\n    @param[in] other const iterator to copy from\n    @note This copy constructor had to be defined explicitly to circumvent a bug\n          occurring on msvc v19.0 compiler (VS 2015) debug build. For more\n          information refer to: https://github.com/nlohmann/json/issues/1608\n    */\n    iter_impl(const iter_impl<const BasicJsonType>& other) noexcept\n        : m_object(other.m_object), m_it(other.m_it)\n    {}\n\n    /*!\n    @brief converting assignment\n    @param[in] other const iterator to copy from\n    @return const/non-const iterator\n    @note It is not checked whether @a other is initialized.\n    */\n    iter_impl& operator=(const iter_impl<const BasicJsonType>& other) noexcept\n    {\n        if (&other != this)\n        {\n            m_object = other.m_object;\n            m_it = other.m_it;\n        }\n        return *this;\n    }\n\n    /*!\n    @brief converting constructor\n    @param[in] other  non-const iterator to copy from\n    @note It is not checked whether @a other is initialized.\n    */\n    iter_impl(const iter_impl<typename std::remove_const<BasicJsonType>::type>& other) noexcept\n        : m_object(other.m_object), m_it(other.m_it)\n    {}\n\n    /*!\n    @brief converting assignment\n    @param[in] other  non-const iterator to copy from\n    @return const/non-const iterator\n    @note It is not checked whether @a other is initialized.\n    */\n    iter_impl& operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>& other) noexcept // NOLINT(cert-oop54-cpp)\n    {\n        m_object = other.m_object;\n        m_it = other.m_it;\n        return *this;\n    }\n\n  JSON_PRIVATE_UNLESS_TESTED:\n    /*!\n    @brief set the iterator to the first value\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    void set_begin() noexcept\n    {\n        JSON_ASSERT(m_object != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case value_t::object:\n            {\n                m_it.object_iterator = m_object->m_data.m_value.object->begin();\n                break;\n            }\n\n            case value_t::array:\n            {\n                m_it.array_iterator = m_object->m_data.m_value.array->begin();\n                break;\n            }\n\n            case value_t::null:\n            {\n                // set to end so begin()==end() is true: null is empty\n                m_it.primitive_iterator.set_end();\n                break;\n            }\n\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n            {\n                m_it.primitive_iterator.set_begin();\n                break;\n            }\n        }\n    }\n\n    /*!\n    @brief set the iterator past the last value\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    void set_end() noexcept\n    {\n        JSON_ASSERT(m_object != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case value_t::object:\n            {\n                m_it.object_iterator = m_object->m_data.m_value.object->end();\n                break;\n            }\n\n            case value_t::array:\n            {\n                m_it.array_iterator = m_object->m_data.m_value.array->end();\n                break;\n            }\n\n            case value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n            {\n                m_it.primitive_iterator.set_end();\n                break;\n            }\n        }\n    }\n\n  public:\n    /*!\n    @brief return a reference to the value pointed to by the iterator\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    reference operator*() const\n    {\n        JSON_ASSERT(m_object != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case value_t::object:\n            {\n                JSON_ASSERT(m_it.object_iterator != m_object->m_data.m_value.object->end());\n                return m_it.object_iterator->second;\n            }\n\n            case value_t::array:\n            {\n                JSON_ASSERT(m_it.array_iterator != m_object->m_data.m_value.array->end());\n                return *m_it.array_iterator;\n            }\n\n            case value_t::null:\n                JSON_THROW(invalid_iterator::create(214, \"cannot get value\", m_object));\n\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n            {\n                if (JSON_HEDLEY_LIKELY(m_it.primitive_iterator.is_begin()))\n                {\n                    return *m_object;\n                }\n\n                JSON_THROW(invalid_iterator::create(214, \"cannot get value\", m_object));\n            }\n        }\n    }\n\n    /*!\n    @brief dereference the iterator\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    pointer operator->() const\n    {\n        JSON_ASSERT(m_object != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case value_t::object:\n            {\n                JSON_ASSERT(m_it.object_iterator != m_object->m_data.m_value.object->end());\n                return &(m_it.object_iterator->second);\n            }\n\n            case value_t::array:\n            {\n                JSON_ASSERT(m_it.array_iterator != m_object->m_data.m_value.array->end());\n                return &*m_it.array_iterator;\n            }\n\n            case value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n            {\n                if (JSON_HEDLEY_LIKELY(m_it.primitive_iterator.is_begin()))\n                {\n                    return m_object;\n                }\n\n                JSON_THROW(invalid_iterator::create(214, \"cannot get value\", m_object));\n            }\n        }\n    }\n\n    /*!\n    @brief post-increment (it++)\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    iter_impl operator++(int)& // NOLINT(cert-dcl21-cpp)\n    {\n        auto result = *this;\n        ++(*this);\n        return result;\n    }\n\n    /*!\n    @brief pre-increment (++it)\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    iter_impl& operator++()\n    {\n        JSON_ASSERT(m_object != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case value_t::object:\n            {\n                std::advance(m_it.object_iterator, 1);\n                break;\n            }\n\n            case value_t::array:\n            {\n                std::advance(m_it.array_iterator, 1);\n                break;\n            }\n\n            case value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n            {\n                ++m_it.primitive_iterator;\n                break;\n            }\n        }\n\n        return *this;\n    }\n\n    /*!\n    @brief post-decrement (it--)\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    iter_impl operator--(int)& // NOLINT(cert-dcl21-cpp)\n    {\n        auto result = *this;\n        --(*this);\n        return result;\n    }\n\n    /*!\n    @brief pre-decrement (--it)\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    iter_impl& operator--()\n    {\n        JSON_ASSERT(m_object != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case value_t::object:\n            {\n                std::advance(m_it.object_iterator, -1);\n                break;\n            }\n\n            case value_t::array:\n            {\n                std::advance(m_it.array_iterator, -1);\n                break;\n            }\n\n            case value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n            {\n                --m_it.primitive_iterator;\n                break;\n            }\n        }\n\n        return *this;\n    }\n\n    /*!\n    @brief comparison: equal\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    template < typename IterImpl, detail::enable_if_t < (std::is_same<IterImpl, iter_impl>::value || std::is_same<IterImpl, other_iter_impl>::value), std::nullptr_t > = nullptr >\n    bool operator==(const IterImpl& other) const\n    {\n        // if objects are not the same, the comparison is undefined\n        if (JSON_HEDLEY_UNLIKELY(m_object != other.m_object))\n        {\n            JSON_THROW(invalid_iterator::create(212, \"cannot compare iterators of different containers\", m_object));\n        }\n\n        JSON_ASSERT(m_object != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case value_t::object:\n                return (m_it.object_iterator == other.m_it.object_iterator);\n\n            case value_t::array:\n                return (m_it.array_iterator == other.m_it.array_iterator);\n\n            case value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n                return (m_it.primitive_iterator == other.m_it.primitive_iterator);\n        }\n    }\n\n    /*!\n    @brief comparison: not equal\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    template < typename IterImpl, detail::enable_if_t < (std::is_same<IterImpl, iter_impl>::value || std::is_same<IterImpl, other_iter_impl>::value), std::nullptr_t > = nullptr >\n    bool operator!=(const IterImpl& other) const\n    {\n        return !operator==(other);\n    }\n\n    /*!\n    @brief comparison: smaller\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    bool operator<(const iter_impl& other) const\n    {\n        // if objects are not the same, the comparison is undefined\n        if (JSON_HEDLEY_UNLIKELY(m_object != other.m_object))\n        {\n            JSON_THROW(invalid_iterator::create(212, \"cannot compare iterators of different containers\", m_object));\n        }\n\n        JSON_ASSERT(m_object != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case value_t::object:\n                JSON_THROW(invalid_iterator::create(213, \"cannot compare order of object iterators\", m_object));\n\n            case value_t::array:\n                return (m_it.array_iterator < other.m_it.array_iterator);\n\n            case value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n                return (m_it.primitive_iterator < other.m_it.primitive_iterator);\n        }\n    }\n\n    /*!\n    @brief comparison: less than or equal\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    bool operator<=(const iter_impl& other) const\n    {\n        return !other.operator < (*this);\n    }\n\n    /*!\n    @brief comparison: greater than\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    bool operator>(const iter_impl& other) const\n    {\n        return !operator<=(other);\n    }\n\n    /*!\n    @brief comparison: greater than or equal\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    bool operator>=(const iter_impl& other) const\n    {\n        return !operator<(other);\n    }\n\n    /*!\n    @brief add to iterator\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    iter_impl& operator+=(difference_type i)\n    {\n        JSON_ASSERT(m_object != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case value_t::object:\n                JSON_THROW(invalid_iterator::create(209, \"cannot use offsets with object iterators\", m_object));\n\n            case value_t::array:\n            {\n                std::advance(m_it.array_iterator, i);\n                break;\n            }\n\n            case value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n            {\n                m_it.primitive_iterator += i;\n                break;\n            }\n        }\n\n        return *this;\n    }\n\n    /*!\n    @brief subtract from iterator\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    iter_impl& operator-=(difference_type i)\n    {\n        return operator+=(-i);\n    }\n\n    /*!\n    @brief add to iterator\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    iter_impl operator+(difference_type i) const\n    {\n        auto result = *this;\n        result += i;\n        return result;\n    }\n\n    /*!\n    @brief addition of distance and iterator\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    friend iter_impl operator+(difference_type i, const iter_impl& it)\n    {\n        auto result = it;\n        result += i;\n        return result;\n    }\n\n    /*!\n    @brief subtract from iterator\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    iter_impl operator-(difference_type i) const\n    {\n        auto result = *this;\n        result -= i;\n        return result;\n    }\n\n    /*!\n    @brief return difference\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    difference_type operator-(const iter_impl& other) const\n    {\n        JSON_ASSERT(m_object != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case value_t::object:\n                JSON_THROW(invalid_iterator::create(209, \"cannot use offsets with object iterators\", m_object));\n\n            case value_t::array:\n                return m_it.array_iterator - other.m_it.array_iterator;\n\n            case value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n                return m_it.primitive_iterator - other.m_it.primitive_iterator;\n        }\n    }\n\n    /*!\n    @brief access to successor\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    reference operator[](difference_type n) const\n    {\n        JSON_ASSERT(m_object != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case value_t::object:\n                JSON_THROW(invalid_iterator::create(208, \"cannot use operator[] for object iterators\", m_object));\n\n            case value_t::array:\n                return *std::next(m_it.array_iterator, n);\n\n            case value_t::null:\n                JSON_THROW(invalid_iterator::create(214, \"cannot get value\", m_object));\n\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n            {\n                if (JSON_HEDLEY_LIKELY(m_it.primitive_iterator.get_value() == -n))\n                {\n                    return *m_object;\n                }\n\n                JSON_THROW(invalid_iterator::create(214, \"cannot get value\", m_object));\n            }\n        }\n    }\n\n    /*!\n    @brief return the key of an object iterator\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    const typename object_t::key_type& key() const\n    {\n        JSON_ASSERT(m_object != nullptr);\n\n        if (JSON_HEDLEY_LIKELY(m_object->is_object()))\n        {\n            return m_it.object_iterator->first;\n        }\n\n        JSON_THROW(invalid_iterator::create(207, \"cannot use key() for non-object iterators\", m_object));\n    }\n\n    /*!\n    @brief return the value of an iterator\n    @pre The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    reference value() const\n    {\n        return operator*();\n    }\n\n  JSON_PRIVATE_UNLESS_TESTED:\n    /// associated JSON instance\n    pointer m_object = nullptr;\n    /// the actual iterator of the associated instance\n    internal_iterator<typename std::remove_const<BasicJsonType>::type> m_it {};\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/iterators/iteration_proxy.hpp>\n\n// #include <nlohmann/detail/iterators/json_reverse_iterator.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <cstddef> // ptrdiff_t\n#include <iterator> // reverse_iterator\n#include <utility> // declval\n\n// #include <nlohmann/detail/abi_macros.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n//////////////////////\n// reverse_iterator //\n//////////////////////\n\n/*!\n@brief a template for a reverse iterator class\n\n@tparam Base the base iterator type to reverse. Valid types are @ref\niterator (to create @ref reverse_iterator) and @ref const_iterator (to\ncreate @ref const_reverse_iterator).\n\n@requirement The class satisfies the following concept requirements:\n-\n[BidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator):\n  The iterator that can be moved can be moved in both directions (i.e.\n  incremented and decremented).\n- [OutputIterator](https://en.cppreference.com/w/cpp/named_req/OutputIterator):\n  It is possible to write to the pointed-to element (only if @a Base is\n  @ref iterator).\n\n@since version 1.0.0\n*/\ntemplate<typename Base>\nclass json_reverse_iterator : public std::reverse_iterator<Base>\n{\n  public:\n    using difference_type = std::ptrdiff_t;\n    /// shortcut to the reverse iterator adapter\n    using base_iterator = std::reverse_iterator<Base>;\n    /// the reference type for the pointed-to element\n    using reference = typename Base::reference;\n\n    /// create reverse iterator from iterator\n    explicit json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept\n        : base_iterator(it) {}\n\n    /// create reverse iterator from base class\n    explicit json_reverse_iterator(const base_iterator& it) noexcept : base_iterator(it) {}\n\n    /// post-increment (it++)\n    json_reverse_iterator operator++(int)& // NOLINT(cert-dcl21-cpp)\n    {\n        return static_cast<json_reverse_iterator>(base_iterator::operator++(1));\n    }\n\n    /// pre-increment (++it)\n    json_reverse_iterator& operator++()\n    {\n        return static_cast<json_reverse_iterator&>(base_iterator::operator++());\n    }\n\n    /// post-decrement (it--)\n    json_reverse_iterator operator--(int)& // NOLINT(cert-dcl21-cpp)\n    {\n        return static_cast<json_reverse_iterator>(base_iterator::operator--(1));\n    }\n\n    /// pre-decrement (--it)\n    json_reverse_iterator& operator--()\n    {\n        return static_cast<json_reverse_iterator&>(base_iterator::operator--());\n    }\n\n    /// add to iterator\n    json_reverse_iterator& operator+=(difference_type i)\n    {\n        return static_cast<json_reverse_iterator&>(base_iterator::operator+=(i));\n    }\n\n    /// add to iterator\n    json_reverse_iterator operator+(difference_type i) const\n    {\n        return static_cast<json_reverse_iterator>(base_iterator::operator+(i));\n    }\n\n    /// subtract from iterator\n    json_reverse_iterator operator-(difference_type i) const\n    {\n        return static_cast<json_reverse_iterator>(base_iterator::operator-(i));\n    }\n\n    /// return difference\n    difference_type operator-(const json_reverse_iterator& other) const\n    {\n        return base_iterator(*this) - base_iterator(other);\n    }\n\n    /// access to successor\n    reference operator[](difference_type n) const\n    {\n        return *(this->operator+(n));\n    }\n\n    /// return the key of an object iterator\n    auto key() const -> decltype(std::declval<Base>().key())\n    {\n        auto it = --this->base();\n        return it.key();\n    }\n\n    /// return the value of an iterator\n    reference value() const\n    {\n        auto it = --this->base();\n        return it.operator * ();\n    }\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/iterators/primitive_iterator.hpp>\n\n// #include <nlohmann/detail/json_custom_base_class.hpp>\n\n\n#include <type_traits> // conditional, is_same\n\n// #include <nlohmann/detail/abi_macros.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n/*!\n@brief Default base class of the @ref basic_json class.\n\nSo that the correct implementations of the copy / move ctors / assign operators\nof @ref basic_json do not require complex case distinctions\n(no base class / custom base class used as customization point),\n@ref basic_json always has a base class.\nBy default, this class is used because it is empty and thus has no effect\non the behavior of @ref basic_json.\n*/\nstruct json_default_base {};\n\ntemplate<class T>\nusing json_base_class = typename std::conditional <\n                        std::is_same<T, void>::value,\n                        json_default_base,\n                        T\n                        >::type;\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/json_pointer.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <algorithm> // all_of\n#include <cctype> // isdigit\n#include <cerrno> // errno, ERANGE\n#include <cstdlib> // strtoull\n#ifndef JSON_NO_IO\n    #include <iosfwd> // ostream\n#endif  // JSON_NO_IO\n#include <limits> // max\n#include <numeric> // accumulate\n#include <string> // string\n#include <utility> // move\n#include <vector> // vector\n\n// #include <nlohmann/detail/exceptions.hpp>\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n// #include <nlohmann/detail/string_concat.hpp>\n\n// #include <nlohmann/detail/string_escape.hpp>\n\n// #include <nlohmann/detail/value_t.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\n\n/// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document\n/// @sa https://json.nlohmann.me/api/json_pointer/\ntemplate<typename RefStringType>\nclass json_pointer\n{\n    // allow basic_json to access private members\n    NLOHMANN_BASIC_JSON_TPL_DECLARATION\n    friend class basic_json;\n\n    template<typename>\n    friend class json_pointer;\n\n    template<typename T>\n    struct string_t_helper\n    {\n        using type = T;\n    };\n\n    NLOHMANN_BASIC_JSON_TPL_DECLARATION\n    struct string_t_helper<NLOHMANN_BASIC_JSON_TPL>\n    {\n        using type = StringType;\n    };\n\n  public:\n    // for backwards compatibility accept BasicJsonType\n    using string_t = typename string_t_helper<RefStringType>::type;\n\n    /// @brief create JSON pointer\n    /// @sa https://json.nlohmann.me/api/json_pointer/json_pointer/\n    explicit json_pointer(const string_t& s = \"\")\n        : reference_tokens(split(s))\n    {}\n\n    /// @brief return a string representation of the JSON pointer\n    /// @sa https://json.nlohmann.me/api/json_pointer/to_string/\n    string_t to_string() const\n    {\n        return std::accumulate(reference_tokens.begin(), reference_tokens.end(),\n                               string_t{},\n                               [](const string_t& a, const string_t& b)\n        {\n            return detail::concat(a, '/', detail::escape(b));\n        });\n    }\n\n    /// @brief return a string representation of the JSON pointer\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_string/\n    JSON_HEDLEY_DEPRECATED_FOR(3.11.0, to_string())\n    operator string_t() const\n    {\n        return to_string();\n    }\n\n#ifndef JSON_NO_IO\n    /// @brief write string representation of the JSON pointer to stream\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_ltlt/\n    friend std::ostream& operator<<(std::ostream& o, const json_pointer& ptr)\n    {\n        o << ptr.to_string();\n        return o;\n    }\n#endif\n\n    /// @brief append another JSON pointer at the end of this JSON pointer\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_slasheq/\n    json_pointer& operator/=(const json_pointer& ptr)\n    {\n        reference_tokens.insert(reference_tokens.end(),\n                                ptr.reference_tokens.begin(),\n                                ptr.reference_tokens.end());\n        return *this;\n    }\n\n    /// @brief append an unescaped reference token at the end of this JSON pointer\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_slasheq/\n    json_pointer& operator/=(string_t token)\n    {\n        push_back(std::move(token));\n        return *this;\n    }\n\n    /// @brief append an array index at the end of this JSON pointer\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_slasheq/\n    json_pointer& operator/=(std::size_t array_idx)\n    {\n        return *this /= std::to_string(array_idx);\n    }\n\n    /// @brief create a new JSON pointer by appending the right JSON pointer at the end of the left JSON pointer\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_slash/\n    friend json_pointer operator/(const json_pointer& lhs,\n                                  const json_pointer& rhs)\n    {\n        return json_pointer(lhs) /= rhs;\n    }\n\n    /// @brief create a new JSON pointer by appending the unescaped token at the end of the JSON pointer\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_slash/\n    friend json_pointer operator/(const json_pointer& lhs, string_t token) // NOLINT(performance-unnecessary-value-param)\n    {\n        return json_pointer(lhs) /= std::move(token);\n    }\n\n    /// @brief create a new JSON pointer by appending the array-index-token at the end of the JSON pointer\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_slash/\n    friend json_pointer operator/(const json_pointer& lhs, std::size_t array_idx)\n    {\n        return json_pointer(lhs) /= array_idx;\n    }\n\n    /// @brief returns the parent of this JSON pointer\n    /// @sa https://json.nlohmann.me/api/json_pointer/parent_pointer/\n    json_pointer parent_pointer() const\n    {\n        if (empty())\n        {\n            return *this;\n        }\n\n        json_pointer res = *this;\n        res.pop_back();\n        return res;\n    }\n\n    /// @brief remove last reference token\n    /// @sa https://json.nlohmann.me/api/json_pointer/pop_back/\n    void pop_back()\n    {\n        if (JSON_HEDLEY_UNLIKELY(empty()))\n        {\n            JSON_THROW(detail::out_of_range::create(405, \"JSON pointer has no parent\", nullptr));\n        }\n\n        reference_tokens.pop_back();\n    }\n\n    /// @brief return last reference token\n    /// @sa https://json.nlohmann.me/api/json_pointer/back/\n    const string_t& back() const\n    {\n        if (JSON_HEDLEY_UNLIKELY(empty()))\n        {\n            JSON_THROW(detail::out_of_range::create(405, \"JSON pointer has no parent\", nullptr));\n        }\n\n        return reference_tokens.back();\n    }\n\n    /// @brief append an unescaped token at the end of the reference pointer\n    /// @sa https://json.nlohmann.me/api/json_pointer/push_back/\n    void push_back(const string_t& token)\n    {\n        reference_tokens.push_back(token);\n    }\n\n    /// @brief append an unescaped token at the end of the reference pointer\n    /// @sa https://json.nlohmann.me/api/json_pointer/push_back/\n    void push_back(string_t&& token)\n    {\n        reference_tokens.push_back(std::move(token));\n    }\n\n    /// @brief return whether pointer points to the root document\n    /// @sa https://json.nlohmann.me/api/json_pointer/empty/\n    bool empty() const noexcept\n    {\n        return reference_tokens.empty();\n    }\n\n  private:\n    /*!\n    @param[in] s  reference token to be converted into an array index\n\n    @return integer representation of @a s\n\n    @throw parse_error.106  if an array index begins with '0'\n    @throw parse_error.109  if an array index begins not with a digit\n    @throw out_of_range.404 if string @a s could not be converted to an integer\n    @throw out_of_range.410 if an array index exceeds size_type\n    */\n    template<typename BasicJsonType>\n    static typename BasicJsonType::size_type array_index(const string_t& s)\n    {\n        using size_type = typename BasicJsonType::size_type;\n\n        // error condition (cf. RFC 6901, Sect. 4)\n        if (JSON_HEDLEY_UNLIKELY(s.size() > 1 && s[0] == '0'))\n        {\n            JSON_THROW(detail::parse_error::create(106, 0, detail::concat(\"array index '\", s, \"' must not begin with '0'\"), nullptr));\n        }\n\n        // error condition (cf. RFC 6901, Sect. 4)\n        if (JSON_HEDLEY_UNLIKELY(s.size() > 1 && !(s[0] >= '1' && s[0] <= '9')))\n        {\n            JSON_THROW(detail::parse_error::create(109, 0, detail::concat(\"array index '\", s, \"' is not a number\"), nullptr));\n        }\n\n        const char* p = s.c_str();\n        char* p_end = nullptr;\n        errno = 0; // strtoull doesn't reset errno\n        const unsigned long long res = std::strtoull(p, &p_end, 10); // NOLINT(runtime/int)\n        if (p == p_end // invalid input or empty string\n                || errno == ERANGE // out of range\n                || JSON_HEDLEY_UNLIKELY(static_cast<std::size_t>(p_end - p) != s.size())) // incomplete read\n        {\n            JSON_THROW(detail::out_of_range::create(404, detail::concat(\"unresolved reference token '\", s, \"'\"), nullptr));\n        }\n\n        // only triggered on special platforms (like 32bit), see also\n        // https://github.com/nlohmann/json/pull/2203\n        if (res >= static_cast<unsigned long long>((std::numeric_limits<size_type>::max)()))  // NOLINT(runtime/int)\n        {\n            JSON_THROW(detail::out_of_range::create(410, detail::concat(\"array index \", s, \" exceeds size_type\"), nullptr));   // LCOV_EXCL_LINE\n        }\n\n        return static_cast<size_type>(res);\n    }\n\n  JSON_PRIVATE_UNLESS_TESTED:\n    json_pointer top() const\n    {\n        if (JSON_HEDLEY_UNLIKELY(empty()))\n        {\n            JSON_THROW(detail::out_of_range::create(405, \"JSON pointer has no parent\", nullptr));\n        }\n\n        json_pointer result = *this;\n        result.reference_tokens = {reference_tokens[0]};\n        return result;\n    }\n\n  private:\n    /*!\n    @brief create and return a reference to the pointed to value\n\n    @complexity Linear in the number of reference tokens.\n\n    @throw parse_error.109 if array index is not a number\n    @throw type_error.313 if value cannot be unflattened\n    */\n    template<typename BasicJsonType>\n    BasicJsonType& get_and_create(BasicJsonType& j) const\n    {\n        auto* result = &j;\n\n        // in case no reference tokens exist, return a reference to the JSON value\n        // j which will be overwritten by a primitive value\n        for (const auto& reference_token : reference_tokens)\n        {\n            switch (result->type())\n            {\n                case detail::value_t::null:\n                {\n                    if (reference_token == \"0\")\n                    {\n                        // start a new array if reference token is 0\n                        result = &result->operator[](0);\n                    }\n                    else\n                    {\n                        // start a new object otherwise\n                        result = &result->operator[](reference_token);\n                    }\n                    break;\n                }\n\n                case detail::value_t::object:\n                {\n                    // create an entry in the object\n                    result = &result->operator[](reference_token);\n                    break;\n                }\n\n                case detail::value_t::array:\n                {\n                    // create an entry in the array\n                    result = &result->operator[](array_index<BasicJsonType>(reference_token));\n                    break;\n                }\n\n                /*\n                The following code is only reached if there exists a reference\n                token _and_ the current value is primitive. In this case, we have\n                an error situation, because primitive values may only occur as\n                single value; that is, with an empty list of reference tokens.\n                */\n                case detail::value_t::string:\n                case detail::value_t::boolean:\n                case detail::value_t::number_integer:\n                case detail::value_t::number_unsigned:\n                case detail::value_t::number_float:\n                case detail::value_t::binary:\n                case detail::value_t::discarded:\n                default:\n                    JSON_THROW(detail::type_error::create(313, \"invalid value to unflatten\", &j));\n            }\n        }\n\n        return *result;\n    }\n\n    /*!\n    @brief return a reference to the pointed to value\n\n    @note This version does not throw if a value is not present, but tries to\n          create nested values instead. For instance, calling this function\n          with pointer `\"/this/that\"` on a null value is equivalent to calling\n          `operator[](\"this\").operator[](\"that\")` on that value, effectively\n          changing the null value to an object.\n\n    @param[in] ptr  a JSON value\n\n    @return reference to the JSON value pointed to by the JSON pointer\n\n    @complexity Linear in the length of the JSON pointer.\n\n    @throw parse_error.106   if an array index begins with '0'\n    @throw parse_error.109   if an array index was not a number\n    @throw out_of_range.404  if the JSON pointer can not be resolved\n    */\n    template<typename BasicJsonType>\n    BasicJsonType& get_unchecked(BasicJsonType* ptr) const\n    {\n        for (const auto& reference_token : reference_tokens)\n        {\n            // convert null values to arrays or objects before continuing\n            if (ptr->is_null())\n            {\n                // check if reference token is a number\n                const bool nums =\n                    std::all_of(reference_token.begin(), reference_token.end(),\n                                [](const unsigned char x)\n                {\n                    return std::isdigit(x);\n                });\n\n                // change value to array for numbers or \"-\" or to object otherwise\n                *ptr = (nums || reference_token == \"-\")\n                       ? detail::value_t::array\n                       : detail::value_t::object;\n            }\n\n            switch (ptr->type())\n            {\n                case detail::value_t::object:\n                {\n                    // use unchecked object access\n                    ptr = &ptr->operator[](reference_token);\n                    break;\n                }\n\n                case detail::value_t::array:\n                {\n                    if (reference_token == \"-\")\n                    {\n                        // explicitly treat \"-\" as index beyond the end\n                        ptr = &ptr->operator[](ptr->m_data.m_value.array->size());\n                    }\n                    else\n                    {\n                        // convert array index to number; unchecked access\n                        ptr = &ptr->operator[](array_index<BasicJsonType>(reference_token));\n                    }\n                    break;\n                }\n\n                case detail::value_t::null:\n                case detail::value_t::string:\n                case detail::value_t::boolean:\n                case detail::value_t::number_integer:\n                case detail::value_t::number_unsigned:\n                case detail::value_t::number_float:\n                case detail::value_t::binary:\n                case detail::value_t::discarded:\n                default:\n                    JSON_THROW(detail::out_of_range::create(404, detail::concat(\"unresolved reference token '\", reference_token, \"'\"), ptr));\n            }\n        }\n\n        return *ptr;\n    }\n\n    /*!\n    @throw parse_error.106   if an array index begins with '0'\n    @throw parse_error.109   if an array index was not a number\n    @throw out_of_range.402  if the array index '-' is used\n    @throw out_of_range.404  if the JSON pointer can not be resolved\n    */\n    template<typename BasicJsonType>\n    BasicJsonType& get_checked(BasicJsonType* ptr) const\n    {\n        for (const auto& reference_token : reference_tokens)\n        {\n            switch (ptr->type())\n            {\n                case detail::value_t::object:\n                {\n                    // note: at performs range check\n                    ptr = &ptr->at(reference_token);\n                    break;\n                }\n\n                case detail::value_t::array:\n                {\n                    if (JSON_HEDLEY_UNLIKELY(reference_token == \"-\"))\n                    {\n                        // \"-\" always fails the range check\n                        JSON_THROW(detail::out_of_range::create(402, detail::concat(\n                                \"array index '-' (\", std::to_string(ptr->m_data.m_value.array->size()),\n                                \") is out of range\"), ptr));\n                    }\n\n                    // note: at performs range check\n                    ptr = &ptr->at(array_index<BasicJsonType>(reference_token));\n                    break;\n                }\n\n                case detail::value_t::null:\n                case detail::value_t::string:\n                case detail::value_t::boolean:\n                case detail::value_t::number_integer:\n                case detail::value_t::number_unsigned:\n                case detail::value_t::number_float:\n                case detail::value_t::binary:\n                case detail::value_t::discarded:\n                default:\n                    JSON_THROW(detail::out_of_range::create(404, detail::concat(\"unresolved reference token '\", reference_token, \"'\"), ptr));\n            }\n        }\n\n        return *ptr;\n    }\n\n    /*!\n    @brief return a const reference to the pointed to value\n\n    @param[in] ptr  a JSON value\n\n    @return const reference to the JSON value pointed to by the JSON\n    pointer\n\n    @throw parse_error.106   if an array index begins with '0'\n    @throw parse_error.109   if an array index was not a number\n    @throw out_of_range.402  if the array index '-' is used\n    @throw out_of_range.404  if the JSON pointer can not be resolved\n    */\n    template<typename BasicJsonType>\n    const BasicJsonType& get_unchecked(const BasicJsonType* ptr) const\n    {\n        for (const auto& reference_token : reference_tokens)\n        {\n            switch (ptr->type())\n            {\n                case detail::value_t::object:\n                {\n                    // use unchecked object access\n                    ptr = &ptr->operator[](reference_token);\n                    break;\n                }\n\n                case detail::value_t::array:\n                {\n                    if (JSON_HEDLEY_UNLIKELY(reference_token == \"-\"))\n                    {\n                        // \"-\" cannot be used for const access\n                        JSON_THROW(detail::out_of_range::create(402, detail::concat(\"array index '-' (\", std::to_string(ptr->m_data.m_value.array->size()), \") is out of range\"), ptr));\n                    }\n\n                    // use unchecked array access\n                    ptr = &ptr->operator[](array_index<BasicJsonType>(reference_token));\n                    break;\n                }\n\n                case detail::value_t::null:\n                case detail::value_t::string:\n                case detail::value_t::boolean:\n                case detail::value_t::number_integer:\n                case detail::value_t::number_unsigned:\n                case detail::value_t::number_float:\n                case detail::value_t::binary:\n                case detail::value_t::discarded:\n                default:\n                    JSON_THROW(detail::out_of_range::create(404, detail::concat(\"unresolved reference token '\", reference_token, \"'\"), ptr));\n            }\n        }\n\n        return *ptr;\n    }\n\n    /*!\n    @throw parse_error.106   if an array index begins with '0'\n    @throw parse_error.109   if an array index was not a number\n    @throw out_of_range.402  if the array index '-' is used\n    @throw out_of_range.404  if the JSON pointer can not be resolved\n    */\n    template<typename BasicJsonType>\n    const BasicJsonType& get_checked(const BasicJsonType* ptr) const\n    {\n        for (const auto& reference_token : reference_tokens)\n        {\n            switch (ptr->type())\n            {\n                case detail::value_t::object:\n                {\n                    // note: at performs range check\n                    ptr = &ptr->at(reference_token);\n                    break;\n                }\n\n                case detail::value_t::array:\n                {\n                    if (JSON_HEDLEY_UNLIKELY(reference_token == \"-\"))\n                    {\n                        // \"-\" always fails the range check\n                        JSON_THROW(detail::out_of_range::create(402, detail::concat(\n                                \"array index '-' (\", std::to_string(ptr->m_data.m_value.array->size()),\n                                \") is out of range\"), ptr));\n                    }\n\n                    // note: at performs range check\n                    ptr = &ptr->at(array_index<BasicJsonType>(reference_token));\n                    break;\n                }\n\n                case detail::value_t::null:\n                case detail::value_t::string:\n                case detail::value_t::boolean:\n                case detail::value_t::number_integer:\n                case detail::value_t::number_unsigned:\n                case detail::value_t::number_float:\n                case detail::value_t::binary:\n                case detail::value_t::discarded:\n                default:\n                    JSON_THROW(detail::out_of_range::create(404, detail::concat(\"unresolved reference token '\", reference_token, \"'\"), ptr));\n            }\n        }\n\n        return *ptr;\n    }\n\n    /*!\n    @throw parse_error.106   if an array index begins with '0'\n    @throw parse_error.109   if an array index was not a number\n    */\n    template<typename BasicJsonType>\n    bool contains(const BasicJsonType* ptr) const\n    {\n        for (const auto& reference_token : reference_tokens)\n        {\n            switch (ptr->type())\n            {\n                case detail::value_t::object:\n                {\n                    if (!ptr->contains(reference_token))\n                    {\n                        // we did not find the key in the object\n                        return false;\n                    }\n\n                    ptr = &ptr->operator[](reference_token);\n                    break;\n                }\n\n                case detail::value_t::array:\n                {\n                    if (JSON_HEDLEY_UNLIKELY(reference_token == \"-\"))\n                    {\n                        // \"-\" always fails the range check\n                        return false;\n                    }\n                    if (JSON_HEDLEY_UNLIKELY(reference_token.size() == 1 && !(\"0\" <= reference_token && reference_token <= \"9\")))\n                    {\n                        // invalid char\n                        return false;\n                    }\n                    if (JSON_HEDLEY_UNLIKELY(reference_token.size() > 1))\n                    {\n                        if (JSON_HEDLEY_UNLIKELY(!('1' <= reference_token[0] && reference_token[0] <= '9')))\n                        {\n                            // first char should be between '1' and '9'\n                            return false;\n                        }\n                        for (std::size_t i = 1; i < reference_token.size(); i++)\n                        {\n                            if (JSON_HEDLEY_UNLIKELY(!('0' <= reference_token[i] && reference_token[i] <= '9')))\n                            {\n                                // other char should be between '0' and '9'\n                                return false;\n                            }\n                        }\n                    }\n\n                    const auto idx = array_index<BasicJsonType>(reference_token);\n                    if (idx >= ptr->size())\n                    {\n                        // index out of range\n                        return false;\n                    }\n\n                    ptr = &ptr->operator[](idx);\n                    break;\n                }\n\n                case detail::value_t::null:\n                case detail::value_t::string:\n                case detail::value_t::boolean:\n                case detail::value_t::number_integer:\n                case detail::value_t::number_unsigned:\n                case detail::value_t::number_float:\n                case detail::value_t::binary:\n                case detail::value_t::discarded:\n                default:\n                {\n                    // we do not expect primitive values if there is still a\n                    // reference token to process\n                    return false;\n                }\n            }\n        }\n\n        // no reference token left means we found a primitive value\n        return true;\n    }\n\n    /*!\n    @brief split the string input to reference tokens\n\n    @note This function is only called by the json_pointer constructor.\n          All exceptions below are documented there.\n\n    @throw parse_error.107  if the pointer is not empty or begins with '/'\n    @throw parse_error.108  if character '~' is not followed by '0' or '1'\n    */\n    static std::vector<string_t> split(const string_t& reference_string)\n    {\n        std::vector<string_t> result;\n\n        // special case: empty reference string -> no reference tokens\n        if (reference_string.empty())\n        {\n            return result;\n        }\n\n        // check if nonempty reference string begins with slash\n        if (JSON_HEDLEY_UNLIKELY(reference_string[0] != '/'))\n        {\n            JSON_THROW(detail::parse_error::create(107, 1, detail::concat(\"JSON pointer must be empty or begin with '/' - was: '\", reference_string, \"'\"), nullptr));\n        }\n\n        // extract the reference tokens:\n        // - slash: position of the last read slash (or end of string)\n        // - start: position after the previous slash\n        for (\n            // search for the first slash after the first character\n            std::size_t slash = reference_string.find_first_of('/', 1),\n            // set the beginning of the first reference token\n            start = 1;\n            // we can stop if start == 0 (if slash == string_t::npos)\n            start != 0;\n            // set the beginning of the next reference token\n            // (will eventually be 0 if slash == string_t::npos)\n            start = (slash == string_t::npos) ? 0 : slash + 1,\n            // find next slash\n            slash = reference_string.find_first_of('/', start))\n        {\n            // use the text between the beginning of the reference token\n            // (start) and the last slash (slash).\n            auto reference_token = reference_string.substr(start, slash - start);\n\n            // check reference tokens are properly escaped\n            for (std::size_t pos = reference_token.find_first_of('~');\n                    pos != string_t::npos;\n                    pos = reference_token.find_first_of('~', pos + 1))\n            {\n                JSON_ASSERT(reference_token[pos] == '~');\n\n                // ~ must be followed by 0 or 1\n                if (JSON_HEDLEY_UNLIKELY(pos == reference_token.size() - 1 ||\n                                         (reference_token[pos + 1] != '0' &&\n                                          reference_token[pos + 1] != '1')))\n                {\n                    JSON_THROW(detail::parse_error::create(108, 0, \"escape character '~' must be followed with '0' or '1'\", nullptr));\n                }\n            }\n\n            // finally, store the reference token\n            detail::unescape(reference_token);\n            result.push_back(reference_token);\n        }\n\n        return result;\n    }\n\n  private:\n    /*!\n    @param[in] reference_string  the reference string to the current value\n    @param[in] value             the value to consider\n    @param[in,out] result        the result object to insert values to\n\n    @note Empty objects or arrays are flattened to `null`.\n    */\n    template<typename BasicJsonType>\n    static void flatten(const string_t& reference_string,\n                        const BasicJsonType& value,\n                        BasicJsonType& result)\n    {\n        switch (value.type())\n        {\n            case detail::value_t::array:\n            {\n                if (value.m_data.m_value.array->empty())\n                {\n                    // flatten empty array as null\n                    result[reference_string] = nullptr;\n                }\n                else\n                {\n                    // iterate array and use index as reference string\n                    for (std::size_t i = 0; i < value.m_data.m_value.array->size(); ++i)\n                    {\n                        flatten(detail::concat(reference_string, '/', std::to_string(i)),\n                                value.m_data.m_value.array->operator[](i), result);\n                    }\n                }\n                break;\n            }\n\n            case detail::value_t::object:\n            {\n                if (value.m_data.m_value.object->empty())\n                {\n                    // flatten empty object as null\n                    result[reference_string] = nullptr;\n                }\n                else\n                {\n                    // iterate object and use keys as reference string\n                    for (const auto& element : *value.m_data.m_value.object)\n                    {\n                        flatten(detail::concat(reference_string, '/', detail::escape(element.first)), element.second, result);\n                    }\n                }\n                break;\n            }\n\n            case detail::value_t::null:\n            case detail::value_t::string:\n            case detail::value_t::boolean:\n            case detail::value_t::number_integer:\n            case detail::value_t::number_unsigned:\n            case detail::value_t::number_float:\n            case detail::value_t::binary:\n            case detail::value_t::discarded:\n            default:\n            {\n                // add primitive value with its reference string\n                result[reference_string] = value;\n                break;\n            }\n        }\n    }\n\n    /*!\n    @param[in] value  flattened JSON\n\n    @return unflattened JSON\n\n    @throw parse_error.109 if array index is not a number\n    @throw type_error.314  if value is not an object\n    @throw type_error.315  if object values are not primitive\n    @throw type_error.313  if value cannot be unflattened\n    */\n    template<typename BasicJsonType>\n    static BasicJsonType\n    unflatten(const BasicJsonType& value)\n    {\n        if (JSON_HEDLEY_UNLIKELY(!value.is_object()))\n        {\n            JSON_THROW(detail::type_error::create(314, \"only objects can be unflattened\", &value));\n        }\n\n        BasicJsonType result;\n\n        // iterate the JSON object values\n        for (const auto& element : *value.m_data.m_value.object)\n        {\n            if (JSON_HEDLEY_UNLIKELY(!element.second.is_primitive()))\n            {\n                JSON_THROW(detail::type_error::create(315, \"values in object must be primitive\", &element.second));\n            }\n\n            // assign value to reference pointed to by JSON pointer; Note that if\n            // the JSON pointer is \"\" (i.e., points to the whole value), function\n            // get_and_create returns a reference to result itself. An assignment\n            // will then create a primitive value.\n            json_pointer(element.first).get_and_create(result) = element.second;\n        }\n\n        return result;\n    }\n\n    // can't use conversion operator because of ambiguity\n    json_pointer<string_t> convert() const&\n    {\n        json_pointer<string_t> result;\n        result.reference_tokens = reference_tokens;\n        return result;\n    }\n\n    json_pointer<string_t> convert()&&\n    {\n        json_pointer<string_t> result;\n        result.reference_tokens = std::move(reference_tokens);\n        return result;\n    }\n\n  public:\n#if JSON_HAS_THREE_WAY_COMPARISON\n    /// @brief compares two JSON pointers for equality\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_eq/\n    template<typename RefStringTypeRhs>\n    bool operator==(const json_pointer<RefStringTypeRhs>& rhs) const noexcept\n    {\n        return reference_tokens == rhs.reference_tokens;\n    }\n\n    /// @brief compares JSON pointer and string for equality\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_eq/\n    JSON_HEDLEY_DEPRECATED_FOR(3.11.2, operator==(json_pointer))\n    bool operator==(const string_t& rhs) const\n    {\n        return *this == json_pointer(rhs);\n    }\n\n    /// @brief 3-way compares two JSON pointers\n    template<typename RefStringTypeRhs>\n    std::strong_ordering operator<=>(const json_pointer<RefStringTypeRhs>& rhs) const noexcept // *NOPAD*\n    {\n        return  reference_tokens <=> rhs.reference_tokens; // *NOPAD*\n    }\n#else\n    /// @brief compares two JSON pointers for equality\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_eq/\n    template<typename RefStringTypeLhs, typename RefStringTypeRhs>\n    // NOLINTNEXTLINE(readability-redundant-declaration)\n    friend bool operator==(const json_pointer<RefStringTypeLhs>& lhs,\n                           const json_pointer<RefStringTypeRhs>& rhs) noexcept;\n\n    /// @brief compares JSON pointer and string for equality\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_eq/\n    template<typename RefStringTypeLhs, typename StringType>\n    // NOLINTNEXTLINE(readability-redundant-declaration)\n    friend bool operator==(const json_pointer<RefStringTypeLhs>& lhs,\n                           const StringType& rhs);\n\n    /// @brief compares string and JSON pointer for equality\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_eq/\n    template<typename RefStringTypeRhs, typename StringType>\n    // NOLINTNEXTLINE(readability-redundant-declaration)\n    friend bool operator==(const StringType& lhs,\n                           const json_pointer<RefStringTypeRhs>& rhs);\n\n    /// @brief compares two JSON pointers for inequality\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_ne/\n    template<typename RefStringTypeLhs, typename RefStringTypeRhs>\n    // NOLINTNEXTLINE(readability-redundant-declaration)\n    friend bool operator!=(const json_pointer<RefStringTypeLhs>& lhs,\n                           const json_pointer<RefStringTypeRhs>& rhs) noexcept;\n\n    /// @brief compares JSON pointer and string for inequality\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_ne/\n    template<typename RefStringTypeLhs, typename StringType>\n    // NOLINTNEXTLINE(readability-redundant-declaration)\n    friend bool operator!=(const json_pointer<RefStringTypeLhs>& lhs,\n                           const StringType& rhs);\n\n    /// @brief compares string and JSON pointer for inequality\n    /// @sa https://json.nlohmann.me/api/json_pointer/operator_ne/\n    template<typename RefStringTypeRhs, typename StringType>\n    // NOLINTNEXTLINE(readability-redundant-declaration)\n    friend bool operator!=(const StringType& lhs,\n                           const json_pointer<RefStringTypeRhs>& rhs);\n\n    /// @brief compares two JSON pointer for less-than\n    template<typename RefStringTypeLhs, typename RefStringTypeRhs>\n    // NOLINTNEXTLINE(readability-redundant-declaration)\n    friend bool operator<(const json_pointer<RefStringTypeLhs>& lhs,\n                          const json_pointer<RefStringTypeRhs>& rhs) noexcept;\n#endif\n\n  private:\n    /// the reference tokens\n    std::vector<string_t> reference_tokens;\n};\n\n#if !JSON_HAS_THREE_WAY_COMPARISON\n// functions cannot be defined inside class due to ODR violations\ntemplate<typename RefStringTypeLhs, typename RefStringTypeRhs>\ninline bool operator==(const json_pointer<RefStringTypeLhs>& lhs,\n                       const json_pointer<RefStringTypeRhs>& rhs) noexcept\n{\n    return lhs.reference_tokens == rhs.reference_tokens;\n}\n\ntemplate<typename RefStringTypeLhs,\n         typename StringType = typename json_pointer<RefStringTypeLhs>::string_t>\nJSON_HEDLEY_DEPRECATED_FOR(3.11.2, operator==(json_pointer, json_pointer))\ninline bool operator==(const json_pointer<RefStringTypeLhs>& lhs,\n                       const StringType& rhs)\n{\n    return lhs == json_pointer<RefStringTypeLhs>(rhs);\n}\n\ntemplate<typename RefStringTypeRhs,\n         typename StringType = typename json_pointer<RefStringTypeRhs>::string_t>\nJSON_HEDLEY_DEPRECATED_FOR(3.11.2, operator==(json_pointer, json_pointer))\ninline bool operator==(const StringType& lhs,\n                       const json_pointer<RefStringTypeRhs>& rhs)\n{\n    return json_pointer<RefStringTypeRhs>(lhs) == rhs;\n}\n\ntemplate<typename RefStringTypeLhs, typename RefStringTypeRhs>\ninline bool operator!=(const json_pointer<RefStringTypeLhs>& lhs,\n                       const json_pointer<RefStringTypeRhs>& rhs) noexcept\n{\n    return !(lhs == rhs);\n}\n\ntemplate<typename RefStringTypeLhs,\n         typename StringType = typename json_pointer<RefStringTypeLhs>::string_t>\nJSON_HEDLEY_DEPRECATED_FOR(3.11.2, operator!=(json_pointer, json_pointer))\ninline bool operator!=(const json_pointer<RefStringTypeLhs>& lhs,\n                       const StringType& rhs)\n{\n    return !(lhs == rhs);\n}\n\ntemplate<typename RefStringTypeRhs,\n         typename StringType = typename json_pointer<RefStringTypeRhs>::string_t>\nJSON_HEDLEY_DEPRECATED_FOR(3.11.2, operator!=(json_pointer, json_pointer))\ninline bool operator!=(const StringType& lhs,\n                       const json_pointer<RefStringTypeRhs>& rhs)\n{\n    return !(lhs == rhs);\n}\n\ntemplate<typename RefStringTypeLhs, typename RefStringTypeRhs>\ninline bool operator<(const json_pointer<RefStringTypeLhs>& lhs,\n                      const json_pointer<RefStringTypeRhs>& rhs) noexcept\n{\n    return lhs.reference_tokens < rhs.reference_tokens;\n}\n#endif\n\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/json_ref.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <initializer_list>\n#include <utility>\n\n// #include <nlohmann/detail/abi_macros.hpp>\n\n// #include <nlohmann/detail/meta/type_traits.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\ntemplate<typename BasicJsonType>\nclass json_ref\n{\n  public:\n    using value_type = BasicJsonType;\n\n    json_ref(value_type&& value)\n        : owned_value(std::move(value))\n    {}\n\n    json_ref(const value_type& value)\n        : value_ref(&value)\n    {}\n\n    json_ref(std::initializer_list<json_ref> init)\n        : owned_value(init)\n    {}\n\n    template <\n        class... Args,\n        enable_if_t<std::is_constructible<value_type, Args...>::value, int> = 0 >\n    json_ref(Args && ... args)\n        : owned_value(std::forward<Args>(args)...)\n    {}\n\n    // class should be movable only\n    json_ref(json_ref&&) noexcept = default;\n    json_ref(const json_ref&) = delete;\n    json_ref& operator=(const json_ref&) = delete;\n    json_ref& operator=(json_ref&&) = delete;\n    ~json_ref() = default;\n\n    value_type moved_or_copied() const\n    {\n        if (value_ref == nullptr)\n        {\n            return std::move(owned_value);\n        }\n        return *value_ref;\n    }\n\n    value_type const& operator*() const\n    {\n        return value_ref ? *value_ref : owned_value;\n    }\n\n    value_type const* operator->() const\n    {\n        return &** this;\n    }\n\n  private:\n    mutable value_type owned_value = nullptr;\n    value_type const* value_ref = nullptr;\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n// #include <nlohmann/detail/string_concat.hpp>\n\n// #include <nlohmann/detail/string_escape.hpp>\n\n// #include <nlohmann/detail/meta/cpp_future.hpp>\n\n// #include <nlohmann/detail/meta/type_traits.hpp>\n\n// #include <nlohmann/detail/output/binary_writer.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <algorithm> // reverse\n#include <array> // array\n#include <map> // map\n#include <cmath> // isnan, isinf\n#include <cstdint> // uint8_t, uint16_t, uint32_t, uint64_t\n#include <cstring> // memcpy\n#include <limits> // numeric_limits\n#include <string> // string\n#include <utility> // move\n#include <vector> // vector\n\n// #include <nlohmann/detail/input/binary_reader.hpp>\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n// #include <nlohmann/detail/output/output_adapters.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <algorithm> // copy\n#include <cstddef> // size_t\n#include <iterator> // back_inserter\n#include <memory> // shared_ptr, make_shared\n#include <string> // basic_string\n#include <vector> // vector\n\n#ifndef JSON_NO_IO\n    #include <ios>      // streamsize\n    #include <ostream>  // basic_ostream\n#endif  // JSON_NO_IO\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n/// abstract output adapter interface\ntemplate<typename CharType> struct output_adapter_protocol\n{\n    virtual void write_character(CharType c) = 0;\n    virtual void write_characters(const CharType* s, std::size_t length) = 0;\n    virtual ~output_adapter_protocol() = default;\n\n    output_adapter_protocol() = default;\n    output_adapter_protocol(const output_adapter_protocol&) = default;\n    output_adapter_protocol(output_adapter_protocol&&) noexcept = default;\n    output_adapter_protocol& operator=(const output_adapter_protocol&) = default;\n    output_adapter_protocol& operator=(output_adapter_protocol&&) noexcept = default;\n};\n\n/// a type to simplify interfaces\ntemplate<typename CharType>\nusing output_adapter_t = std::shared_ptr<output_adapter_protocol<CharType>>;\n\n/// output adapter for byte vectors\ntemplate<typename CharType, typename AllocatorType = std::allocator<CharType>>\nclass output_vector_adapter : public output_adapter_protocol<CharType>\n{\n  public:\n    explicit output_vector_adapter(std::vector<CharType, AllocatorType>& vec) noexcept\n        : v(vec)\n    {}\n\n    void write_character(CharType c) override\n    {\n        v.push_back(c);\n    }\n\n    JSON_HEDLEY_NON_NULL(2)\n    void write_characters(const CharType* s, std::size_t length) override\n    {\n        v.insert(v.end(), s, s + length);\n    }\n\n  private:\n    std::vector<CharType, AllocatorType>& v;\n};\n\n#ifndef JSON_NO_IO\n/// output adapter for output streams\ntemplate<typename CharType>\nclass output_stream_adapter : public output_adapter_protocol<CharType>\n{\n  public:\n    explicit output_stream_adapter(std::basic_ostream<CharType>& s) noexcept\n        : stream(s)\n    {}\n\n    void write_character(CharType c) override\n    {\n        stream.put(c);\n    }\n\n    JSON_HEDLEY_NON_NULL(2)\n    void write_characters(const CharType* s, std::size_t length) override\n    {\n        stream.write(s, static_cast<std::streamsize>(length));\n    }\n\n  private:\n    std::basic_ostream<CharType>& stream;\n};\n#endif  // JSON_NO_IO\n\n/// output adapter for basic_string\ntemplate<typename CharType, typename StringType = std::basic_string<CharType>>\nclass output_string_adapter : public output_adapter_protocol<CharType>\n{\n  public:\n    explicit output_string_adapter(StringType& s) noexcept\n        : str(s)\n    {}\n\n    void write_character(CharType c) override\n    {\n        str.push_back(c);\n    }\n\n    JSON_HEDLEY_NON_NULL(2)\n    void write_characters(const CharType* s, std::size_t length) override\n    {\n        str.append(s, length);\n    }\n\n  private:\n    StringType& str;\n};\n\ntemplate<typename CharType, typename StringType = std::basic_string<CharType>>\nclass output_adapter\n{\n  public:\n    template<typename AllocatorType = std::allocator<CharType>>\n    output_adapter(std::vector<CharType, AllocatorType>& vec)\n        : oa(std::make_shared<output_vector_adapter<CharType, AllocatorType>>(vec)) {}\n\n#ifndef JSON_NO_IO\n    output_adapter(std::basic_ostream<CharType>& s)\n        : oa(std::make_shared<output_stream_adapter<CharType>>(s)) {}\n#endif  // JSON_NO_IO\n\n    output_adapter(StringType& s)\n        : oa(std::make_shared<output_string_adapter<CharType, StringType>>(s)) {}\n\n    operator output_adapter_t<CharType>()\n    {\n        return oa;\n    }\n\n  private:\n    output_adapter_t<CharType> oa = nullptr;\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/string_concat.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n///////////////////\n// binary writer //\n///////////////////\n\n/*!\n@brief serialization to CBOR and MessagePack values\n*/\ntemplate<typename BasicJsonType, typename CharType>\nclass binary_writer\n{\n    using string_t = typename BasicJsonType::string_t;\n    using binary_t = typename BasicJsonType::binary_t;\n    using number_float_t = typename BasicJsonType::number_float_t;\n\n  public:\n    /*!\n    @brief create a binary writer\n\n    @param[in] adapter  output adapter to write to\n    */\n    explicit binary_writer(output_adapter_t<CharType> adapter) : oa(std::move(adapter))\n    {\n        JSON_ASSERT(oa);\n    }\n\n    /*!\n    @param[in] j  JSON value to serialize\n    @pre       j.type() == value_t::object\n    */\n    void write_bson(const BasicJsonType& j)\n    {\n        switch (j.type())\n        {\n            case value_t::object:\n            {\n                write_bson_object(*j.m_data.m_value.object);\n                break;\n            }\n\n            case value_t::null:\n            case value_t::array:\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n            {\n                JSON_THROW(type_error::create(317, concat(\"to serialize to BSON, top-level type must be object, but is \", j.type_name()), &j));\n            }\n        }\n    }\n\n    /*!\n    @param[in] j  JSON value to serialize\n    */\n    void write_cbor(const BasicJsonType& j)\n    {\n        switch (j.type())\n        {\n            case value_t::null:\n            {\n                oa->write_character(to_char_type(0xF6));\n                break;\n            }\n\n            case value_t::boolean:\n            {\n                oa->write_character(j.m_data.m_value.boolean\n                                    ? to_char_type(0xF5)\n                                    : to_char_type(0xF4));\n                break;\n            }\n\n            case value_t::number_integer:\n            {\n                if (j.m_data.m_value.number_integer >= 0)\n                {\n                    // CBOR does not differentiate between positive signed\n                    // integers and unsigned integers. Therefore, we used the\n                    // code from the value_t::number_unsigned case here.\n                    if (j.m_data.m_value.number_integer <= 0x17)\n                    {\n                        write_number(static_cast<std::uint8_t>(j.m_data.m_value.number_integer));\n                    }\n                    else if (j.m_data.m_value.number_integer <= (std::numeric_limits<std::uint8_t>::max)())\n                    {\n                        oa->write_character(to_char_type(0x18));\n                        write_number(static_cast<std::uint8_t>(j.m_data.m_value.number_integer));\n                    }\n                    else if (j.m_data.m_value.number_integer <= (std::numeric_limits<std::uint16_t>::max)())\n                    {\n                        oa->write_character(to_char_type(0x19));\n                        write_number(static_cast<std::uint16_t>(j.m_data.m_value.number_integer));\n                    }\n                    else if (j.m_data.m_value.number_integer <= (std::numeric_limits<std::uint32_t>::max)())\n                    {\n                        oa->write_character(to_char_type(0x1A));\n                        write_number(static_cast<std::uint32_t>(j.m_data.m_value.number_integer));\n                    }\n                    else\n                    {\n                        oa->write_character(to_char_type(0x1B));\n                        write_number(static_cast<std::uint64_t>(j.m_data.m_value.number_integer));\n                    }\n                }\n                else\n                {\n                    // The conversions below encode the sign in the first\n                    // byte, and the value is converted to a positive number.\n                    const auto positive_number = -1 - j.m_data.m_value.number_integer;\n                    if (j.m_data.m_value.number_integer >= -24)\n                    {\n                        write_number(static_cast<std::uint8_t>(0x20 + positive_number));\n                    }\n                    else if (positive_number <= (std::numeric_limits<std::uint8_t>::max)())\n                    {\n                        oa->write_character(to_char_type(0x38));\n                        write_number(static_cast<std::uint8_t>(positive_number));\n                    }\n                    else if (positive_number <= (std::numeric_limits<std::uint16_t>::max)())\n                    {\n                        oa->write_character(to_char_type(0x39));\n                        write_number(static_cast<std::uint16_t>(positive_number));\n                    }\n                    else if (positive_number <= (std::numeric_limits<std::uint32_t>::max)())\n                    {\n                        oa->write_character(to_char_type(0x3A));\n                        write_number(static_cast<std::uint32_t>(positive_number));\n                    }\n                    else\n                    {\n                        oa->write_character(to_char_type(0x3B));\n                        write_number(static_cast<std::uint64_t>(positive_number));\n                    }\n                }\n                break;\n            }\n\n            case value_t::number_unsigned:\n            {\n                if (j.m_data.m_value.number_unsigned <= 0x17)\n                {\n                    write_number(static_cast<std::uint8_t>(j.m_data.m_value.number_unsigned));\n                }\n                else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits<std::uint8_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x18));\n                    write_number(static_cast<std::uint8_t>(j.m_data.m_value.number_unsigned));\n                }\n                else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits<std::uint16_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x19));\n                    write_number(static_cast<std::uint16_t>(j.m_data.m_value.number_unsigned));\n                }\n                else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits<std::uint32_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x1A));\n                    write_number(static_cast<std::uint32_t>(j.m_data.m_value.number_unsigned));\n                }\n                else\n                {\n                    oa->write_character(to_char_type(0x1B));\n                    write_number(static_cast<std::uint64_t>(j.m_data.m_value.number_unsigned));\n                }\n                break;\n            }\n\n            case value_t::number_float:\n            {\n                if (std::isnan(j.m_data.m_value.number_float))\n                {\n                    // NaN is 0xf97e00 in CBOR\n                    oa->write_character(to_char_type(0xF9));\n                    oa->write_character(to_char_type(0x7E));\n                    oa->write_character(to_char_type(0x00));\n                }\n                else if (std::isinf(j.m_data.m_value.number_float))\n                {\n                    // Infinity is 0xf97c00, -Infinity is 0xf9fc00\n                    oa->write_character(to_char_type(0xf9));\n                    oa->write_character(j.m_data.m_value.number_float > 0 ? to_char_type(0x7C) : to_char_type(0xFC));\n                    oa->write_character(to_char_type(0x00));\n                }\n                else\n                {\n                    write_compact_float(j.m_data.m_value.number_float, detail::input_format_t::cbor);\n                }\n                break;\n            }\n\n            case value_t::string:\n            {\n                // step 1: write control byte and the string length\n                const auto N = j.m_data.m_value.string->size();\n                if (N <= 0x17)\n                {\n                    write_number(static_cast<std::uint8_t>(0x60 + N));\n                }\n                else if (N <= (std::numeric_limits<std::uint8_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x78));\n                    write_number(static_cast<std::uint8_t>(N));\n                }\n                else if (N <= (std::numeric_limits<std::uint16_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x79));\n                    write_number(static_cast<std::uint16_t>(N));\n                }\n                else if (N <= (std::numeric_limits<std::uint32_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x7A));\n                    write_number(static_cast<std::uint32_t>(N));\n                }\n                // LCOV_EXCL_START\n                else if (N <= (std::numeric_limits<std::uint64_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x7B));\n                    write_number(static_cast<std::uint64_t>(N));\n                }\n                // LCOV_EXCL_STOP\n\n                // step 2: write the string\n                oa->write_characters(\n                    reinterpret_cast<const CharType*>(j.m_data.m_value.string->c_str()),\n                    j.m_data.m_value.string->size());\n                break;\n            }\n\n            case value_t::array:\n            {\n                // step 1: write control byte and the array size\n                const auto N = j.m_data.m_value.array->size();\n                if (N <= 0x17)\n                {\n                    write_number(static_cast<std::uint8_t>(0x80 + N));\n                }\n                else if (N <= (std::numeric_limits<std::uint8_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x98));\n                    write_number(static_cast<std::uint8_t>(N));\n                }\n                else if (N <= (std::numeric_limits<std::uint16_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x99));\n                    write_number(static_cast<std::uint16_t>(N));\n                }\n                else if (N <= (std::numeric_limits<std::uint32_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x9A));\n                    write_number(static_cast<std::uint32_t>(N));\n                }\n                // LCOV_EXCL_START\n                else if (N <= (std::numeric_limits<std::uint64_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x9B));\n                    write_number(static_cast<std::uint64_t>(N));\n                }\n                // LCOV_EXCL_STOP\n\n                // step 2: write each element\n                for (const auto& el : *j.m_data.m_value.array)\n                {\n                    write_cbor(el);\n                }\n                break;\n            }\n\n            case value_t::binary:\n            {\n                if (j.m_data.m_value.binary->has_subtype())\n                {\n                    if (j.m_data.m_value.binary->subtype() <= (std::numeric_limits<std::uint8_t>::max)())\n                    {\n                        write_number(static_cast<std::uint8_t>(0xd8));\n                        write_number(static_cast<std::uint8_t>(j.m_data.m_value.binary->subtype()));\n                    }\n                    else if (j.m_data.m_value.binary->subtype() <= (std::numeric_limits<std::uint16_t>::max)())\n                    {\n                        write_number(static_cast<std::uint8_t>(0xd9));\n                        write_number(static_cast<std::uint16_t>(j.m_data.m_value.binary->subtype()));\n                    }\n                    else if (j.m_data.m_value.binary->subtype() <= (std::numeric_limits<std::uint32_t>::max)())\n                    {\n                        write_number(static_cast<std::uint8_t>(0xda));\n                        write_number(static_cast<std::uint32_t>(j.m_data.m_value.binary->subtype()));\n                    }\n                    else if (j.m_data.m_value.binary->subtype() <= (std::numeric_limits<std::uint64_t>::max)())\n                    {\n                        write_number(static_cast<std::uint8_t>(0xdb));\n                        write_number(static_cast<std::uint64_t>(j.m_data.m_value.binary->subtype()));\n                    }\n                }\n\n                // step 1: write control byte and the binary array size\n                const auto N = j.m_data.m_value.binary->size();\n                if (N <= 0x17)\n                {\n                    write_number(static_cast<std::uint8_t>(0x40 + N));\n                }\n                else if (N <= (std::numeric_limits<std::uint8_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x58));\n                    write_number(static_cast<std::uint8_t>(N));\n                }\n                else if (N <= (std::numeric_limits<std::uint16_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x59));\n                    write_number(static_cast<std::uint16_t>(N));\n                }\n                else if (N <= (std::numeric_limits<std::uint32_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x5A));\n                    write_number(static_cast<std::uint32_t>(N));\n                }\n                // LCOV_EXCL_START\n                else if (N <= (std::numeric_limits<std::uint64_t>::max)())\n                {\n                    oa->write_character(to_char_type(0x5B));\n                    write_number(static_cast<std::uint64_t>(N));\n                }\n                // LCOV_EXCL_STOP\n\n                // step 2: write each element\n                oa->write_characters(\n                    reinterpret_cast<const CharType*>(j.m_data.m_value.binary->data()),\n                    N);\n\n                break;\n            }\n\n            case value_t::object:\n            {\n                // step 1: write control byte and the object size\n                const auto N = j.m_data.m_value.object->size();\n                if (N <= 0x17)\n                {\n                    write_number(static_cast<std::uint8_t>(0xA0 + N));\n                }\n                else if (N <= (std::numeric_limits<std::uint8_t>::max)())\n                {\n                    oa->write_character(to_char_type(0xB8));\n                    write_number(static_cast<std::uint8_t>(N));\n                }\n                else if (N <= (std::numeric_limits<std::uint16_t>::max)())\n                {\n                    oa->write_character(to_char_type(0xB9));\n                    write_number(static_cast<std::uint16_t>(N));\n                }\n                else if (N <= (std::numeric_limits<std::uint32_t>::max)())\n                {\n                    oa->write_character(to_char_type(0xBA));\n                    write_number(static_cast<std::uint32_t>(N));\n                }\n                // LCOV_EXCL_START\n                else if (N <= (std::numeric_limits<std::uint64_t>::max)())\n                {\n                    oa->write_character(to_char_type(0xBB));\n                    write_number(static_cast<std::uint64_t>(N));\n                }\n                // LCOV_EXCL_STOP\n\n                // step 2: write each element\n                for (const auto& el : *j.m_data.m_value.object)\n                {\n                    write_cbor(el.first);\n                    write_cbor(el.second);\n                }\n                break;\n            }\n\n            case value_t::discarded:\n            default:\n                break;\n        }\n    }\n\n    /*!\n    @param[in] j  JSON value to serialize\n    */\n    void write_msgpack(const BasicJsonType& j)\n    {\n        switch (j.type())\n        {\n            case value_t::null: // nil\n            {\n                oa->write_character(to_char_type(0xC0));\n                break;\n            }\n\n            case value_t::boolean: // true and false\n            {\n                oa->write_character(j.m_data.m_value.boolean\n                                    ? to_char_type(0xC3)\n                                    : to_char_type(0xC2));\n                break;\n            }\n\n            case value_t::number_integer:\n            {\n                if (j.m_data.m_value.number_integer >= 0)\n                {\n                    // MessagePack does not differentiate between positive\n                    // signed integers and unsigned integers. Therefore, we used\n                    // the code from the value_t::number_unsigned case here.\n                    if (j.m_data.m_value.number_unsigned < 128)\n                    {\n                        // positive fixnum\n                        write_number(static_cast<std::uint8_t>(j.m_data.m_value.number_integer));\n                    }\n                    else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits<std::uint8_t>::max)())\n                    {\n                        // uint 8\n                        oa->write_character(to_char_type(0xCC));\n                        write_number(static_cast<std::uint8_t>(j.m_data.m_value.number_integer));\n                    }\n                    else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits<std::uint16_t>::max)())\n                    {\n                        // uint 16\n                        oa->write_character(to_char_type(0xCD));\n                        write_number(static_cast<std::uint16_t>(j.m_data.m_value.number_integer));\n                    }\n                    else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits<std::uint32_t>::max)())\n                    {\n                        // uint 32\n                        oa->write_character(to_char_type(0xCE));\n                        write_number(static_cast<std::uint32_t>(j.m_data.m_value.number_integer));\n                    }\n                    else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits<std::uint64_t>::max)())\n                    {\n                        // uint 64\n                        oa->write_character(to_char_type(0xCF));\n                        write_number(static_cast<std::uint64_t>(j.m_data.m_value.number_integer));\n                    }\n                }\n                else\n                {\n                    if (j.m_data.m_value.number_integer >= -32)\n                    {\n                        // negative fixnum\n                        write_number(static_cast<std::int8_t>(j.m_data.m_value.number_integer));\n                    }\n                    else if (j.m_data.m_value.number_integer >= (std::numeric_limits<std::int8_t>::min)() &&\n                             j.m_data.m_value.number_integer <= (std::numeric_limits<std::int8_t>::max)())\n                    {\n                        // int 8\n                        oa->write_character(to_char_type(0xD0));\n                        write_number(static_cast<std::int8_t>(j.m_data.m_value.number_integer));\n                    }\n                    else if (j.m_data.m_value.number_integer >= (std::numeric_limits<std::int16_t>::min)() &&\n                             j.m_data.m_value.number_integer <= (std::numeric_limits<std::int16_t>::max)())\n                    {\n                        // int 16\n                        oa->write_character(to_char_type(0xD1));\n                        write_number(static_cast<std::int16_t>(j.m_data.m_value.number_integer));\n                    }\n                    else if (j.m_data.m_value.number_integer >= (std::numeric_limits<std::int32_t>::min)() &&\n                             j.m_data.m_value.number_integer <= (std::numeric_limits<std::int32_t>::max)())\n                    {\n                        // int 32\n                        oa->write_character(to_char_type(0xD2));\n                        write_number(static_cast<std::int32_t>(j.m_data.m_value.number_integer));\n                    }\n                    else if (j.m_data.m_value.number_integer >= (std::numeric_limits<std::int64_t>::min)() &&\n                             j.m_data.m_value.number_integer <= (std::numeric_limits<std::int64_t>::max)())\n                    {\n                        // int 64\n                        oa->write_character(to_char_type(0xD3));\n                        write_number(static_cast<std::int64_t>(j.m_data.m_value.number_integer));\n                    }\n                }\n                break;\n            }\n\n            case value_t::number_unsigned:\n            {\n                if (j.m_data.m_value.number_unsigned < 128)\n                {\n                    // positive fixnum\n                    write_number(static_cast<std::uint8_t>(j.m_data.m_value.number_integer));\n                }\n                else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits<std::uint8_t>::max)())\n                {\n                    // uint 8\n                    oa->write_character(to_char_type(0xCC));\n                    write_number(static_cast<std::uint8_t>(j.m_data.m_value.number_integer));\n                }\n                else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits<std::uint16_t>::max)())\n                {\n                    // uint 16\n                    oa->write_character(to_char_type(0xCD));\n                    write_number(static_cast<std::uint16_t>(j.m_data.m_value.number_integer));\n                }\n                else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits<std::uint32_t>::max)())\n                {\n                    // uint 32\n                    oa->write_character(to_char_type(0xCE));\n                    write_number(static_cast<std::uint32_t>(j.m_data.m_value.number_integer));\n                }\n                else if (j.m_data.m_value.number_unsigned <= (std::numeric_limits<std::uint64_t>::max)())\n                {\n                    // uint 64\n                    oa->write_character(to_char_type(0xCF));\n                    write_number(static_cast<std::uint64_t>(j.m_data.m_value.number_integer));\n                }\n                break;\n            }\n\n            case value_t::number_float:\n            {\n                write_compact_float(j.m_data.m_value.number_float, detail::input_format_t::msgpack);\n                break;\n            }\n\n            case value_t::string:\n            {\n                // step 1: write control byte and the string length\n                const auto N = j.m_data.m_value.string->size();\n                if (N <= 31)\n                {\n                    // fixstr\n                    write_number(static_cast<std::uint8_t>(0xA0 | N));\n                }\n                else if (N <= (std::numeric_limits<std::uint8_t>::max)())\n                {\n                    // str 8\n                    oa->write_character(to_char_type(0xD9));\n                    write_number(static_cast<std::uint8_t>(N));\n                }\n                else if (N <= (std::numeric_limits<std::uint16_t>::max)())\n                {\n                    // str 16\n                    oa->write_character(to_char_type(0xDA));\n                    write_number(static_cast<std::uint16_t>(N));\n                }\n                else if (N <= (std::numeric_limits<std::uint32_t>::max)())\n                {\n                    // str 32\n                    oa->write_character(to_char_type(0xDB));\n                    write_number(static_cast<std::uint32_t>(N));\n                }\n\n                // step 2: write the string\n                oa->write_characters(\n                    reinterpret_cast<const CharType*>(j.m_data.m_value.string->c_str()),\n                    j.m_data.m_value.string->size());\n                break;\n            }\n\n            case value_t::array:\n            {\n                // step 1: write control byte and the array size\n                const auto N = j.m_data.m_value.array->size();\n                if (N <= 15)\n                {\n                    // fixarray\n                    write_number(static_cast<std::uint8_t>(0x90 | N));\n                }\n                else if (N <= (std::numeric_limits<std::uint16_t>::max)())\n                {\n                    // array 16\n                    oa->write_character(to_char_type(0xDC));\n                    write_number(static_cast<std::uint16_t>(N));\n                }\n                else if (N <= (std::numeric_limits<std::uint32_t>::max)())\n                {\n                    // array 32\n                    oa->write_character(to_char_type(0xDD));\n                    write_number(static_cast<std::uint32_t>(N));\n                }\n\n                // step 2: write each element\n                for (const auto& el : *j.m_data.m_value.array)\n                {\n                    write_msgpack(el);\n                }\n                break;\n            }\n\n            case value_t::binary:\n            {\n                // step 0: determine if the binary type has a set subtype to\n                // determine whether or not to use the ext or fixext types\n                const bool use_ext = j.m_data.m_value.binary->has_subtype();\n\n                // step 1: write control byte and the byte string length\n                const auto N = j.m_data.m_value.binary->size();\n                if (N <= (std::numeric_limits<std::uint8_t>::max)())\n                {\n                    std::uint8_t output_type{};\n                    bool fixed = true;\n                    if (use_ext)\n                    {\n                        switch (N)\n                        {\n                            case 1:\n                                output_type = 0xD4; // fixext 1\n                                break;\n                            case 2:\n                                output_type = 0xD5; // fixext 2\n                                break;\n                            case 4:\n                                output_type = 0xD6; // fixext 4\n                                break;\n                            case 8:\n                                output_type = 0xD7; // fixext 8\n                                break;\n                            case 16:\n                                output_type = 0xD8; // fixext 16\n                                break;\n                            default:\n                                output_type = 0xC7; // ext 8\n                                fixed = false;\n                                break;\n                        }\n\n                    }\n                    else\n                    {\n                        output_type = 0xC4; // bin 8\n                        fixed = false;\n                    }\n\n                    oa->write_character(to_char_type(output_type));\n                    if (!fixed)\n                    {\n                        write_number(static_cast<std::uint8_t>(N));\n                    }\n                }\n                else if (N <= (std::numeric_limits<std::uint16_t>::max)())\n                {\n                    const std::uint8_t output_type = use_ext\n                                                     ? 0xC8 // ext 16\n                                                     : 0xC5; // bin 16\n\n                    oa->write_character(to_char_type(output_type));\n                    write_number(static_cast<std::uint16_t>(N));\n                }\n                else if (N <= (std::numeric_limits<std::uint32_t>::max)())\n                {\n                    const std::uint8_t output_type = use_ext\n                                                     ? 0xC9 // ext 32\n                                                     : 0xC6; // bin 32\n\n                    oa->write_character(to_char_type(output_type));\n                    write_number(static_cast<std::uint32_t>(N));\n                }\n\n                // step 1.5: if this is an ext type, write the subtype\n                if (use_ext)\n                {\n                    write_number(static_cast<std::int8_t>(j.m_data.m_value.binary->subtype()));\n                }\n\n                // step 2: write the byte string\n                oa->write_characters(\n                    reinterpret_cast<const CharType*>(j.m_data.m_value.binary->data()),\n                    N);\n\n                break;\n            }\n\n            case value_t::object:\n            {\n                // step 1: write control byte and the object size\n                const auto N = j.m_data.m_value.object->size();\n                if (N <= 15)\n                {\n                    // fixmap\n                    write_number(static_cast<std::uint8_t>(0x80 | (N & 0xF)));\n                }\n                else if (N <= (std::numeric_limits<std::uint16_t>::max)())\n                {\n                    // map 16\n                    oa->write_character(to_char_type(0xDE));\n                    write_number(static_cast<std::uint16_t>(N));\n                }\n                else if (N <= (std::numeric_limits<std::uint32_t>::max)())\n                {\n                    // map 32\n                    oa->write_character(to_char_type(0xDF));\n                    write_number(static_cast<std::uint32_t>(N));\n                }\n\n                // step 2: write each element\n                for (const auto& el : *j.m_data.m_value.object)\n                {\n                    write_msgpack(el.first);\n                    write_msgpack(el.second);\n                }\n                break;\n            }\n\n            case value_t::discarded:\n            default:\n                break;\n        }\n    }\n\n    /*!\n    @param[in] j  JSON value to serialize\n    @param[in] use_count   whether to use '#' prefixes (optimized format)\n    @param[in] use_type    whether to use '$' prefixes (optimized format)\n    @param[in] add_prefix  whether prefixes need to be used for this value\n    @param[in] use_bjdata  whether write in BJData format, default is false\n    */\n    void write_ubjson(const BasicJsonType& j, const bool use_count,\n                      const bool use_type, const bool add_prefix = true,\n                      const bool use_bjdata = false)\n    {\n        switch (j.type())\n        {\n            case value_t::null:\n            {\n                if (add_prefix)\n                {\n                    oa->write_character(to_char_type('Z'));\n                }\n                break;\n            }\n\n            case value_t::boolean:\n            {\n                if (add_prefix)\n                {\n                    oa->write_character(j.m_data.m_value.boolean\n                                        ? to_char_type('T')\n                                        : to_char_type('F'));\n                }\n                break;\n            }\n\n            case value_t::number_integer:\n            {\n                write_number_with_ubjson_prefix(j.m_data.m_value.number_integer, add_prefix, use_bjdata);\n                break;\n            }\n\n            case value_t::number_unsigned:\n            {\n                write_number_with_ubjson_prefix(j.m_data.m_value.number_unsigned, add_prefix, use_bjdata);\n                break;\n            }\n\n            case value_t::number_float:\n            {\n                write_number_with_ubjson_prefix(j.m_data.m_value.number_float, add_prefix, use_bjdata);\n                break;\n            }\n\n            case value_t::string:\n            {\n                if (add_prefix)\n                {\n                    oa->write_character(to_char_type('S'));\n                }\n                write_number_with_ubjson_prefix(j.m_data.m_value.string->size(), true, use_bjdata);\n                oa->write_characters(\n                    reinterpret_cast<const CharType*>(j.m_data.m_value.string->c_str()),\n                    j.m_data.m_value.string->size());\n                break;\n            }\n\n            case value_t::array:\n            {\n                if (add_prefix)\n                {\n                    oa->write_character(to_char_type('['));\n                }\n\n                bool prefix_required = true;\n                if (use_type && !j.m_data.m_value.array->empty())\n                {\n                    JSON_ASSERT(use_count);\n                    const CharType first_prefix = ubjson_prefix(j.front(), use_bjdata);\n                    const bool same_prefix = std::all_of(j.begin() + 1, j.end(),\n                                                         [this, first_prefix, use_bjdata](const BasicJsonType & v)\n                    {\n                        return ubjson_prefix(v, use_bjdata) == first_prefix;\n                    });\n\n                    std::vector<CharType> bjdx = {'[', '{', 'S', 'H', 'T', 'F', 'N', 'Z'}; // excluded markers in bjdata optimized type\n\n                    if (same_prefix && !(use_bjdata && std::find(bjdx.begin(), bjdx.end(), first_prefix) != bjdx.end()))\n                    {\n                        prefix_required = false;\n                        oa->write_character(to_char_type('$'));\n                        oa->write_character(first_prefix);\n                    }\n                }\n\n                if (use_count)\n                {\n                    oa->write_character(to_char_type('#'));\n                    write_number_with_ubjson_prefix(j.m_data.m_value.array->size(), true, use_bjdata);\n                }\n\n                for (const auto& el : *j.m_data.m_value.array)\n                {\n                    write_ubjson(el, use_count, use_type, prefix_required, use_bjdata);\n                }\n\n                if (!use_count)\n                {\n                    oa->write_character(to_char_type(']'));\n                }\n\n                break;\n            }\n\n            case value_t::binary:\n            {\n                if (add_prefix)\n                {\n                    oa->write_character(to_char_type('['));\n                }\n\n                if (use_type && !j.m_data.m_value.binary->empty())\n                {\n                    JSON_ASSERT(use_count);\n                    oa->write_character(to_char_type('$'));\n                    oa->write_character('U');\n                }\n\n                if (use_count)\n                {\n                    oa->write_character(to_char_type('#'));\n                    write_number_with_ubjson_prefix(j.m_data.m_value.binary->size(), true, use_bjdata);\n                }\n\n                if (use_type)\n                {\n                    oa->write_characters(\n                        reinterpret_cast<const CharType*>(j.m_data.m_value.binary->data()),\n                        j.m_data.m_value.binary->size());\n                }\n                else\n                {\n                    for (size_t i = 0; i < j.m_data.m_value.binary->size(); ++i)\n                    {\n                        oa->write_character(to_char_type('U'));\n                        oa->write_character(j.m_data.m_value.binary->data()[i]);\n                    }\n                }\n\n                if (!use_count)\n                {\n                    oa->write_character(to_char_type(']'));\n                }\n\n                break;\n            }\n\n            case value_t::object:\n            {\n                if (use_bjdata && j.m_data.m_value.object->size() == 3 && j.m_data.m_value.object->find(\"_ArrayType_\") != j.m_data.m_value.object->end() && j.m_data.m_value.object->find(\"_ArraySize_\") != j.m_data.m_value.object->end() && j.m_data.m_value.object->find(\"_ArrayData_\") != j.m_data.m_value.object->end())\n                {\n                    if (!write_bjdata_ndarray(*j.m_data.m_value.object, use_count, use_type))  // decode bjdata ndarray in the JData format (https://github.com/NeuroJSON/jdata)\n                    {\n                        break;\n                    }\n                }\n\n                if (add_prefix)\n                {\n                    oa->write_character(to_char_type('{'));\n                }\n\n                bool prefix_required = true;\n                if (use_type && !j.m_data.m_value.object->empty())\n                {\n                    JSON_ASSERT(use_count);\n                    const CharType first_prefix = ubjson_prefix(j.front(), use_bjdata);\n                    const bool same_prefix = std::all_of(j.begin(), j.end(),\n                                                         [this, first_prefix, use_bjdata](const BasicJsonType & v)\n                    {\n                        return ubjson_prefix(v, use_bjdata) == first_prefix;\n                    });\n\n                    std::vector<CharType> bjdx = {'[', '{', 'S', 'H', 'T', 'F', 'N', 'Z'}; // excluded markers in bjdata optimized type\n\n                    if (same_prefix && !(use_bjdata && std::find(bjdx.begin(), bjdx.end(), first_prefix) != bjdx.end()))\n                    {\n                        prefix_required = false;\n                        oa->write_character(to_char_type('$'));\n                        oa->write_character(first_prefix);\n                    }\n                }\n\n                if (use_count)\n                {\n                    oa->write_character(to_char_type('#'));\n                    write_number_with_ubjson_prefix(j.m_data.m_value.object->size(), true, use_bjdata);\n                }\n\n                for (const auto& el : *j.m_data.m_value.object)\n                {\n                    write_number_with_ubjson_prefix(el.first.size(), true, use_bjdata);\n                    oa->write_characters(\n                        reinterpret_cast<const CharType*>(el.first.c_str()),\n                        el.first.size());\n                    write_ubjson(el.second, use_count, use_type, prefix_required, use_bjdata);\n                }\n\n                if (!use_count)\n                {\n                    oa->write_character(to_char_type('}'));\n                }\n\n                break;\n            }\n\n            case value_t::discarded:\n            default:\n                break;\n        }\n    }\n\n  private:\n    //////////\n    // BSON //\n    //////////\n\n    /*!\n    @return The size of a BSON document entry header, including the id marker\n            and the entry name size (and its null-terminator).\n    */\n    static std::size_t calc_bson_entry_header_size(const string_t& name, const BasicJsonType& j)\n    {\n        const auto it = name.find(static_cast<typename string_t::value_type>(0));\n        if (JSON_HEDLEY_UNLIKELY(it != BasicJsonType::string_t::npos))\n        {\n            JSON_THROW(out_of_range::create(409, concat(\"BSON key cannot contain code point U+0000 (at byte \", std::to_string(it), \")\"), &j));\n            static_cast<void>(j);\n        }\n\n        return /*id*/ 1ul + name.size() + /*zero-terminator*/1u;\n    }\n\n    /*!\n    @brief Writes the given @a element_type and @a name to the output adapter\n    */\n    void write_bson_entry_header(const string_t& name,\n                                 const std::uint8_t element_type)\n    {\n        oa->write_character(to_char_type(element_type)); // boolean\n        oa->write_characters(\n            reinterpret_cast<const CharType*>(name.c_str()),\n            name.size() + 1u);\n    }\n\n    /*!\n    @brief Writes a BSON element with key @a name and boolean value @a value\n    */\n    void write_bson_boolean(const string_t& name,\n                            const bool value)\n    {\n        write_bson_entry_header(name, 0x08);\n        oa->write_character(value ? to_char_type(0x01) : to_char_type(0x00));\n    }\n\n    /*!\n    @brief Writes a BSON element with key @a name and double value @a value\n    */\n    void write_bson_double(const string_t& name,\n                           const double value)\n    {\n        write_bson_entry_header(name, 0x01);\n        write_number<double>(value, true);\n    }\n\n    /*!\n    @return The size of the BSON-encoded string in @a value\n    */\n    static std::size_t calc_bson_string_size(const string_t& value)\n    {\n        return sizeof(std::int32_t) + value.size() + 1ul;\n    }\n\n    /*!\n    @brief Writes a BSON element with key @a name and string value @a value\n    */\n    void write_bson_string(const string_t& name,\n                           const string_t& value)\n    {\n        write_bson_entry_header(name, 0x02);\n\n        write_number<std::int32_t>(static_cast<std::int32_t>(value.size() + 1ul), true);\n        oa->write_characters(\n            reinterpret_cast<const CharType*>(value.c_str()),\n            value.size() + 1);\n    }\n\n    /*!\n    @brief Writes a BSON element with key @a name and null value\n    */\n    void write_bson_null(const string_t& name)\n    {\n        write_bson_entry_header(name, 0x0A);\n    }\n\n    /*!\n    @return The size of the BSON-encoded integer @a value\n    */\n    static std::size_t calc_bson_integer_size(const std::int64_t value)\n    {\n        return (std::numeric_limits<std::int32_t>::min)() <= value && value <= (std::numeric_limits<std::int32_t>::max)()\n               ? sizeof(std::int32_t)\n               : sizeof(std::int64_t);\n    }\n\n    /*!\n    @brief Writes a BSON element with key @a name and integer @a value\n    */\n    void write_bson_integer(const string_t& name,\n                            const std::int64_t value)\n    {\n        if ((std::numeric_limits<std::int32_t>::min)() <= value && value <= (std::numeric_limits<std::int32_t>::max)())\n        {\n            write_bson_entry_header(name, 0x10); // int32\n            write_number<std::int32_t>(static_cast<std::int32_t>(value), true);\n        }\n        else\n        {\n            write_bson_entry_header(name, 0x12); // int64\n            write_number<std::int64_t>(static_cast<std::int64_t>(value), true);\n        }\n    }\n\n    /*!\n    @return The size of the BSON-encoded unsigned integer in @a j\n    */\n    static constexpr std::size_t calc_bson_unsigned_size(const std::uint64_t value) noexcept\n    {\n        return (value <= static_cast<std::uint64_t>((std::numeric_limits<std::int32_t>::max)()))\n               ? sizeof(std::int32_t)\n               : sizeof(std::int64_t);\n    }\n\n    /*!\n    @brief Writes a BSON element with key @a name and unsigned @a value\n    */\n    void write_bson_unsigned(const string_t& name,\n                             const BasicJsonType& j)\n    {\n        if (j.m_data.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::int32_t>::max)()))\n        {\n            write_bson_entry_header(name, 0x10 /* int32 */);\n            write_number<std::int32_t>(static_cast<std::int32_t>(j.m_data.m_value.number_unsigned), true);\n        }\n        else if (j.m_data.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::int64_t>::max)()))\n        {\n            write_bson_entry_header(name, 0x12 /* int64 */);\n            write_number<std::int64_t>(static_cast<std::int64_t>(j.m_data.m_value.number_unsigned), true);\n        }\n        else\n        {\n            JSON_THROW(out_of_range::create(407, concat(\"integer number \", std::to_string(j.m_data.m_value.number_unsigned), \" cannot be represented by BSON as it does not fit int64\"), &j));\n        }\n    }\n\n    /*!\n    @brief Writes a BSON element with key @a name and object @a value\n    */\n    void write_bson_object_entry(const string_t& name,\n                                 const typename BasicJsonType::object_t& value)\n    {\n        write_bson_entry_header(name, 0x03); // object\n        write_bson_object(value);\n    }\n\n    /*!\n    @return The size of the BSON-encoded array @a value\n    */\n    static std::size_t calc_bson_array_size(const typename BasicJsonType::array_t& value)\n    {\n        std::size_t array_index = 0ul;\n\n        const std::size_t embedded_document_size = std::accumulate(std::begin(value), std::end(value), static_cast<std::size_t>(0), [&array_index](std::size_t result, const typename BasicJsonType::array_t::value_type & el)\n        {\n            return result + calc_bson_element_size(std::to_string(array_index++), el);\n        });\n\n        return sizeof(std::int32_t) + embedded_document_size + 1ul;\n    }\n\n    /*!\n    @return The size of the BSON-encoded binary array @a value\n    */\n    static std::size_t calc_bson_binary_size(const typename BasicJsonType::binary_t& value)\n    {\n        return sizeof(std::int32_t) + value.size() + 1ul;\n    }\n\n    /*!\n    @brief Writes a BSON element with key @a name and array @a value\n    */\n    void write_bson_array(const string_t& name,\n                          const typename BasicJsonType::array_t& value)\n    {\n        write_bson_entry_header(name, 0x04); // array\n        write_number<std::int32_t>(static_cast<std::int32_t>(calc_bson_array_size(value)), true);\n\n        std::size_t array_index = 0ul;\n\n        for (const auto& el : value)\n        {\n            write_bson_element(std::to_string(array_index++), el);\n        }\n\n        oa->write_character(to_char_type(0x00));\n    }\n\n    /*!\n    @brief Writes a BSON element with key @a name and binary value @a value\n    */\n    void write_bson_binary(const string_t& name,\n                           const binary_t& value)\n    {\n        write_bson_entry_header(name, 0x05);\n\n        write_number<std::int32_t>(static_cast<std::int32_t>(value.size()), true);\n        write_number(value.has_subtype() ? static_cast<std::uint8_t>(value.subtype()) : static_cast<std::uint8_t>(0x00));\n\n        oa->write_characters(reinterpret_cast<const CharType*>(value.data()), value.size());\n    }\n\n    /*!\n    @brief Calculates the size necessary to serialize the JSON value @a j with its @a name\n    @return The calculated size for the BSON document entry for @a j with the given @a name.\n    */\n    static std::size_t calc_bson_element_size(const string_t& name,\n            const BasicJsonType& j)\n    {\n        const auto header_size = calc_bson_entry_header_size(name, j);\n        switch (j.type())\n        {\n            case value_t::object:\n                return header_size + calc_bson_object_size(*j.m_data.m_value.object);\n\n            case value_t::array:\n                return header_size + calc_bson_array_size(*j.m_data.m_value.array);\n\n            case value_t::binary:\n                return header_size + calc_bson_binary_size(*j.m_data.m_value.binary);\n\n            case value_t::boolean:\n                return header_size + 1ul;\n\n            case value_t::number_float:\n                return header_size + 8ul;\n\n            case value_t::number_integer:\n                return header_size + calc_bson_integer_size(j.m_data.m_value.number_integer);\n\n            case value_t::number_unsigned:\n                return header_size + calc_bson_unsigned_size(j.m_data.m_value.number_unsigned);\n\n            case value_t::string:\n                return header_size + calc_bson_string_size(*j.m_data.m_value.string);\n\n            case value_t::null:\n                return header_size + 0ul;\n\n            // LCOV_EXCL_START\n            case value_t::discarded:\n            default:\n                JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert)\n                return 0ul;\n                // LCOV_EXCL_STOP\n        }\n    }\n\n    /*!\n    @brief Serializes the JSON value @a j to BSON and associates it with the\n           key @a name.\n    @param name The name to associate with the JSON entity @a j within the\n                current BSON document\n    */\n    void write_bson_element(const string_t& name,\n                            const BasicJsonType& j)\n    {\n        switch (j.type())\n        {\n            case value_t::object:\n                return write_bson_object_entry(name, *j.m_data.m_value.object);\n\n            case value_t::array:\n                return write_bson_array(name, *j.m_data.m_value.array);\n\n            case value_t::binary:\n                return write_bson_binary(name, *j.m_data.m_value.binary);\n\n            case value_t::boolean:\n                return write_bson_boolean(name, j.m_data.m_value.boolean);\n\n            case value_t::number_float:\n                return write_bson_double(name, j.m_data.m_value.number_float);\n\n            case value_t::number_integer:\n                return write_bson_integer(name, j.m_data.m_value.number_integer);\n\n            case value_t::number_unsigned:\n                return write_bson_unsigned(name, j);\n\n            case value_t::string:\n                return write_bson_string(name, *j.m_data.m_value.string);\n\n            case value_t::null:\n                return write_bson_null(name);\n\n            // LCOV_EXCL_START\n            case value_t::discarded:\n            default:\n                JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert)\n                return;\n                // LCOV_EXCL_STOP\n        }\n    }\n\n    /*!\n    @brief Calculates the size of the BSON serialization of the given\n           JSON-object @a j.\n    @param[in] value  JSON value to serialize\n    @pre       value.type() == value_t::object\n    */\n    static std::size_t calc_bson_object_size(const typename BasicJsonType::object_t& value)\n    {\n        const std::size_t document_size = std::accumulate(value.begin(), value.end(), static_cast<std::size_t>(0),\n                                          [](size_t result, const typename BasicJsonType::object_t::value_type & el)\n        {\n            return result += calc_bson_element_size(el.first, el.second);\n        });\n\n        return sizeof(std::int32_t) + document_size + 1ul;\n    }\n\n    /*!\n    @param[in] value  JSON value to serialize\n    @pre       value.type() == value_t::object\n    */\n    void write_bson_object(const typename BasicJsonType::object_t& value)\n    {\n        write_number<std::int32_t>(static_cast<std::int32_t>(calc_bson_object_size(value)), true);\n\n        for (const auto& el : value)\n        {\n            write_bson_element(el.first, el.second);\n        }\n\n        oa->write_character(to_char_type(0x00));\n    }\n\n    //////////\n    // CBOR //\n    //////////\n\n    static constexpr CharType get_cbor_float_prefix(float /*unused*/)\n    {\n        return to_char_type(0xFA);  // Single-Precision Float\n    }\n\n    static constexpr CharType get_cbor_float_prefix(double /*unused*/)\n    {\n        return to_char_type(0xFB);  // Double-Precision Float\n    }\n\n    /////////////\n    // MsgPack //\n    /////////////\n\n    static constexpr CharType get_msgpack_float_prefix(float /*unused*/)\n    {\n        return to_char_type(0xCA);  // float 32\n    }\n\n    static constexpr CharType get_msgpack_float_prefix(double /*unused*/)\n    {\n        return to_char_type(0xCB);  // float 64\n    }\n\n    ////////////\n    // UBJSON //\n    ////////////\n\n    // UBJSON: write number (floating point)\n    template<typename NumberType, typename std::enable_if<\n                 std::is_floating_point<NumberType>::value, int>::type = 0>\n    void write_number_with_ubjson_prefix(const NumberType n,\n                                         const bool add_prefix,\n                                         const bool use_bjdata)\n    {\n        if (add_prefix)\n        {\n            oa->write_character(get_ubjson_float_prefix(n));\n        }\n        write_number(n, use_bjdata);\n    }\n\n    // UBJSON: write number (unsigned integer)\n    template<typename NumberType, typename std::enable_if<\n                 std::is_unsigned<NumberType>::value, int>::type = 0>\n    void write_number_with_ubjson_prefix(const NumberType n,\n                                         const bool add_prefix,\n                                         const bool use_bjdata)\n    {\n        if (n <= static_cast<std::uint64_t>((std::numeric_limits<std::int8_t>::max)()))\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('i'));  // int8\n            }\n            write_number(static_cast<std::uint8_t>(n), use_bjdata);\n        }\n        else if (n <= (std::numeric_limits<std::uint8_t>::max)())\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('U'));  // uint8\n            }\n            write_number(static_cast<std::uint8_t>(n), use_bjdata);\n        }\n        else if (n <= static_cast<std::uint64_t>((std::numeric_limits<std::int16_t>::max)()))\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('I'));  // int16\n            }\n            write_number(static_cast<std::int16_t>(n), use_bjdata);\n        }\n        else if (use_bjdata && n <= static_cast<uint64_t>((std::numeric_limits<uint16_t>::max)()))\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('u'));  // uint16 - bjdata only\n            }\n            write_number(static_cast<std::uint16_t>(n), use_bjdata);\n        }\n        else if (n <= static_cast<std::uint64_t>((std::numeric_limits<std::int32_t>::max)()))\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('l'));  // int32\n            }\n            write_number(static_cast<std::int32_t>(n), use_bjdata);\n        }\n        else if (use_bjdata && n <= static_cast<uint64_t>((std::numeric_limits<uint32_t>::max)()))\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('m'));  // uint32 - bjdata only\n            }\n            write_number(static_cast<std::uint32_t>(n), use_bjdata);\n        }\n        else if (n <= static_cast<std::uint64_t>((std::numeric_limits<std::int64_t>::max)()))\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('L'));  // int64\n            }\n            write_number(static_cast<std::int64_t>(n), use_bjdata);\n        }\n        else if (use_bjdata && n <= (std::numeric_limits<uint64_t>::max)())\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('M'));  // uint64 - bjdata only\n            }\n            write_number(static_cast<std::uint64_t>(n), use_bjdata);\n        }\n        else\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('H'));  // high-precision number\n            }\n\n            const auto number = BasicJsonType(n).dump();\n            write_number_with_ubjson_prefix(number.size(), true, use_bjdata);\n            for (std::size_t i = 0; i < number.size(); ++i)\n            {\n                oa->write_character(to_char_type(static_cast<std::uint8_t>(number[i])));\n            }\n        }\n    }\n\n    // UBJSON: write number (signed integer)\n    template < typename NumberType, typename std::enable_if <\n                   std::is_signed<NumberType>::value&&\n                   !std::is_floating_point<NumberType>::value, int >::type = 0 >\n    void write_number_with_ubjson_prefix(const NumberType n,\n                                         const bool add_prefix,\n                                         const bool use_bjdata)\n    {\n        if ((std::numeric_limits<std::int8_t>::min)() <= n && n <= (std::numeric_limits<std::int8_t>::max)())\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('i'));  // int8\n            }\n            write_number(static_cast<std::int8_t>(n), use_bjdata);\n        }\n        else if (static_cast<std::int64_t>((std::numeric_limits<std::uint8_t>::min)()) <= n && n <= static_cast<std::int64_t>((std::numeric_limits<std::uint8_t>::max)()))\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('U'));  // uint8\n            }\n            write_number(static_cast<std::uint8_t>(n), use_bjdata);\n        }\n        else if ((std::numeric_limits<std::int16_t>::min)() <= n && n <= (std::numeric_limits<std::int16_t>::max)())\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('I'));  // int16\n            }\n            write_number(static_cast<std::int16_t>(n), use_bjdata);\n        }\n        else if (use_bjdata && (static_cast<std::int64_t>((std::numeric_limits<std::uint16_t>::min)()) <= n && n <= static_cast<std::int64_t>((std::numeric_limits<std::uint16_t>::max)())))\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('u'));  // uint16 - bjdata only\n            }\n            write_number(static_cast<uint16_t>(n), use_bjdata);\n        }\n        else if ((std::numeric_limits<std::int32_t>::min)() <= n && n <= (std::numeric_limits<std::int32_t>::max)())\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('l'));  // int32\n            }\n            write_number(static_cast<std::int32_t>(n), use_bjdata);\n        }\n        else if (use_bjdata && (static_cast<std::int64_t>((std::numeric_limits<std::uint32_t>::min)()) <= n && n <= static_cast<std::int64_t>((std::numeric_limits<std::uint32_t>::max)())))\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('m'));  // uint32 - bjdata only\n            }\n            write_number(static_cast<uint32_t>(n), use_bjdata);\n        }\n        else if ((std::numeric_limits<std::int64_t>::min)() <= n && n <= (std::numeric_limits<std::int64_t>::max)())\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('L'));  // int64\n            }\n            write_number(static_cast<std::int64_t>(n), use_bjdata);\n        }\n        // LCOV_EXCL_START\n        else\n        {\n            if (add_prefix)\n            {\n                oa->write_character(to_char_type('H'));  // high-precision number\n            }\n\n            const auto number = BasicJsonType(n).dump();\n            write_number_with_ubjson_prefix(number.size(), true, use_bjdata);\n            for (std::size_t i = 0; i < number.size(); ++i)\n            {\n                oa->write_character(to_char_type(static_cast<std::uint8_t>(number[i])));\n            }\n        }\n        // LCOV_EXCL_STOP\n    }\n\n    /*!\n    @brief determine the type prefix of container values\n    */\n    CharType ubjson_prefix(const BasicJsonType& j, const bool use_bjdata) const noexcept\n    {\n        switch (j.type())\n        {\n            case value_t::null:\n                return 'Z';\n\n            case value_t::boolean:\n                return j.m_data.m_value.boolean ? 'T' : 'F';\n\n            case value_t::number_integer:\n            {\n                if ((std::numeric_limits<std::int8_t>::min)() <= j.m_data.m_value.number_integer && j.m_data.m_value.number_integer <= (std::numeric_limits<std::int8_t>::max)())\n                {\n                    return 'i';\n                }\n                if ((std::numeric_limits<std::uint8_t>::min)() <= j.m_data.m_value.number_integer && j.m_data.m_value.number_integer <= (std::numeric_limits<std::uint8_t>::max)())\n                {\n                    return 'U';\n                }\n                if ((std::numeric_limits<std::int16_t>::min)() <= j.m_data.m_value.number_integer && j.m_data.m_value.number_integer <= (std::numeric_limits<std::int16_t>::max)())\n                {\n                    return 'I';\n                }\n                if (use_bjdata && ((std::numeric_limits<std::uint16_t>::min)() <= j.m_data.m_value.number_integer && j.m_data.m_value.number_integer <= (std::numeric_limits<std::uint16_t>::max)()))\n                {\n                    return 'u';\n                }\n                if ((std::numeric_limits<std::int32_t>::min)() <= j.m_data.m_value.number_integer && j.m_data.m_value.number_integer <= (std::numeric_limits<std::int32_t>::max)())\n                {\n                    return 'l';\n                }\n                if (use_bjdata && ((std::numeric_limits<std::uint32_t>::min)() <= j.m_data.m_value.number_integer && j.m_data.m_value.number_integer <= (std::numeric_limits<std::uint32_t>::max)()))\n                {\n                    return 'm';\n                }\n                if ((std::numeric_limits<std::int64_t>::min)() <= j.m_data.m_value.number_integer && j.m_data.m_value.number_integer <= (std::numeric_limits<std::int64_t>::max)())\n                {\n                    return 'L';\n                }\n                // anything else is treated as high-precision number\n                return 'H'; // LCOV_EXCL_LINE\n            }\n\n            case value_t::number_unsigned:\n            {\n                if (j.m_data.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::int8_t>::max)()))\n                {\n                    return 'i';\n                }\n                if (j.m_data.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::uint8_t>::max)()))\n                {\n                    return 'U';\n                }\n                if (j.m_data.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::int16_t>::max)()))\n                {\n                    return 'I';\n                }\n                if (use_bjdata && j.m_data.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::uint16_t>::max)()))\n                {\n                    return 'u';\n                }\n                if (j.m_data.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::int32_t>::max)()))\n                {\n                    return 'l';\n                }\n                if (use_bjdata && j.m_data.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::uint32_t>::max)()))\n                {\n                    return 'm';\n                }\n                if (j.m_data.m_value.number_unsigned <= static_cast<std::uint64_t>((std::numeric_limits<std::int64_t>::max)()))\n                {\n                    return 'L';\n                }\n                if (use_bjdata && j.m_data.m_value.number_unsigned <= (std::numeric_limits<std::uint64_t>::max)())\n                {\n                    return 'M';\n                }\n                // anything else is treated as high-precision number\n                return 'H'; // LCOV_EXCL_LINE\n            }\n\n            case value_t::number_float:\n                return get_ubjson_float_prefix(j.m_data.m_value.number_float);\n\n            case value_t::string:\n                return 'S';\n\n            case value_t::array: // fallthrough\n            case value_t::binary:\n                return '[';\n\n            case value_t::object:\n                return '{';\n\n            case value_t::discarded:\n            default:  // discarded values\n                return 'N';\n        }\n    }\n\n    static constexpr CharType get_ubjson_float_prefix(float /*unused*/)\n    {\n        return 'd';  // float 32\n    }\n\n    static constexpr CharType get_ubjson_float_prefix(double /*unused*/)\n    {\n        return 'D';  // float 64\n    }\n\n    /*!\n    @return false if the object is successfully converted to a bjdata ndarray, true if the type or size is invalid\n    */\n    bool write_bjdata_ndarray(const typename BasicJsonType::object_t& value, const bool use_count, const bool use_type)\n    {\n        std::map<string_t, CharType> bjdtype = {{\"uint8\", 'U'},  {\"int8\", 'i'},  {\"uint16\", 'u'}, {\"int16\", 'I'},\n            {\"uint32\", 'm'}, {\"int32\", 'l'}, {\"uint64\", 'M'}, {\"int64\", 'L'}, {\"single\", 'd'}, {\"double\", 'D'}, {\"char\", 'C'}\n        };\n\n        string_t key = \"_ArrayType_\";\n        auto it = bjdtype.find(static_cast<string_t>(value.at(key)));\n        if (it == bjdtype.end())\n        {\n            return true;\n        }\n        CharType dtype = it->second;\n\n        key = \"_ArraySize_\";\n        std::size_t len = (value.at(key).empty() ? 0 : 1);\n        for (const auto& el : value.at(key))\n        {\n            len *= static_cast<std::size_t>(el.m_data.m_value.number_unsigned);\n        }\n\n        key = \"_ArrayData_\";\n        if (value.at(key).size() != len)\n        {\n            return true;\n        }\n\n        oa->write_character('[');\n        oa->write_character('$');\n        oa->write_character(dtype);\n        oa->write_character('#');\n\n        key = \"_ArraySize_\";\n        write_ubjson(value.at(key), use_count, use_type, true,  true);\n\n        key = \"_ArrayData_\";\n        if (dtype == 'U' || dtype == 'C')\n        {\n            for (const auto& el : value.at(key))\n            {\n                write_number(static_cast<std::uint8_t>(el.m_data.m_value.number_unsigned), true);\n            }\n        }\n        else if (dtype == 'i')\n        {\n            for (const auto& el : value.at(key))\n            {\n                write_number(static_cast<std::int8_t>(el.m_data.m_value.number_integer), true);\n            }\n        }\n        else if (dtype == 'u')\n        {\n            for (const auto& el : value.at(key))\n            {\n                write_number(static_cast<std::uint16_t>(el.m_data.m_value.number_unsigned), true);\n            }\n        }\n        else if (dtype == 'I')\n        {\n            for (const auto& el : value.at(key))\n            {\n                write_number(static_cast<std::int16_t>(el.m_data.m_value.number_integer), true);\n            }\n        }\n        else if (dtype == 'm')\n        {\n            for (const auto& el : value.at(key))\n            {\n                write_number(static_cast<std::uint32_t>(el.m_data.m_value.number_unsigned), true);\n            }\n        }\n        else if (dtype == 'l')\n        {\n            for (const auto& el : value.at(key))\n            {\n                write_number(static_cast<std::int32_t>(el.m_data.m_value.number_integer), true);\n            }\n        }\n        else if (dtype == 'M')\n        {\n            for (const auto& el : value.at(key))\n            {\n                write_number(static_cast<std::uint64_t>(el.m_data.m_value.number_unsigned), true);\n            }\n        }\n        else if (dtype == 'L')\n        {\n            for (const auto& el : value.at(key))\n            {\n                write_number(static_cast<std::int64_t>(el.m_data.m_value.number_integer), true);\n            }\n        }\n        else if (dtype == 'd')\n        {\n            for (const auto& el : value.at(key))\n            {\n                write_number(static_cast<float>(el.m_data.m_value.number_float), true);\n            }\n        }\n        else if (dtype == 'D')\n        {\n            for (const auto& el : value.at(key))\n            {\n                write_number(static_cast<double>(el.m_data.m_value.number_float), true);\n            }\n        }\n        return false;\n    }\n\n    ///////////////////////\n    // Utility functions //\n    ///////////////////////\n\n    /*\n    @brief write a number to output input\n    @param[in] n number of type @a NumberType\n    @param[in] OutputIsLittleEndian Set to true if output data is\n                                 required to be little endian\n    @tparam NumberType the type of the number\n\n    @note This function needs to respect the system's endianness, because bytes\n          in CBOR, MessagePack, and UBJSON are stored in network order (big\n          endian) and therefore need reordering on little endian systems.\n          On the other hand, BSON and BJData use little endian and should reorder\n          on big endian systems.\n    */\n    template<typename NumberType>\n    void write_number(const NumberType n, const bool OutputIsLittleEndian = false)\n    {\n        // step 1: write number to array of length NumberType\n        std::array<CharType, sizeof(NumberType)> vec{};\n        std::memcpy(vec.data(), &n, sizeof(NumberType));\n\n        // step 2: write array to output (with possible reordering)\n        if (is_little_endian != OutputIsLittleEndian)\n        {\n            // reverse byte order prior to conversion if necessary\n            std::reverse(vec.begin(), vec.end());\n        }\n\n        oa->write_characters(vec.data(), sizeof(NumberType));\n    }\n\n    void write_compact_float(const number_float_t n, detail::input_format_t format)\n    {\n#ifdef __GNUC__\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wfloat-equal\"\n#endif\n        if (static_cast<double>(n) >= static_cast<double>(std::numeric_limits<float>::lowest()) &&\n                static_cast<double>(n) <= static_cast<double>((std::numeric_limits<float>::max)()) &&\n                static_cast<double>(static_cast<float>(n)) == static_cast<double>(n))\n        {\n            oa->write_character(format == detail::input_format_t::cbor\n                                ? get_cbor_float_prefix(static_cast<float>(n))\n                                : get_msgpack_float_prefix(static_cast<float>(n)));\n            write_number(static_cast<float>(n));\n        }\n        else\n        {\n            oa->write_character(format == detail::input_format_t::cbor\n                                ? get_cbor_float_prefix(n)\n                                : get_msgpack_float_prefix(n));\n            write_number(n);\n        }\n#ifdef __GNUC__\n#pragma GCC diagnostic pop\n#endif\n    }\n\n  public:\n    // The following to_char_type functions are implement the conversion\n    // between uint8_t and CharType. In case CharType is not unsigned,\n    // such a conversion is required to allow values greater than 128.\n    // See <https://github.com/nlohmann/json/issues/1286> for a discussion.\n    template < typename C = CharType,\n               enable_if_t < std::is_signed<C>::value && std::is_signed<char>::value > * = nullptr >\n    static constexpr CharType to_char_type(std::uint8_t x) noexcept\n    {\n        return *reinterpret_cast<char*>(&x);\n    }\n\n    template < typename C = CharType,\n               enable_if_t < std::is_signed<C>::value && std::is_unsigned<char>::value > * = nullptr >\n    static CharType to_char_type(std::uint8_t x) noexcept\n    {\n        static_assert(sizeof(std::uint8_t) == sizeof(CharType), \"size of CharType must be equal to std::uint8_t\");\n        static_assert(std::is_trivial<CharType>::value, \"CharType must be trivial\");\n        CharType result;\n        std::memcpy(&result, &x, sizeof(x));\n        return result;\n    }\n\n    template<typename C = CharType,\n             enable_if_t<std::is_unsigned<C>::value>* = nullptr>\n    static constexpr CharType to_char_type(std::uint8_t x) noexcept\n    {\n        return x;\n    }\n\n    template < typename InputCharType, typename C = CharType,\n               enable_if_t <\n                   std::is_signed<C>::value &&\n                   std::is_signed<char>::value &&\n                   std::is_same<char, typename std::remove_cv<InputCharType>::type>::value\n                   > * = nullptr >\n    static constexpr CharType to_char_type(InputCharType x) noexcept\n    {\n        return x;\n    }\n\n  private:\n    /// whether we can assume little endianness\n    const bool is_little_endian = little_endianness();\n\n    /// the output\n    output_adapter_t<CharType> oa = nullptr;\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/output/output_adapters.hpp>\n\n// #include <nlohmann/detail/output/serializer.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2008-2009 Björn Hoehrmann <bjoern@hoehrmann.de>\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <algorithm> // reverse, remove, fill, find, none_of\n#include <array> // array\n#include <clocale> // localeconv, lconv\n#include <cmath> // labs, isfinite, isnan, signbit\n#include <cstddef> // size_t, ptrdiff_t\n#include <cstdint> // uint8_t\n#include <cstdio> // snprintf\n#include <limits> // numeric_limits\n#include <string> // string, char_traits\n#include <iomanip> // setfill, setw\n#include <type_traits> // is_same\n#include <utility> // move\n\n// #include <nlohmann/detail/conversions/to_chars.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2009 Florian Loitsch <https://florian.loitsch.com/>\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <array> // array\n#include <cmath>   // signbit, isfinite\n#include <cstdint> // intN_t, uintN_t\n#include <cstring> // memcpy, memmove\n#include <limits> // numeric_limits\n#include <type_traits> // conditional\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n/*!\n@brief implements the Grisu2 algorithm for binary to decimal floating-point\nconversion.\n\nThis implementation is a slightly modified version of the reference\nimplementation which may be obtained from\nhttp://florian.loitsch.com/publications (bench.tar.gz).\n\nThe code is distributed under the MIT license, Copyright (c) 2009 Florian Loitsch.\n\nFor a detailed description of the algorithm see:\n\n[1] Loitsch, \"Printing Floating-Point Numbers Quickly and Accurately with\n    Integers\", Proceedings of the ACM SIGPLAN 2010 Conference on Programming\n    Language Design and Implementation, PLDI 2010\n[2] Burger, Dybvig, \"Printing Floating-Point Numbers Quickly and Accurately\",\n    Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language\n    Design and Implementation, PLDI 1996\n*/\nnamespace dtoa_impl\n{\n\ntemplate<typename Target, typename Source>\nTarget reinterpret_bits(const Source source)\n{\n    static_assert(sizeof(Target) == sizeof(Source), \"size mismatch\");\n\n    Target target;\n    std::memcpy(&target, &source, sizeof(Source));\n    return target;\n}\n\nstruct diyfp // f * 2^e\n{\n    static constexpr int kPrecision = 64; // = q\n\n    std::uint64_t f = 0;\n    int e = 0;\n\n    constexpr diyfp(std::uint64_t f_, int e_) noexcept : f(f_), e(e_) {}\n\n    /*!\n    @brief returns x - y\n    @pre x.e == y.e and x.f >= y.f\n    */\n    static diyfp sub(const diyfp& x, const diyfp& y) noexcept\n    {\n        JSON_ASSERT(x.e == y.e);\n        JSON_ASSERT(x.f >= y.f);\n\n        return {x.f - y.f, x.e};\n    }\n\n    /*!\n    @brief returns x * y\n    @note The result is rounded. (Only the upper q bits are returned.)\n    */\n    static diyfp mul(const diyfp& x, const diyfp& y) noexcept\n    {\n        static_assert(kPrecision == 64, \"internal error\");\n\n        // Computes:\n        //  f = round((x.f * y.f) / 2^q)\n        //  e = x.e + y.e + q\n\n        // Emulate the 64-bit * 64-bit multiplication:\n        //\n        // p = u * v\n        //   = (u_lo + 2^32 u_hi) (v_lo + 2^32 v_hi)\n        //   = (u_lo v_lo         ) + 2^32 ((u_lo v_hi         ) + (u_hi v_lo         )) + 2^64 (u_hi v_hi         )\n        //   = (p0                ) + 2^32 ((p1                ) + (p2                )) + 2^64 (p3                )\n        //   = (p0_lo + 2^32 p0_hi) + 2^32 ((p1_lo + 2^32 p1_hi) + (p2_lo + 2^32 p2_hi)) + 2^64 (p3                )\n        //   = (p0_lo             ) + 2^32 (p0_hi + p1_lo + p2_lo                      ) + 2^64 (p1_hi + p2_hi + p3)\n        //   = (p0_lo             ) + 2^32 (Q                                          ) + 2^64 (H                 )\n        //   = (p0_lo             ) + 2^32 (Q_lo + 2^32 Q_hi                           ) + 2^64 (H                 )\n        //\n        // (Since Q might be larger than 2^32 - 1)\n        //\n        //   = (p0_lo + 2^32 Q_lo) + 2^64 (Q_hi + H)\n        //\n        // (Q_hi + H does not overflow a 64-bit int)\n        //\n        //   = p_lo + 2^64 p_hi\n\n        const std::uint64_t u_lo = x.f & 0xFFFFFFFFu;\n        const std::uint64_t u_hi = x.f >> 32u;\n        const std::uint64_t v_lo = y.f & 0xFFFFFFFFu;\n        const std::uint64_t v_hi = y.f >> 32u;\n\n        const std::uint64_t p0 = u_lo * v_lo;\n        const std::uint64_t p1 = u_lo * v_hi;\n        const std::uint64_t p2 = u_hi * v_lo;\n        const std::uint64_t p3 = u_hi * v_hi;\n\n        const std::uint64_t p0_hi = p0 >> 32u;\n        const std::uint64_t p1_lo = p1 & 0xFFFFFFFFu;\n        const std::uint64_t p1_hi = p1 >> 32u;\n        const std::uint64_t p2_lo = p2 & 0xFFFFFFFFu;\n        const std::uint64_t p2_hi = p2 >> 32u;\n\n        std::uint64_t Q = p0_hi + p1_lo + p2_lo;\n\n        // The full product might now be computed as\n        //\n        // p_hi = p3 + p2_hi + p1_hi + (Q >> 32)\n        // p_lo = p0_lo + (Q << 32)\n        //\n        // But in this particular case here, the full p_lo is not required.\n        // Effectively we only need to add the highest bit in p_lo to p_hi (and\n        // Q_hi + 1 does not overflow).\n\n        Q += std::uint64_t{1} << (64u - 32u - 1u); // round, ties up\n\n        const std::uint64_t h = p3 + p2_hi + p1_hi + (Q >> 32u);\n\n        return {h, x.e + y.e + 64};\n    }\n\n    /*!\n    @brief normalize x such that the significand is >= 2^(q-1)\n    @pre x.f != 0\n    */\n    static diyfp normalize(diyfp x) noexcept\n    {\n        JSON_ASSERT(x.f != 0);\n\n        while ((x.f >> 63u) == 0)\n        {\n            x.f <<= 1u;\n            x.e--;\n        }\n\n        return x;\n    }\n\n    /*!\n    @brief normalize x such that the result has the exponent E\n    @pre e >= x.e and the upper e - x.e bits of x.f must be zero.\n    */\n    static diyfp normalize_to(const diyfp& x, const int target_exponent) noexcept\n    {\n        const int delta = x.e - target_exponent;\n\n        JSON_ASSERT(delta >= 0);\n        JSON_ASSERT(((x.f << delta) >> delta) == x.f);\n\n        return {x.f << delta, target_exponent};\n    }\n};\n\nstruct boundaries\n{\n    diyfp w;\n    diyfp minus;\n    diyfp plus;\n};\n\n/*!\nCompute the (normalized) diyfp representing the input number 'value' and its\nboundaries.\n\n@pre value must be finite and positive\n*/\ntemplate<typename FloatType>\nboundaries compute_boundaries(FloatType value)\n{\n    JSON_ASSERT(std::isfinite(value));\n    JSON_ASSERT(value > 0);\n\n    // Convert the IEEE representation into a diyfp.\n    //\n    // If v is denormal:\n    //      value = 0.F * 2^(1 - bias) = (          F) * 2^(1 - bias - (p-1))\n    // If v is normalized:\n    //      value = 1.F * 2^(E - bias) = (2^(p-1) + F) * 2^(E - bias - (p-1))\n\n    static_assert(std::numeric_limits<FloatType>::is_iec559,\n                  \"internal error: dtoa_short requires an IEEE-754 floating-point implementation\");\n\n    constexpr int      kPrecision = std::numeric_limits<FloatType>::digits; // = p (includes the hidden bit)\n    constexpr int      kBias      = std::numeric_limits<FloatType>::max_exponent - 1 + (kPrecision - 1);\n    constexpr int      kMinExp    = 1 - kBias;\n    constexpr std::uint64_t kHiddenBit = std::uint64_t{1} << (kPrecision - 1); // = 2^(p-1)\n\n    using bits_type = typename std::conditional<kPrecision == 24, std::uint32_t, std::uint64_t >::type;\n\n    const auto bits = static_cast<std::uint64_t>(reinterpret_bits<bits_type>(value));\n    const std::uint64_t E = bits >> (kPrecision - 1);\n    const std::uint64_t F = bits & (kHiddenBit - 1);\n\n    const bool is_denormal = E == 0;\n    const diyfp v = is_denormal\n                    ? diyfp(F, kMinExp)\n                    : diyfp(F + kHiddenBit, static_cast<int>(E) - kBias);\n\n    // Compute the boundaries m- and m+ of the floating-point value\n    // v = f * 2^e.\n    //\n    // Determine v- and v+, the floating-point predecessor and successor if v,\n    // respectively.\n    //\n    //      v- = v - 2^e        if f != 2^(p-1) or e == e_min                (A)\n    //         = v - 2^(e-1)    if f == 2^(p-1) and e > e_min                (B)\n    //\n    //      v+ = v + 2^e\n    //\n    // Let m- = (v- + v) / 2 and m+ = (v + v+) / 2. All real numbers _strictly_\n    // between m- and m+ round to v, regardless of how the input rounding\n    // algorithm breaks ties.\n    //\n    //      ---+-------------+-------------+-------------+-------------+---  (A)\n    //         v-            m-            v             m+            v+\n    //\n    //      -----------------+------+------+-------------+-------------+---  (B)\n    //                       v-     m-     v             m+            v+\n\n    const bool lower_boundary_is_closer = F == 0 && E > 1;\n    const diyfp m_plus = diyfp(2 * v.f + 1, v.e - 1);\n    const diyfp m_minus = lower_boundary_is_closer\n                          ? diyfp(4 * v.f - 1, v.e - 2)  // (B)\n                          : diyfp(2 * v.f - 1, v.e - 1); // (A)\n\n    // Determine the normalized w+ = m+.\n    const diyfp w_plus = diyfp::normalize(m_plus);\n\n    // Determine w- = m- such that e_(w-) = e_(w+).\n    const diyfp w_minus = diyfp::normalize_to(m_minus, w_plus.e);\n\n    return {diyfp::normalize(v), w_minus, w_plus};\n}\n\n// Given normalized diyfp w, Grisu needs to find a (normalized) cached\n// power-of-ten c, such that the exponent of the product c * w = f * 2^e lies\n// within a certain range [alpha, gamma] (Definition 3.2 from [1])\n//\n//      alpha <= e = e_c + e_w + q <= gamma\n//\n// or\n//\n//      f_c * f_w * 2^alpha <= f_c 2^(e_c) * f_w 2^(e_w) * 2^q\n//                          <= f_c * f_w * 2^gamma\n//\n// Since c and w are normalized, i.e. 2^(q-1) <= f < 2^q, this implies\n//\n//      2^(q-1) * 2^(q-1) * 2^alpha <= c * w * 2^q < 2^q * 2^q * 2^gamma\n//\n// or\n//\n//      2^(q - 2 + alpha) <= c * w < 2^(q + gamma)\n//\n// The choice of (alpha,gamma) determines the size of the table and the form of\n// the digit generation procedure. Using (alpha,gamma)=(-60,-32) works out well\n// in practice:\n//\n// The idea is to cut the number c * w = f * 2^e into two parts, which can be\n// processed independently: An integral part p1, and a fractional part p2:\n//\n//      f * 2^e = ( (f div 2^-e) * 2^-e + (f mod 2^-e) ) * 2^e\n//              = (f div 2^-e) + (f mod 2^-e) * 2^e\n//              = p1 + p2 * 2^e\n//\n// The conversion of p1 into decimal form requires a series of divisions and\n// modulos by (a power of) 10. These operations are faster for 32-bit than for\n// 64-bit integers, so p1 should ideally fit into a 32-bit integer. This can be\n// achieved by choosing\n//\n//      -e >= 32   or   e <= -32 := gamma\n//\n// In order to convert the fractional part\n//\n//      p2 * 2^e = p2 / 2^-e = d[-1] / 10^1 + d[-2] / 10^2 + ...\n//\n// into decimal form, the fraction is repeatedly multiplied by 10 and the digits\n// d[-i] are extracted in order:\n//\n//      (10 * p2) div 2^-e = d[-1]\n//      (10 * p2) mod 2^-e = d[-2] / 10^1 + ...\n//\n// The multiplication by 10 must not overflow. It is sufficient to choose\n//\n//      10 * p2 < 16 * p2 = 2^4 * p2 <= 2^64.\n//\n// Since p2 = f mod 2^-e < 2^-e,\n//\n//      -e <= 60   or   e >= -60 := alpha\n\nconstexpr int kAlpha = -60;\nconstexpr int kGamma = -32;\n\nstruct cached_power // c = f * 2^e ~= 10^k\n{\n    std::uint64_t f;\n    int e;\n    int k;\n};\n\n/*!\nFor a normalized diyfp w = f * 2^e, this function returns a (normalized) cached\npower-of-ten c = f_c * 2^e_c, such that the exponent of the product w * c\nsatisfies (Definition 3.2 from [1])\n\n     alpha <= e_c + e + q <= gamma.\n*/\ninline cached_power get_cached_power_for_binary_exponent(int e)\n{\n    // Now\n    //\n    //      alpha <= e_c + e + q <= gamma                                    (1)\n    //      ==> f_c * 2^alpha <= c * 2^e * 2^q\n    //\n    // and since the c's are normalized, 2^(q-1) <= f_c,\n    //\n    //      ==> 2^(q - 1 + alpha) <= c * 2^(e + q)\n    //      ==> 2^(alpha - e - 1) <= c\n    //\n    // If c were an exact power of ten, i.e. c = 10^k, one may determine k as\n    //\n    //      k = ceil( log_10( 2^(alpha - e - 1) ) )\n    //        = ceil( (alpha - e - 1) * log_10(2) )\n    //\n    // From the paper:\n    // \"In theory the result of the procedure could be wrong since c is rounded,\n    //  and the computation itself is approximated [...]. In practice, however,\n    //  this simple function is sufficient.\"\n    //\n    // For IEEE double precision floating-point numbers converted into\n    // normalized diyfp's w = f * 2^e, with q = 64,\n    //\n    //      e >= -1022      (min IEEE exponent)\n    //           -52        (p - 1)\n    //           -52        (p - 1, possibly normalize denormal IEEE numbers)\n    //           -11        (normalize the diyfp)\n    //         = -1137\n    //\n    // and\n    //\n    //      e <= +1023      (max IEEE exponent)\n    //           -52        (p - 1)\n    //           -11        (normalize the diyfp)\n    //         = 960\n    //\n    // This binary exponent range [-1137,960] results in a decimal exponent\n    // range [-307,324]. One does not need to store a cached power for each\n    // k in this range. For each such k it suffices to find a cached power\n    // such that the exponent of the product lies in [alpha,gamma].\n    // This implies that the difference of the decimal exponents of adjacent\n    // table entries must be less than or equal to\n    //\n    //      floor( (gamma - alpha) * log_10(2) ) = 8.\n    //\n    // (A smaller distance gamma-alpha would require a larger table.)\n\n    // NB:\n    // Actually this function returns c, such that -60 <= e_c + e + 64 <= -34.\n\n    constexpr int kCachedPowersMinDecExp = -300;\n    constexpr int kCachedPowersDecStep = 8;\n\n    static constexpr std::array<cached_power, 79> kCachedPowers =\n    {\n        {\n            { 0xAB70FE17C79AC6CA, -1060, -300 },\n            { 0xFF77B1FCBEBCDC4F, -1034, -292 },\n            { 0xBE5691EF416BD60C, -1007, -284 },\n            { 0x8DD01FAD907FFC3C,  -980, -276 },\n            { 0xD3515C2831559A83,  -954, -268 },\n            { 0x9D71AC8FADA6C9B5,  -927, -260 },\n            { 0xEA9C227723EE8BCB,  -901, -252 },\n            { 0xAECC49914078536D,  -874, -244 },\n            { 0x823C12795DB6CE57,  -847, -236 },\n            { 0xC21094364DFB5637,  -821, -228 },\n            { 0x9096EA6F3848984F,  -794, -220 },\n            { 0xD77485CB25823AC7,  -768, -212 },\n            { 0xA086CFCD97BF97F4,  -741, -204 },\n            { 0xEF340A98172AACE5,  -715, -196 },\n            { 0xB23867FB2A35B28E,  -688, -188 },\n            { 0x84C8D4DFD2C63F3B,  -661, -180 },\n            { 0xC5DD44271AD3CDBA,  -635, -172 },\n            { 0x936B9FCEBB25C996,  -608, -164 },\n            { 0xDBAC6C247D62A584,  -582, -156 },\n            { 0xA3AB66580D5FDAF6,  -555, -148 },\n            { 0xF3E2F893DEC3F126,  -529, -140 },\n            { 0xB5B5ADA8AAFF80B8,  -502, -132 },\n            { 0x87625F056C7C4A8B,  -475, -124 },\n            { 0xC9BCFF6034C13053,  -449, -116 },\n            { 0x964E858C91BA2655,  -422, -108 },\n            { 0xDFF9772470297EBD,  -396, -100 },\n            { 0xA6DFBD9FB8E5B88F,  -369,  -92 },\n            { 0xF8A95FCF88747D94,  -343,  -84 },\n            { 0xB94470938FA89BCF,  -316,  -76 },\n            { 0x8A08F0F8BF0F156B,  -289,  -68 },\n            { 0xCDB02555653131B6,  -263,  -60 },\n            { 0x993FE2C6D07B7FAC,  -236,  -52 },\n            { 0xE45C10C42A2B3B06,  -210,  -44 },\n            { 0xAA242499697392D3,  -183,  -36 },\n            { 0xFD87B5F28300CA0E,  -157,  -28 },\n            { 0xBCE5086492111AEB,  -130,  -20 },\n            { 0x8CBCCC096F5088CC,  -103,  -12 },\n            { 0xD1B71758E219652C,   -77,   -4 },\n            { 0x9C40000000000000,   -50,    4 },\n            { 0xE8D4A51000000000,   -24,   12 },\n            { 0xAD78EBC5AC620000,     3,   20 },\n            { 0x813F3978F8940984,    30,   28 },\n            { 0xC097CE7BC90715B3,    56,   36 },\n            { 0x8F7E32CE7BEA5C70,    83,   44 },\n            { 0xD5D238A4ABE98068,   109,   52 },\n            { 0x9F4F2726179A2245,   136,   60 },\n            { 0xED63A231D4C4FB27,   162,   68 },\n            { 0xB0DE65388CC8ADA8,   189,   76 },\n            { 0x83C7088E1AAB65DB,   216,   84 },\n            { 0xC45D1DF942711D9A,   242,   92 },\n            { 0x924D692CA61BE758,   269,  100 },\n            { 0xDA01EE641A708DEA,   295,  108 },\n            { 0xA26DA3999AEF774A,   322,  116 },\n            { 0xF209787BB47D6B85,   348,  124 },\n            { 0xB454E4A179DD1877,   375,  132 },\n            { 0x865B86925B9BC5C2,   402,  140 },\n            { 0xC83553C5C8965D3D,   428,  148 },\n            { 0x952AB45CFA97A0B3,   455,  156 },\n            { 0xDE469FBD99A05FE3,   481,  164 },\n            { 0xA59BC234DB398C25,   508,  172 },\n            { 0xF6C69A72A3989F5C,   534,  180 },\n            { 0xB7DCBF5354E9BECE,   561,  188 },\n            { 0x88FCF317F22241E2,   588,  196 },\n            { 0xCC20CE9BD35C78A5,   614,  204 },\n            { 0x98165AF37B2153DF,   641,  212 },\n            { 0xE2A0B5DC971F303A,   667,  220 },\n            { 0xA8D9D1535CE3B396,   694,  228 },\n            { 0xFB9B7CD9A4A7443C,   720,  236 },\n            { 0xBB764C4CA7A44410,   747,  244 },\n            { 0x8BAB8EEFB6409C1A,   774,  252 },\n            { 0xD01FEF10A657842C,   800,  260 },\n            { 0x9B10A4E5E9913129,   827,  268 },\n            { 0xE7109BFBA19C0C9D,   853,  276 },\n            { 0xAC2820D9623BF429,   880,  284 },\n            { 0x80444B5E7AA7CF85,   907,  292 },\n            { 0xBF21E44003ACDD2D,   933,  300 },\n            { 0x8E679C2F5E44FF8F,   960,  308 },\n            { 0xD433179D9C8CB841,   986,  316 },\n            { 0x9E19DB92B4E31BA9,  1013,  324 },\n        }\n    };\n\n    // This computation gives exactly the same results for k as\n    //      k = ceil((kAlpha - e - 1) * 0.30102999566398114)\n    // for |e| <= 1500, but doesn't require floating-point operations.\n    // NB: log_10(2) ~= 78913 / 2^18\n    JSON_ASSERT(e >= -1500);\n    JSON_ASSERT(e <=  1500);\n    const int f = kAlpha - e - 1;\n    const int k = (f * 78913) / (1 << 18) + static_cast<int>(f > 0);\n\n    const int index = (-kCachedPowersMinDecExp + k + (kCachedPowersDecStep - 1)) / kCachedPowersDecStep;\n    JSON_ASSERT(index >= 0);\n    JSON_ASSERT(static_cast<std::size_t>(index) < kCachedPowers.size());\n\n    const cached_power cached = kCachedPowers[static_cast<std::size_t>(index)];\n    JSON_ASSERT(kAlpha <= cached.e + e + 64);\n    JSON_ASSERT(kGamma >= cached.e + e + 64);\n\n    return cached;\n}\n\n/*!\nFor n != 0, returns k, such that pow10 := 10^(k-1) <= n < 10^k.\nFor n == 0, returns 1 and sets pow10 := 1.\n*/\ninline int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10)\n{\n    // LCOV_EXCL_START\n    if (n >= 1000000000)\n    {\n        pow10 = 1000000000;\n        return 10;\n    }\n    // LCOV_EXCL_STOP\n    if (n >= 100000000)\n    {\n        pow10 = 100000000;\n        return  9;\n    }\n    if (n >= 10000000)\n    {\n        pow10 = 10000000;\n        return  8;\n    }\n    if (n >= 1000000)\n    {\n        pow10 = 1000000;\n        return  7;\n    }\n    if (n >= 100000)\n    {\n        pow10 = 100000;\n        return  6;\n    }\n    if (n >= 10000)\n    {\n        pow10 = 10000;\n        return  5;\n    }\n    if (n >= 1000)\n    {\n        pow10 = 1000;\n        return  4;\n    }\n    if (n >= 100)\n    {\n        pow10 = 100;\n        return  3;\n    }\n    if (n >= 10)\n    {\n        pow10 = 10;\n        return  2;\n    }\n\n    pow10 = 1;\n    return 1;\n}\n\ninline void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t delta,\n                         std::uint64_t rest, std::uint64_t ten_k)\n{\n    JSON_ASSERT(len >= 1);\n    JSON_ASSERT(dist <= delta);\n    JSON_ASSERT(rest <= delta);\n    JSON_ASSERT(ten_k > 0);\n\n    //               <--------------------------- delta ---->\n    //                                  <---- dist --------->\n    // --------------[------------------+-------------------]--------------\n    //               M-                 w                   M+\n    //\n    //                                  ten_k\n    //                                <------>\n    //                                       <---- rest ---->\n    // --------------[------------------+----+--------------]--------------\n    //                                  w    V\n    //                                       = buf * 10^k\n    //\n    // ten_k represents a unit-in-the-last-place in the decimal representation\n    // stored in buf.\n    // Decrement buf by ten_k while this takes buf closer to w.\n\n    // The tests are written in this order to avoid overflow in unsigned\n    // integer arithmetic.\n\n    while (rest < dist\n            && delta - rest >= ten_k\n            && (rest + ten_k < dist || dist - rest > rest + ten_k - dist))\n    {\n        JSON_ASSERT(buf[len - 1] != '0');\n        buf[len - 1]--;\n        rest += ten_k;\n    }\n}\n\n/*!\nGenerates V = buffer * 10^decimal_exponent, such that M- <= V <= M+.\nM- and M+ must be normalized and share the same exponent -60 <= e <= -32.\n*/\ninline void grisu2_digit_gen(char* buffer, int& length, int& decimal_exponent,\n                             diyfp M_minus, diyfp w, diyfp M_plus)\n{\n    static_assert(kAlpha >= -60, \"internal error\");\n    static_assert(kGamma <= -32, \"internal error\");\n\n    // Generates the digits (and the exponent) of a decimal floating-point\n    // number V = buffer * 10^decimal_exponent in the range [M-, M+]. The diyfp's\n    // w, M- and M+ share the same exponent e, which satisfies alpha <= e <= gamma.\n    //\n    //               <--------------------------- delta ---->\n    //                                  <---- dist --------->\n    // --------------[------------------+-------------------]--------------\n    //               M-                 w                   M+\n    //\n    // Grisu2 generates the digits of M+ from left to right and stops as soon as\n    // V is in [M-,M+].\n\n    JSON_ASSERT(M_plus.e >= kAlpha);\n    JSON_ASSERT(M_plus.e <= kGamma);\n\n    std::uint64_t delta = diyfp::sub(M_plus, M_minus).f; // (significand of (M+ - M-), implicit exponent is e)\n    std::uint64_t dist  = diyfp::sub(M_plus, w      ).f; // (significand of (M+ - w ), implicit exponent is e)\n\n    // Split M+ = f * 2^e into two parts p1 and p2 (note: e < 0):\n    //\n    //      M+ = f * 2^e\n    //         = ((f div 2^-e) * 2^-e + (f mod 2^-e)) * 2^e\n    //         = ((p1        ) * 2^-e + (p2        )) * 2^e\n    //         = p1 + p2 * 2^e\n\n    const diyfp one(std::uint64_t{1} << -M_plus.e, M_plus.e);\n\n    auto p1 = static_cast<std::uint32_t>(M_plus.f >> -one.e); // p1 = f div 2^-e (Since -e >= 32, p1 fits into a 32-bit int.)\n    std::uint64_t p2 = M_plus.f & (one.f - 1);                    // p2 = f mod 2^-e\n\n    // 1)\n    //\n    // Generate the digits of the integral part p1 = d[n-1]...d[1]d[0]\n\n    JSON_ASSERT(p1 > 0);\n\n    std::uint32_t pow10{};\n    const int k = find_largest_pow10(p1, pow10);\n\n    //      10^(k-1) <= p1 < 10^k, pow10 = 10^(k-1)\n    //\n    //      p1 = (p1 div 10^(k-1)) * 10^(k-1) + (p1 mod 10^(k-1))\n    //         = (d[k-1]         ) * 10^(k-1) + (p1 mod 10^(k-1))\n    //\n    //      M+ = p1                                             + p2 * 2^e\n    //         = d[k-1] * 10^(k-1) + (p1 mod 10^(k-1))          + p2 * 2^e\n    //         = d[k-1] * 10^(k-1) + ((p1 mod 10^(k-1)) * 2^-e + p2) * 2^e\n    //         = d[k-1] * 10^(k-1) + (                         rest) * 2^e\n    //\n    // Now generate the digits d[n] of p1 from left to right (n = k-1,...,0)\n    //\n    //      p1 = d[k-1]...d[n] * 10^n + d[n-1]...d[0]\n    //\n    // but stop as soon as\n    //\n    //      rest * 2^e = (d[n-1]...d[0] * 2^-e + p2) * 2^e <= delta * 2^e\n\n    int n = k;\n    while (n > 0)\n    {\n        // Invariants:\n        //      M+ = buffer * 10^n + (p1 + p2 * 2^e)    (buffer = 0 for n = k)\n        //      pow10 = 10^(n-1) <= p1 < 10^n\n        //\n        const std::uint32_t d = p1 / pow10;  // d = p1 div 10^(n-1)\n        const std::uint32_t r = p1 % pow10;  // r = p1 mod 10^(n-1)\n        //\n        //      M+ = buffer * 10^n + (d * 10^(n-1) + r) + p2 * 2^e\n        //         = (buffer * 10 + d) * 10^(n-1) + (r + p2 * 2^e)\n        //\n        JSON_ASSERT(d <= 9);\n        buffer[length++] = static_cast<char>('0' + d); // buffer := buffer * 10 + d\n        //\n        //      M+ = buffer * 10^(n-1) + (r + p2 * 2^e)\n        //\n        p1 = r;\n        n--;\n        //\n        //      M+ = buffer * 10^n + (p1 + p2 * 2^e)\n        //      pow10 = 10^n\n        //\n\n        // Now check if enough digits have been generated.\n        // Compute\n        //\n        //      p1 + p2 * 2^e = (p1 * 2^-e + p2) * 2^e = rest * 2^e\n        //\n        // Note:\n        // Since rest and delta share the same exponent e, it suffices to\n        // compare the significands.\n        const std::uint64_t rest = (std::uint64_t{p1} << -one.e) + p2;\n        if (rest <= delta)\n        {\n            // V = buffer * 10^n, with M- <= V <= M+.\n\n            decimal_exponent += n;\n\n            // We may now just stop. But instead look if the buffer could be\n            // decremented to bring V closer to w.\n            //\n            // pow10 = 10^n is now 1 ulp in the decimal representation V.\n            // The rounding procedure works with diyfp's with an implicit\n            // exponent of e.\n            //\n            //      10^n = (10^n * 2^-e) * 2^e = ulp * 2^e\n            //\n            const std::uint64_t ten_n = std::uint64_t{pow10} << -one.e;\n            grisu2_round(buffer, length, dist, delta, rest, ten_n);\n\n            return;\n        }\n\n        pow10 /= 10;\n        //\n        //      pow10 = 10^(n-1) <= p1 < 10^n\n        // Invariants restored.\n    }\n\n    // 2)\n    //\n    // The digits of the integral part have been generated:\n    //\n    //      M+ = d[k-1]...d[1]d[0] + p2 * 2^e\n    //         = buffer            + p2 * 2^e\n    //\n    // Now generate the digits of the fractional part p2 * 2^e.\n    //\n    // Note:\n    // No decimal point is generated: the exponent is adjusted instead.\n    //\n    // p2 actually represents the fraction\n    //\n    //      p2 * 2^e\n    //          = p2 / 2^-e\n    //          = d[-1] / 10^1 + d[-2] / 10^2 + ...\n    //\n    // Now generate the digits d[-m] of p1 from left to right (m = 1,2,...)\n    //\n    //      p2 * 2^e = d[-1]d[-2]...d[-m] * 10^-m\n    //                      + 10^-m * (d[-m-1] / 10^1 + d[-m-2] / 10^2 + ...)\n    //\n    // using\n    //\n    //      10^m * p2 = ((10^m * p2) div 2^-e) * 2^-e + ((10^m * p2) mod 2^-e)\n    //                = (                   d) * 2^-e + (                   r)\n    //\n    // or\n    //      10^m * p2 * 2^e = d + r * 2^e\n    //\n    // i.e.\n    //\n    //      M+ = buffer + p2 * 2^e\n    //         = buffer + 10^-m * (d + r * 2^e)\n    //         = (buffer * 10^m + d) * 10^-m + 10^-m * r * 2^e\n    //\n    // and stop as soon as 10^-m * r * 2^e <= delta * 2^e\n\n    JSON_ASSERT(p2 > delta);\n\n    int m = 0;\n    for (;;)\n    {\n        // Invariant:\n        //      M+ = buffer * 10^-m + 10^-m * (d[-m-1] / 10 + d[-m-2] / 10^2 + ...) * 2^e\n        //         = buffer * 10^-m + 10^-m * (p2                                 ) * 2^e\n        //         = buffer * 10^-m + 10^-m * (1/10 * (10 * p2)                   ) * 2^e\n        //         = buffer * 10^-m + 10^-m * (1/10 * ((10*p2 div 2^-e) * 2^-e + (10*p2 mod 2^-e)) * 2^e\n        //\n        JSON_ASSERT(p2 <= (std::numeric_limits<std::uint64_t>::max)() / 10);\n        p2 *= 10;\n        const std::uint64_t d = p2 >> -one.e;     // d = (10 * p2) div 2^-e\n        const std::uint64_t r = p2 & (one.f - 1); // r = (10 * p2) mod 2^-e\n        //\n        //      M+ = buffer * 10^-m + 10^-m * (1/10 * (d * 2^-e + r) * 2^e\n        //         = buffer * 10^-m + 10^-m * (1/10 * (d + r * 2^e))\n        //         = (buffer * 10 + d) * 10^(-m-1) + 10^(-m-1) * r * 2^e\n        //\n        JSON_ASSERT(d <= 9);\n        buffer[length++] = static_cast<char>('0' + d); // buffer := buffer * 10 + d\n        //\n        //      M+ = buffer * 10^(-m-1) + 10^(-m-1) * r * 2^e\n        //\n        p2 = r;\n        m++;\n        //\n        //      M+ = buffer * 10^-m + 10^-m * p2 * 2^e\n        // Invariant restored.\n\n        // Check if enough digits have been generated.\n        //\n        //      10^-m * p2 * 2^e <= delta * 2^e\n        //              p2 * 2^e <= 10^m * delta * 2^e\n        //                    p2 <= 10^m * delta\n        delta *= 10;\n        dist  *= 10;\n        if (p2 <= delta)\n        {\n            break;\n        }\n    }\n\n    // V = buffer * 10^-m, with M- <= V <= M+.\n\n    decimal_exponent -= m;\n\n    // 1 ulp in the decimal representation is now 10^-m.\n    // Since delta and dist are now scaled by 10^m, we need to do the\n    // same with ulp in order to keep the units in sync.\n    //\n    //      10^m * 10^-m = 1 = 2^-e * 2^e = ten_m * 2^e\n    //\n    const std::uint64_t ten_m = one.f;\n    grisu2_round(buffer, length, dist, delta, p2, ten_m);\n\n    // By construction this algorithm generates the shortest possible decimal\n    // number (Loitsch, Theorem 6.2) which rounds back to w.\n    // For an input number of precision p, at least\n    //\n    //      N = 1 + ceil(p * log_10(2))\n    //\n    // decimal digits are sufficient to identify all binary floating-point\n    // numbers (Matula, \"In-and-Out conversions\").\n    // This implies that the algorithm does not produce more than N decimal\n    // digits.\n    //\n    //      N = 17 for p = 53 (IEEE double precision)\n    //      N = 9  for p = 24 (IEEE single precision)\n}\n\n/*!\nv = buf * 10^decimal_exponent\nlen is the length of the buffer (number of decimal digits)\nThe buffer must be large enough, i.e. >= max_digits10.\n*/\nJSON_HEDLEY_NON_NULL(1)\ninline void grisu2(char* buf, int& len, int& decimal_exponent,\n                   diyfp m_minus, diyfp v, diyfp m_plus)\n{\n    JSON_ASSERT(m_plus.e == m_minus.e);\n    JSON_ASSERT(m_plus.e == v.e);\n\n    //  --------(-----------------------+-----------------------)--------    (A)\n    //          m-                      v                       m+\n    //\n    //  --------------------(-----------+-----------------------)--------    (B)\n    //                      m-          v                       m+\n    //\n    // First scale v (and m- and m+) such that the exponent is in the range\n    // [alpha, gamma].\n\n    const cached_power cached = get_cached_power_for_binary_exponent(m_plus.e);\n\n    const diyfp c_minus_k(cached.f, cached.e); // = c ~= 10^-k\n\n    // The exponent of the products is = v.e + c_minus_k.e + q and is in the range [alpha,gamma]\n    const diyfp w       = diyfp::mul(v,       c_minus_k);\n    const diyfp w_minus = diyfp::mul(m_minus, c_minus_k);\n    const diyfp w_plus  = diyfp::mul(m_plus,  c_minus_k);\n\n    //  ----(---+---)---------------(---+---)---------------(---+---)----\n    //          w-                      w                       w+\n    //          = c*m-                  = c*v                   = c*m+\n    //\n    // diyfp::mul rounds its result and c_minus_k is approximated too. w, w- and\n    // w+ are now off by a small amount.\n    // In fact:\n    //\n    //      w - v * 10^k < 1 ulp\n    //\n    // To account for this inaccuracy, add resp. subtract 1 ulp.\n    //\n    //  --------+---[---------------(---+---)---------------]---+--------\n    //          w-  M-                  w                   M+  w+\n    //\n    // Now any number in [M-, M+] (bounds included) will round to w when input,\n    // regardless of how the input rounding algorithm breaks ties.\n    //\n    // And digit_gen generates the shortest possible such number in [M-, M+].\n    // Note that this does not mean that Grisu2 always generates the shortest\n    // possible number in the interval (m-, m+).\n    const diyfp M_minus(w_minus.f + 1, w_minus.e);\n    const diyfp M_plus (w_plus.f  - 1, w_plus.e );\n\n    decimal_exponent = -cached.k; // = -(-k) = k\n\n    grisu2_digit_gen(buf, len, decimal_exponent, M_minus, w, M_plus);\n}\n\n/*!\nv = buf * 10^decimal_exponent\nlen is the length of the buffer (number of decimal digits)\nThe buffer must be large enough, i.e. >= max_digits10.\n*/\ntemplate<typename FloatType>\nJSON_HEDLEY_NON_NULL(1)\nvoid grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)\n{\n    static_assert(diyfp::kPrecision >= std::numeric_limits<FloatType>::digits + 3,\n                  \"internal error: not enough precision\");\n\n    JSON_ASSERT(std::isfinite(value));\n    JSON_ASSERT(value > 0);\n\n    // If the neighbors (and boundaries) of 'value' are always computed for double-precision\n    // numbers, all float's can be recovered using strtod (and strtof). However, the resulting\n    // decimal representations are not exactly \"short\".\n    //\n    // The documentation for 'std::to_chars' (https://en.cppreference.com/w/cpp/utility/to_chars)\n    // says \"value is converted to a string as if by std::sprintf in the default (\"C\") locale\"\n    // and since sprintf promotes floats to doubles, I think this is exactly what 'std::to_chars'\n    // does.\n    // On the other hand, the documentation for 'std::to_chars' requires that \"parsing the\n    // representation using the corresponding std::from_chars function recovers value exactly\". That\n    // indicates that single precision floating-point numbers should be recovered using\n    // 'std::strtof'.\n    //\n    // NB: If the neighbors are computed for single-precision numbers, there is a single float\n    //     (7.0385307e-26f) which can't be recovered using strtod. The resulting double precision\n    //     value is off by 1 ulp.\n#if 0 // NOLINT(readability-avoid-unconditional-preprocessor-if)\n    const boundaries w = compute_boundaries(static_cast<double>(value));\n#else\n    const boundaries w = compute_boundaries(value);\n#endif\n\n    grisu2(buf, len, decimal_exponent, w.minus, w.w, w.plus);\n}\n\n/*!\n@brief appends a decimal representation of e to buf\n@return a pointer to the element following the exponent.\n@pre -1000 < e < 1000\n*/\nJSON_HEDLEY_NON_NULL(1)\nJSON_HEDLEY_RETURNS_NON_NULL\ninline char* append_exponent(char* buf, int e)\n{\n    JSON_ASSERT(e > -1000);\n    JSON_ASSERT(e <  1000);\n\n    if (e < 0)\n    {\n        e = -e;\n        *buf++ = '-';\n    }\n    else\n    {\n        *buf++ = '+';\n    }\n\n    auto k = static_cast<std::uint32_t>(e);\n    if (k < 10)\n    {\n        // Always print at least two digits in the exponent.\n        // This is for compatibility with printf(\"%g\").\n        *buf++ = '0';\n        *buf++ = static_cast<char>('0' + k);\n    }\n    else if (k < 100)\n    {\n        *buf++ = static_cast<char>('0' + k / 10);\n        k %= 10;\n        *buf++ = static_cast<char>('0' + k);\n    }\n    else\n    {\n        *buf++ = static_cast<char>('0' + k / 100);\n        k %= 100;\n        *buf++ = static_cast<char>('0' + k / 10);\n        k %= 10;\n        *buf++ = static_cast<char>('0' + k);\n    }\n\n    return buf;\n}\n\n/*!\n@brief prettify v = buf * 10^decimal_exponent\n\nIf v is in the range [10^min_exp, 10^max_exp) it will be printed in fixed-point\nnotation. Otherwise it will be printed in exponential notation.\n\n@pre min_exp < 0\n@pre max_exp > 0\n*/\nJSON_HEDLEY_NON_NULL(1)\nJSON_HEDLEY_RETURNS_NON_NULL\ninline char* format_buffer(char* buf, int len, int decimal_exponent,\n                           int min_exp, int max_exp)\n{\n    JSON_ASSERT(min_exp < 0);\n    JSON_ASSERT(max_exp > 0);\n\n    const int k = len;\n    const int n = len + decimal_exponent;\n\n    // v = buf * 10^(n-k)\n    // k is the length of the buffer (number of decimal digits)\n    // n is the position of the decimal point relative to the start of the buffer.\n\n    if (k <= n && n <= max_exp)\n    {\n        // digits[000]\n        // len <= max_exp + 2\n\n        std::memset(buf + k, '0', static_cast<size_t>(n) - static_cast<size_t>(k));\n        // Make it look like a floating-point number (#362, #378)\n        buf[n + 0] = '.';\n        buf[n + 1] = '0';\n        return buf + (static_cast<size_t>(n) + 2);\n    }\n\n    if (0 < n && n <= max_exp)\n    {\n        // dig.its\n        // len <= max_digits10 + 1\n\n        JSON_ASSERT(k > n);\n\n        std::memmove(buf + (static_cast<size_t>(n) + 1), buf + n, static_cast<size_t>(k) - static_cast<size_t>(n));\n        buf[n] = '.';\n        return buf + (static_cast<size_t>(k) + 1U);\n    }\n\n    if (min_exp < n && n <= 0)\n    {\n        // 0.[000]digits\n        // len <= 2 + (-min_exp - 1) + max_digits10\n\n        std::memmove(buf + (2 + static_cast<size_t>(-n)), buf, static_cast<size_t>(k));\n        buf[0] = '0';\n        buf[1] = '.';\n        std::memset(buf + 2, '0', static_cast<size_t>(-n));\n        return buf + (2U + static_cast<size_t>(-n) + static_cast<size_t>(k));\n    }\n\n    if (k == 1)\n    {\n        // dE+123\n        // len <= 1 + 5\n\n        buf += 1;\n    }\n    else\n    {\n        // d.igitsE+123\n        // len <= max_digits10 + 1 + 5\n\n        std::memmove(buf + 2, buf + 1, static_cast<size_t>(k) - 1);\n        buf[1] = '.';\n        buf += 1 + static_cast<size_t>(k);\n    }\n\n    *buf++ = 'e';\n    return append_exponent(buf, n - 1);\n}\n\n}  // namespace dtoa_impl\n\n/*!\n@brief generates a decimal representation of the floating-point number value in [first, last).\n\nThe format of the resulting decimal representation is similar to printf's %g\nformat. Returns an iterator pointing past-the-end of the decimal representation.\n\n@note The input number must be finite, i.e. NaN's and Inf's are not supported.\n@note The buffer must be large enough.\n@note The result is NOT null-terminated.\n*/\ntemplate<typename FloatType>\nJSON_HEDLEY_NON_NULL(1, 2)\nJSON_HEDLEY_RETURNS_NON_NULL\nchar* to_chars(char* first, const char* last, FloatType value)\n{\n    static_cast<void>(last); // maybe unused - fix warning\n    JSON_ASSERT(std::isfinite(value));\n\n    // Use signbit(value) instead of (value < 0) since signbit works for -0.\n    if (std::signbit(value))\n    {\n        value = -value;\n        *first++ = '-';\n    }\n\n#ifdef __GNUC__\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wfloat-equal\"\n#endif\n    if (value == 0) // +-0\n    {\n        *first++ = '0';\n        // Make it look like a floating-point number (#362, #378)\n        *first++ = '.';\n        *first++ = '0';\n        return first;\n    }\n#ifdef __GNUC__\n#pragma GCC diagnostic pop\n#endif\n\n    JSON_ASSERT(last - first >= std::numeric_limits<FloatType>::max_digits10);\n\n    // Compute v = buffer * 10^decimal_exponent.\n    // The decimal digits are stored in the buffer, which needs to be interpreted\n    // as an unsigned decimal integer.\n    // len is the length of the buffer, i.e. the number of decimal digits.\n    int len = 0;\n    int decimal_exponent = 0;\n    dtoa_impl::grisu2(first, len, decimal_exponent, value);\n\n    JSON_ASSERT(len <= std::numeric_limits<FloatType>::max_digits10);\n\n    // Format the buffer like printf(\"%.*g\", prec, value)\n    constexpr int kMinExp = -4;\n    // Use digits10 here to increase compatibility with version 2.\n    constexpr int kMaxExp = std::numeric_limits<FloatType>::digits10;\n\n    JSON_ASSERT(last - first >= kMaxExp + 2);\n    JSON_ASSERT(last - first >= 2 + (-kMinExp - 1) + std::numeric_limits<FloatType>::max_digits10);\n    JSON_ASSERT(last - first >= std::numeric_limits<FloatType>::max_digits10 + 6);\n\n    return dtoa_impl::format_buffer(first, len, decimal_exponent, kMinExp, kMaxExp);\n}\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/exceptions.hpp>\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n// #include <nlohmann/detail/meta/cpp_future.hpp>\n\n// #include <nlohmann/detail/output/binary_writer.hpp>\n\n// #include <nlohmann/detail/output/output_adapters.hpp>\n\n// #include <nlohmann/detail/string_concat.hpp>\n\n// #include <nlohmann/detail/value_t.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\nnamespace detail\n{\n\n///////////////////\n// serialization //\n///////////////////\n\n/// how to treat decoding errors\nenum class error_handler_t\n{\n    strict,  ///< throw a type_error exception in case of invalid UTF-8\n    replace, ///< replace invalid UTF-8 sequences with U+FFFD\n    ignore   ///< ignore invalid UTF-8 sequences\n};\n\ntemplate<typename BasicJsonType>\nclass serializer\n{\n    using string_t = typename BasicJsonType::string_t;\n    using number_float_t = typename BasicJsonType::number_float_t;\n    using number_integer_t = typename BasicJsonType::number_integer_t;\n    using number_unsigned_t = typename BasicJsonType::number_unsigned_t;\n    using binary_char_t = typename BasicJsonType::binary_t::value_type;\n    static constexpr std::uint8_t UTF8_ACCEPT = 0;\n    static constexpr std::uint8_t UTF8_REJECT = 1;\n\n  public:\n    /*!\n    @param[in] s  output stream to serialize to\n    @param[in] ichar  indentation character to use\n    @param[in] error_handler_  how to react on decoding errors\n    */\n    serializer(output_adapter_t<char> s, const char ichar,\n               error_handler_t error_handler_ = error_handler_t::strict)\n        : o(std::move(s))\n        , loc(std::localeconv())\n        , thousands_sep(loc->thousands_sep == nullptr ? '\\0' : std::char_traits<char>::to_char_type(* (loc->thousands_sep)))\n        , decimal_point(loc->decimal_point == nullptr ? '\\0' : std::char_traits<char>::to_char_type(* (loc->decimal_point)))\n        , indent_char(ichar)\n        , indent_string(512, indent_char)\n        , error_handler(error_handler_)\n    {}\n\n    // delete because of pointer members\n    serializer(const serializer&) = delete;\n    serializer& operator=(const serializer&) = delete;\n    serializer(serializer&&) = delete;\n    serializer& operator=(serializer&&) = delete;\n    ~serializer() = default;\n\n    /*!\n    @brief internal implementation of the serialization function\n\n    This function is called by the public member function dump and organizes\n    the serialization internally. The indentation level is propagated as\n    additional parameter. In case of arrays and objects, the function is\n    called recursively.\n\n    - strings and object keys are escaped using `escape_string()`\n    - integer numbers are converted implicitly via `operator<<`\n    - floating-point numbers are converted to a string using `\"%g\"` format\n    - binary values are serialized as objects containing the subtype and the\n      byte array\n\n    @param[in] val               value to serialize\n    @param[in] pretty_print      whether the output shall be pretty-printed\n    @param[in] ensure_ascii If @a ensure_ascii is true, all non-ASCII characters\n    in the output are escaped with `\\uXXXX` sequences, and the result consists\n    of ASCII characters only.\n    @param[in] indent_step       the indent level\n    @param[in] current_indent    the current indent level (only used internally)\n    */\n    void dump(const BasicJsonType& val,\n              const bool pretty_print,\n              const bool ensure_ascii,\n              const unsigned int indent_step,\n              const unsigned int current_indent = 0)\n    {\n        switch (val.m_data.m_type)\n        {\n            case value_t::object:\n            {\n                if (val.m_data.m_value.object->empty())\n                {\n                    o->write_characters(\"{}\", 2);\n                    return;\n                }\n\n                if (pretty_print)\n                {\n                    o->write_characters(\"{\\n\", 2);\n\n                    // variable to hold indentation for recursive calls\n                    const auto new_indent = current_indent + indent_step;\n                    if (JSON_HEDLEY_UNLIKELY(indent_string.size() < new_indent))\n                    {\n                        indent_string.resize(indent_string.size() * 2, ' ');\n                    }\n\n                    // first n-1 elements\n                    auto i = val.m_data.m_value.object->cbegin();\n                    for (std::size_t cnt = 0; cnt < val.m_data.m_value.object->size() - 1; ++cnt, ++i)\n                    {\n                        o->write_characters(indent_string.c_str(), new_indent);\n                        o->write_character('\\\"');\n                        dump_escaped(i->first, ensure_ascii);\n                        o->write_characters(\"\\\": \", 3);\n                        dump(i->second, true, ensure_ascii, indent_step, new_indent);\n                        o->write_characters(\",\\n\", 2);\n                    }\n\n                    // last element\n                    JSON_ASSERT(i != val.m_data.m_value.object->cend());\n                    JSON_ASSERT(std::next(i) == val.m_data.m_value.object->cend());\n                    o->write_characters(indent_string.c_str(), new_indent);\n                    o->write_character('\\\"');\n                    dump_escaped(i->first, ensure_ascii);\n                    o->write_characters(\"\\\": \", 3);\n                    dump(i->second, true, ensure_ascii, indent_step, new_indent);\n\n                    o->write_character('\\n');\n                    o->write_characters(indent_string.c_str(), current_indent);\n                    o->write_character('}');\n                }\n                else\n                {\n                    o->write_character('{');\n\n                    // first n-1 elements\n                    auto i = val.m_data.m_value.object->cbegin();\n                    for (std::size_t cnt = 0; cnt < val.m_data.m_value.object->size() - 1; ++cnt, ++i)\n                    {\n                        o->write_character('\\\"');\n                        dump_escaped(i->first, ensure_ascii);\n                        o->write_characters(\"\\\":\", 2);\n                        dump(i->second, false, ensure_ascii, indent_step, current_indent);\n                        o->write_character(',');\n                    }\n\n                    // last element\n                    JSON_ASSERT(i != val.m_data.m_value.object->cend());\n                    JSON_ASSERT(std::next(i) == val.m_data.m_value.object->cend());\n                    o->write_character('\\\"');\n                    dump_escaped(i->first, ensure_ascii);\n                    o->write_characters(\"\\\":\", 2);\n                    dump(i->second, false, ensure_ascii, indent_step, current_indent);\n\n                    o->write_character('}');\n                }\n\n                return;\n            }\n\n            case value_t::array:\n            {\n                if (val.m_data.m_value.array->empty())\n                {\n                    o->write_characters(\"[]\", 2);\n                    return;\n                }\n\n                if (pretty_print)\n                {\n                    o->write_characters(\"[\\n\", 2);\n\n                    // variable to hold indentation for recursive calls\n                    const auto new_indent = current_indent + indent_step;\n                    if (JSON_HEDLEY_UNLIKELY(indent_string.size() < new_indent))\n                    {\n                        indent_string.resize(indent_string.size() * 2, ' ');\n                    }\n\n                    // first n-1 elements\n                    for (auto i = val.m_data.m_value.array->cbegin();\n                            i != val.m_data.m_value.array->cend() - 1; ++i)\n                    {\n                        o->write_characters(indent_string.c_str(), new_indent);\n                        dump(*i, true, ensure_ascii, indent_step, new_indent);\n                        o->write_characters(\",\\n\", 2);\n                    }\n\n                    // last element\n                    JSON_ASSERT(!val.m_data.m_value.array->empty());\n                    o->write_characters(indent_string.c_str(), new_indent);\n                    dump(val.m_data.m_value.array->back(), true, ensure_ascii, indent_step, new_indent);\n\n                    o->write_character('\\n');\n                    o->write_characters(indent_string.c_str(), current_indent);\n                    o->write_character(']');\n                }\n                else\n                {\n                    o->write_character('[');\n\n                    // first n-1 elements\n                    for (auto i = val.m_data.m_value.array->cbegin();\n                            i != val.m_data.m_value.array->cend() - 1; ++i)\n                    {\n                        dump(*i, false, ensure_ascii, indent_step, current_indent);\n                        o->write_character(',');\n                    }\n\n                    // last element\n                    JSON_ASSERT(!val.m_data.m_value.array->empty());\n                    dump(val.m_data.m_value.array->back(), false, ensure_ascii, indent_step, current_indent);\n\n                    o->write_character(']');\n                }\n\n                return;\n            }\n\n            case value_t::string:\n            {\n                o->write_character('\\\"');\n                dump_escaped(*val.m_data.m_value.string, ensure_ascii);\n                o->write_character('\\\"');\n                return;\n            }\n\n            case value_t::binary:\n            {\n                if (pretty_print)\n                {\n                    o->write_characters(\"{\\n\", 2);\n\n                    // variable to hold indentation for recursive calls\n                    const auto new_indent = current_indent + indent_step;\n                    if (JSON_HEDLEY_UNLIKELY(indent_string.size() < new_indent))\n                    {\n                        indent_string.resize(indent_string.size() * 2, ' ');\n                    }\n\n                    o->write_characters(indent_string.c_str(), new_indent);\n\n                    o->write_characters(\"\\\"bytes\\\": [\", 10);\n\n                    if (!val.m_data.m_value.binary->empty())\n                    {\n                        for (auto i = val.m_data.m_value.binary->cbegin();\n                                i != val.m_data.m_value.binary->cend() - 1; ++i)\n                        {\n                            dump_integer(*i);\n                            o->write_characters(\", \", 2);\n                        }\n                        dump_integer(val.m_data.m_value.binary->back());\n                    }\n\n                    o->write_characters(\"],\\n\", 3);\n                    o->write_characters(indent_string.c_str(), new_indent);\n\n                    o->write_characters(\"\\\"subtype\\\": \", 11);\n                    if (val.m_data.m_value.binary->has_subtype())\n                    {\n                        dump_integer(val.m_data.m_value.binary->subtype());\n                    }\n                    else\n                    {\n                        o->write_characters(\"null\", 4);\n                    }\n                    o->write_character('\\n');\n                    o->write_characters(indent_string.c_str(), current_indent);\n                    o->write_character('}');\n                }\n                else\n                {\n                    o->write_characters(\"{\\\"bytes\\\":[\", 10);\n\n                    if (!val.m_data.m_value.binary->empty())\n                    {\n                        for (auto i = val.m_data.m_value.binary->cbegin();\n                                i != val.m_data.m_value.binary->cend() - 1; ++i)\n                        {\n                            dump_integer(*i);\n                            o->write_character(',');\n                        }\n                        dump_integer(val.m_data.m_value.binary->back());\n                    }\n\n                    o->write_characters(\"],\\\"subtype\\\":\", 12);\n                    if (val.m_data.m_value.binary->has_subtype())\n                    {\n                        dump_integer(val.m_data.m_value.binary->subtype());\n                        o->write_character('}');\n                    }\n                    else\n                    {\n                        o->write_characters(\"null}\", 5);\n                    }\n                }\n                return;\n            }\n\n            case value_t::boolean:\n            {\n                if (val.m_data.m_value.boolean)\n                {\n                    o->write_characters(\"true\", 4);\n                }\n                else\n                {\n                    o->write_characters(\"false\", 5);\n                }\n                return;\n            }\n\n            case value_t::number_integer:\n            {\n                dump_integer(val.m_data.m_value.number_integer);\n                return;\n            }\n\n            case value_t::number_unsigned:\n            {\n                dump_integer(val.m_data.m_value.number_unsigned);\n                return;\n            }\n\n            case value_t::number_float:\n            {\n                dump_float(val.m_data.m_value.number_float);\n                return;\n            }\n\n            case value_t::discarded:\n            {\n                o->write_characters(\"<discarded>\", 11);\n                return;\n            }\n\n            case value_t::null:\n            {\n                o->write_characters(\"null\", 4);\n                return;\n            }\n\n            default:            // LCOV_EXCL_LINE\n                JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE\n        }\n    }\n\n  JSON_PRIVATE_UNLESS_TESTED:\n    /*!\n    @brief dump escaped string\n\n    Escape a string by replacing certain special characters by a sequence of an\n    escape character (backslash) and another character and other control\n    characters by a sequence of \"\\u\" followed by a four-digit hex\n    representation. The escaped string is written to output stream @a o.\n\n    @param[in] s  the string to escape\n    @param[in] ensure_ascii  whether to escape non-ASCII characters with\n                             \\uXXXX sequences\n\n    @complexity Linear in the length of string @a s.\n    */\n    void dump_escaped(const string_t& s, const bool ensure_ascii)\n    {\n        std::uint32_t codepoint{};\n        std::uint8_t state = UTF8_ACCEPT;\n        std::size_t bytes = 0;  // number of bytes written to string_buffer\n\n        // number of bytes written at the point of the last valid byte\n        std::size_t bytes_after_last_accept = 0;\n        std::size_t undumped_chars = 0;\n\n        for (std::size_t i = 0; i < s.size(); ++i)\n        {\n            const auto byte = static_cast<std::uint8_t>(s[i]);\n\n            switch (decode(state, codepoint, byte))\n            {\n                case UTF8_ACCEPT:  // decode found a new code point\n                {\n                    switch (codepoint)\n                    {\n                        case 0x08: // backspace\n                        {\n                            string_buffer[bytes++] = '\\\\';\n                            string_buffer[bytes++] = 'b';\n                            break;\n                        }\n\n                        case 0x09: // horizontal tab\n                        {\n                            string_buffer[bytes++] = '\\\\';\n                            string_buffer[bytes++] = 't';\n                            break;\n                        }\n\n                        case 0x0A: // newline\n                        {\n                            string_buffer[bytes++] = '\\\\';\n                            string_buffer[bytes++] = 'n';\n                            break;\n                        }\n\n                        case 0x0C: // formfeed\n                        {\n                            string_buffer[bytes++] = '\\\\';\n                            string_buffer[bytes++] = 'f';\n                            break;\n                        }\n\n                        case 0x0D: // carriage return\n                        {\n                            string_buffer[bytes++] = '\\\\';\n                            string_buffer[bytes++] = 'r';\n                            break;\n                        }\n\n                        case 0x22: // quotation mark\n                        {\n                            string_buffer[bytes++] = '\\\\';\n                            string_buffer[bytes++] = '\\\"';\n                            break;\n                        }\n\n                        case 0x5C: // reverse solidus\n                        {\n                            string_buffer[bytes++] = '\\\\';\n                            string_buffer[bytes++] = '\\\\';\n                            break;\n                        }\n\n                        default:\n                        {\n                            // escape control characters (0x00..0x1F) or, if\n                            // ensure_ascii parameter is used, non-ASCII characters\n                            if ((codepoint <= 0x1F) || (ensure_ascii && (codepoint >= 0x7F)))\n                            {\n                                if (codepoint <= 0xFFFF)\n                                {\n                                    // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg,hicpp-vararg)\n                                    static_cast<void>((std::snprintf)(string_buffer.data() + bytes, 7, \"\\\\u%04x\",\n                                                                      static_cast<std::uint16_t>(codepoint)));\n                                    bytes += 6;\n                                }\n                                else\n                                {\n                                    // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg,hicpp-vararg)\n                                    static_cast<void>((std::snprintf)(string_buffer.data() + bytes, 13, \"\\\\u%04x\\\\u%04x\",\n                                                                      static_cast<std::uint16_t>(0xD7C0u + (codepoint >> 10u)),\n                                                                      static_cast<std::uint16_t>(0xDC00u + (codepoint & 0x3FFu))));\n                                    bytes += 12;\n                                }\n                            }\n                            else\n                            {\n                                // copy byte to buffer (all previous bytes\n                                // been copied have in default case above)\n                                string_buffer[bytes++] = s[i];\n                            }\n                            break;\n                        }\n                    }\n\n                    // write buffer and reset index; there must be 13 bytes\n                    // left, as this is the maximal number of bytes to be\n                    // written (\"\\uxxxx\\uxxxx\\0\") for one code point\n                    if (string_buffer.size() - bytes < 13)\n                    {\n                        o->write_characters(string_buffer.data(), bytes);\n                        bytes = 0;\n                    }\n\n                    // remember the byte position of this accept\n                    bytes_after_last_accept = bytes;\n                    undumped_chars = 0;\n                    break;\n                }\n\n                case UTF8_REJECT:  // decode found invalid UTF-8 byte\n                {\n                    switch (error_handler)\n                    {\n                        case error_handler_t::strict:\n                        {\n                            JSON_THROW(type_error::create(316, concat(\"invalid UTF-8 byte at index \", std::to_string(i), \": 0x\", hex_bytes(byte | 0)), nullptr));\n                        }\n\n                        case error_handler_t::ignore:\n                        case error_handler_t::replace:\n                        {\n                            // in case we saw this character the first time, we\n                            // would like to read it again, because the byte\n                            // may be OK for itself, but just not OK for the\n                            // previous sequence\n                            if (undumped_chars > 0)\n                            {\n                                --i;\n                            }\n\n                            // reset length buffer to the last accepted index;\n                            // thus removing/ignoring the invalid characters\n                            bytes = bytes_after_last_accept;\n\n                            if (error_handler == error_handler_t::replace)\n                            {\n                                // add a replacement character\n                                if (ensure_ascii)\n                                {\n                                    string_buffer[bytes++] = '\\\\';\n                                    string_buffer[bytes++] = 'u';\n                                    string_buffer[bytes++] = 'f';\n                                    string_buffer[bytes++] = 'f';\n                                    string_buffer[bytes++] = 'f';\n                                    string_buffer[bytes++] = 'd';\n                                }\n                                else\n                                {\n                                    string_buffer[bytes++] = detail::binary_writer<BasicJsonType, char>::to_char_type('\\xEF');\n                                    string_buffer[bytes++] = detail::binary_writer<BasicJsonType, char>::to_char_type('\\xBF');\n                                    string_buffer[bytes++] = detail::binary_writer<BasicJsonType, char>::to_char_type('\\xBD');\n                                }\n\n                                // write buffer and reset index; there must be 13 bytes\n                                // left, as this is the maximal number of bytes to be\n                                // written (\"\\uxxxx\\uxxxx\\0\") for one code point\n                                if (string_buffer.size() - bytes < 13)\n                                {\n                                    o->write_characters(string_buffer.data(), bytes);\n                                    bytes = 0;\n                                }\n\n                                bytes_after_last_accept = bytes;\n                            }\n\n                            undumped_chars = 0;\n\n                            // continue processing the string\n                            state = UTF8_ACCEPT;\n                            break;\n                        }\n\n                        default:            // LCOV_EXCL_LINE\n                            JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE\n                    }\n                    break;\n                }\n\n                default:  // decode found yet incomplete multi-byte code point\n                {\n                    if (!ensure_ascii)\n                    {\n                        // code point will not be escaped - copy byte to buffer\n                        string_buffer[bytes++] = s[i];\n                    }\n                    ++undumped_chars;\n                    break;\n                }\n            }\n        }\n\n        // we finished processing the string\n        if (JSON_HEDLEY_LIKELY(state == UTF8_ACCEPT))\n        {\n            // write buffer\n            if (bytes > 0)\n            {\n                o->write_characters(string_buffer.data(), bytes);\n            }\n        }\n        else\n        {\n            // we finish reading, but do not accept: string was incomplete\n            switch (error_handler)\n            {\n                case error_handler_t::strict:\n                {\n                    JSON_THROW(type_error::create(316, concat(\"incomplete UTF-8 string; last byte: 0x\", hex_bytes(static_cast<std::uint8_t>(s.back() | 0))), nullptr));\n                }\n\n                case error_handler_t::ignore:\n                {\n                    // write all accepted bytes\n                    o->write_characters(string_buffer.data(), bytes_after_last_accept);\n                    break;\n                }\n\n                case error_handler_t::replace:\n                {\n                    // write all accepted bytes\n                    o->write_characters(string_buffer.data(), bytes_after_last_accept);\n                    // add a replacement character\n                    if (ensure_ascii)\n                    {\n                        o->write_characters(\"\\\\ufffd\", 6);\n                    }\n                    else\n                    {\n                        o->write_characters(\"\\xEF\\xBF\\xBD\", 3);\n                    }\n                    break;\n                }\n\n                default:            // LCOV_EXCL_LINE\n                    JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE\n            }\n        }\n    }\n\n  private:\n    /*!\n    @brief count digits\n\n    Count the number of decimal (base 10) digits for an input unsigned integer.\n\n    @param[in] x  unsigned integer number to count its digits\n    @return    number of decimal digits\n    */\n    inline unsigned int count_digits(number_unsigned_t x) noexcept\n    {\n        unsigned int n_digits = 1;\n        for (;;)\n        {\n            if (x < 10)\n            {\n                return n_digits;\n            }\n            if (x < 100)\n            {\n                return n_digits + 1;\n            }\n            if (x < 1000)\n            {\n                return n_digits + 2;\n            }\n            if (x < 10000)\n            {\n                return n_digits + 3;\n            }\n            x = x / 10000u;\n            n_digits += 4;\n        }\n    }\n\n    /*!\n     * @brief convert a byte to a uppercase hex representation\n     * @param[in] byte byte to represent\n     * @return representation (\"00\"..\"FF\")\n     */\n    static std::string hex_bytes(std::uint8_t byte)\n    {\n        std::string result = \"FF\";\n        constexpr const char* nibble_to_hex = \"0123456789ABCDEF\";\n        result[0] = nibble_to_hex[byte / 16];\n        result[1] = nibble_to_hex[byte % 16];\n        return result;\n    }\n\n    // templates to avoid warnings about useless casts\n    template <typename NumberType, enable_if_t<std::is_signed<NumberType>::value, int> = 0>\n    bool is_negative_number(NumberType x)\n    {\n        return x < 0;\n    }\n\n    template < typename NumberType, enable_if_t <std::is_unsigned<NumberType>::value, int > = 0 >\n    bool is_negative_number(NumberType /*unused*/)\n    {\n        return false;\n    }\n\n    /*!\n    @brief dump an integer\n\n    Dump a given integer to output stream @a o. Works internally with\n    @a number_buffer.\n\n    @param[in] x  integer number (signed or unsigned) to dump\n    @tparam NumberType either @a number_integer_t or @a number_unsigned_t\n    */\n    template < typename NumberType, detail::enable_if_t <\n                   std::is_integral<NumberType>::value ||\n                   std::is_same<NumberType, number_unsigned_t>::value ||\n                   std::is_same<NumberType, number_integer_t>::value ||\n                   std::is_same<NumberType, binary_char_t>::value,\n                   int > = 0 >\n    void dump_integer(NumberType x)\n    {\n        static constexpr std::array<std::array<char, 2>, 100> digits_to_99\n        {\n            {\n                {{'0', '0'}}, {{'0', '1'}}, {{'0', '2'}}, {{'0', '3'}}, {{'0', '4'}}, {{'0', '5'}}, {{'0', '6'}}, {{'0', '7'}}, {{'0', '8'}}, {{'0', '9'}},\n                {{'1', '0'}}, {{'1', '1'}}, {{'1', '2'}}, {{'1', '3'}}, {{'1', '4'}}, {{'1', '5'}}, {{'1', '6'}}, {{'1', '7'}}, {{'1', '8'}}, {{'1', '9'}},\n                {{'2', '0'}}, {{'2', '1'}}, {{'2', '2'}}, {{'2', '3'}}, {{'2', '4'}}, {{'2', '5'}}, {{'2', '6'}}, {{'2', '7'}}, {{'2', '8'}}, {{'2', '9'}},\n                {{'3', '0'}}, {{'3', '1'}}, {{'3', '2'}}, {{'3', '3'}}, {{'3', '4'}}, {{'3', '5'}}, {{'3', '6'}}, {{'3', '7'}}, {{'3', '8'}}, {{'3', '9'}},\n                {{'4', '0'}}, {{'4', '1'}}, {{'4', '2'}}, {{'4', '3'}}, {{'4', '4'}}, {{'4', '5'}}, {{'4', '6'}}, {{'4', '7'}}, {{'4', '8'}}, {{'4', '9'}},\n                {{'5', '0'}}, {{'5', '1'}}, {{'5', '2'}}, {{'5', '3'}}, {{'5', '4'}}, {{'5', '5'}}, {{'5', '6'}}, {{'5', '7'}}, {{'5', '8'}}, {{'5', '9'}},\n                {{'6', '0'}}, {{'6', '1'}}, {{'6', '2'}}, {{'6', '3'}}, {{'6', '4'}}, {{'6', '5'}}, {{'6', '6'}}, {{'6', '7'}}, {{'6', '8'}}, {{'6', '9'}},\n                {{'7', '0'}}, {{'7', '1'}}, {{'7', '2'}}, {{'7', '3'}}, {{'7', '4'}}, {{'7', '5'}}, {{'7', '6'}}, {{'7', '7'}}, {{'7', '8'}}, {{'7', '9'}},\n                {{'8', '0'}}, {{'8', '1'}}, {{'8', '2'}}, {{'8', '3'}}, {{'8', '4'}}, {{'8', '5'}}, {{'8', '6'}}, {{'8', '7'}}, {{'8', '8'}}, {{'8', '9'}},\n                {{'9', '0'}}, {{'9', '1'}}, {{'9', '2'}}, {{'9', '3'}}, {{'9', '4'}}, {{'9', '5'}}, {{'9', '6'}}, {{'9', '7'}}, {{'9', '8'}}, {{'9', '9'}},\n            }\n        };\n\n        // special case for \"0\"\n        if (x == 0)\n        {\n            o->write_character('0');\n            return;\n        }\n\n        // use a pointer to fill the buffer\n        auto buffer_ptr = number_buffer.begin(); // NOLINT(llvm-qualified-auto,readability-qualified-auto,cppcoreguidelines-pro-type-vararg,hicpp-vararg)\n\n        number_unsigned_t abs_value;\n\n        unsigned int n_chars{};\n\n        if (is_negative_number(x))\n        {\n            *buffer_ptr = '-';\n            abs_value = remove_sign(static_cast<number_integer_t>(x));\n\n            // account one more byte for the minus sign\n            n_chars = 1 + count_digits(abs_value);\n        }\n        else\n        {\n            abs_value = static_cast<number_unsigned_t>(x);\n            n_chars = count_digits(abs_value);\n        }\n\n        // spare 1 byte for '\\0'\n        JSON_ASSERT(n_chars < number_buffer.size() - 1);\n\n        // jump to the end to generate the string from backward,\n        // so we later avoid reversing the result\n        buffer_ptr += n_chars;\n\n        // Fast int2ascii implementation inspired by \"Fastware\" talk by Andrei Alexandrescu\n        // See: https://www.youtube.com/watch?v=o4-CwDo2zpg\n        while (abs_value >= 100)\n        {\n            const auto digits_index = static_cast<unsigned>((abs_value % 100));\n            abs_value /= 100;\n            *(--buffer_ptr) = digits_to_99[digits_index][1];\n            *(--buffer_ptr) = digits_to_99[digits_index][0];\n        }\n\n        if (abs_value >= 10)\n        {\n            const auto digits_index = static_cast<unsigned>(abs_value);\n            *(--buffer_ptr) = digits_to_99[digits_index][1];\n            *(--buffer_ptr) = digits_to_99[digits_index][0];\n        }\n        else\n        {\n            *(--buffer_ptr) = static_cast<char>('0' + abs_value);\n        }\n\n        o->write_characters(number_buffer.data(), n_chars);\n    }\n\n    /*!\n    @brief dump a floating-point number\n\n    Dump a given floating-point number to output stream @a o. Works internally\n    with @a number_buffer.\n\n    @param[in] x  floating-point number to dump\n    */\n    void dump_float(number_float_t x)\n    {\n        // NaN / inf\n        if (!std::isfinite(x))\n        {\n            o->write_characters(\"null\", 4);\n            return;\n        }\n\n        // If number_float_t is an IEEE-754 single or double precision number,\n        // use the Grisu2 algorithm to produce short numbers which are\n        // guaranteed to round-trip, using strtof and strtod, resp.\n        //\n        // NB: The test below works if <long double> == <double>.\n        static constexpr bool is_ieee_single_or_double\n            = (std::numeric_limits<number_float_t>::is_iec559 && std::numeric_limits<number_float_t>::digits == 24 && std::numeric_limits<number_float_t>::max_exponent == 128) ||\n              (std::numeric_limits<number_float_t>::is_iec559 && std::numeric_limits<number_float_t>::digits == 53 && std::numeric_limits<number_float_t>::max_exponent == 1024);\n\n        dump_float(x, std::integral_constant<bool, is_ieee_single_or_double>());\n    }\n\n    void dump_float(number_float_t x, std::true_type /*is_ieee_single_or_double*/)\n    {\n        auto* begin = number_buffer.data();\n        auto* end = ::nlohmann::detail::to_chars(begin, begin + number_buffer.size(), x);\n\n        o->write_characters(begin, static_cast<size_t>(end - begin));\n    }\n\n    void dump_float(number_float_t x, std::false_type /*is_ieee_single_or_double*/)\n    {\n        // get number of digits for a float -> text -> float round-trip\n        static constexpr auto d = std::numeric_limits<number_float_t>::max_digits10;\n\n        // the actual conversion\n        // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg,hicpp-vararg)\n        std::ptrdiff_t len = (std::snprintf)(number_buffer.data(), number_buffer.size(), \"%.*g\", d, x);\n\n        // negative value indicates an error\n        JSON_ASSERT(len > 0);\n        // check if buffer was large enough\n        JSON_ASSERT(static_cast<std::size_t>(len) < number_buffer.size());\n\n        // erase thousands separator\n        if (thousands_sep != '\\0')\n        {\n            // NOLINTNEXTLINE(readability-qualified-auto,llvm-qualified-auto): std::remove returns an iterator, see https://github.com/nlohmann/json/issues/3081\n            const auto end = std::remove(number_buffer.begin(), number_buffer.begin() + len, thousands_sep);\n            std::fill(end, number_buffer.end(), '\\0');\n            JSON_ASSERT((end - number_buffer.begin()) <= len);\n            len = (end - number_buffer.begin());\n        }\n\n        // convert decimal point to '.'\n        if (decimal_point != '\\0' && decimal_point != '.')\n        {\n            // NOLINTNEXTLINE(readability-qualified-auto,llvm-qualified-auto): std::find returns an iterator, see https://github.com/nlohmann/json/issues/3081\n            const auto dec_pos = std::find(number_buffer.begin(), number_buffer.end(), decimal_point);\n            if (dec_pos != number_buffer.end())\n            {\n                *dec_pos = '.';\n            }\n        }\n\n        o->write_characters(number_buffer.data(), static_cast<std::size_t>(len));\n\n        // determine if we need to append \".0\"\n        const bool value_is_int_like =\n            std::none_of(number_buffer.begin(), number_buffer.begin() + len + 1,\n                         [](char c)\n        {\n            return c == '.' || c == 'e';\n        });\n\n        if (value_is_int_like)\n        {\n            o->write_characters(\".0\", 2);\n        }\n    }\n\n    /*!\n    @brief check whether a string is UTF-8 encoded\n\n    The function checks each byte of a string whether it is UTF-8 encoded. The\n    result of the check is stored in the @a state parameter. The function must\n    be called initially with state 0 (accept). State 1 means the string must\n    be rejected, because the current byte is not allowed. If the string is\n    completely processed, but the state is non-zero, the string ended\n    prematurely; that is, the last byte indicated more bytes should have\n    followed.\n\n    @param[in,out] state  the state of the decoding\n    @param[in,out] codep  codepoint (valid only if resulting state is UTF8_ACCEPT)\n    @param[in] byte       next byte to decode\n    @return               new state\n\n    @note The function has been edited: a std::array is used.\n\n    @copyright Copyright (c) 2008-2009 Bjoern Hoehrmann <bjoern@hoehrmann.de>\n    @sa http://bjoern.hoehrmann.de/utf-8/decoder/dfa/\n    */\n    static std::uint8_t decode(std::uint8_t& state, std::uint32_t& codep, const std::uint8_t byte) noexcept\n    {\n        static const std::array<std::uint8_t, 400> utf8d =\n        {\n            {\n                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 00..1F\n                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 20..3F\n                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 40..5F\n                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 60..7F\n                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, // 80..9F\n                7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // A0..BF\n                8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // C0..DF\n                0xA, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x3, // E0..EF\n                0xB, 0x6, 0x6, 0x6, 0x5, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, // F0..FF\n                0x0, 0x1, 0x2, 0x3, 0x5, 0x8, 0x7, 0x1, 0x1, 0x1, 0x4, 0x6, 0x1, 0x1, 0x1, 0x1, // s0..s0\n                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, // s1..s2\n                1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, // s3..s4\n                1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, // s5..s6\n                1, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // s7..s8\n            }\n        };\n\n        JSON_ASSERT(byte < utf8d.size());\n        const std::uint8_t type = utf8d[byte];\n\n        codep = (state != UTF8_ACCEPT)\n                ? (byte & 0x3fu) | (codep << 6u)\n                : (0xFFu >> type) & (byte);\n\n        const std::size_t index = 256u + static_cast<size_t>(state) * 16u + static_cast<size_t>(type);\n        JSON_ASSERT(index < utf8d.size());\n        state = utf8d[index];\n        return state;\n    }\n\n    /*\n     * Overload to make the compiler happy while it is instantiating\n     * dump_integer for number_unsigned_t.\n     * Must never be called.\n     */\n    number_unsigned_t remove_sign(number_unsigned_t x)\n    {\n        JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE\n        return x; // LCOV_EXCL_LINE\n    }\n\n    /*\n     * Helper function for dump_integer\n     *\n     * This function takes a negative signed integer and returns its absolute\n     * value as unsigned integer. The plus/minus shuffling is necessary as we can\n     * not directly remove the sign of an arbitrary signed integer as the\n     * absolute values of INT_MIN and INT_MAX are usually not the same. See\n     * #1708 for details.\n     */\n    inline number_unsigned_t remove_sign(number_integer_t x) noexcept\n    {\n        JSON_ASSERT(x < 0 && x < (std::numeric_limits<number_integer_t>::max)()); // NOLINT(misc-redundant-expression)\n        return static_cast<number_unsigned_t>(-(x + 1)) + 1;\n    }\n\n  private:\n    /// the output of the serializer\n    output_adapter_t<char> o = nullptr;\n\n    /// a (hopefully) large enough character buffer\n    std::array<char, 64> number_buffer{{}};\n\n    /// the locale\n    const std::lconv* loc = nullptr;\n    /// the locale's thousand separator character\n    const char thousands_sep = '\\0';\n    /// the locale's decimal point character\n    const char decimal_point = '\\0';\n\n    /// string buffer\n    std::array<char, 512> string_buffer{{}};\n\n    /// the indentation character\n    const char indent_char;\n    /// the indentation string\n    string_t indent_string;\n\n    /// error_handler how to react on decoding errors\n    const error_handler_t error_handler;\n};\n\n}  // namespace detail\nNLOHMANN_JSON_NAMESPACE_END\n\n// #include <nlohmann/detail/value_t.hpp>\n\n// #include <nlohmann/json_fwd.hpp>\n\n// #include <nlohmann/ordered_map.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#include <functional> // equal_to, less\n#include <initializer_list> // initializer_list\n#include <iterator> // input_iterator_tag, iterator_traits\n#include <memory> // allocator\n#include <stdexcept> // for out_of_range\n#include <type_traits> // enable_if, is_convertible\n#include <utility> // pair\n#include <vector> // vector\n\n// #include <nlohmann/detail/macro_scope.hpp>\n\n// #include <nlohmann/detail/meta/type_traits.hpp>\n\n\nNLOHMANN_JSON_NAMESPACE_BEGIN\n\n/// ordered_map: a minimal map-like container that preserves insertion order\n/// for use within nlohmann::basic_json<ordered_map>\ntemplate <class Key, class T, class IgnoredLess = std::less<Key>,\n          class Allocator = std::allocator<std::pair<const Key, T>>>\n                  struct ordered_map : std::vector<std::pair<const Key, T>, Allocator>\n{\n    using key_type = Key;\n    using mapped_type = T;\n    using Container = std::vector<std::pair<const Key, T>, Allocator>;\n    using iterator = typename Container::iterator;\n    using const_iterator = typename Container::const_iterator;\n    using size_type = typename Container::size_type;\n    using value_type = typename Container::value_type;\n#ifdef JSON_HAS_CPP_14\n    using key_compare = std::equal_to<>;\n#else\n    using key_compare = std::equal_to<Key>;\n#endif\n\n    // Explicit constructors instead of `using Container::Container`\n    // otherwise older compilers choke on it (GCC <= 5.5, xcode <= 9.4)\n    ordered_map() noexcept(noexcept(Container())) : Container{} {}\n    explicit ordered_map(const Allocator& alloc) noexcept(noexcept(Container(alloc))) : Container{alloc} {}\n    template <class It>\n    ordered_map(It first, It last, const Allocator& alloc = Allocator())\n        : Container{first, last, alloc} {}\n    ordered_map(std::initializer_list<value_type> init, const Allocator& alloc = Allocator() )\n        : Container{init, alloc} {}\n\n    std::pair<iterator, bool> emplace(const key_type& key, T&& t)\n    {\n        for (auto it = this->begin(); it != this->end(); ++it)\n        {\n            if (m_compare(it->first, key))\n            {\n                return {it, false};\n            }\n        }\n        Container::emplace_back(key, std::forward<T>(t));\n        return {std::prev(this->end()), true};\n    }\n\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value, int> = 0>\n    std::pair<iterator, bool> emplace(KeyType && key, T && t)\n    {\n        for (auto it = this->begin(); it != this->end(); ++it)\n        {\n            if (m_compare(it->first, key))\n            {\n                return {it, false};\n            }\n        }\n        Container::emplace_back(std::forward<KeyType>(key), std::forward<T>(t));\n        return {std::prev(this->end()), true};\n    }\n\n    T& operator[](const key_type& key)\n    {\n        return emplace(key, T{}).first->second;\n    }\n\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value, int> = 0>\n    T & operator[](KeyType && key)\n    {\n        return emplace(std::forward<KeyType>(key), T{}).first->second;\n    }\n\n    const T& operator[](const key_type& key) const\n    {\n        return at(key);\n    }\n\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value, int> = 0>\n    const T & operator[](KeyType && key) const\n    {\n        return at(std::forward<KeyType>(key));\n    }\n\n    T& at(const key_type& key)\n    {\n        for (auto it = this->begin(); it != this->end(); ++it)\n        {\n            if (m_compare(it->first, key))\n            {\n                return it->second;\n            }\n        }\n\n        JSON_THROW(std::out_of_range(\"key not found\"));\n    }\n\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value, int> = 0>\n    T & at(KeyType && key) // NOLINT(cppcoreguidelines-missing-std-forward)\n    {\n        for (auto it = this->begin(); it != this->end(); ++it)\n        {\n            if (m_compare(it->first, key))\n            {\n                return it->second;\n            }\n        }\n\n        JSON_THROW(std::out_of_range(\"key not found\"));\n    }\n\n    const T& at(const key_type& key) const\n    {\n        for (auto it = this->begin(); it != this->end(); ++it)\n        {\n            if (m_compare(it->first, key))\n            {\n                return it->second;\n            }\n        }\n\n        JSON_THROW(std::out_of_range(\"key not found\"));\n    }\n\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value, int> = 0>\n    const T & at(KeyType && key) const // NOLINT(cppcoreguidelines-missing-std-forward)\n    {\n        for (auto it = this->begin(); it != this->end(); ++it)\n        {\n            if (m_compare(it->first, key))\n            {\n                return it->second;\n            }\n        }\n\n        JSON_THROW(std::out_of_range(\"key not found\"));\n    }\n\n    size_type erase(const key_type& key)\n    {\n        for (auto it = this->begin(); it != this->end(); ++it)\n        {\n            if (m_compare(it->first, key))\n            {\n                // Since we cannot move const Keys, re-construct them in place\n                for (auto next = it; ++next != this->end(); ++it)\n                {\n                    it->~value_type(); // Destroy but keep allocation\n                    new (&*it) value_type{std::move(*next)};\n                }\n                Container::pop_back();\n                return 1;\n            }\n        }\n        return 0;\n    }\n\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value, int> = 0>\n    size_type erase(KeyType && key) // NOLINT(cppcoreguidelines-missing-std-forward)\n    {\n        for (auto it = this->begin(); it != this->end(); ++it)\n        {\n            if (m_compare(it->first, key))\n            {\n                // Since we cannot move const Keys, re-construct them in place\n                for (auto next = it; ++next != this->end(); ++it)\n                {\n                    it->~value_type(); // Destroy but keep allocation\n                    new (&*it) value_type{std::move(*next)};\n                }\n                Container::pop_back();\n                return 1;\n            }\n        }\n        return 0;\n    }\n\n    iterator erase(iterator pos)\n    {\n        return erase(pos, std::next(pos));\n    }\n\n    iterator erase(iterator first, iterator last)\n    {\n        if (first == last)\n        {\n            return first;\n        }\n\n        const auto elements_affected = std::distance(first, last);\n        const auto offset = std::distance(Container::begin(), first);\n\n        // This is the start situation. We need to delete elements_affected\n        // elements (3 in this example: e, f, g), and need to return an\n        // iterator past the last deleted element (h in this example).\n        // Note that offset is the distance from the start of the vector\n        // to first. We will need this later.\n\n        // [ a, b, c, d, e, f, g, h, i, j ]\n        //               ^        ^\n        //             first    last\n\n        // Since we cannot move const Keys, we re-construct them in place.\n        // We start at first and re-construct (viz. copy) the elements from\n        // the back of the vector. Example for first iteration:\n\n        //               ,--------.\n        //               v        |   destroy e and re-construct with h\n        // [ a, b, c, d, e, f, g, h, i, j ]\n        //               ^        ^\n        //               it       it + elements_affected\n\n        for (auto it = first; std::next(it, elements_affected) != Container::end(); ++it)\n        {\n            it->~value_type(); // destroy but keep allocation\n            new (&*it) value_type{std::move(*std::next(it, elements_affected))}; // \"move\" next element to it\n        }\n\n        // [ a, b, c, d, h, i, j, h, i, j ]\n        //               ^        ^\n        //             first    last\n\n        // remove the unneeded elements at the end of the vector\n        Container::resize(this->size() - static_cast<size_type>(elements_affected));\n\n        // [ a, b, c, d, h, i, j ]\n        //               ^        ^\n        //             first    last\n\n        // first is now pointing past the last deleted element, but we cannot\n        // use this iterator, because it may have been invalidated by the\n        // resize call. Instead, we can return begin() + offset.\n        return Container::begin() + offset;\n    }\n\n    size_type count(const key_type& key) const\n    {\n        for (auto it = this->begin(); it != this->end(); ++it)\n        {\n            if (m_compare(it->first, key))\n            {\n                return 1;\n            }\n        }\n        return 0;\n    }\n\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value, int> = 0>\n    size_type count(KeyType && key) const // NOLINT(cppcoreguidelines-missing-std-forward)\n    {\n        for (auto it = this->begin(); it != this->end(); ++it)\n        {\n            if (m_compare(it->first, key))\n            {\n                return 1;\n            }\n        }\n        return 0;\n    }\n\n    iterator find(const key_type& key)\n    {\n        for (auto it = this->begin(); it != this->end(); ++it)\n        {\n            if (m_compare(it->first, key))\n            {\n                return it;\n            }\n        }\n        return Container::end();\n    }\n\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value, int> = 0>\n    iterator find(KeyType && key) // NOLINT(cppcoreguidelines-missing-std-forward)\n    {\n        for (auto it = this->begin(); it != this->end(); ++it)\n        {\n            if (m_compare(it->first, key))\n            {\n                return it;\n            }\n        }\n        return Container::end();\n    }\n\n    const_iterator find(const key_type& key) const\n    {\n        for (auto it = this->begin(); it != this->end(); ++it)\n        {\n            if (m_compare(it->first, key))\n            {\n                return it;\n            }\n        }\n        return Container::end();\n    }\n\n    std::pair<iterator, bool> insert( value_type&& value )\n    {\n        return emplace(value.first, std::move(value.second));\n    }\n\n    std::pair<iterator, bool> insert( const value_type& value )\n    {\n        for (auto it = this->begin(); it != this->end(); ++it)\n        {\n            if (m_compare(it->first, value.first))\n            {\n                return {it, false};\n            }\n        }\n        Container::push_back(value);\n        return {--this->end(), true};\n    }\n\n    template<typename InputIt>\n    using require_input_iter = typename std::enable_if<std::is_convertible<typename std::iterator_traits<InputIt>::iterator_category,\n            std::input_iterator_tag>::value>::type;\n\n    template<typename InputIt, typename = require_input_iter<InputIt>>\n    void insert(InputIt first, InputIt last)\n    {\n        for (auto it = first; it != last; ++it)\n        {\n            insert(*it);\n        }\n    }\n\nprivate:\n    JSON_NO_UNIQUE_ADDRESS key_compare m_compare = key_compare();\n};\n\nNLOHMANN_JSON_NAMESPACE_END\n\n\n#if defined(JSON_HAS_CPP_17)\n    #include <any>\n    #include <string_view>\n#endif\n\n/*!\n@brief namespace for Niels Lohmann\n@see https://github.com/nlohmann\n@since version 1.0.0\n*/\nNLOHMANN_JSON_NAMESPACE_BEGIN\n\n/*!\n@brief a class to store JSON values\n\n@internal\n@invariant The member variables @a m_value and @a m_type have the following\nrelationship:\n- If `m_type == value_t::object`, then `m_value.object != nullptr`.\n- If `m_type == value_t::array`, then `m_value.array != nullptr`.\n- If `m_type == value_t::string`, then `m_value.string != nullptr`.\nThe invariants are checked by member function assert_invariant().\n\n@note ObjectType trick from https://stackoverflow.com/a/9860911\n@endinternal\n\n@since version 1.0.0\n\n@nosubgrouping\n*/\nNLOHMANN_BASIC_JSON_TPL_DECLARATION\nclass basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-special-member-functions)\n    : public ::nlohmann::detail::json_base_class<CustomBaseClass>\n{\n  private:\n    template<detail::value_t> friend struct detail::external_constructor;\n\n    template<typename>\n    friend class ::nlohmann::json_pointer;\n    // can be restored when json_pointer backwards compatibility is removed\n    // friend ::nlohmann::json_pointer<StringType>;\n\n    template<typename BasicJsonType, typename InputType>\n    friend class ::nlohmann::detail::parser;\n    friend ::nlohmann::detail::serializer<basic_json>;\n    template<typename BasicJsonType>\n    friend class ::nlohmann::detail::iter_impl;\n    template<typename BasicJsonType, typename CharType>\n    friend class ::nlohmann::detail::binary_writer;\n    template<typename BasicJsonType, typename InputType, typename SAX>\n    friend class ::nlohmann::detail::binary_reader;\n    template<typename BasicJsonType>\n    friend class ::nlohmann::detail::json_sax_dom_parser;\n    template<typename BasicJsonType>\n    friend class ::nlohmann::detail::json_sax_dom_callback_parser;\n    friend class ::nlohmann::detail::exception;\n\n    /// workaround type for MSVC\n    using basic_json_t = NLOHMANN_BASIC_JSON_TPL;\n    using json_base_class_t = ::nlohmann::detail::json_base_class<CustomBaseClass>;\n\n  JSON_PRIVATE_UNLESS_TESTED:\n    // convenience aliases for types residing in namespace detail;\n    using lexer = ::nlohmann::detail::lexer_base<basic_json>;\n\n    template<typename InputAdapterType>\n    static ::nlohmann::detail::parser<basic_json, InputAdapterType> parser(\n        InputAdapterType adapter,\n        detail::parser_callback_t<basic_json>cb = nullptr,\n        const bool allow_exceptions = true,\n        const bool ignore_comments = false\n                                 )\n    {\n        return ::nlohmann::detail::parser<basic_json, InputAdapterType>(std::move(adapter),\n                std::move(cb), allow_exceptions, ignore_comments);\n    }\n\n  private:\n    using primitive_iterator_t = ::nlohmann::detail::primitive_iterator_t;\n    template<typename BasicJsonType>\n    using internal_iterator = ::nlohmann::detail::internal_iterator<BasicJsonType>;\n    template<typename BasicJsonType>\n    using iter_impl = ::nlohmann::detail::iter_impl<BasicJsonType>;\n    template<typename Iterator>\n    using iteration_proxy = ::nlohmann::detail::iteration_proxy<Iterator>;\n    template<typename Base> using json_reverse_iterator = ::nlohmann::detail::json_reverse_iterator<Base>;\n\n    template<typename CharType>\n    using output_adapter_t = ::nlohmann::detail::output_adapter_t<CharType>;\n\n    template<typename InputType>\n    using binary_reader = ::nlohmann::detail::binary_reader<basic_json, InputType>;\n    template<typename CharType> using binary_writer = ::nlohmann::detail::binary_writer<basic_json, CharType>;\n\n  JSON_PRIVATE_UNLESS_TESTED:\n    using serializer = ::nlohmann::detail::serializer<basic_json>;\n\n  public:\n    using value_t = detail::value_t;\n    /// JSON Pointer, see @ref nlohmann::json_pointer\n    using json_pointer = ::nlohmann::json_pointer<StringType>;\n    template<typename T, typename SFINAE>\n    using json_serializer = JSONSerializer<T, SFINAE>;\n    /// how to treat decoding errors\n    using error_handler_t = detail::error_handler_t;\n    /// how to treat CBOR tags\n    using cbor_tag_handler_t = detail::cbor_tag_handler_t;\n    /// helper type for initializer lists of basic_json values\n    using initializer_list_t = std::initializer_list<detail::json_ref<basic_json>>;\n\n    using input_format_t = detail::input_format_t;\n    /// SAX interface type, see @ref nlohmann::json_sax\n    using json_sax_t = json_sax<basic_json>;\n\n    ////////////////\n    // exceptions //\n    ////////////////\n\n    /// @name exceptions\n    /// Classes to implement user-defined exceptions.\n    /// @{\n\n    using exception = detail::exception;\n    using parse_error = detail::parse_error;\n    using invalid_iterator = detail::invalid_iterator;\n    using type_error = detail::type_error;\n    using out_of_range = detail::out_of_range;\n    using other_error = detail::other_error;\n\n    /// @}\n\n\n    /////////////////////\n    // container types //\n    /////////////////////\n\n    /// @name container types\n    /// The canonic container types to use @ref basic_json like any other STL\n    /// container.\n    /// @{\n\n    /// the type of elements in a basic_json container\n    using value_type = basic_json;\n\n    /// the type of an element reference\n    using reference = value_type&;\n    /// the type of an element const reference\n    using const_reference = const value_type&;\n\n    /// a type to represent differences between iterators\n    using difference_type = std::ptrdiff_t;\n    /// a type to represent container sizes\n    using size_type = std::size_t;\n\n    /// the allocator type\n    using allocator_type = AllocatorType<basic_json>;\n\n    /// the type of an element pointer\n    using pointer = typename std::allocator_traits<allocator_type>::pointer;\n    /// the type of an element const pointer\n    using const_pointer = typename std::allocator_traits<allocator_type>::const_pointer;\n\n    /// an iterator for a basic_json container\n    using iterator = iter_impl<basic_json>;\n    /// a const iterator for a basic_json container\n    using const_iterator = iter_impl<const basic_json>;\n    /// a reverse iterator for a basic_json container\n    using reverse_iterator = json_reverse_iterator<typename basic_json::iterator>;\n    /// a const reverse iterator for a basic_json container\n    using const_reverse_iterator = json_reverse_iterator<typename basic_json::const_iterator>;\n\n    /// @}\n\n\n    /// @brief returns the allocator associated with the container\n    /// @sa https://json.nlohmann.me/api/basic_json/get_allocator/\n    static allocator_type get_allocator()\n    {\n        return allocator_type();\n    }\n\n    /// @brief returns version information on the library\n    /// @sa https://json.nlohmann.me/api/basic_json/meta/\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json meta()\n    {\n        basic_json result;\n\n        result[\"copyright\"] = \"(C) 2013-2022 Niels Lohmann\";\n        result[\"name\"] = \"JSON for Modern C++\";\n        result[\"url\"] = \"https://github.com/nlohmann/json\";\n        result[\"version\"][\"string\"] =\n            detail::concat(std::to_string(NLOHMANN_JSON_VERSION_MAJOR), '.',\n                           std::to_string(NLOHMANN_JSON_VERSION_MINOR), '.',\n                           std::to_string(NLOHMANN_JSON_VERSION_PATCH));\n        result[\"version\"][\"major\"] = NLOHMANN_JSON_VERSION_MAJOR;\n        result[\"version\"][\"minor\"] = NLOHMANN_JSON_VERSION_MINOR;\n        result[\"version\"][\"patch\"] = NLOHMANN_JSON_VERSION_PATCH;\n\n#ifdef _WIN32\n        result[\"platform\"] = \"win32\";\n#elif defined __linux__\n        result[\"platform\"] = \"linux\";\n#elif defined __APPLE__\n        result[\"platform\"] = \"apple\";\n#elif defined __unix__\n        result[\"platform\"] = \"unix\";\n#else\n        result[\"platform\"] = \"unknown\";\n#endif\n\n#if defined(__ICC) || defined(__INTEL_COMPILER)\n        result[\"compiler\"] = {{\"family\", \"icc\"}, {\"version\", __INTEL_COMPILER}};\n#elif defined(__clang__)\n        result[\"compiler\"] = {{\"family\", \"clang\"}, {\"version\", __clang_version__}};\n#elif defined(__GNUC__) || defined(__GNUG__)\n        result[\"compiler\"] = {{\"family\", \"gcc\"}, {\"version\", detail::concat(\n                    std::to_string(__GNUC__), '.',\n                    std::to_string(__GNUC_MINOR__), '.',\n                    std::to_string(__GNUC_PATCHLEVEL__))\n            }\n        };\n#elif defined(__HP_cc) || defined(__HP_aCC)\n        result[\"compiler\"] = \"hp\"\n#elif defined(__IBMCPP__)\n        result[\"compiler\"] = {{\"family\", \"ilecpp\"}, {\"version\", __IBMCPP__}};\n#elif defined(_MSC_VER)\n        result[\"compiler\"] = {{\"family\", \"msvc\"}, {\"version\", _MSC_VER}};\n#elif defined(__PGI)\n        result[\"compiler\"] = {{\"family\", \"pgcpp\"}, {\"version\", __PGI}};\n#elif defined(__SUNPRO_CC)\n        result[\"compiler\"] = {{\"family\", \"sunpro\"}, {\"version\", __SUNPRO_CC}};\n#else\n        result[\"compiler\"] = {{\"family\", \"unknown\"}, {\"version\", \"unknown\"}};\n#endif\n\n\n#if defined(_MSVC_LANG)\n        result[\"compiler\"][\"c++\"] = std::to_string(_MSVC_LANG);\n#elif defined(__cplusplus)\n        result[\"compiler\"][\"c++\"] = std::to_string(__cplusplus);\n#else\n        result[\"compiler\"][\"c++\"] = \"unknown\";\n#endif\n        return result;\n    }\n\n\n    ///////////////////////////\n    // JSON value data types //\n    ///////////////////////////\n\n    /// @name JSON value data types\n    /// The data types to store a JSON value. These types are derived from\n    /// the template arguments passed to class @ref basic_json.\n    /// @{\n\n    /// @brief default object key comparator type\n    /// The actual object key comparator type (@ref object_comparator_t) may be\n    /// different.\n    /// @sa https://json.nlohmann.me/api/basic_json/default_object_comparator_t/\n#if defined(JSON_HAS_CPP_14)\n    // use of transparent comparator avoids unnecessary repeated construction of temporaries\n    // in functions involving lookup by key with types other than object_t::key_type (aka. StringType)\n    using default_object_comparator_t = std::less<>;\n#else\n    using default_object_comparator_t = std::less<StringType>;\n#endif\n\n    /// @brief a type for an object\n    /// @sa https://json.nlohmann.me/api/basic_json/object_t/\n    using object_t = ObjectType<StringType,\n          basic_json,\n          default_object_comparator_t,\n          AllocatorType<std::pair<const StringType,\n          basic_json>>>;\n\n    /// @brief a type for an array\n    /// @sa https://json.nlohmann.me/api/basic_json/array_t/\n    using array_t = ArrayType<basic_json, AllocatorType<basic_json>>;\n\n    /// @brief a type for a string\n    /// @sa https://json.nlohmann.me/api/basic_json/string_t/\n    using string_t = StringType;\n\n    /// @brief a type for a boolean\n    /// @sa https://json.nlohmann.me/api/basic_json/boolean_t/\n    using boolean_t = BooleanType;\n\n    /// @brief a type for a number (integer)\n    /// @sa https://json.nlohmann.me/api/basic_json/number_integer_t/\n    using number_integer_t = NumberIntegerType;\n\n    /// @brief a type for a number (unsigned)\n    /// @sa https://json.nlohmann.me/api/basic_json/number_unsigned_t/\n    using number_unsigned_t = NumberUnsignedType;\n\n    /// @brief a type for a number (floating-point)\n    /// @sa https://json.nlohmann.me/api/basic_json/number_float_t/\n    using number_float_t = NumberFloatType;\n\n    /// @brief a type for a packed binary type\n    /// @sa https://json.nlohmann.me/api/basic_json/binary_t/\n    using binary_t = nlohmann::byte_container_with_subtype<BinaryType>;\n\n    /// @brief object key comparator type\n    /// @sa https://json.nlohmann.me/api/basic_json/object_comparator_t/\n    using object_comparator_t = detail::actual_object_comparator_t<basic_json>;\n\n    /// @}\n\n  private:\n\n    /// helper for exception-safe object creation\n    template<typename T, typename... Args>\n    JSON_HEDLEY_RETURNS_NON_NULL\n    static T* create(Args&& ... args)\n    {\n        AllocatorType<T> alloc;\n        using AllocatorTraits = std::allocator_traits<AllocatorType<T>>;\n\n        auto deleter = [&](T * obj)\n        {\n            AllocatorTraits::deallocate(alloc, obj, 1);\n        };\n        std::unique_ptr<T, decltype(deleter)> obj(AllocatorTraits::allocate(alloc, 1), deleter);\n        AllocatorTraits::construct(alloc, obj.get(), std::forward<Args>(args)...);\n        JSON_ASSERT(obj != nullptr);\n        return obj.release();\n    }\n\n    ////////////////////////\n    // JSON value storage //\n    ////////////////////////\n\n  JSON_PRIVATE_UNLESS_TESTED:\n    /*!\n    @brief a JSON value\n\n    The actual storage for a JSON value of the @ref basic_json class. This\n    union combines the different storage types for the JSON value types\n    defined in @ref value_t.\n\n    JSON type | value_t type    | used type\n    --------- | --------------- | ------------------------\n    object    | object          | pointer to @ref object_t\n    array     | array           | pointer to @ref array_t\n    string    | string          | pointer to @ref string_t\n    boolean   | boolean         | @ref boolean_t\n    number    | number_integer  | @ref number_integer_t\n    number    | number_unsigned | @ref number_unsigned_t\n    number    | number_float    | @ref number_float_t\n    binary    | binary          | pointer to @ref binary_t\n    null      | null            | *no value is stored*\n\n    @note Variable-length types (objects, arrays, and strings) are stored as\n    pointers. The size of the union should not exceed 64 bits if the default\n    value types are used.\n\n    @since version 1.0.0\n    */\n    union json_value\n    {\n        /// object (stored with pointer to save storage)\n        object_t* object;\n        /// array (stored with pointer to save storage)\n        array_t* array;\n        /// string (stored with pointer to save storage)\n        string_t* string;\n        /// binary (stored with pointer to save storage)\n        binary_t* binary;\n        /// boolean\n        boolean_t boolean;\n        /// number (integer)\n        number_integer_t number_integer;\n        /// number (unsigned integer)\n        number_unsigned_t number_unsigned;\n        /// number (floating-point)\n        number_float_t number_float;\n\n        /// default constructor (for null values)\n        json_value() = default;\n        /// constructor for booleans\n        json_value(boolean_t v) noexcept : boolean(v) {}\n        /// constructor for numbers (integer)\n        json_value(number_integer_t v) noexcept : number_integer(v) {}\n        /// constructor for numbers (unsigned)\n        json_value(number_unsigned_t v) noexcept : number_unsigned(v) {}\n        /// constructor for numbers (floating-point)\n        json_value(number_float_t v) noexcept : number_float(v) {}\n        /// constructor for empty values of a given type\n        json_value(value_t t)\n        {\n            switch (t)\n            {\n                case value_t::object:\n                {\n                    object = create<object_t>();\n                    break;\n                }\n\n                case value_t::array:\n                {\n                    array = create<array_t>();\n                    break;\n                }\n\n                case value_t::string:\n                {\n                    string = create<string_t>(\"\");\n                    break;\n                }\n\n                case value_t::binary:\n                {\n                    binary = create<binary_t>();\n                    break;\n                }\n\n                case value_t::boolean:\n                {\n                    boolean = static_cast<boolean_t>(false);\n                    break;\n                }\n\n                case value_t::number_integer:\n                {\n                    number_integer = static_cast<number_integer_t>(0);\n                    break;\n                }\n\n                case value_t::number_unsigned:\n                {\n                    number_unsigned = static_cast<number_unsigned_t>(0);\n                    break;\n                }\n\n                case value_t::number_float:\n                {\n                    number_float = static_cast<number_float_t>(0.0);\n                    break;\n                }\n\n                case value_t::null:\n                {\n                    object = nullptr;  // silence warning, see #821\n                    break;\n                }\n\n                case value_t::discarded:\n                default:\n                {\n                    object = nullptr;  // silence warning, see #821\n                    if (JSON_HEDLEY_UNLIKELY(t == value_t::null))\n                    {\n                        JSON_THROW(other_error::create(500, \"961c151d2e87f2686a955a9be24d316f1362bf21 3.11.2\", nullptr)); // LCOV_EXCL_LINE\n                    }\n                    break;\n                }\n            }\n        }\n\n        /// constructor for strings\n        json_value(const string_t& value) : string(create<string_t>(value)) {}\n\n        /// constructor for rvalue strings\n        json_value(string_t&& value) : string(create<string_t>(std::move(value))) {}\n\n        /// constructor for objects\n        json_value(const object_t& value) : object(create<object_t>(value)) {}\n\n        /// constructor for rvalue objects\n        json_value(object_t&& value) : object(create<object_t>(std::move(value))) {}\n\n        /// constructor for arrays\n        json_value(const array_t& value) : array(create<array_t>(value)) {}\n\n        /// constructor for rvalue arrays\n        json_value(array_t&& value) : array(create<array_t>(std::move(value))) {}\n\n        /// constructor for binary arrays\n        json_value(const typename binary_t::container_type& value) : binary(create<binary_t>(value)) {}\n\n        /// constructor for rvalue binary arrays\n        json_value(typename binary_t::container_type&& value) : binary(create<binary_t>(std::move(value))) {}\n\n        /// constructor for binary arrays (internal type)\n        json_value(const binary_t& value) : binary(create<binary_t>(value)) {}\n\n        /// constructor for rvalue binary arrays (internal type)\n        json_value(binary_t&& value) : binary(create<binary_t>(std::move(value))) {}\n\n        void destroy(value_t t)\n        {\n            if (\n                (t == value_t::object && object == nullptr) ||\n                (t == value_t::array && array == nullptr) ||\n                (t == value_t::string && string == nullptr) ||\n                (t == value_t::binary && binary == nullptr)\n            )\n            {\n                //not initialized (e.g. due to exception in the ctor)\n                return;\n            }\n            if (t == value_t::array || t == value_t::object)\n            {\n                // flatten the current json_value to a heap-allocated stack\n                std::vector<basic_json> stack;\n\n                // move the top-level items to stack\n                if (t == value_t::array)\n                {\n                    stack.reserve(array->size());\n                    std::move(array->begin(), array->end(), std::back_inserter(stack));\n                }\n                else\n                {\n                    stack.reserve(object->size());\n                    for (auto&& it : *object)\n                    {\n                        stack.push_back(std::move(it.second));\n                    }\n                }\n\n                while (!stack.empty())\n                {\n                    // move the last item to local variable to be processed\n                    basic_json current_item(std::move(stack.back()));\n                    stack.pop_back();\n\n                    // if current_item is array/object, move\n                    // its children to the stack to be processed later\n                    if (current_item.is_array())\n                    {\n                        std::move(current_item.m_data.m_value.array->begin(), current_item.m_data.m_value.array->end(), std::back_inserter(stack));\n\n                        current_item.m_data.m_value.array->clear();\n                    }\n                    else if (current_item.is_object())\n                    {\n                        for (auto&& it : *current_item.m_data.m_value.object)\n                        {\n                            stack.push_back(std::move(it.second));\n                        }\n\n                        current_item.m_data.m_value.object->clear();\n                    }\n\n                    // it's now safe that current_item get destructed\n                    // since it doesn't have any children\n                }\n            }\n\n            switch (t)\n            {\n                case value_t::object:\n                {\n                    AllocatorType<object_t> alloc;\n                    std::allocator_traits<decltype(alloc)>::destroy(alloc, object);\n                    std::allocator_traits<decltype(alloc)>::deallocate(alloc, object, 1);\n                    break;\n                }\n\n                case value_t::array:\n                {\n                    AllocatorType<array_t> alloc;\n                    std::allocator_traits<decltype(alloc)>::destroy(alloc, array);\n                    std::allocator_traits<decltype(alloc)>::deallocate(alloc, array, 1);\n                    break;\n                }\n\n                case value_t::string:\n                {\n                    AllocatorType<string_t> alloc;\n                    std::allocator_traits<decltype(alloc)>::destroy(alloc, string);\n                    std::allocator_traits<decltype(alloc)>::deallocate(alloc, string, 1);\n                    break;\n                }\n\n                case value_t::binary:\n                {\n                    AllocatorType<binary_t> alloc;\n                    std::allocator_traits<decltype(alloc)>::destroy(alloc, binary);\n                    std::allocator_traits<decltype(alloc)>::deallocate(alloc, binary, 1);\n                    break;\n                }\n\n                case value_t::null:\n                case value_t::boolean:\n                case value_t::number_integer:\n                case value_t::number_unsigned:\n                case value_t::number_float:\n                case value_t::discarded:\n                default:\n                {\n                    break;\n                }\n            }\n        }\n    };\n\n  private:\n    /*!\n    @brief checks the class invariants\n\n    This function asserts the class invariants. It needs to be called at the\n    end of every constructor to make sure that created objects respect the\n    invariant. Furthermore, it has to be called each time the type of a JSON\n    value is changed, because the invariant expresses a relationship between\n    @a m_type and @a m_value.\n\n    Furthermore, the parent relation is checked for arrays and objects: If\n    @a check_parents true and the value is an array or object, then the\n    container's elements must have the current value as parent.\n\n    @param[in] check_parents  whether the parent relation should be checked.\n               The value is true by default and should only be set to false\n               during destruction of objects when the invariant does not\n               need to hold.\n    */\n    void assert_invariant(bool check_parents = true) const noexcept\n    {\n        JSON_ASSERT(m_data.m_type != value_t::object || m_data.m_value.object != nullptr);\n        JSON_ASSERT(m_data.m_type != value_t::array || m_data.m_value.array != nullptr);\n        JSON_ASSERT(m_data.m_type != value_t::string || m_data.m_value.string != nullptr);\n        JSON_ASSERT(m_data.m_type != value_t::binary || m_data.m_value.binary != nullptr);\n\n#if JSON_DIAGNOSTICS\n        JSON_TRY\n        {\n            // cppcheck-suppress assertWithSideEffect\n            JSON_ASSERT(!check_parents || !is_structured() || std::all_of(begin(), end(), [this](const basic_json & j)\n            {\n                return j.m_parent == this;\n            }));\n        }\n        JSON_CATCH(...) {} // LCOV_EXCL_LINE\n#endif\n        static_cast<void>(check_parents);\n    }\n\n    void set_parents()\n    {\n#if JSON_DIAGNOSTICS\n        switch (m_data.m_type)\n        {\n            case value_t::array:\n            {\n                for (auto& element : *m_data.m_value.array)\n                {\n                    element.m_parent = this;\n                }\n                break;\n            }\n\n            case value_t::object:\n            {\n                for (auto& element : *m_data.m_value.object)\n                {\n                    element.second.m_parent = this;\n                }\n                break;\n            }\n\n            case value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n                break;\n        }\n#endif\n    }\n\n    iterator set_parents(iterator it, typename iterator::difference_type count_set_parents)\n    {\n#if JSON_DIAGNOSTICS\n        for (typename iterator::difference_type i = 0; i < count_set_parents; ++i)\n        {\n            (it + i)->m_parent = this;\n        }\n#else\n        static_cast<void>(count_set_parents);\n#endif\n        return it;\n    }\n\n    reference set_parent(reference j, std::size_t old_capacity = static_cast<std::size_t>(-1))\n    {\n#if JSON_DIAGNOSTICS\n        if (old_capacity != static_cast<std::size_t>(-1))\n        {\n            // see https://github.com/nlohmann/json/issues/2838\n            JSON_ASSERT(type() == value_t::array);\n            if (JSON_HEDLEY_UNLIKELY(m_data.m_value.array->capacity() != old_capacity))\n            {\n                // capacity has changed: update all parents\n                set_parents();\n                return j;\n            }\n        }\n\n        // ordered_json uses a vector internally, so pointers could have\n        // been invalidated; see https://github.com/nlohmann/json/issues/2962\n#ifdef JSON_HEDLEY_MSVC_VERSION\n#pragma warning(push )\n#pragma warning(disable : 4127) // ignore warning to replace if with if constexpr\n#endif\n        if (detail::is_ordered_map<object_t>::value)\n        {\n            set_parents();\n            return j;\n        }\n#ifdef JSON_HEDLEY_MSVC_VERSION\n#pragma warning( pop )\n#endif\n\n        j.m_parent = this;\n#else\n        static_cast<void>(j);\n        static_cast<void>(old_capacity);\n#endif\n        return j;\n    }\n\n  public:\n    //////////////////////////\n    // JSON parser callback //\n    //////////////////////////\n\n    /// @brief parser event types\n    /// @sa https://json.nlohmann.me/api/basic_json/parse_event_t/\n    using parse_event_t = detail::parse_event_t;\n\n    /// @brief per-element parser callback type\n    /// @sa https://json.nlohmann.me/api/basic_json/parser_callback_t/\n    using parser_callback_t = detail::parser_callback_t<basic_json>;\n\n    //////////////////\n    // constructors //\n    //////////////////\n\n    /// @name constructors and destructors\n    /// Constructors of class @ref basic_json, copy/move constructor, copy\n    /// assignment, static functions creating objects, and the destructor.\n    /// @{\n\n    /// @brief create an empty value with a given type\n    /// @sa https://json.nlohmann.me/api/basic_json/basic_json/\n    basic_json(const value_t v)\n        : m_data(v)\n    {\n        assert_invariant();\n    }\n\n    /// @brief create a null object\n    /// @sa https://json.nlohmann.me/api/basic_json/basic_json/\n    basic_json(std::nullptr_t = nullptr) noexcept // NOLINT(bugprone-exception-escape)\n        : basic_json(value_t::null)\n    {\n        assert_invariant();\n    }\n\n    /// @brief create a JSON value from compatible types\n    /// @sa https://json.nlohmann.me/api/basic_json/basic_json/\n    template < typename CompatibleType,\n               typename U = detail::uncvref_t<CompatibleType>,\n               detail::enable_if_t <\n                   !detail::is_basic_json<U>::value && detail::is_compatible_type<basic_json_t, U>::value, int > = 0 >\n    basic_json(CompatibleType && val) noexcept(noexcept( // NOLINT(bugprone-forwarding-reference-overload,bugprone-exception-escape)\n                JSONSerializer<U>::to_json(std::declval<basic_json_t&>(),\n                                           std::forward<CompatibleType>(val))))\n    {\n        JSONSerializer<U>::to_json(*this, std::forward<CompatibleType>(val));\n        set_parents();\n        assert_invariant();\n    }\n\n    /// @brief create a JSON value from an existing one\n    /// @sa https://json.nlohmann.me/api/basic_json/basic_json/\n    template < typename BasicJsonType,\n               detail::enable_if_t <\n                   detail::is_basic_json<BasicJsonType>::value&& !std::is_same<basic_json, BasicJsonType>::value, int > = 0 >\n    basic_json(const BasicJsonType& val)\n    {\n        using other_boolean_t = typename BasicJsonType::boolean_t;\n        using other_number_float_t = typename BasicJsonType::number_float_t;\n        using other_number_integer_t = typename BasicJsonType::number_integer_t;\n        using other_number_unsigned_t = typename BasicJsonType::number_unsigned_t;\n        using other_string_t = typename BasicJsonType::string_t;\n        using other_object_t = typename BasicJsonType::object_t;\n        using other_array_t = typename BasicJsonType::array_t;\n        using other_binary_t = typename BasicJsonType::binary_t;\n\n        switch (val.type())\n        {\n            case value_t::boolean:\n                JSONSerializer<other_boolean_t>::to_json(*this, val.template get<other_boolean_t>());\n                break;\n            case value_t::number_float:\n                JSONSerializer<other_number_float_t>::to_json(*this, val.template get<other_number_float_t>());\n                break;\n            case value_t::number_integer:\n                JSONSerializer<other_number_integer_t>::to_json(*this, val.template get<other_number_integer_t>());\n                break;\n            case value_t::number_unsigned:\n                JSONSerializer<other_number_unsigned_t>::to_json(*this, val.template get<other_number_unsigned_t>());\n                break;\n            case value_t::string:\n                JSONSerializer<other_string_t>::to_json(*this, val.template get_ref<const other_string_t&>());\n                break;\n            case value_t::object:\n                JSONSerializer<other_object_t>::to_json(*this, val.template get_ref<const other_object_t&>());\n                break;\n            case value_t::array:\n                JSONSerializer<other_array_t>::to_json(*this, val.template get_ref<const other_array_t&>());\n                break;\n            case value_t::binary:\n                JSONSerializer<other_binary_t>::to_json(*this, val.template get_ref<const other_binary_t&>());\n                break;\n            case value_t::null:\n                *this = nullptr;\n                break;\n            case value_t::discarded:\n                m_data.m_type = value_t::discarded;\n                break;\n            default:            // LCOV_EXCL_LINE\n                JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE\n        }\n        JSON_ASSERT(m_data.m_type == val.type());\n        set_parents();\n        assert_invariant();\n    }\n\n    /// @brief create a container (array or object) from an initializer list\n    /// @sa https://json.nlohmann.me/api/basic_json/basic_json/\n    basic_json(initializer_list_t init,\n               bool type_deduction = true,\n               value_t manual_type = value_t::array)\n    {\n        // check if each element is an array with two elements whose first\n        // element is a string\n        bool is_an_object = std::all_of(init.begin(), init.end(),\n                                        [](const detail::json_ref<basic_json>& element_ref)\n        {\n            return element_ref->is_array() && element_ref->size() == 2 && (*element_ref)[0].is_string();\n        });\n\n        // adjust type if type deduction is not wanted\n        if (!type_deduction)\n        {\n            // if array is wanted, do not create an object though possible\n            if (manual_type == value_t::array)\n            {\n                is_an_object = false;\n            }\n\n            // if object is wanted but impossible, throw an exception\n            if (JSON_HEDLEY_UNLIKELY(manual_type == value_t::object && !is_an_object))\n            {\n                JSON_THROW(type_error::create(301, \"cannot create object from initializer list\", nullptr));\n            }\n        }\n\n        if (is_an_object)\n        {\n            // the initializer list is a list of pairs -> create object\n            m_data.m_type = value_t::object;\n            m_data.m_value = value_t::object;\n\n            for (auto& element_ref : init)\n            {\n                auto element = element_ref.moved_or_copied();\n                m_data.m_value.object->emplace(\n                    std::move(*((*element.m_data.m_value.array)[0].m_data.m_value.string)),\n                    std::move((*element.m_data.m_value.array)[1]));\n            }\n        }\n        else\n        {\n            // the initializer list describes an array -> create array\n            m_data.m_type = value_t::array;\n            m_data.m_value.array = create<array_t>(init.begin(), init.end());\n        }\n\n        set_parents();\n        assert_invariant();\n    }\n\n    /// @brief explicitly create a binary array (without subtype)\n    /// @sa https://json.nlohmann.me/api/basic_json/binary/\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json binary(const typename binary_t::container_type& init)\n    {\n        auto res = basic_json();\n        res.m_data.m_type = value_t::binary;\n        res.m_data.m_value = init;\n        return res;\n    }\n\n    /// @brief explicitly create a binary array (with subtype)\n    /// @sa https://json.nlohmann.me/api/basic_json/binary/\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json binary(const typename binary_t::container_type& init, typename binary_t::subtype_type subtype)\n    {\n        auto res = basic_json();\n        res.m_data.m_type = value_t::binary;\n        res.m_data.m_value = binary_t(init, subtype);\n        return res;\n    }\n\n    /// @brief explicitly create a binary array\n    /// @sa https://json.nlohmann.me/api/basic_json/binary/\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json binary(typename binary_t::container_type&& init)\n    {\n        auto res = basic_json();\n        res.m_data.m_type = value_t::binary;\n        res.m_data.m_value = std::move(init);\n        return res;\n    }\n\n    /// @brief explicitly create a binary array (with subtype)\n    /// @sa https://json.nlohmann.me/api/basic_json/binary/\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json binary(typename binary_t::container_type&& init, typename binary_t::subtype_type subtype)\n    {\n        auto res = basic_json();\n        res.m_data.m_type = value_t::binary;\n        res.m_data.m_value = binary_t(std::move(init), subtype);\n        return res;\n    }\n\n    /// @brief explicitly create an array from an initializer list\n    /// @sa https://json.nlohmann.me/api/basic_json/array/\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json array(initializer_list_t init = {})\n    {\n        return basic_json(init, false, value_t::array);\n    }\n\n    /// @brief explicitly create an object from an initializer list\n    /// @sa https://json.nlohmann.me/api/basic_json/object/\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json object(initializer_list_t init = {})\n    {\n        return basic_json(init, false, value_t::object);\n    }\n\n    /// @brief construct an array with count copies of given value\n    /// @sa https://json.nlohmann.me/api/basic_json/basic_json/\n    basic_json(size_type cnt, const basic_json& val):\n        m_data{cnt, val}\n    {\n        set_parents();\n        assert_invariant();\n    }\n\n    /// @brief construct a JSON container given an iterator range\n    /// @sa https://json.nlohmann.me/api/basic_json/basic_json/\n    template < class InputIT, typename std::enable_if <\n                   std::is_same<InputIT, typename basic_json_t::iterator>::value ||\n                   std::is_same<InputIT, typename basic_json_t::const_iterator>::value, int >::type = 0 >\n    basic_json(InputIT first, InputIT last)\n    {\n        JSON_ASSERT(first.m_object != nullptr);\n        JSON_ASSERT(last.m_object != nullptr);\n\n        // make sure iterator fits the current value\n        if (JSON_HEDLEY_UNLIKELY(first.m_object != last.m_object))\n        {\n            JSON_THROW(invalid_iterator::create(201, \"iterators are not compatible\", nullptr));\n        }\n\n        // copy type from first iterator\n        m_data.m_type = first.m_object->m_data.m_type;\n\n        // check if iterator range is complete for primitive values\n        switch (m_data.m_type)\n        {\n            case value_t::boolean:\n            case value_t::number_float:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::string:\n            {\n                if (JSON_HEDLEY_UNLIKELY(!first.m_it.primitive_iterator.is_begin()\n                                         || !last.m_it.primitive_iterator.is_end()))\n                {\n                    JSON_THROW(invalid_iterator::create(204, \"iterators out of range\", first.m_object));\n                }\n                break;\n            }\n\n            case value_t::null:\n            case value_t::object:\n            case value_t::array:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n                break;\n        }\n\n        switch (m_data.m_type)\n        {\n            case value_t::number_integer:\n            {\n                m_data.m_value.number_integer = first.m_object->m_data.m_value.number_integer;\n                break;\n            }\n\n            case value_t::number_unsigned:\n            {\n                m_data.m_value.number_unsigned = first.m_object->m_data.m_value.number_unsigned;\n                break;\n            }\n\n            case value_t::number_float:\n            {\n                m_data.m_value.number_float = first.m_object->m_data.m_value.number_float;\n                break;\n            }\n\n            case value_t::boolean:\n            {\n                m_data.m_value.boolean = first.m_object->m_data.m_value.boolean;\n                break;\n            }\n\n            case value_t::string:\n            {\n                m_data.m_value = *first.m_object->m_data.m_value.string;\n                break;\n            }\n\n            case value_t::object:\n            {\n                m_data.m_value.object = create<object_t>(first.m_it.object_iterator,\n                                        last.m_it.object_iterator);\n                break;\n            }\n\n            case value_t::array:\n            {\n                m_data.m_value.array = create<array_t>(first.m_it.array_iterator,\n                                                       last.m_it.array_iterator);\n                break;\n            }\n\n            case value_t::binary:\n            {\n                m_data.m_value = *first.m_object->m_data.m_value.binary;\n                break;\n            }\n\n            case value_t::null:\n            case value_t::discarded:\n            default:\n                JSON_THROW(invalid_iterator::create(206, detail::concat(\"cannot construct with iterators from \", first.m_object->type_name()), first.m_object));\n        }\n\n        set_parents();\n        assert_invariant();\n    }\n\n\n    ///////////////////////////////////////\n    // other constructors and destructor //\n    ///////////////////////////////////////\n\n    template<typename JsonRef,\n             detail::enable_if_t<detail::conjunction<detail::is_json_ref<JsonRef>,\n                                 std::is_same<typename JsonRef::value_type, basic_json>>::value, int> = 0 >\n    basic_json(const JsonRef& ref) : basic_json(ref.moved_or_copied()) {}\n\n    /// @brief copy constructor\n    /// @sa https://json.nlohmann.me/api/basic_json/basic_json/\n    basic_json(const basic_json& other)\n        : json_base_class_t(other)\n    {\n        m_data.m_type = other.m_data.m_type;\n        // check of passed value is valid\n        other.assert_invariant();\n\n        switch (m_data.m_type)\n        {\n            case value_t::object:\n            {\n                m_data.m_value = *other.m_data.m_value.object;\n                break;\n            }\n\n            case value_t::array:\n            {\n                m_data.m_value = *other.m_data.m_value.array;\n                break;\n            }\n\n            case value_t::string:\n            {\n                m_data.m_value = *other.m_data.m_value.string;\n                break;\n            }\n\n            case value_t::boolean:\n            {\n                m_data.m_value = other.m_data.m_value.boolean;\n                break;\n            }\n\n            case value_t::number_integer:\n            {\n                m_data.m_value = other.m_data.m_value.number_integer;\n                break;\n            }\n\n            case value_t::number_unsigned:\n            {\n                m_data.m_value = other.m_data.m_value.number_unsigned;\n                break;\n            }\n\n            case value_t::number_float:\n            {\n                m_data.m_value = other.m_data.m_value.number_float;\n                break;\n            }\n\n            case value_t::binary:\n            {\n                m_data.m_value = *other.m_data.m_value.binary;\n                break;\n            }\n\n            case value_t::null:\n            case value_t::discarded:\n            default:\n                break;\n        }\n\n        set_parents();\n        assert_invariant();\n    }\n\n    /// @brief move constructor\n    /// @sa https://json.nlohmann.me/api/basic_json/basic_json/\n    basic_json(basic_json&& other) noexcept\n        : json_base_class_t(std::forward<json_base_class_t>(other)),\n          m_data(std::move(other.m_data))\n    {\n        // check that passed value is valid\n        other.assert_invariant(false);\n\n        // invalidate payload\n        other.m_data.m_type = value_t::null;\n        other.m_data.m_value = {};\n\n        set_parents();\n        assert_invariant();\n    }\n\n    /// @brief copy assignment\n    /// @sa https://json.nlohmann.me/api/basic_json/operator=/\n    basic_json& operator=(basic_json other) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value&&\n        std::is_nothrow_move_assignable<value_t>::value&&\n        std::is_nothrow_move_constructible<json_value>::value&&\n        std::is_nothrow_move_assignable<json_value>::value&&\n        std::is_nothrow_move_assignable<json_base_class_t>::value\n    )\n    {\n        // check that passed value is valid\n        other.assert_invariant();\n\n        using std::swap;\n        swap(m_data.m_type, other.m_data.m_type);\n        swap(m_data.m_value, other.m_data.m_value);\n        json_base_class_t::operator=(std::move(other));\n\n        set_parents();\n        assert_invariant();\n        return *this;\n    }\n\n    /// @brief destructor\n    /// @sa https://json.nlohmann.me/api/basic_json/~basic_json/\n    ~basic_json() noexcept\n    {\n        assert_invariant(false);\n    }\n\n    /// @}\n\n  public:\n    ///////////////////////\n    // object inspection //\n    ///////////////////////\n\n    /// @name object inspection\n    /// Functions to inspect the type of a JSON value.\n    /// @{\n\n    /// @brief serialization\n    /// @sa https://json.nlohmann.me/api/basic_json/dump/\n    string_t dump(const int indent = -1,\n                  const char indent_char = ' ',\n                  const bool ensure_ascii = false,\n                  const error_handler_t error_handler = error_handler_t::strict) const\n    {\n        string_t result;\n        serializer s(detail::output_adapter<char, string_t>(result), indent_char, error_handler);\n\n        if (indent >= 0)\n        {\n            s.dump(*this, true, ensure_ascii, static_cast<unsigned int>(indent));\n        }\n        else\n        {\n            s.dump(*this, false, ensure_ascii, 0);\n        }\n\n        return result;\n    }\n\n    /// @brief return the type of the JSON value (explicit)\n    /// @sa https://json.nlohmann.me/api/basic_json/type/\n    constexpr value_t type() const noexcept\n    {\n        return m_data.m_type;\n    }\n\n    /// @brief return whether type is primitive\n    /// @sa https://json.nlohmann.me/api/basic_json/is_primitive/\n    constexpr bool is_primitive() const noexcept\n    {\n        return is_null() || is_string() || is_boolean() || is_number() || is_binary();\n    }\n\n    /// @brief return whether type is structured\n    /// @sa https://json.nlohmann.me/api/basic_json/is_structured/\n    constexpr bool is_structured() const noexcept\n    {\n        return is_array() || is_object();\n    }\n\n    /// @brief return whether value is null\n    /// @sa https://json.nlohmann.me/api/basic_json/is_null/\n    constexpr bool is_null() const noexcept\n    {\n        return m_data.m_type == value_t::null;\n    }\n\n    /// @brief return whether value is a boolean\n    /// @sa https://json.nlohmann.me/api/basic_json/is_boolean/\n    constexpr bool is_boolean() const noexcept\n    {\n        return m_data.m_type == value_t::boolean;\n    }\n\n    /// @brief return whether value is a number\n    /// @sa https://json.nlohmann.me/api/basic_json/is_number/\n    constexpr bool is_number() const noexcept\n    {\n        return is_number_integer() || is_number_float();\n    }\n\n    /// @brief return whether value is an integer number\n    /// @sa https://json.nlohmann.me/api/basic_json/is_number_integer/\n    constexpr bool is_number_integer() const noexcept\n    {\n        return m_data.m_type == value_t::number_integer || m_data.m_type == value_t::number_unsigned;\n    }\n\n    /// @brief return whether value is an unsigned integer number\n    /// @sa https://json.nlohmann.me/api/basic_json/is_number_unsigned/\n    constexpr bool is_number_unsigned() const noexcept\n    {\n        return m_data.m_type == value_t::number_unsigned;\n    }\n\n    /// @brief return whether value is a floating-point number\n    /// @sa https://json.nlohmann.me/api/basic_json/is_number_float/\n    constexpr bool is_number_float() const noexcept\n    {\n        return m_data.m_type == value_t::number_float;\n    }\n\n    /// @brief return whether value is an object\n    /// @sa https://json.nlohmann.me/api/basic_json/is_object/\n    constexpr bool is_object() const noexcept\n    {\n        return m_data.m_type == value_t::object;\n    }\n\n    /// @brief return whether value is an array\n    /// @sa https://json.nlohmann.me/api/basic_json/is_array/\n    constexpr bool is_array() const noexcept\n    {\n        return m_data.m_type == value_t::array;\n    }\n\n    /// @brief return whether value is a string\n    /// @sa https://json.nlohmann.me/api/basic_json/is_string/\n    constexpr bool is_string() const noexcept\n    {\n        return m_data.m_type == value_t::string;\n    }\n\n    /// @brief return whether value is a binary array\n    /// @sa https://json.nlohmann.me/api/basic_json/is_binary/\n    constexpr bool is_binary() const noexcept\n    {\n        return m_data.m_type == value_t::binary;\n    }\n\n    /// @brief return whether value is discarded\n    /// @sa https://json.nlohmann.me/api/basic_json/is_discarded/\n    constexpr bool is_discarded() const noexcept\n    {\n        return m_data.m_type == value_t::discarded;\n    }\n\n    /// @brief return the type of the JSON value (implicit)\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_value_t/\n    constexpr operator value_t() const noexcept\n    {\n        return m_data.m_type;\n    }\n\n    /// @}\n\n  private:\n    //////////////////\n    // value access //\n    //////////////////\n\n    /// get a boolean (explicit)\n    boolean_t get_impl(boolean_t* /*unused*/) const\n    {\n        if (JSON_HEDLEY_LIKELY(is_boolean()))\n        {\n            return m_data.m_value.boolean;\n        }\n\n        JSON_THROW(type_error::create(302, detail::concat(\"type must be boolean, but is \", type_name()), this));\n    }\n\n    /// get a pointer to the value (object)\n    object_t* get_impl_ptr(object_t* /*unused*/) noexcept\n    {\n        return is_object() ? m_data.m_value.object : nullptr;\n    }\n\n    /// get a pointer to the value (object)\n    constexpr const object_t* get_impl_ptr(const object_t* /*unused*/) const noexcept\n    {\n        return is_object() ? m_data.m_value.object : nullptr;\n    }\n\n    /// get a pointer to the value (array)\n    array_t* get_impl_ptr(array_t* /*unused*/) noexcept\n    {\n        return is_array() ? m_data.m_value.array : nullptr;\n    }\n\n    /// get a pointer to the value (array)\n    constexpr const array_t* get_impl_ptr(const array_t* /*unused*/) const noexcept\n    {\n        return is_array() ? m_data.m_value.array : nullptr;\n    }\n\n    /// get a pointer to the value (string)\n    string_t* get_impl_ptr(string_t* /*unused*/) noexcept\n    {\n        return is_string() ? m_data.m_value.string : nullptr;\n    }\n\n    /// get a pointer to the value (string)\n    constexpr const string_t* get_impl_ptr(const string_t* /*unused*/) const noexcept\n    {\n        return is_string() ? m_data.m_value.string : nullptr;\n    }\n\n    /// get a pointer to the value (boolean)\n    boolean_t* get_impl_ptr(boolean_t* /*unused*/) noexcept\n    {\n        return is_boolean() ? &m_data.m_value.boolean : nullptr;\n    }\n\n    /// get a pointer to the value (boolean)\n    constexpr const boolean_t* get_impl_ptr(const boolean_t* /*unused*/) const noexcept\n    {\n        return is_boolean() ? &m_data.m_value.boolean : nullptr;\n    }\n\n    /// get a pointer to the value (integer number)\n    number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept\n    {\n        return is_number_integer() ? &m_data.m_value.number_integer : nullptr;\n    }\n\n    /// get a pointer to the value (integer number)\n    constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept\n    {\n        return is_number_integer() ? &m_data.m_value.number_integer : nullptr;\n    }\n\n    /// get a pointer to the value (unsigned number)\n    number_unsigned_t* get_impl_ptr(number_unsigned_t* /*unused*/) noexcept\n    {\n        return is_number_unsigned() ? &m_data.m_value.number_unsigned : nullptr;\n    }\n\n    /// get a pointer to the value (unsigned number)\n    constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t* /*unused*/) const noexcept\n    {\n        return is_number_unsigned() ? &m_data.m_value.number_unsigned : nullptr;\n    }\n\n    /// get a pointer to the value (floating-point number)\n    number_float_t* get_impl_ptr(number_float_t* /*unused*/) noexcept\n    {\n        return is_number_float() ? &m_data.m_value.number_float : nullptr;\n    }\n\n    /// get a pointer to the value (floating-point number)\n    constexpr const number_float_t* get_impl_ptr(const number_float_t* /*unused*/) const noexcept\n    {\n        return is_number_float() ? &m_data.m_value.number_float : nullptr;\n    }\n\n    /// get a pointer to the value (binary)\n    binary_t* get_impl_ptr(binary_t* /*unused*/) noexcept\n    {\n        return is_binary() ? m_data.m_value.binary : nullptr;\n    }\n\n    /// get a pointer to the value (binary)\n    constexpr const binary_t* get_impl_ptr(const binary_t* /*unused*/) const noexcept\n    {\n        return is_binary() ? m_data.m_value.binary : nullptr;\n    }\n\n    /*!\n    @brief helper function to implement get_ref()\n\n    This function helps to implement get_ref() without code duplication for\n    const and non-const overloads\n\n    @tparam ThisType will be deduced as `basic_json` or `const basic_json`\n\n    @throw type_error.303 if ReferenceType does not match underlying value\n    type of the current JSON\n    */\n    template<typename ReferenceType, typename ThisType>\n    static ReferenceType get_ref_impl(ThisType& obj)\n    {\n        // delegate the call to get_ptr<>()\n        auto* ptr = obj.template get_ptr<typename std::add_pointer<ReferenceType>::type>();\n\n        if (JSON_HEDLEY_LIKELY(ptr != nullptr))\n        {\n            return *ptr;\n        }\n\n        JSON_THROW(type_error::create(303, detail::concat(\"incompatible ReferenceType for get_ref, actual type is \", obj.type_name()), &obj));\n    }\n\n  public:\n    /// @name value access\n    /// Direct access to the stored value of a JSON value.\n    /// @{\n\n    /// @brief get a pointer value (implicit)\n    /// @sa https://json.nlohmann.me/api/basic_json/get_ptr/\n    template<typename PointerType, typename std::enable_if<\n                 std::is_pointer<PointerType>::value, int>::type = 0>\n    auto get_ptr() noexcept -> decltype(std::declval<basic_json_t&>().get_impl_ptr(std::declval<PointerType>()))\n    {\n        // delegate the call to get_impl_ptr<>()\n        return get_impl_ptr(static_cast<PointerType>(nullptr));\n    }\n\n    /// @brief get a pointer value (implicit)\n    /// @sa https://json.nlohmann.me/api/basic_json/get_ptr/\n    template < typename PointerType, typename std::enable_if <\n                   std::is_pointer<PointerType>::value&&\n                   std::is_const<typename std::remove_pointer<PointerType>::type>::value, int >::type = 0 >\n    constexpr auto get_ptr() const noexcept -> decltype(std::declval<const basic_json_t&>().get_impl_ptr(std::declval<PointerType>()))\n    {\n        // delegate the call to get_impl_ptr<>() const\n        return get_impl_ptr(static_cast<PointerType>(nullptr));\n    }\n\n  private:\n    /*!\n    @brief get a value (explicit)\n\n    Explicit type conversion between the JSON value and a compatible value\n    which is [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible)\n    and [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible).\n    The value is converted by calling the @ref json_serializer<ValueType>\n    `from_json()` method.\n\n    The function is equivalent to executing\n    @code {.cpp}\n    ValueType ret;\n    JSONSerializer<ValueType>::from_json(*this, ret);\n    return ret;\n    @endcode\n\n    This overloads is chosen if:\n    - @a ValueType is not @ref basic_json,\n    - @ref json_serializer<ValueType> has a `from_json()` method of the form\n      `void from_json(const basic_json&, ValueType&)`, and\n    - @ref json_serializer<ValueType> does not have a `from_json()` method of\n      the form `ValueType from_json(const basic_json&)`\n\n    @tparam ValueType the returned value type\n\n    @return copy of the JSON value, converted to @a ValueType\n\n    @throw what @ref json_serializer<ValueType> `from_json()` method throws\n\n    @liveexample{The example below shows several conversions from JSON values\n    to other types. There a few things to note: (1) Floating-point numbers can\n    be converted to integers\\, (2) A JSON array can be converted to a standard\n    `std::vector<short>`\\, (3) A JSON object can be converted to C++\n    associative containers such as `std::unordered_map<std::string\\,\n    json>`.,get__ValueType_const}\n\n    @since version 2.1.0\n    */\n    template < typename ValueType,\n               detail::enable_if_t <\n                   detail::is_default_constructible<ValueType>::value&&\n                   detail::has_from_json<basic_json_t, ValueType>::value,\n                   int > = 0 >\n    ValueType get_impl(detail::priority_tag<0> /*unused*/) const noexcept(noexcept(\n                JSONSerializer<ValueType>::from_json(std::declval<const basic_json_t&>(), std::declval<ValueType&>())))\n    {\n        auto ret = ValueType();\n        JSONSerializer<ValueType>::from_json(*this, ret);\n        return ret;\n    }\n\n    /*!\n    @brief get a value (explicit); special case\n\n    Explicit type conversion between the JSON value and a compatible value\n    which is **not** [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible)\n    and **not** [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible).\n    The value is converted by calling the @ref json_serializer<ValueType>\n    `from_json()` method.\n\n    The function is equivalent to executing\n    @code {.cpp}\n    return JSONSerializer<ValueType>::from_json(*this);\n    @endcode\n\n    This overloads is chosen if:\n    - @a ValueType is not @ref basic_json and\n    - @ref json_serializer<ValueType> has a `from_json()` method of the form\n      `ValueType from_json(const basic_json&)`\n\n    @note If @ref json_serializer<ValueType> has both overloads of\n    `from_json()`, this one is chosen.\n\n    @tparam ValueType the returned value type\n\n    @return copy of the JSON value, converted to @a ValueType\n\n    @throw what @ref json_serializer<ValueType> `from_json()` method throws\n\n    @since version 2.1.0\n    */\n    template < typename ValueType,\n               detail::enable_if_t <\n                   detail::has_non_default_from_json<basic_json_t, ValueType>::value,\n                   int > = 0 >\n    ValueType get_impl(detail::priority_tag<1> /*unused*/) const noexcept(noexcept(\n                JSONSerializer<ValueType>::from_json(std::declval<const basic_json_t&>())))\n    {\n        return JSONSerializer<ValueType>::from_json(*this);\n    }\n\n    /*!\n    @brief get special-case overload\n\n    This overloads converts the current @ref basic_json in a different\n    @ref basic_json type\n\n    @tparam BasicJsonType == @ref basic_json\n\n    @return a copy of *this, converted into @a BasicJsonType\n\n    @complexity Depending on the implementation of the called `from_json()`\n                method.\n\n    @since version 3.2.0\n    */\n    template < typename BasicJsonType,\n               detail::enable_if_t <\n                   detail::is_basic_json<BasicJsonType>::value,\n                   int > = 0 >\n    BasicJsonType get_impl(detail::priority_tag<2> /*unused*/) const\n    {\n        return *this;\n    }\n\n    /*!\n    @brief get special-case overload\n\n    This overloads avoids a lot of template boilerplate, it can be seen as the\n    identity method\n\n    @tparam BasicJsonType == @ref basic_json\n\n    @return a copy of *this\n\n    @complexity Constant.\n\n    @since version 2.1.0\n    */\n    template<typename BasicJsonType,\n             detail::enable_if_t<\n                 std::is_same<BasicJsonType, basic_json_t>::value,\n                 int> = 0>\n    basic_json get_impl(detail::priority_tag<3> /*unused*/) const\n    {\n        return *this;\n    }\n\n    /*!\n    @brief get a pointer value (explicit)\n    @copydoc get()\n    */\n    template<typename PointerType,\n             detail::enable_if_t<\n                 std::is_pointer<PointerType>::value,\n                 int> = 0>\n    constexpr auto get_impl(detail::priority_tag<4> /*unused*/) const noexcept\n    -> decltype(std::declval<const basic_json_t&>().template get_ptr<PointerType>())\n    {\n        // delegate the call to get_ptr\n        return get_ptr<PointerType>();\n    }\n\n  public:\n    /*!\n    @brief get a (pointer) value (explicit)\n\n    Performs explicit type conversion between the JSON value and a compatible value if required.\n\n    - If the requested type is a pointer to the internally stored JSON value that pointer is returned.\n    No copies are made.\n\n    - If the requested type is the current @ref basic_json, or a different @ref basic_json convertible\n    from the current @ref basic_json.\n\n    - Otherwise the value is converted by calling the @ref json_serializer<ValueType> `from_json()`\n    method.\n\n    @tparam ValueTypeCV the provided value type\n    @tparam ValueType the returned value type\n\n    @return copy of the JSON value, converted to @tparam ValueType if necessary\n\n    @throw what @ref json_serializer<ValueType> `from_json()` method throws if conversion is required\n\n    @since version 2.1.0\n    */\n    template < typename ValueTypeCV, typename ValueType = detail::uncvref_t<ValueTypeCV>>\n#if defined(JSON_HAS_CPP_14)\n    constexpr\n#endif\n    auto get() const noexcept(\n    noexcept(std::declval<const basic_json_t&>().template get_impl<ValueType>(detail::priority_tag<4> {})))\n    -> decltype(std::declval<const basic_json_t&>().template get_impl<ValueType>(detail::priority_tag<4> {}))\n    {\n        // we cannot static_assert on ValueTypeCV being non-const, because\n        // there is support for get<const basic_json_t>(), which is why we\n        // still need the uncvref\n        static_assert(!std::is_reference<ValueTypeCV>::value,\n                      \"get() cannot be used with reference types, you might want to use get_ref()\");\n        return get_impl<ValueType>(detail::priority_tag<4> {});\n    }\n\n    /*!\n    @brief get a pointer value (explicit)\n\n    Explicit pointer access to the internally stored JSON value. No copies are\n    made.\n\n    @warning The pointer becomes invalid if the underlying JSON object\n    changes.\n\n    @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref\n    object_t, @ref string_t, @ref boolean_t, @ref number_integer_t,\n    @ref number_unsigned_t, or @ref number_float_t.\n\n    @return pointer to the internally stored JSON value if the requested\n    pointer type @a PointerType fits to the JSON value; `nullptr` otherwise\n\n    @complexity Constant.\n\n    @liveexample{The example below shows how pointers to internal values of a\n    JSON value can be requested. Note that no type conversions are made and a\n    `nullptr` is returned if the value and the requested pointer type does not\n    match.,get__PointerType}\n\n    @sa see @ref get_ptr() for explicit pointer-member access\n\n    @since version 1.0.0\n    */\n    template<typename PointerType, typename std::enable_if<\n                 std::is_pointer<PointerType>::value, int>::type = 0>\n    auto get() noexcept -> decltype(std::declval<basic_json_t&>().template get_ptr<PointerType>())\n    {\n        // delegate the call to get_ptr\n        return get_ptr<PointerType>();\n    }\n\n    /// @brief get a value (explicit)\n    /// @sa https://json.nlohmann.me/api/basic_json/get_to/\n    template < typename ValueType,\n               detail::enable_if_t <\n                   !detail::is_basic_json<ValueType>::value&&\n                   detail::has_from_json<basic_json_t, ValueType>::value,\n                   int > = 0 >\n    ValueType & get_to(ValueType& v) const noexcept(noexcept(\n                JSONSerializer<ValueType>::from_json(std::declval<const basic_json_t&>(), v)))\n    {\n        JSONSerializer<ValueType>::from_json(*this, v);\n        return v;\n    }\n\n    // specialization to allow calling get_to with a basic_json value\n    // see https://github.com/nlohmann/json/issues/2175\n    template<typename ValueType,\n             detail::enable_if_t <\n                 detail::is_basic_json<ValueType>::value,\n                 int> = 0>\n    ValueType & get_to(ValueType& v) const\n    {\n        v = *this;\n        return v;\n    }\n\n    template <\n        typename T, std::size_t N,\n        typename Array = T (&)[N], // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)\n        detail::enable_if_t <\n            detail::has_from_json<basic_json_t, Array>::value, int > = 0 >\n    Array get_to(T (&v)[N]) const // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)\n    noexcept(noexcept(JSONSerializer<Array>::from_json(\n                          std::declval<const basic_json_t&>(), v)))\n    {\n        JSONSerializer<Array>::from_json(*this, v);\n        return v;\n    }\n\n    /// @brief get a reference value (implicit)\n    /// @sa https://json.nlohmann.me/api/basic_json/get_ref/\n    template<typename ReferenceType, typename std::enable_if<\n                 std::is_reference<ReferenceType>::value, int>::type = 0>\n    ReferenceType get_ref()\n    {\n        // delegate call to get_ref_impl\n        return get_ref_impl<ReferenceType>(*this);\n    }\n\n    /// @brief get a reference value (implicit)\n    /// @sa https://json.nlohmann.me/api/basic_json/get_ref/\n    template < typename ReferenceType, typename std::enable_if <\n                   std::is_reference<ReferenceType>::value&&\n                   std::is_const<typename std::remove_reference<ReferenceType>::type>::value, int >::type = 0 >\n    ReferenceType get_ref() const\n    {\n        // delegate call to get_ref_impl\n        return get_ref_impl<ReferenceType>(*this);\n    }\n\n    /*!\n    @brief get a value (implicit)\n\n    Implicit type conversion between the JSON value and a compatible value.\n    The call is realized by calling @ref get() const.\n\n    @tparam ValueType non-pointer type compatible to the JSON value, for\n    instance `int` for JSON integer numbers, `bool` for JSON booleans, or\n    `std::vector` types for JSON arrays. The character type of @ref string_t\n    as well as an initializer list of this type is excluded to avoid\n    ambiguities as these types implicitly convert to `std::string`.\n\n    @return copy of the JSON value, converted to type @a ValueType\n\n    @throw type_error.302 in case passed type @a ValueType is incompatible\n    to the JSON value type (e.g., the JSON value is of type boolean, but a\n    string is requested); see example below\n\n    @complexity Linear in the size of the JSON value.\n\n    @liveexample{The example below shows several conversions from JSON values\n    to other types. There a few things to note: (1) Floating-point numbers can\n    be converted to integers\\, (2) A JSON array can be converted to a standard\n    `std::vector<short>`\\, (3) A JSON object can be converted to C++\n    associative containers such as `std::unordered_map<std::string\\,\n    json>`.,operator__ValueType}\n\n    @since version 1.0.0\n    */\n    template < typename ValueType, typename std::enable_if <\n                   detail::conjunction <\n                       detail::negation<std::is_pointer<ValueType>>,\n                       detail::negation<std::is_same<ValueType, std::nullptr_t>>,\n                       detail::negation<std::is_same<ValueType, detail::json_ref<basic_json>>>,\n                                        detail::negation<std::is_same<ValueType, typename string_t::value_type>>,\n                                        detail::negation<detail::is_basic_json<ValueType>>,\n                                        detail::negation<std::is_same<ValueType, std::initializer_list<typename string_t::value_type>>>,\n#if defined(JSON_HAS_CPP_17) && (defined(__GNUC__) || (defined(_MSC_VER) && _MSC_VER >= 1910 && _MSC_VER <= 1914))\n                                                detail::negation<std::is_same<ValueType, std::string_view>>,\n#endif\n#if defined(JSON_HAS_CPP_17)\n                                                detail::negation<std::is_same<ValueType, std::any>>,\n#endif\n                                                detail::is_detected_lazy<detail::get_template_function, const basic_json_t&, ValueType>\n                                                >::value, int >::type = 0 >\n                                        JSON_EXPLICIT operator ValueType() const\n    {\n        // delegate the call to get<>() const\n        return get<ValueType>();\n    }\n\n    /// @brief get a binary value\n    /// @sa https://json.nlohmann.me/api/basic_json/get_binary/\n    binary_t& get_binary()\n    {\n        if (!is_binary())\n        {\n            JSON_THROW(type_error::create(302, detail::concat(\"type must be binary, but is \", type_name()), this));\n        }\n\n        return *get_ptr<binary_t*>();\n    }\n\n    /// @brief get a binary value\n    /// @sa https://json.nlohmann.me/api/basic_json/get_binary/\n    const binary_t& get_binary() const\n    {\n        if (!is_binary())\n        {\n            JSON_THROW(type_error::create(302, detail::concat(\"type must be binary, but is \", type_name()), this));\n        }\n\n        return *get_ptr<const binary_t*>();\n    }\n\n    /// @}\n\n\n    ////////////////////\n    // element access //\n    ////////////////////\n\n    /// @name element access\n    /// Access to the JSON value.\n    /// @{\n\n    /// @brief access specified array element with bounds checking\n    /// @sa https://json.nlohmann.me/api/basic_json/at/\n    reference at(size_type idx)\n    {\n        // at only works for arrays\n        if (JSON_HEDLEY_LIKELY(is_array()))\n        {\n            JSON_TRY\n            {\n                return set_parent(m_data.m_value.array->at(idx));\n            }\n            JSON_CATCH (std::out_of_range&)\n            {\n                // create better exception explanation\n                JSON_THROW(out_of_range::create(401, detail::concat(\"array index \", std::to_string(idx), \" is out of range\"), this));\n            }\n        }\n        else\n        {\n            JSON_THROW(type_error::create(304, detail::concat(\"cannot use at() with \", type_name()), this));\n        }\n    }\n\n    /// @brief access specified array element with bounds checking\n    /// @sa https://json.nlohmann.me/api/basic_json/at/\n    const_reference at(size_type idx) const\n    {\n        // at only works for arrays\n        if (JSON_HEDLEY_LIKELY(is_array()))\n        {\n            JSON_TRY\n            {\n                return m_data.m_value.array->at(idx);\n            }\n            JSON_CATCH (std::out_of_range&)\n            {\n                // create better exception explanation\n                JSON_THROW(out_of_range::create(401, detail::concat(\"array index \", std::to_string(idx), \" is out of range\"), this));\n            }\n        }\n        else\n        {\n            JSON_THROW(type_error::create(304, detail::concat(\"cannot use at() with \", type_name()), this));\n        }\n    }\n\n    /// @brief access specified object element with bounds checking\n    /// @sa https://json.nlohmann.me/api/basic_json/at/\n    reference at(const typename object_t::key_type& key)\n    {\n        // at only works for objects\n        if (JSON_HEDLEY_UNLIKELY(!is_object()))\n        {\n            JSON_THROW(type_error::create(304, detail::concat(\"cannot use at() with \", type_name()), this));\n        }\n\n        auto it = m_data.m_value.object->find(key);\n        if (it == m_data.m_value.object->end())\n        {\n            JSON_THROW(out_of_range::create(403, detail::concat(\"key '\", key, \"' not found\"), this));\n        }\n        return set_parent(it->second);\n    }\n\n    /// @brief access specified object element with bounds checking\n    /// @sa https://json.nlohmann.me/api/basic_json/at/\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value, int> = 0>\n    reference at(KeyType && key)\n    {\n        // at only works for objects\n        if (JSON_HEDLEY_UNLIKELY(!is_object()))\n        {\n            JSON_THROW(type_error::create(304, detail::concat(\"cannot use at() with \", type_name()), this));\n        }\n\n        auto it = m_data.m_value.object->find(std::forward<KeyType>(key));\n        if (it == m_data.m_value.object->end())\n        {\n            JSON_THROW(out_of_range::create(403, detail::concat(\"key '\", string_t(std::forward<KeyType>(key)), \"' not found\"), this));\n        }\n        return set_parent(it->second);\n    }\n\n    /// @brief access specified object element with bounds checking\n    /// @sa https://json.nlohmann.me/api/basic_json/at/\n    const_reference at(const typename object_t::key_type& key) const\n    {\n        // at only works for objects\n        if (JSON_HEDLEY_UNLIKELY(!is_object()))\n        {\n            JSON_THROW(type_error::create(304, detail::concat(\"cannot use at() with \", type_name()), this));\n        }\n\n        auto it = m_data.m_value.object->find(key);\n        if (it == m_data.m_value.object->end())\n        {\n            JSON_THROW(out_of_range::create(403, detail::concat(\"key '\", key, \"' not found\"), this));\n        }\n        return it->second;\n    }\n\n    /// @brief access specified object element with bounds checking\n    /// @sa https://json.nlohmann.me/api/basic_json/at/\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value, int> = 0>\n    const_reference at(KeyType && key) const\n    {\n        // at only works for objects\n        if (JSON_HEDLEY_UNLIKELY(!is_object()))\n        {\n            JSON_THROW(type_error::create(304, detail::concat(\"cannot use at() with \", type_name()), this));\n        }\n\n        auto it = m_data.m_value.object->find(std::forward<KeyType>(key));\n        if (it == m_data.m_value.object->end())\n        {\n            JSON_THROW(out_of_range::create(403, detail::concat(\"key '\", string_t(std::forward<KeyType>(key)), \"' not found\"), this));\n        }\n        return it->second;\n    }\n\n    /// @brief access specified array element\n    /// @sa https://json.nlohmann.me/api/basic_json/operator%5B%5D/\n    reference operator[](size_type idx)\n    {\n        // implicitly convert null value to an empty array\n        if (is_null())\n        {\n            m_data.m_type = value_t::array;\n            m_data.m_value.array = create<array_t>();\n            assert_invariant();\n        }\n\n        // operator[] only works for arrays\n        if (JSON_HEDLEY_LIKELY(is_array()))\n        {\n            // fill up array with null values if given idx is outside range\n            if (idx >= m_data.m_value.array->size())\n            {\n#if JSON_DIAGNOSTICS\n                // remember array size & capacity before resizing\n                const auto old_size = m_data.m_value.array->size();\n                const auto old_capacity = m_data.m_value.array->capacity();\n#endif\n                m_data.m_value.array->resize(idx + 1);\n\n#if JSON_DIAGNOSTICS\n                if (JSON_HEDLEY_UNLIKELY(m_data.m_value.array->capacity() != old_capacity))\n                {\n                    // capacity has changed: update all parents\n                    set_parents();\n                }\n                else\n                {\n                    // set parent for values added above\n                    set_parents(begin() + static_cast<typename iterator::difference_type>(old_size), static_cast<typename iterator::difference_type>(idx + 1 - old_size));\n                }\n#endif\n                assert_invariant();\n            }\n\n            return m_data.m_value.array->operator[](idx);\n        }\n\n        JSON_THROW(type_error::create(305, detail::concat(\"cannot use operator[] with a numeric argument with \", type_name()), this));\n    }\n\n    /// @brief access specified array element\n    /// @sa https://json.nlohmann.me/api/basic_json/operator%5B%5D/\n    const_reference operator[](size_type idx) const\n    {\n        // const operator[] only works for arrays\n        if (JSON_HEDLEY_LIKELY(is_array()))\n        {\n            return m_data.m_value.array->operator[](idx);\n        }\n\n        JSON_THROW(type_error::create(305, detail::concat(\"cannot use operator[] with a numeric argument with \", type_name()), this));\n    }\n\n    /// @brief access specified object element\n    /// @sa https://json.nlohmann.me/api/basic_json/operator%5B%5D/\n    reference operator[](typename object_t::key_type key)\n    {\n        // implicitly convert null value to an empty object\n        if (is_null())\n        {\n            m_data.m_type = value_t::object;\n            m_data.m_value.object = create<object_t>();\n            assert_invariant();\n        }\n\n        // operator[] only works for objects\n        if (JSON_HEDLEY_LIKELY(is_object()))\n        {\n            auto result = m_data.m_value.object->emplace(std::move(key), nullptr);\n            return set_parent(result.first->second);\n        }\n\n        JSON_THROW(type_error::create(305, detail::concat(\"cannot use operator[] with a string argument with \", type_name()), this));\n    }\n\n    /// @brief access specified object element\n    /// @sa https://json.nlohmann.me/api/basic_json/operator%5B%5D/\n    const_reference operator[](const typename object_t::key_type& key) const\n    {\n        // const operator[] only works for objects\n        if (JSON_HEDLEY_LIKELY(is_object()))\n        {\n            auto it = m_data.m_value.object->find(key);\n            JSON_ASSERT(it != m_data.m_value.object->end());\n            return it->second;\n        }\n\n        JSON_THROW(type_error::create(305, detail::concat(\"cannot use operator[] with a string argument with \", type_name()), this));\n    }\n\n    // these two functions resolve a (const) char * ambiguity affecting Clang and MSVC\n    // (they seemingly cannot be constrained to resolve the ambiguity)\n    template<typename T>\n    reference operator[](T* key)\n    {\n        return operator[](typename object_t::key_type(key));\n    }\n\n    template<typename T>\n    const_reference operator[](T* key) const\n    {\n        return operator[](typename object_t::key_type(key));\n    }\n\n    /// @brief access specified object element\n    /// @sa https://json.nlohmann.me/api/basic_json/operator%5B%5D/\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value, int > = 0 >\n    reference operator[](KeyType && key)\n    {\n        // implicitly convert null value to an empty object\n        if (is_null())\n        {\n            m_data.m_type = value_t::object;\n            m_data.m_value.object = create<object_t>();\n            assert_invariant();\n        }\n\n        // operator[] only works for objects\n        if (JSON_HEDLEY_LIKELY(is_object()))\n        {\n            auto result = m_data.m_value.object->emplace(std::forward<KeyType>(key), nullptr);\n            return set_parent(result.first->second);\n        }\n\n        JSON_THROW(type_error::create(305, detail::concat(\"cannot use operator[] with a string argument with \", type_name()), this));\n    }\n\n    /// @brief access specified object element\n    /// @sa https://json.nlohmann.me/api/basic_json/operator%5B%5D/\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value, int > = 0 >\n    const_reference operator[](KeyType && key) const\n    {\n        // const operator[] only works for objects\n        if (JSON_HEDLEY_LIKELY(is_object()))\n        {\n            auto it = m_data.m_value.object->find(std::forward<KeyType>(key));\n            JSON_ASSERT(it != m_data.m_value.object->end());\n            return it->second;\n        }\n\n        JSON_THROW(type_error::create(305, detail::concat(\"cannot use operator[] with a string argument with \", type_name()), this));\n    }\n\n  private:\n    template<typename KeyType>\n    using is_comparable_with_object_key = detail::is_comparable <\n        object_comparator_t, const typename object_t::key_type&, KeyType >;\n\n    template<typename ValueType>\n    using value_return_type = std::conditional <\n        detail::is_c_string_uncvref<ValueType>::value,\n        string_t, typename std::decay<ValueType>::type >;\n\n  public:\n    /// @brief access specified object element with default value\n    /// @sa https://json.nlohmann.me/api/basic_json/value/\n    template < class ValueType, detail::enable_if_t <\n                   !detail::is_transparent<object_comparator_t>::value\n                   && detail::is_getable<basic_json_t, ValueType>::value\n                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value, int > = 0 >\n    ValueType value(const typename object_t::key_type& key, const ValueType& default_value) const\n    {\n        // value only works for objects\n        if (JSON_HEDLEY_LIKELY(is_object()))\n        {\n            // if key is found, return value and given default value otherwise\n            const auto it = find(key);\n            if (it != end())\n            {\n                return it->template get<ValueType>();\n            }\n\n            return default_value;\n        }\n\n        JSON_THROW(type_error::create(306, detail::concat(\"cannot use value() with \", type_name()), this));\n    }\n\n    /// @brief access specified object element with default value\n    /// @sa https://json.nlohmann.me/api/basic_json/value/\n    template < class ValueType, class ReturnType = typename value_return_type<ValueType>::type,\n               detail::enable_if_t <\n                   !detail::is_transparent<object_comparator_t>::value\n                   && detail::is_getable<basic_json_t, ReturnType>::value\n                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value, int > = 0 >\n    ReturnType value(const typename object_t::key_type& key, ValueType && default_value) const\n    {\n        // value only works for objects\n        if (JSON_HEDLEY_LIKELY(is_object()))\n        {\n            // if key is found, return value and given default value otherwise\n            const auto it = find(key);\n            if (it != end())\n            {\n                return it->template get<ReturnType>();\n            }\n\n            return std::forward<ValueType>(default_value);\n        }\n\n        JSON_THROW(type_error::create(306, detail::concat(\"cannot use value() with \", type_name()), this));\n    }\n\n    /// @brief access specified object element with default value\n    /// @sa https://json.nlohmann.me/api/basic_json/value/\n    template < class ValueType, class KeyType, detail::enable_if_t <\n                   detail::is_transparent<object_comparator_t>::value\n                   && !detail::is_json_pointer<KeyType>::value\n                   && is_comparable_with_object_key<KeyType>::value\n                   && detail::is_getable<basic_json_t, ValueType>::value\n                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value, int > = 0 >\n    ValueType value(KeyType && key, const ValueType& default_value) const\n    {\n        // value only works for objects\n        if (JSON_HEDLEY_LIKELY(is_object()))\n        {\n            // if key is found, return value and given default value otherwise\n            const auto it = find(std::forward<KeyType>(key));\n            if (it != end())\n            {\n                return it->template get<ValueType>();\n            }\n\n            return default_value;\n        }\n\n        JSON_THROW(type_error::create(306, detail::concat(\"cannot use value() with \", type_name()), this));\n    }\n\n    /// @brief access specified object element via JSON Pointer with default value\n    /// @sa https://json.nlohmann.me/api/basic_json/value/\n    template < class ValueType, class KeyType, class ReturnType = typename value_return_type<ValueType>::type,\n               detail::enable_if_t <\n                   detail::is_transparent<object_comparator_t>::value\n                   && !detail::is_json_pointer<KeyType>::value\n                   && is_comparable_with_object_key<KeyType>::value\n                   && detail::is_getable<basic_json_t, ReturnType>::value\n                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value, int > = 0 >\n    ReturnType value(KeyType && key, ValueType && default_value) const\n    {\n        // value only works for objects\n        if (JSON_HEDLEY_LIKELY(is_object()))\n        {\n            // if key is found, return value and given default value otherwise\n            const auto it = find(std::forward<KeyType>(key));\n            if (it != end())\n            {\n                return it->template get<ReturnType>();\n            }\n\n            return std::forward<ValueType>(default_value);\n        }\n\n        JSON_THROW(type_error::create(306, detail::concat(\"cannot use value() with \", type_name()), this));\n    }\n\n    /// @brief access specified object element via JSON Pointer with default value\n    /// @sa https://json.nlohmann.me/api/basic_json/value/\n    template < class ValueType, detail::enable_if_t <\n                   detail::is_getable<basic_json_t, ValueType>::value\n                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value, int > = 0 >\n    ValueType value(const json_pointer& ptr, const ValueType& default_value) const\n    {\n        // value only works for objects\n        if (JSON_HEDLEY_LIKELY(is_object()))\n        {\n            // if pointer resolves a value, return it or use default value\n            JSON_TRY\n            {\n                return ptr.get_checked(this).template get<ValueType>();\n            }\n            JSON_INTERNAL_CATCH (out_of_range&)\n            {\n                return default_value;\n            }\n        }\n\n        JSON_THROW(type_error::create(306, detail::concat(\"cannot use value() with \", type_name()), this));\n    }\n\n    /// @brief access specified object element via JSON Pointer with default value\n    /// @sa https://json.nlohmann.me/api/basic_json/value/\n    template < class ValueType, class ReturnType = typename value_return_type<ValueType>::type,\n               detail::enable_if_t <\n                   detail::is_getable<basic_json_t, ReturnType>::value\n                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value, int > = 0 >\n    ReturnType value(const json_pointer& ptr, ValueType && default_value) const\n    {\n        // value only works for objects\n        if (JSON_HEDLEY_LIKELY(is_object()))\n        {\n            // if pointer resolves a value, return it or use default value\n            JSON_TRY\n            {\n                return ptr.get_checked(this).template get<ReturnType>();\n            }\n            JSON_INTERNAL_CATCH (out_of_range&)\n            {\n                return std::forward<ValueType>(default_value);\n            }\n        }\n\n        JSON_THROW(type_error::create(306, detail::concat(\"cannot use value() with \", type_name()), this));\n    }\n\n    template < class ValueType, class BasicJsonType, detail::enable_if_t <\n                   detail::is_basic_json<BasicJsonType>::value\n                   && detail::is_getable<basic_json_t, ValueType>::value\n                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value, int > = 0 >\n    JSON_HEDLEY_DEPRECATED_FOR(3.11.0, basic_json::json_pointer or nlohmann::json_pointer<basic_json::string_t>) // NOLINT(readability/alt_tokens)\n    ValueType value(const ::nlohmann::json_pointer<BasicJsonType>& ptr, const ValueType& default_value) const\n    {\n        return value(ptr.convert(), default_value);\n    }\n\n    template < class ValueType, class BasicJsonType, class ReturnType = typename value_return_type<ValueType>::type,\n               detail::enable_if_t <\n                   detail::is_basic_json<BasicJsonType>::value\n                   && detail::is_getable<basic_json_t, ReturnType>::value\n                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value, int > = 0 >\n    JSON_HEDLEY_DEPRECATED_FOR(3.11.0, basic_json::json_pointer or nlohmann::json_pointer<basic_json::string_t>) // NOLINT(readability/alt_tokens)\n    ReturnType value(const ::nlohmann::json_pointer<BasicJsonType>& ptr, ValueType && default_value) const\n    {\n        return value(ptr.convert(), std::forward<ValueType>(default_value));\n    }\n\n    /// @brief access the first element\n    /// @sa https://json.nlohmann.me/api/basic_json/front/\n    reference front()\n    {\n        return *begin();\n    }\n\n    /// @brief access the first element\n    /// @sa https://json.nlohmann.me/api/basic_json/front/\n    const_reference front() const\n    {\n        return *cbegin();\n    }\n\n    /// @brief access the last element\n    /// @sa https://json.nlohmann.me/api/basic_json/back/\n    reference back()\n    {\n        auto tmp = end();\n        --tmp;\n        return *tmp;\n    }\n\n    /// @brief access the last element\n    /// @sa https://json.nlohmann.me/api/basic_json/back/\n    const_reference back() const\n    {\n        auto tmp = cend();\n        --tmp;\n        return *tmp;\n    }\n\n    /// @brief remove element given an iterator\n    /// @sa https://json.nlohmann.me/api/basic_json/erase/\n    template < class IteratorType, detail::enable_if_t <\n                   std::is_same<IteratorType, typename basic_json_t::iterator>::value ||\n                   std::is_same<IteratorType, typename basic_json_t::const_iterator>::value, int > = 0 >\n    IteratorType erase(IteratorType pos)\n    {\n        // make sure iterator fits the current value\n        if (JSON_HEDLEY_UNLIKELY(this != pos.m_object))\n        {\n            JSON_THROW(invalid_iterator::create(202, \"iterator does not fit current value\", this));\n        }\n\n        IteratorType result = end();\n\n        switch (m_data.m_type)\n        {\n            case value_t::boolean:\n            case value_t::number_float:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::string:\n            case value_t::binary:\n            {\n                if (JSON_HEDLEY_UNLIKELY(!pos.m_it.primitive_iterator.is_begin()))\n                {\n                    JSON_THROW(invalid_iterator::create(205, \"iterator out of range\", this));\n                }\n\n                if (is_string())\n                {\n                    AllocatorType<string_t> alloc;\n                    std::allocator_traits<decltype(alloc)>::destroy(alloc, m_data.m_value.string);\n                    std::allocator_traits<decltype(alloc)>::deallocate(alloc, m_data.m_value.string, 1);\n                    m_data.m_value.string = nullptr;\n                }\n                else if (is_binary())\n                {\n                    AllocatorType<binary_t> alloc;\n                    std::allocator_traits<decltype(alloc)>::destroy(alloc, m_data.m_value.binary);\n                    std::allocator_traits<decltype(alloc)>::deallocate(alloc, m_data.m_value.binary, 1);\n                    m_data.m_value.binary = nullptr;\n                }\n\n                m_data.m_type = value_t::null;\n                assert_invariant();\n                break;\n            }\n\n            case value_t::object:\n            {\n                result.m_it.object_iterator = m_data.m_value.object->erase(pos.m_it.object_iterator);\n                break;\n            }\n\n            case value_t::array:\n            {\n                result.m_it.array_iterator = m_data.m_value.array->erase(pos.m_it.array_iterator);\n                break;\n            }\n\n            case value_t::null:\n            case value_t::discarded:\n            default:\n                JSON_THROW(type_error::create(307, detail::concat(\"cannot use erase() with \", type_name()), this));\n        }\n\n        return result;\n    }\n\n    /// @brief remove elements given an iterator range\n    /// @sa https://json.nlohmann.me/api/basic_json/erase/\n    template < class IteratorType, detail::enable_if_t <\n                   std::is_same<IteratorType, typename basic_json_t::iterator>::value ||\n                   std::is_same<IteratorType, typename basic_json_t::const_iterator>::value, int > = 0 >\n    IteratorType erase(IteratorType first, IteratorType last)\n    {\n        // make sure iterator fits the current value\n        if (JSON_HEDLEY_UNLIKELY(this != first.m_object || this != last.m_object))\n        {\n            JSON_THROW(invalid_iterator::create(203, \"iterators do not fit current value\", this));\n        }\n\n        IteratorType result = end();\n\n        switch (m_data.m_type)\n        {\n            case value_t::boolean:\n            case value_t::number_float:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::string:\n            case value_t::binary:\n            {\n                if (JSON_HEDLEY_LIKELY(!first.m_it.primitive_iterator.is_begin()\n                                       || !last.m_it.primitive_iterator.is_end()))\n                {\n                    JSON_THROW(invalid_iterator::create(204, \"iterators out of range\", this));\n                }\n\n                if (is_string())\n                {\n                    AllocatorType<string_t> alloc;\n                    std::allocator_traits<decltype(alloc)>::destroy(alloc, m_data.m_value.string);\n                    std::allocator_traits<decltype(alloc)>::deallocate(alloc, m_data.m_value.string, 1);\n                    m_data.m_value.string = nullptr;\n                }\n                else if (is_binary())\n                {\n                    AllocatorType<binary_t> alloc;\n                    std::allocator_traits<decltype(alloc)>::destroy(alloc, m_data.m_value.binary);\n                    std::allocator_traits<decltype(alloc)>::deallocate(alloc, m_data.m_value.binary, 1);\n                    m_data.m_value.binary = nullptr;\n                }\n\n                m_data.m_type = value_t::null;\n                assert_invariant();\n                break;\n            }\n\n            case value_t::object:\n            {\n                result.m_it.object_iterator = m_data.m_value.object->erase(first.m_it.object_iterator,\n                                              last.m_it.object_iterator);\n                break;\n            }\n\n            case value_t::array:\n            {\n                result.m_it.array_iterator = m_data.m_value.array->erase(first.m_it.array_iterator,\n                                             last.m_it.array_iterator);\n                break;\n            }\n\n            case value_t::null:\n            case value_t::discarded:\n            default:\n                JSON_THROW(type_error::create(307, detail::concat(\"cannot use erase() with \", type_name()), this));\n        }\n\n        return result;\n    }\n\n  private:\n    template < typename KeyType, detail::enable_if_t <\n                   detail::has_erase_with_key_type<basic_json_t, KeyType>::value, int > = 0 >\n    size_type erase_internal(KeyType && key)\n    {\n        // this erase only works for objects\n        if (JSON_HEDLEY_UNLIKELY(!is_object()))\n        {\n            JSON_THROW(type_error::create(307, detail::concat(\"cannot use erase() with \", type_name()), this));\n        }\n\n        return m_data.m_value.object->erase(std::forward<KeyType>(key));\n    }\n\n    template < typename KeyType, detail::enable_if_t <\n                   !detail::has_erase_with_key_type<basic_json_t, KeyType>::value, int > = 0 >\n    size_type erase_internal(KeyType && key)\n    {\n        // this erase only works for objects\n        if (JSON_HEDLEY_UNLIKELY(!is_object()))\n        {\n            JSON_THROW(type_error::create(307, detail::concat(\"cannot use erase() with \", type_name()), this));\n        }\n\n        const auto it = m_data.m_value.object->find(std::forward<KeyType>(key));\n        if (it != m_data.m_value.object->end())\n        {\n            m_data.m_value.object->erase(it);\n            return 1;\n        }\n        return 0;\n    }\n\n  public:\n\n    /// @brief remove element from a JSON object given a key\n    /// @sa https://json.nlohmann.me/api/basic_json/erase/\n    size_type erase(const typename object_t::key_type& key)\n    {\n        // the indirection via erase_internal() is added to avoid making this\n        // function a template and thus de-rank it during overload resolution\n        return erase_internal(key);\n    }\n\n    /// @brief remove element from a JSON object given a key\n    /// @sa https://json.nlohmann.me/api/basic_json/erase/\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value, int> = 0>\n    size_type erase(KeyType && key)\n    {\n        return erase_internal(std::forward<KeyType>(key));\n    }\n\n    /// @brief remove element from a JSON array given an index\n    /// @sa https://json.nlohmann.me/api/basic_json/erase/\n    void erase(const size_type idx)\n    {\n        // this erase only works for arrays\n        if (JSON_HEDLEY_LIKELY(is_array()))\n        {\n            if (JSON_HEDLEY_UNLIKELY(idx >= size()))\n            {\n                JSON_THROW(out_of_range::create(401, detail::concat(\"array index \", std::to_string(idx), \" is out of range\"), this));\n            }\n\n            m_data.m_value.array->erase(m_data.m_value.array->begin() + static_cast<difference_type>(idx));\n        }\n        else\n        {\n            JSON_THROW(type_error::create(307, detail::concat(\"cannot use erase() with \", type_name()), this));\n        }\n    }\n\n    /// @}\n\n\n    ////////////\n    // lookup //\n    ////////////\n\n    /// @name lookup\n    /// @{\n\n    /// @brief find an element in a JSON object\n    /// @sa https://json.nlohmann.me/api/basic_json/find/\n    iterator find(const typename object_t::key_type& key)\n    {\n        auto result = end();\n\n        if (is_object())\n        {\n            result.m_it.object_iterator = m_data.m_value.object->find(key);\n        }\n\n        return result;\n    }\n\n    /// @brief find an element in a JSON object\n    /// @sa https://json.nlohmann.me/api/basic_json/find/\n    const_iterator find(const typename object_t::key_type& key) const\n    {\n        auto result = cend();\n\n        if (is_object())\n        {\n            result.m_it.object_iterator = m_data.m_value.object->find(key);\n        }\n\n        return result;\n    }\n\n    /// @brief find an element in a JSON object\n    /// @sa https://json.nlohmann.me/api/basic_json/find/\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value, int> = 0>\n    iterator find(KeyType && key)\n    {\n        auto result = end();\n\n        if (is_object())\n        {\n            result.m_it.object_iterator = m_data.m_value.object->find(std::forward<KeyType>(key));\n        }\n\n        return result;\n    }\n\n    /// @brief find an element in a JSON object\n    /// @sa https://json.nlohmann.me/api/basic_json/find/\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value, int> = 0>\n    const_iterator find(KeyType && key) const\n    {\n        auto result = cend();\n\n        if (is_object())\n        {\n            result.m_it.object_iterator = m_data.m_value.object->find(std::forward<KeyType>(key));\n        }\n\n        return result;\n    }\n\n    /// @brief returns the number of occurrences of a key in a JSON object\n    /// @sa https://json.nlohmann.me/api/basic_json/count/\n    size_type count(const typename object_t::key_type& key) const\n    {\n        // return 0 for all nonobject types\n        return is_object() ? m_data.m_value.object->count(key) : 0;\n    }\n\n    /// @brief returns the number of occurrences of a key in a JSON object\n    /// @sa https://json.nlohmann.me/api/basic_json/count/\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value, int> = 0>\n    size_type count(KeyType && key) const\n    {\n        // return 0 for all nonobject types\n        return is_object() ? m_data.m_value.object->count(std::forward<KeyType>(key)) : 0;\n    }\n\n    /// @brief check the existence of an element in a JSON object\n    /// @sa https://json.nlohmann.me/api/basic_json/contains/\n    bool contains(const typename object_t::key_type& key) const\n    {\n        return is_object() && m_data.m_value.object->find(key) != m_data.m_value.object->end();\n    }\n\n    /// @brief check the existence of an element in a JSON object\n    /// @sa https://json.nlohmann.me/api/basic_json/contains/\n    template<class KeyType, detail::enable_if_t<\n                 detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value, int> = 0>\n    bool contains(KeyType && key) const\n    {\n        return is_object() && m_data.m_value.object->find(std::forward<KeyType>(key)) != m_data.m_value.object->end();\n    }\n\n    /// @brief check the existence of an element in a JSON object given a JSON pointer\n    /// @sa https://json.nlohmann.me/api/basic_json/contains/\n    bool contains(const json_pointer& ptr) const\n    {\n        return ptr.contains(this);\n    }\n\n    template<typename BasicJsonType, detail::enable_if_t<detail::is_basic_json<BasicJsonType>::value, int> = 0>\n    JSON_HEDLEY_DEPRECATED_FOR(3.11.0, basic_json::json_pointer or nlohmann::json_pointer<basic_json::string_t>) // NOLINT(readability/alt_tokens)\n    bool contains(const typename ::nlohmann::json_pointer<BasicJsonType>& ptr) const\n    {\n        return ptr.contains(this);\n    }\n\n    /// @}\n\n\n    ///////////////\n    // iterators //\n    ///////////////\n\n    /// @name iterators\n    /// @{\n\n    /// @brief returns an iterator to the first element\n    /// @sa https://json.nlohmann.me/api/basic_json/begin/\n    iterator begin() noexcept\n    {\n        iterator result(this);\n        result.set_begin();\n        return result;\n    }\n\n    /// @brief returns an iterator to the first element\n    /// @sa https://json.nlohmann.me/api/basic_json/begin/\n    const_iterator begin() const noexcept\n    {\n        return cbegin();\n    }\n\n    /// @brief returns a const iterator to the first element\n    /// @sa https://json.nlohmann.me/api/basic_json/cbegin/\n    const_iterator cbegin() const noexcept\n    {\n        const_iterator result(this);\n        result.set_begin();\n        return result;\n    }\n\n    /// @brief returns an iterator to one past the last element\n    /// @sa https://json.nlohmann.me/api/basic_json/end/\n    iterator end() noexcept\n    {\n        iterator result(this);\n        result.set_end();\n        return result;\n    }\n\n    /// @brief returns an iterator to one past the last element\n    /// @sa https://json.nlohmann.me/api/basic_json/end/\n    const_iterator end() const noexcept\n    {\n        return cend();\n    }\n\n    /// @brief returns an iterator to one past the last element\n    /// @sa https://json.nlohmann.me/api/basic_json/cend/\n    const_iterator cend() const noexcept\n    {\n        const_iterator result(this);\n        result.set_end();\n        return result;\n    }\n\n    /// @brief returns an iterator to the reverse-beginning\n    /// @sa https://json.nlohmann.me/api/basic_json/rbegin/\n    reverse_iterator rbegin() noexcept\n    {\n        return reverse_iterator(end());\n    }\n\n    /// @brief returns an iterator to the reverse-beginning\n    /// @sa https://json.nlohmann.me/api/basic_json/rbegin/\n    const_reverse_iterator rbegin() const noexcept\n    {\n        return crbegin();\n    }\n\n    /// @brief returns an iterator to the reverse-end\n    /// @sa https://json.nlohmann.me/api/basic_json/rend/\n    reverse_iterator rend() noexcept\n    {\n        return reverse_iterator(begin());\n    }\n\n    /// @brief returns an iterator to the reverse-end\n    /// @sa https://json.nlohmann.me/api/basic_json/rend/\n    const_reverse_iterator rend() const noexcept\n    {\n        return crend();\n    }\n\n    /// @brief returns a const reverse iterator to the last element\n    /// @sa https://json.nlohmann.me/api/basic_json/crbegin/\n    const_reverse_iterator crbegin() const noexcept\n    {\n        return const_reverse_iterator(cend());\n    }\n\n    /// @brief returns a const reverse iterator to one before the first\n    /// @sa https://json.nlohmann.me/api/basic_json/crend/\n    const_reverse_iterator crend() const noexcept\n    {\n        return const_reverse_iterator(cbegin());\n    }\n\n  public:\n    /// @brief wrapper to access iterator member functions in range-based for\n    /// @sa https://json.nlohmann.me/api/basic_json/items/\n    /// @deprecated This function is deprecated since 3.1.0 and will be removed in\n    ///             version 4.0.0 of the library. Please use @ref items() instead;\n    ///             that is, replace `json::iterator_wrapper(j)` with `j.items()`.\n    JSON_HEDLEY_DEPRECATED_FOR(3.1.0, items())\n    static iteration_proxy<iterator> iterator_wrapper(reference ref) noexcept\n    {\n        return ref.items();\n    }\n\n    /// @brief wrapper to access iterator member functions in range-based for\n    /// @sa https://json.nlohmann.me/api/basic_json/items/\n    /// @deprecated This function is deprecated since 3.1.0 and will be removed in\n    ///         version 4.0.0 of the library. Please use @ref items() instead;\n    ///         that is, replace `json::iterator_wrapper(j)` with `j.items()`.\n    JSON_HEDLEY_DEPRECATED_FOR(3.1.0, items())\n    static iteration_proxy<const_iterator> iterator_wrapper(const_reference ref) noexcept\n    {\n        return ref.items();\n    }\n\n    /// @brief helper to access iterator member functions in range-based for\n    /// @sa https://json.nlohmann.me/api/basic_json/items/\n    iteration_proxy<iterator> items() noexcept\n    {\n        return iteration_proxy<iterator>(*this);\n    }\n\n    /// @brief helper to access iterator member functions in range-based for\n    /// @sa https://json.nlohmann.me/api/basic_json/items/\n    iteration_proxy<const_iterator> items() const noexcept\n    {\n        return iteration_proxy<const_iterator>(*this);\n    }\n\n    /// @}\n\n\n    //////////////\n    // capacity //\n    //////////////\n\n    /// @name capacity\n    /// @{\n\n    /// @brief checks whether the container is empty.\n    /// @sa https://json.nlohmann.me/api/basic_json/empty/\n    bool empty() const noexcept\n    {\n        switch (m_data.m_type)\n        {\n            case value_t::null:\n            {\n                // null values are empty\n                return true;\n            }\n\n            case value_t::array:\n            {\n                // delegate call to array_t::empty()\n                return m_data.m_value.array->empty();\n            }\n\n            case value_t::object:\n            {\n                // delegate call to object_t::empty()\n                return m_data.m_value.object->empty();\n            }\n\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n            {\n                // all other types are nonempty\n                return false;\n            }\n        }\n    }\n\n    /// @brief returns the number of elements\n    /// @sa https://json.nlohmann.me/api/basic_json/size/\n    size_type size() const noexcept\n    {\n        switch (m_data.m_type)\n        {\n            case value_t::null:\n            {\n                // null values are empty\n                return 0;\n            }\n\n            case value_t::array:\n            {\n                // delegate call to array_t::size()\n                return m_data.m_value.array->size();\n            }\n\n            case value_t::object:\n            {\n                // delegate call to object_t::size()\n                return m_data.m_value.object->size();\n            }\n\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n            {\n                // all other types have size 1\n                return 1;\n            }\n        }\n    }\n\n    /// @brief returns the maximum possible number of elements\n    /// @sa https://json.nlohmann.me/api/basic_json/max_size/\n    size_type max_size() const noexcept\n    {\n        switch (m_data.m_type)\n        {\n            case value_t::array:\n            {\n                // delegate call to array_t::max_size()\n                return m_data.m_value.array->max_size();\n            }\n\n            case value_t::object:\n            {\n                // delegate call to object_t::max_size()\n                return m_data.m_value.object->max_size();\n            }\n\n            case value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n            {\n                // all other types have max_size() == size()\n                return size();\n            }\n        }\n    }\n\n    /// @}\n\n\n    ///////////////\n    // modifiers //\n    ///////////////\n\n    /// @name modifiers\n    /// @{\n\n    /// @brief clears the contents\n    /// @sa https://json.nlohmann.me/api/basic_json/clear/\n    void clear() noexcept\n    {\n        switch (m_data.m_type)\n        {\n            case value_t::number_integer:\n            {\n                m_data.m_value.number_integer = 0;\n                break;\n            }\n\n            case value_t::number_unsigned:\n            {\n                m_data.m_value.number_unsigned = 0;\n                break;\n            }\n\n            case value_t::number_float:\n            {\n                m_data.m_value.number_float = 0.0;\n                break;\n            }\n\n            case value_t::boolean:\n            {\n                m_data.m_value.boolean = false;\n                break;\n            }\n\n            case value_t::string:\n            {\n                m_data.m_value.string->clear();\n                break;\n            }\n\n            case value_t::binary:\n            {\n                m_data.m_value.binary->clear();\n                break;\n            }\n\n            case value_t::array:\n            {\n                m_data.m_value.array->clear();\n                break;\n            }\n\n            case value_t::object:\n            {\n                m_data.m_value.object->clear();\n                break;\n            }\n\n            case value_t::null:\n            case value_t::discarded:\n            default:\n                break;\n        }\n    }\n\n    /// @brief add an object to an array\n    /// @sa https://json.nlohmann.me/api/basic_json/push_back/\n    void push_back(basic_json&& val)\n    {\n        // push_back only works for null objects or arrays\n        if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_array())))\n        {\n            JSON_THROW(type_error::create(308, detail::concat(\"cannot use push_back() with \", type_name()), this));\n        }\n\n        // transform null object into an array\n        if (is_null())\n        {\n            m_data.m_type = value_t::array;\n            m_data.m_value = value_t::array;\n            assert_invariant();\n        }\n\n        // add element to array (move semantics)\n        const auto old_capacity = m_data.m_value.array->capacity();\n        m_data.m_value.array->push_back(std::move(val));\n        set_parent(m_data.m_value.array->back(), old_capacity);\n        // if val is moved from, basic_json move constructor marks it null, so we do not call the destructor\n    }\n\n    /// @brief add an object to an array\n    /// @sa https://json.nlohmann.me/api/basic_json/operator+=/\n    reference operator+=(basic_json&& val)\n    {\n        push_back(std::move(val));\n        return *this;\n    }\n\n    /// @brief add an object to an array\n    /// @sa https://json.nlohmann.me/api/basic_json/push_back/\n    void push_back(const basic_json& val)\n    {\n        // push_back only works for null objects or arrays\n        if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_array())))\n        {\n            JSON_THROW(type_error::create(308, detail::concat(\"cannot use push_back() with \", type_name()), this));\n        }\n\n        // transform null object into an array\n        if (is_null())\n        {\n            m_data.m_type = value_t::array;\n            m_data.m_value = value_t::array;\n            assert_invariant();\n        }\n\n        // add element to array\n        const auto old_capacity = m_data.m_value.array->capacity();\n        m_data.m_value.array->push_back(val);\n        set_parent(m_data.m_value.array->back(), old_capacity);\n    }\n\n    /// @brief add an object to an array\n    /// @sa https://json.nlohmann.me/api/basic_json/operator+=/\n    reference operator+=(const basic_json& val)\n    {\n        push_back(val);\n        return *this;\n    }\n\n    /// @brief add an object to an object\n    /// @sa https://json.nlohmann.me/api/basic_json/push_back/\n    void push_back(const typename object_t::value_type& val)\n    {\n        // push_back only works for null objects or objects\n        if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_object())))\n        {\n            JSON_THROW(type_error::create(308, detail::concat(\"cannot use push_back() with \", type_name()), this));\n        }\n\n        // transform null object into an object\n        if (is_null())\n        {\n            m_data.m_type = value_t::object;\n            m_data.m_value = value_t::object;\n            assert_invariant();\n        }\n\n        // add element to object\n        auto res = m_data.m_value.object->insert(val);\n        set_parent(res.first->second);\n    }\n\n    /// @brief add an object to an object\n    /// @sa https://json.nlohmann.me/api/basic_json/operator+=/\n    reference operator+=(const typename object_t::value_type& val)\n    {\n        push_back(val);\n        return *this;\n    }\n\n    /// @brief add an object to an object\n    /// @sa https://json.nlohmann.me/api/basic_json/push_back/\n    void push_back(initializer_list_t init)\n    {\n        if (is_object() && init.size() == 2 && (*init.begin())->is_string())\n        {\n            basic_json&& key = init.begin()->moved_or_copied();\n            push_back(typename object_t::value_type(\n                          std::move(key.get_ref<string_t&>()), (init.begin() + 1)->moved_or_copied()));\n        }\n        else\n        {\n            push_back(basic_json(init));\n        }\n    }\n\n    /// @brief add an object to an object\n    /// @sa https://json.nlohmann.me/api/basic_json/operator+=/\n    reference operator+=(initializer_list_t init)\n    {\n        push_back(init);\n        return *this;\n    }\n\n    /// @brief add an object to an array\n    /// @sa https://json.nlohmann.me/api/basic_json/emplace_back/\n    template<class... Args>\n    reference emplace_back(Args&& ... args)\n    {\n        // emplace_back only works for null objects or arrays\n        if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_array())))\n        {\n            JSON_THROW(type_error::create(311, detail::concat(\"cannot use emplace_back() with \", type_name()), this));\n        }\n\n        // transform null object into an array\n        if (is_null())\n        {\n            m_data.m_type = value_t::array;\n            m_data.m_value = value_t::array;\n            assert_invariant();\n        }\n\n        // add element to array (perfect forwarding)\n        const auto old_capacity = m_data.m_value.array->capacity();\n        m_data.m_value.array->emplace_back(std::forward<Args>(args)...);\n        return set_parent(m_data.m_value.array->back(), old_capacity);\n    }\n\n    /// @brief add an object to an object if key does not exist\n    /// @sa https://json.nlohmann.me/api/basic_json/emplace/\n    template<class... Args>\n    std::pair<iterator, bool> emplace(Args&& ... args)\n    {\n        // emplace only works for null objects or arrays\n        if (JSON_HEDLEY_UNLIKELY(!(is_null() || is_object())))\n        {\n            JSON_THROW(type_error::create(311, detail::concat(\"cannot use emplace() with \", type_name()), this));\n        }\n\n        // transform null object into an object\n        if (is_null())\n        {\n            m_data.m_type = value_t::object;\n            m_data.m_value = value_t::object;\n            assert_invariant();\n        }\n\n        // add element to array (perfect forwarding)\n        auto res = m_data.m_value.object->emplace(std::forward<Args>(args)...);\n        set_parent(res.first->second);\n\n        // create result iterator and set iterator to the result of emplace\n        auto it = begin();\n        it.m_it.object_iterator = res.first;\n\n        // return pair of iterator and boolean\n        return {it, res.second};\n    }\n\n    /// Helper for insertion of an iterator\n    /// @note: This uses std::distance to support GCC 4.8,\n    ///        see https://github.com/nlohmann/json/pull/1257\n    template<typename... Args>\n    iterator insert_iterator(const_iterator pos, Args&& ... args)\n    {\n        iterator result(this);\n        JSON_ASSERT(m_data.m_value.array != nullptr);\n\n        auto insert_pos = std::distance(m_data.m_value.array->begin(), pos.m_it.array_iterator);\n        m_data.m_value.array->insert(pos.m_it.array_iterator, std::forward<Args>(args)...);\n        result.m_it.array_iterator = m_data.m_value.array->begin() + insert_pos;\n\n        // This could have been written as:\n        // result.m_it.array_iterator = m_data.m_value.array->insert(pos.m_it.array_iterator, cnt, val);\n        // but the return value of insert is missing in GCC 4.8, so it is written this way instead.\n\n        set_parents();\n        return result;\n    }\n\n    /// @brief inserts element into array\n    /// @sa https://json.nlohmann.me/api/basic_json/insert/\n    iterator insert(const_iterator pos, const basic_json& val)\n    {\n        // insert only works for arrays\n        if (JSON_HEDLEY_LIKELY(is_array()))\n        {\n            // check if iterator pos fits to this JSON value\n            if (JSON_HEDLEY_UNLIKELY(pos.m_object != this))\n            {\n                JSON_THROW(invalid_iterator::create(202, \"iterator does not fit current value\", this));\n            }\n\n            // insert to array and return iterator\n            return insert_iterator(pos, val);\n        }\n\n        JSON_THROW(type_error::create(309, detail::concat(\"cannot use insert() with \", type_name()), this));\n    }\n\n    /// @brief inserts element into array\n    /// @sa https://json.nlohmann.me/api/basic_json/insert/\n    iterator insert(const_iterator pos, basic_json&& val)\n    {\n        return insert(pos, val);\n    }\n\n    /// @brief inserts copies of element into array\n    /// @sa https://json.nlohmann.me/api/basic_json/insert/\n    iterator insert(const_iterator pos, size_type cnt, const basic_json& val)\n    {\n        // insert only works for arrays\n        if (JSON_HEDLEY_LIKELY(is_array()))\n        {\n            // check if iterator pos fits to this JSON value\n            if (JSON_HEDLEY_UNLIKELY(pos.m_object != this))\n            {\n                JSON_THROW(invalid_iterator::create(202, \"iterator does not fit current value\", this));\n            }\n\n            // insert to array and return iterator\n            return insert_iterator(pos, cnt, val);\n        }\n\n        JSON_THROW(type_error::create(309, detail::concat(\"cannot use insert() with \", type_name()), this));\n    }\n\n    /// @brief inserts range of elements into array\n    /// @sa https://json.nlohmann.me/api/basic_json/insert/\n    iterator insert(const_iterator pos, const_iterator first, const_iterator last)\n    {\n        // insert only works for arrays\n        if (JSON_HEDLEY_UNLIKELY(!is_array()))\n        {\n            JSON_THROW(type_error::create(309, detail::concat(\"cannot use insert() with \", type_name()), this));\n        }\n\n        // check if iterator pos fits to this JSON value\n        if (JSON_HEDLEY_UNLIKELY(pos.m_object != this))\n        {\n            JSON_THROW(invalid_iterator::create(202, \"iterator does not fit current value\", this));\n        }\n\n        // check if range iterators belong to the same JSON object\n        if (JSON_HEDLEY_UNLIKELY(first.m_object != last.m_object))\n        {\n            JSON_THROW(invalid_iterator::create(210, \"iterators do not fit\", this));\n        }\n\n        if (JSON_HEDLEY_UNLIKELY(first.m_object == this))\n        {\n            JSON_THROW(invalid_iterator::create(211, \"passed iterators may not belong to container\", this));\n        }\n\n        // insert to array and return iterator\n        return insert_iterator(pos, first.m_it.array_iterator, last.m_it.array_iterator);\n    }\n\n    /// @brief inserts elements from initializer list into array\n    /// @sa https://json.nlohmann.me/api/basic_json/insert/\n    iterator insert(const_iterator pos, initializer_list_t ilist)\n    {\n        // insert only works for arrays\n        if (JSON_HEDLEY_UNLIKELY(!is_array()))\n        {\n            JSON_THROW(type_error::create(309, detail::concat(\"cannot use insert() with \", type_name()), this));\n        }\n\n        // check if iterator pos fits to this JSON value\n        if (JSON_HEDLEY_UNLIKELY(pos.m_object != this))\n        {\n            JSON_THROW(invalid_iterator::create(202, \"iterator does not fit current value\", this));\n        }\n\n        // insert to array and return iterator\n        return insert_iterator(pos, ilist.begin(), ilist.end());\n    }\n\n    /// @brief inserts range of elements into object\n    /// @sa https://json.nlohmann.me/api/basic_json/insert/\n    void insert(const_iterator first, const_iterator last)\n    {\n        // insert only works for objects\n        if (JSON_HEDLEY_UNLIKELY(!is_object()))\n        {\n            JSON_THROW(type_error::create(309, detail::concat(\"cannot use insert() with \", type_name()), this));\n        }\n\n        // check if range iterators belong to the same JSON object\n        if (JSON_HEDLEY_UNLIKELY(first.m_object != last.m_object))\n        {\n            JSON_THROW(invalid_iterator::create(210, \"iterators do not fit\", this));\n        }\n\n        // passed iterators must belong to objects\n        if (JSON_HEDLEY_UNLIKELY(!first.m_object->is_object()))\n        {\n            JSON_THROW(invalid_iterator::create(202, \"iterators first and last must point to objects\", this));\n        }\n\n        m_data.m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator);\n    }\n\n    /// @brief updates a JSON object from another object, overwriting existing keys\n    /// @sa https://json.nlohmann.me/api/basic_json/update/\n    void update(const_reference j, bool merge_objects = false)\n    {\n        update(j.begin(), j.end(), merge_objects);\n    }\n\n    /// @brief updates a JSON object from another object, overwriting existing keys\n    /// @sa https://json.nlohmann.me/api/basic_json/update/\n    void update(const_iterator first, const_iterator last, bool merge_objects = false)\n    {\n        // implicitly convert null value to an empty object\n        if (is_null())\n        {\n            m_data.m_type = value_t::object;\n            m_data.m_value.object = create<object_t>();\n            assert_invariant();\n        }\n\n        if (JSON_HEDLEY_UNLIKELY(!is_object()))\n        {\n            JSON_THROW(type_error::create(312, detail::concat(\"cannot use update() with \", type_name()), this));\n        }\n\n        // check if range iterators belong to the same JSON object\n        if (JSON_HEDLEY_UNLIKELY(first.m_object != last.m_object))\n        {\n            JSON_THROW(invalid_iterator::create(210, \"iterators do not fit\", this));\n        }\n\n        // passed iterators must belong to objects\n        if (JSON_HEDLEY_UNLIKELY(!first.m_object->is_object()))\n        {\n            JSON_THROW(type_error::create(312, detail::concat(\"cannot use update() with \", first.m_object->type_name()), first.m_object));\n        }\n\n        for (auto it = first; it != last; ++it)\n        {\n            if (merge_objects && it.value().is_object())\n            {\n                auto it2 = m_data.m_value.object->find(it.key());\n                if (it2 != m_data.m_value.object->end())\n                {\n                    it2->second.update(it.value(), true);\n                    continue;\n                }\n            }\n            m_data.m_value.object->operator[](it.key()) = it.value();\n#if JSON_DIAGNOSTICS\n            m_data.m_value.object->operator[](it.key()).m_parent = this;\n#endif\n        }\n    }\n\n    /// @brief exchanges the values\n    /// @sa https://json.nlohmann.me/api/basic_json/swap/\n    void swap(reference other) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value&&\n        std::is_nothrow_move_assignable<value_t>::value&&\n        std::is_nothrow_move_constructible<json_value>::value&&\n        std::is_nothrow_move_assignable<json_value>::value\n    )\n    {\n        std::swap(m_data.m_type, other.m_data.m_type);\n        std::swap(m_data.m_value, other.m_data.m_value);\n\n        set_parents();\n        other.set_parents();\n        assert_invariant();\n    }\n\n    /// @brief exchanges the values\n    /// @sa https://json.nlohmann.me/api/basic_json/swap/\n    friend void swap(reference left, reference right) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value&&\n        std::is_nothrow_move_assignable<value_t>::value&&\n        std::is_nothrow_move_constructible<json_value>::value&&\n        std::is_nothrow_move_assignable<json_value>::value\n    )\n    {\n        left.swap(right);\n    }\n\n    /// @brief exchanges the values\n    /// @sa https://json.nlohmann.me/api/basic_json/swap/\n    void swap(array_t& other) // NOLINT(bugprone-exception-escape)\n    {\n        // swap only works for arrays\n        if (JSON_HEDLEY_LIKELY(is_array()))\n        {\n            using std::swap;\n            swap(*(m_data.m_value.array), other);\n        }\n        else\n        {\n            JSON_THROW(type_error::create(310, detail::concat(\"cannot use swap(array_t&) with \", type_name()), this));\n        }\n    }\n\n    /// @brief exchanges the values\n    /// @sa https://json.nlohmann.me/api/basic_json/swap/\n    void swap(object_t& other) // NOLINT(bugprone-exception-escape)\n    {\n        // swap only works for objects\n        if (JSON_HEDLEY_LIKELY(is_object()))\n        {\n            using std::swap;\n            swap(*(m_data.m_value.object), other);\n        }\n        else\n        {\n            JSON_THROW(type_error::create(310, detail::concat(\"cannot use swap(object_t&) with \", type_name()), this));\n        }\n    }\n\n    /// @brief exchanges the values\n    /// @sa https://json.nlohmann.me/api/basic_json/swap/\n    void swap(string_t& other) // NOLINT(bugprone-exception-escape)\n    {\n        // swap only works for strings\n        if (JSON_HEDLEY_LIKELY(is_string()))\n        {\n            using std::swap;\n            swap(*(m_data.m_value.string), other);\n        }\n        else\n        {\n            JSON_THROW(type_error::create(310, detail::concat(\"cannot use swap(string_t&) with \", type_name()), this));\n        }\n    }\n\n    /// @brief exchanges the values\n    /// @sa https://json.nlohmann.me/api/basic_json/swap/\n    void swap(binary_t& other) // NOLINT(bugprone-exception-escape)\n    {\n        // swap only works for strings\n        if (JSON_HEDLEY_LIKELY(is_binary()))\n        {\n            using std::swap;\n            swap(*(m_data.m_value.binary), other);\n        }\n        else\n        {\n            JSON_THROW(type_error::create(310, detail::concat(\"cannot use swap(binary_t&) with \", type_name()), this));\n        }\n    }\n\n    /// @brief exchanges the values\n    /// @sa https://json.nlohmann.me/api/basic_json/swap/\n    void swap(typename binary_t::container_type& other) // NOLINT(bugprone-exception-escape)\n    {\n        // swap only works for strings\n        if (JSON_HEDLEY_LIKELY(is_binary()))\n        {\n            using std::swap;\n            swap(*(m_data.m_value.binary), other);\n        }\n        else\n        {\n            JSON_THROW(type_error::create(310, detail::concat(\"cannot use swap(binary_t::container_type&) with \", type_name()), this));\n        }\n    }\n\n    /// @}\n\n    //////////////////////////////////////////\n    // lexicographical comparison operators //\n    //////////////////////////////////////////\n\n    /// @name lexicographical comparison operators\n    /// @{\n\n    // note parentheses around operands are necessary; see\n    // https://github.com/nlohmann/json/issues/1530\n#define JSON_IMPLEMENT_OPERATOR(op, null_result, unordered_result, default_result)                       \\\n    const auto lhs_type = lhs.type();                                                                    \\\n    const auto rhs_type = rhs.type();                                                                    \\\n    \\\n    if (lhs_type == rhs_type) /* NOLINT(readability/braces) */                                           \\\n    {                                                                                                    \\\n        switch (lhs_type)                                                                                \\\n        {                                                                                                \\\n            case value_t::array:                                                                         \\\n                return (*lhs.m_data.m_value.array) op (*rhs.m_data.m_value.array);                                     \\\n                \\\n            case value_t::object:                                                                        \\\n                return (*lhs.m_data.m_value.object) op (*rhs.m_data.m_value.object);                                   \\\n                \\\n            case value_t::null:                                                                          \\\n                return (null_result);                                                                    \\\n                \\\n            case value_t::string:                                                                        \\\n                return (*lhs.m_data.m_value.string) op (*rhs.m_data.m_value.string);                                   \\\n                \\\n            case value_t::boolean:                                                                       \\\n                return (lhs.m_data.m_value.boolean) op (rhs.m_data.m_value.boolean);                                   \\\n                \\\n            case value_t::number_integer:                                                                \\\n                return (lhs.m_data.m_value.number_integer) op (rhs.m_data.m_value.number_integer);                     \\\n                \\\n            case value_t::number_unsigned:                                                               \\\n                return (lhs.m_data.m_value.number_unsigned) op (rhs.m_data.m_value.number_unsigned);                   \\\n                \\\n            case value_t::number_float:                                                                  \\\n                return (lhs.m_data.m_value.number_float) op (rhs.m_data.m_value.number_float);                         \\\n                \\\n            case value_t::binary:                                                                        \\\n                return (*lhs.m_data.m_value.binary) op (*rhs.m_data.m_value.binary);                                   \\\n                \\\n            case value_t::discarded:                                                                     \\\n            default:                                                                                     \\\n                return (unordered_result);                                                               \\\n        }                                                                                                \\\n    }                                                                                                    \\\n    else if (lhs_type == value_t::number_integer && rhs_type == value_t::number_float)                   \\\n    {                                                                                                    \\\n        return static_cast<number_float_t>(lhs.m_data.m_value.number_integer) op rhs.m_data.m_value.number_float;      \\\n    }                                                                                                    \\\n    else if (lhs_type == value_t::number_float && rhs_type == value_t::number_integer)                   \\\n    {                                                                                                    \\\n        return lhs.m_data.m_value.number_float op static_cast<number_float_t>(rhs.m_data.m_value.number_integer);      \\\n    }                                                                                                    \\\n    else if (lhs_type == value_t::number_unsigned && rhs_type == value_t::number_float)                  \\\n    {                                                                                                    \\\n        return static_cast<number_float_t>(lhs.m_data.m_value.number_unsigned) op rhs.m_data.m_value.number_float;     \\\n    }                                                                                                    \\\n    else if (lhs_type == value_t::number_float && rhs_type == value_t::number_unsigned)                  \\\n    {                                                                                                    \\\n        return lhs.m_data.m_value.number_float op static_cast<number_float_t>(rhs.m_data.m_value.number_unsigned);     \\\n    }                                                                                                    \\\n    else if (lhs_type == value_t::number_unsigned && rhs_type == value_t::number_integer)                \\\n    {                                                                                                    \\\n        return static_cast<number_integer_t>(lhs.m_data.m_value.number_unsigned) op rhs.m_data.m_value.number_integer; \\\n    }                                                                                                    \\\n    else if (lhs_type == value_t::number_integer && rhs_type == value_t::number_unsigned)                \\\n    {                                                                                                    \\\n        return lhs.m_data.m_value.number_integer op static_cast<number_integer_t>(rhs.m_data.m_value.number_unsigned); \\\n    }                                                                                                    \\\n    else if(compares_unordered(lhs, rhs))\\\n    {\\\n        return (unordered_result);\\\n    }\\\n    \\\n    return (default_result);\n\n  JSON_PRIVATE_UNLESS_TESTED:\n    // returns true if:\n    // - any operand is NaN and the other operand is of number type\n    // - any operand is discarded\n    // in legacy mode, discarded values are considered ordered if\n    // an operation is computed as an odd number of inverses of others\n    static bool compares_unordered(const_reference lhs, const_reference rhs, bool inverse = false) noexcept\n    {\n        if ((lhs.is_number_float() && std::isnan(lhs.m_data.m_value.number_float) && rhs.is_number())\n                || (rhs.is_number_float() && std::isnan(rhs.m_data.m_value.number_float) && lhs.is_number()))\n        {\n            return true;\n        }\n#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON\n        return (lhs.is_discarded() || rhs.is_discarded()) && !inverse;\n#else\n        static_cast<void>(inverse);\n        return lhs.is_discarded() || rhs.is_discarded();\n#endif\n    }\n\n  private:\n    bool compares_unordered(const_reference rhs, bool inverse = false) const noexcept\n    {\n        return compares_unordered(*this, rhs, inverse);\n    }\n\n  public:\n#if JSON_HAS_THREE_WAY_COMPARISON\n    /// @brief comparison: equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_eq/\n    bool operator==(const_reference rhs) const noexcept\n    {\n#ifdef __GNUC__\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wfloat-equal\"\n#endif\n        const_reference lhs = *this;\n        JSON_IMPLEMENT_OPERATOR( ==, true, false, false)\n#ifdef __GNUC__\n#pragma GCC diagnostic pop\n#endif\n    }\n\n    /// @brief comparison: equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_eq/\n    template<typename ScalarType>\n    requires std::is_scalar_v<ScalarType>\n    bool operator==(ScalarType rhs) const noexcept\n    {\n        return *this == basic_json(rhs);\n    }\n\n    /// @brief comparison: not equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_ne/\n    bool operator!=(const_reference rhs) const noexcept\n    {\n        if (compares_unordered(rhs, true))\n        {\n            return false;\n        }\n        return !operator==(rhs);\n    }\n\n    /// @brief comparison: 3-way\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_spaceship/\n    std::partial_ordering operator<=>(const_reference rhs) const noexcept // *NOPAD*\n    {\n        const_reference lhs = *this;\n        // default_result is used if we cannot compare values. In that case,\n        // we compare types.\n        JSON_IMPLEMENT_OPERATOR(<=>, // *NOPAD*\n                                std::partial_ordering::equivalent,\n                                std::partial_ordering::unordered,\n                                lhs_type <=> rhs_type) // *NOPAD*\n    }\n\n    /// @brief comparison: 3-way\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_spaceship/\n    template<typename ScalarType>\n    requires std::is_scalar_v<ScalarType>\n    std::partial_ordering operator<=>(ScalarType rhs) const noexcept // *NOPAD*\n    {\n        return *this <=> basic_json(rhs); // *NOPAD*\n    }\n\n#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON\n    // all operators that are computed as an odd number of inverses of others\n    // need to be overloaded to emulate the legacy comparison behavior\n\n    /// @brief comparison: less than or equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_le/\n    JSON_HEDLEY_DEPRECATED_FOR(3.11.0, undef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON)\n    bool operator<=(const_reference rhs) const noexcept\n    {\n        if (compares_unordered(rhs, true))\n        {\n            return false;\n        }\n        return !(rhs < *this);\n    }\n\n    /// @brief comparison: less than or equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_le/\n    template<typename ScalarType>\n    requires std::is_scalar_v<ScalarType>\n    bool operator<=(ScalarType rhs) const noexcept\n    {\n        return *this <= basic_json(rhs);\n    }\n\n    /// @brief comparison: greater than or equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_ge/\n    JSON_HEDLEY_DEPRECATED_FOR(3.11.0, undef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON)\n    bool operator>=(const_reference rhs) const noexcept\n    {\n        if (compares_unordered(rhs, true))\n        {\n            return false;\n        }\n        return !(*this < rhs);\n    }\n\n    /// @brief comparison: greater than or equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_ge/\n    template<typename ScalarType>\n    requires std::is_scalar_v<ScalarType>\n    bool operator>=(ScalarType rhs) const noexcept\n    {\n        return *this >= basic_json(rhs);\n    }\n#endif\n#else\n    /// @brief comparison: equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_eq/\n    friend bool operator==(const_reference lhs, const_reference rhs) noexcept\n    {\n#ifdef __GNUC__\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wfloat-equal\"\n#endif\n        JSON_IMPLEMENT_OPERATOR( ==, true, false, false)\n#ifdef __GNUC__\n#pragma GCC diagnostic pop\n#endif\n    }\n\n    /// @brief comparison: equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_eq/\n    template<typename ScalarType, typename std::enable_if<\n                 std::is_scalar<ScalarType>::value, int>::type = 0>\n    friend bool operator==(const_reference lhs, ScalarType rhs) noexcept\n    {\n        return lhs == basic_json(rhs);\n    }\n\n    /// @brief comparison: equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_eq/\n    template<typename ScalarType, typename std::enable_if<\n                 std::is_scalar<ScalarType>::value, int>::type = 0>\n    friend bool operator==(ScalarType lhs, const_reference rhs) noexcept\n    {\n        return basic_json(lhs) == rhs;\n    }\n\n    /// @brief comparison: not equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_ne/\n    friend bool operator!=(const_reference lhs, const_reference rhs) noexcept\n    {\n        if (compares_unordered(lhs, rhs, true))\n        {\n            return false;\n        }\n        return !(lhs == rhs);\n    }\n\n    /// @brief comparison: not equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_ne/\n    template<typename ScalarType, typename std::enable_if<\n                 std::is_scalar<ScalarType>::value, int>::type = 0>\n    friend bool operator!=(const_reference lhs, ScalarType rhs) noexcept\n    {\n        return lhs != basic_json(rhs);\n    }\n\n    /// @brief comparison: not equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_ne/\n    template<typename ScalarType, typename std::enable_if<\n                 std::is_scalar<ScalarType>::value, int>::type = 0>\n    friend bool operator!=(ScalarType lhs, const_reference rhs) noexcept\n    {\n        return basic_json(lhs) != rhs;\n    }\n\n    /// @brief comparison: less than\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_lt/\n    friend bool operator<(const_reference lhs, const_reference rhs) noexcept\n    {\n        // default_result is used if we cannot compare values. In that case,\n        // we compare types. Note we have to call the operator explicitly,\n        // because MSVC has problems otherwise.\n        JSON_IMPLEMENT_OPERATOR( <, false, false, operator<(lhs_type, rhs_type))\n    }\n\n    /// @brief comparison: less than\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_lt/\n    template<typename ScalarType, typename std::enable_if<\n                 std::is_scalar<ScalarType>::value, int>::type = 0>\n    friend bool operator<(const_reference lhs, ScalarType rhs) noexcept\n    {\n        return lhs < basic_json(rhs);\n    }\n\n    /// @brief comparison: less than\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_lt/\n    template<typename ScalarType, typename std::enable_if<\n                 std::is_scalar<ScalarType>::value, int>::type = 0>\n    friend bool operator<(ScalarType lhs, const_reference rhs) noexcept\n    {\n        return basic_json(lhs) < rhs;\n    }\n\n    /// @brief comparison: less than or equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_le/\n    friend bool operator<=(const_reference lhs, const_reference rhs) noexcept\n    {\n        if (compares_unordered(lhs, rhs, true))\n        {\n            return false;\n        }\n        return !(rhs < lhs);\n    }\n\n    /// @brief comparison: less than or equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_le/\n    template<typename ScalarType, typename std::enable_if<\n                 std::is_scalar<ScalarType>::value, int>::type = 0>\n    friend bool operator<=(const_reference lhs, ScalarType rhs) noexcept\n    {\n        return lhs <= basic_json(rhs);\n    }\n\n    /// @brief comparison: less than or equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_le/\n    template<typename ScalarType, typename std::enable_if<\n                 std::is_scalar<ScalarType>::value, int>::type = 0>\n    friend bool operator<=(ScalarType lhs, const_reference rhs) noexcept\n    {\n        return basic_json(lhs) <= rhs;\n    }\n\n    /// @brief comparison: greater than\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_gt/\n    friend bool operator>(const_reference lhs, const_reference rhs) noexcept\n    {\n        // double inverse\n        if (compares_unordered(lhs, rhs))\n        {\n            return false;\n        }\n        return !(lhs <= rhs);\n    }\n\n    /// @brief comparison: greater than\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_gt/\n    template<typename ScalarType, typename std::enable_if<\n                 std::is_scalar<ScalarType>::value, int>::type = 0>\n    friend bool operator>(const_reference lhs, ScalarType rhs) noexcept\n    {\n        return lhs > basic_json(rhs);\n    }\n\n    /// @brief comparison: greater than\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_gt/\n    template<typename ScalarType, typename std::enable_if<\n                 std::is_scalar<ScalarType>::value, int>::type = 0>\n    friend bool operator>(ScalarType lhs, const_reference rhs) noexcept\n    {\n        return basic_json(lhs) > rhs;\n    }\n\n    /// @brief comparison: greater than or equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_ge/\n    friend bool operator>=(const_reference lhs, const_reference rhs) noexcept\n    {\n        if (compares_unordered(lhs, rhs, true))\n        {\n            return false;\n        }\n        return !(lhs < rhs);\n    }\n\n    /// @brief comparison: greater than or equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_ge/\n    template<typename ScalarType, typename std::enable_if<\n                 std::is_scalar<ScalarType>::value, int>::type = 0>\n    friend bool operator>=(const_reference lhs, ScalarType rhs) noexcept\n    {\n        return lhs >= basic_json(rhs);\n    }\n\n    /// @brief comparison: greater than or equal\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_ge/\n    template<typename ScalarType, typename std::enable_if<\n                 std::is_scalar<ScalarType>::value, int>::type = 0>\n    friend bool operator>=(ScalarType lhs, const_reference rhs) noexcept\n    {\n        return basic_json(lhs) >= rhs;\n    }\n#endif\n\n#undef JSON_IMPLEMENT_OPERATOR\n\n    /// @}\n\n    ///////////////////\n    // serialization //\n    ///////////////////\n\n    /// @name serialization\n    /// @{\n#ifndef JSON_NO_IO\n    /// @brief serialize to stream\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_ltlt/\n    friend std::ostream& operator<<(std::ostream& o, const basic_json& j)\n    {\n        // read width member and use it as indentation parameter if nonzero\n        const bool pretty_print = o.width() > 0;\n        const auto indentation = pretty_print ? o.width() : 0;\n\n        // reset width to 0 for subsequent calls to this stream\n        o.width(0);\n\n        // do the actual serialization\n        serializer s(detail::output_adapter<char>(o), o.fill());\n        s.dump(j, pretty_print, false, static_cast<unsigned int>(indentation));\n        return o;\n    }\n\n    /// @brief serialize to stream\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_ltlt/\n    /// @deprecated This function is deprecated since 3.0.0 and will be removed in\n    ///             version 4.0.0 of the library. Please use\n    ///             operator<<(std::ostream&, const basic_json&) instead; that is,\n    ///             replace calls like `j >> o;` with `o << j;`.\n    JSON_HEDLEY_DEPRECATED_FOR(3.0.0, operator<<(std::ostream&, const basic_json&))\n    friend std::ostream& operator>>(const basic_json& j, std::ostream& o)\n    {\n        return o << j;\n    }\n#endif  // JSON_NO_IO\n    /// @}\n\n\n    /////////////////////\n    // deserialization //\n    /////////////////////\n\n    /// @name deserialization\n    /// @{\n\n    /// @brief deserialize from a compatible input\n    /// @sa https://json.nlohmann.me/api/basic_json/parse/\n    template<typename InputType>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json parse(InputType&& i,\n                            const parser_callback_t cb = nullptr,\n                            const bool allow_exceptions = true,\n                            const bool ignore_comments = false)\n    {\n        basic_json result;\n        parser(detail::input_adapter(std::forward<InputType>(i)), cb, allow_exceptions, ignore_comments).parse(true, result);\n        return result;\n    }\n\n    /// @brief deserialize from a pair of character iterators\n    /// @sa https://json.nlohmann.me/api/basic_json/parse/\n    template<typename IteratorType>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json parse(IteratorType first,\n                            IteratorType last,\n                            const parser_callback_t cb = nullptr,\n                            const bool allow_exceptions = true,\n                            const bool ignore_comments = false)\n    {\n        basic_json result;\n        parser(detail::input_adapter(std::move(first), std::move(last)), cb, allow_exceptions, ignore_comments).parse(true, result);\n        return result;\n    }\n\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    JSON_HEDLEY_DEPRECATED_FOR(3.8.0, parse(ptr, ptr + len))\n    static basic_json parse(detail::span_input_adapter&& i,\n                            const parser_callback_t cb = nullptr,\n                            const bool allow_exceptions = true,\n                            const bool ignore_comments = false)\n    {\n        basic_json result;\n        parser(i.get(), cb, allow_exceptions, ignore_comments).parse(true, result);\n        return result;\n    }\n\n    /// @brief check if the input is valid JSON\n    /// @sa https://json.nlohmann.me/api/basic_json/accept/\n    template<typename InputType>\n    static bool accept(InputType&& i,\n                       const bool ignore_comments = false)\n    {\n        return parser(detail::input_adapter(std::forward<InputType>(i)), nullptr, false, ignore_comments).accept(true);\n    }\n\n    /// @brief check if the input is valid JSON\n    /// @sa https://json.nlohmann.me/api/basic_json/accept/\n    template<typename IteratorType>\n    static bool accept(IteratorType first, IteratorType last,\n                       const bool ignore_comments = false)\n    {\n        return parser(detail::input_adapter(std::move(first), std::move(last)), nullptr, false, ignore_comments).accept(true);\n    }\n\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    JSON_HEDLEY_DEPRECATED_FOR(3.8.0, accept(ptr, ptr + len))\n    static bool accept(detail::span_input_adapter&& i,\n                       const bool ignore_comments = false)\n    {\n        return parser(i.get(), nullptr, false, ignore_comments).accept(true);\n    }\n\n    /// @brief generate SAX events\n    /// @sa https://json.nlohmann.me/api/basic_json/sax_parse/\n    template <typename InputType, typename SAX>\n    JSON_HEDLEY_NON_NULL(2)\n    static bool sax_parse(InputType&& i, SAX* sax,\n                          input_format_t format = input_format_t::json,\n                          const bool strict = true,\n                          const bool ignore_comments = false)\n    {\n        auto ia = detail::input_adapter(std::forward<InputType>(i));\n        return format == input_format_t::json\n               ? parser(std::move(ia), nullptr, true, ignore_comments).sax_parse(sax, strict)\n               : detail::binary_reader<basic_json, decltype(ia), SAX>(std::move(ia), format).sax_parse(format, sax, strict);\n    }\n\n    /// @brief generate SAX events\n    /// @sa https://json.nlohmann.me/api/basic_json/sax_parse/\n    template<class IteratorType, class SAX>\n    JSON_HEDLEY_NON_NULL(3)\n    static bool sax_parse(IteratorType first, IteratorType last, SAX* sax,\n                          input_format_t format = input_format_t::json,\n                          const bool strict = true,\n                          const bool ignore_comments = false)\n    {\n        auto ia = detail::input_adapter(std::move(first), std::move(last));\n        return format == input_format_t::json\n               ? parser(std::move(ia), nullptr, true, ignore_comments).sax_parse(sax, strict)\n               : detail::binary_reader<basic_json, decltype(ia), SAX>(std::move(ia), format).sax_parse(format, sax, strict);\n    }\n\n    /// @brief generate SAX events\n    /// @sa https://json.nlohmann.me/api/basic_json/sax_parse/\n    /// @deprecated This function is deprecated since 3.8.0 and will be removed in\n    ///             version 4.0.0 of the library. Please use\n    ///             sax_parse(ptr, ptr + len) instead.\n    template <typename SAX>\n    JSON_HEDLEY_DEPRECATED_FOR(3.8.0, sax_parse(ptr, ptr + len, ...))\n    JSON_HEDLEY_NON_NULL(2)\n    static bool sax_parse(detail::span_input_adapter&& i, SAX* sax,\n                          input_format_t format = input_format_t::json,\n                          const bool strict = true,\n                          const bool ignore_comments = false)\n    {\n        auto ia = i.get();\n        return format == input_format_t::json\n               // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg)\n               ? parser(std::move(ia), nullptr, true, ignore_comments).sax_parse(sax, strict)\n               // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg)\n               : detail::binary_reader<basic_json, decltype(ia), SAX>(std::move(ia), format).sax_parse(format, sax, strict);\n    }\n#ifndef JSON_NO_IO\n    /// @brief deserialize from stream\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_gtgt/\n    /// @deprecated This stream operator is deprecated since 3.0.0 and will be removed in\n    ///             version 4.0.0 of the library. Please use\n    ///             operator>>(std::istream&, basic_json&) instead; that is,\n    ///             replace calls like `j << i;` with `i >> j;`.\n    JSON_HEDLEY_DEPRECATED_FOR(3.0.0, operator>>(std::istream&, basic_json&))\n    friend std::istream& operator<<(basic_json& j, std::istream& i)\n    {\n        return operator>>(i, j);\n    }\n\n    /// @brief deserialize from stream\n    /// @sa https://json.nlohmann.me/api/basic_json/operator_gtgt/\n    friend std::istream& operator>>(std::istream& i, basic_json& j)\n    {\n        parser(detail::input_adapter(i)).parse(false, j);\n        return i;\n    }\n#endif  // JSON_NO_IO\n    /// @}\n\n    ///////////////////////////\n    // convenience functions //\n    ///////////////////////////\n\n    /// @brief return the type as string\n    /// @sa https://json.nlohmann.me/api/basic_json/type_name/\n    JSON_HEDLEY_RETURNS_NON_NULL\n    const char* type_name() const noexcept\n    {\n        switch (m_data.m_type)\n        {\n            case value_t::null:\n                return \"null\";\n            case value_t::object:\n                return \"object\";\n            case value_t::array:\n                return \"array\";\n            case value_t::string:\n                return \"string\";\n            case value_t::boolean:\n                return \"boolean\";\n            case value_t::binary:\n                return \"binary\";\n            case value_t::discarded:\n                return \"discarded\";\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            default:\n                return \"number\";\n        }\n    }\n\n\n  JSON_PRIVATE_UNLESS_TESTED:\n    //////////////////////\n    // member variables //\n    //////////////////////\n\n    struct data\n    {\n        /// the type of the current element\n        value_t m_type = value_t::null;\n\n        /// the value of the current element\n        json_value m_value = {};\n\n        data(const value_t v)\n            : m_type(v), m_value(v)\n        {\n        }\n\n        data(size_type cnt, const basic_json& val)\n            : m_type(value_t::array)\n        {\n            m_value.array = create<array_t>(cnt, val);\n        }\n\n        data() noexcept = default;\n        data(data&&) noexcept = default;\n        data(const data&) noexcept = delete;\n        data& operator=(data&&) noexcept = delete;\n        data& operator=(const data&) noexcept = delete;\n\n        ~data() noexcept\n        {\n            m_value.destroy(m_type);\n        }\n    };\n\n    data m_data = {};\n\n#if JSON_DIAGNOSTICS\n    /// a pointer to a parent value (for debugging purposes)\n    basic_json* m_parent = nullptr;\n#endif\n\n    //////////////////////////////////////////\n    // binary serialization/deserialization //\n    //////////////////////////////////////////\n\n    /// @name binary serialization/deserialization support\n    /// @{\n\n  public:\n    /// @brief create a CBOR serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_cbor/\n    static std::vector<std::uint8_t> to_cbor(const basic_json& j)\n    {\n        std::vector<std::uint8_t> result;\n        to_cbor(j, result);\n        return result;\n    }\n\n    /// @brief create a CBOR serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_cbor/\n    static void to_cbor(const basic_json& j, detail::output_adapter<std::uint8_t> o)\n    {\n        binary_writer<std::uint8_t>(o).write_cbor(j);\n    }\n\n    /// @brief create a CBOR serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_cbor/\n    static void to_cbor(const basic_json& j, detail::output_adapter<char> o)\n    {\n        binary_writer<char>(o).write_cbor(j);\n    }\n\n    /// @brief create a MessagePack serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_msgpack/\n    static std::vector<std::uint8_t> to_msgpack(const basic_json& j)\n    {\n        std::vector<std::uint8_t> result;\n        to_msgpack(j, result);\n        return result;\n    }\n\n    /// @brief create a MessagePack serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_msgpack/\n    static void to_msgpack(const basic_json& j, detail::output_adapter<std::uint8_t> o)\n    {\n        binary_writer<std::uint8_t>(o).write_msgpack(j);\n    }\n\n    /// @brief create a MessagePack serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_msgpack/\n    static void to_msgpack(const basic_json& j, detail::output_adapter<char> o)\n    {\n        binary_writer<char>(o).write_msgpack(j);\n    }\n\n    /// @brief create a UBJSON serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_ubjson/\n    static std::vector<std::uint8_t> to_ubjson(const basic_json& j,\n            const bool use_size = false,\n            const bool use_type = false)\n    {\n        std::vector<std::uint8_t> result;\n        to_ubjson(j, result, use_size, use_type);\n        return result;\n    }\n\n    /// @brief create a UBJSON serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_ubjson/\n    static void to_ubjson(const basic_json& j, detail::output_adapter<std::uint8_t> o,\n                          const bool use_size = false, const bool use_type = false)\n    {\n        binary_writer<std::uint8_t>(o).write_ubjson(j, use_size, use_type);\n    }\n\n    /// @brief create a UBJSON serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_ubjson/\n    static void to_ubjson(const basic_json& j, detail::output_adapter<char> o,\n                          const bool use_size = false, const bool use_type = false)\n    {\n        binary_writer<char>(o).write_ubjson(j, use_size, use_type);\n    }\n\n    /// @brief create a BJData serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_bjdata/\n    static std::vector<std::uint8_t> to_bjdata(const basic_json& j,\n            const bool use_size = false,\n            const bool use_type = false)\n    {\n        std::vector<std::uint8_t> result;\n        to_bjdata(j, result, use_size, use_type);\n        return result;\n    }\n\n    /// @brief create a BJData serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_bjdata/\n    static void to_bjdata(const basic_json& j, detail::output_adapter<std::uint8_t> o,\n                          const bool use_size = false, const bool use_type = false)\n    {\n        binary_writer<std::uint8_t>(o).write_ubjson(j, use_size, use_type, true, true);\n    }\n\n    /// @brief create a BJData serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_bjdata/\n    static void to_bjdata(const basic_json& j, detail::output_adapter<char> o,\n                          const bool use_size = false, const bool use_type = false)\n    {\n        binary_writer<char>(o).write_ubjson(j, use_size, use_type, true, true);\n    }\n\n    /// @brief create a BSON serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_bson/\n    static std::vector<std::uint8_t> to_bson(const basic_json& j)\n    {\n        std::vector<std::uint8_t> result;\n        to_bson(j, result);\n        return result;\n    }\n\n    /// @brief create a BSON serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_bson/\n    static void to_bson(const basic_json& j, detail::output_adapter<std::uint8_t> o)\n    {\n        binary_writer<std::uint8_t>(o).write_bson(j);\n    }\n\n    /// @brief create a BSON serialization of a given JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/to_bson/\n    static void to_bson(const basic_json& j, detail::output_adapter<char> o)\n    {\n        binary_writer<char>(o).write_bson(j);\n    }\n\n    /// @brief create a JSON value from an input in CBOR format\n    /// @sa https://json.nlohmann.me/api/basic_json/from_cbor/\n    template<typename InputType>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json from_cbor(InputType&& i,\n                                const bool strict = true,\n                                const bool allow_exceptions = true,\n                                const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error)\n    {\n        basic_json result;\n        detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions);\n        auto ia = detail::input_adapter(std::forward<InputType>(i));\n        const bool res = binary_reader<decltype(ia)>(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler);\n        return res ? result : basic_json(value_t::discarded);\n    }\n\n    /// @brief create a JSON value from an input in CBOR format\n    /// @sa https://json.nlohmann.me/api/basic_json/from_cbor/\n    template<typename IteratorType>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json from_cbor(IteratorType first, IteratorType last,\n                                const bool strict = true,\n                                const bool allow_exceptions = true,\n                                const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error)\n    {\n        basic_json result;\n        detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions);\n        auto ia = detail::input_adapter(std::move(first), std::move(last));\n        const bool res = binary_reader<decltype(ia)>(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler);\n        return res ? result : basic_json(value_t::discarded);\n    }\n\n    template<typename T>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_cbor(ptr, ptr + len))\n    static basic_json from_cbor(const T* ptr, std::size_t len,\n                                const bool strict = true,\n                                const bool allow_exceptions = true,\n                                const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error)\n    {\n        return from_cbor(ptr, ptr + len, strict, allow_exceptions, tag_handler);\n    }\n\n\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_cbor(ptr, ptr + len))\n    static basic_json from_cbor(detail::span_input_adapter&& i,\n                                const bool strict = true,\n                                const bool allow_exceptions = true,\n                                const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error)\n    {\n        basic_json result;\n        detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions);\n        auto ia = i.get();\n        // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg)\n        const bool res = binary_reader<decltype(ia)>(std::move(ia), input_format_t::cbor).sax_parse(input_format_t::cbor, &sdp, strict, tag_handler);\n        return res ? result : basic_json(value_t::discarded);\n    }\n\n    /// @brief create a JSON value from an input in MessagePack format\n    /// @sa https://json.nlohmann.me/api/basic_json/from_msgpack/\n    template<typename InputType>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json from_msgpack(InputType&& i,\n                                   const bool strict = true,\n                                   const bool allow_exceptions = true)\n    {\n        basic_json result;\n        detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions);\n        auto ia = detail::input_adapter(std::forward<InputType>(i));\n        const bool res = binary_reader<decltype(ia)>(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict);\n        return res ? result : basic_json(value_t::discarded);\n    }\n\n    /// @brief create a JSON value from an input in MessagePack format\n    /// @sa https://json.nlohmann.me/api/basic_json/from_msgpack/\n    template<typename IteratorType>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json from_msgpack(IteratorType first, IteratorType last,\n                                   const bool strict = true,\n                                   const bool allow_exceptions = true)\n    {\n        basic_json result;\n        detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions);\n        auto ia = detail::input_adapter(std::move(first), std::move(last));\n        const bool res = binary_reader<decltype(ia)>(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict);\n        return res ? result : basic_json(value_t::discarded);\n    }\n\n    template<typename T>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_msgpack(ptr, ptr + len))\n    static basic_json from_msgpack(const T* ptr, std::size_t len,\n                                   const bool strict = true,\n                                   const bool allow_exceptions = true)\n    {\n        return from_msgpack(ptr, ptr + len, strict, allow_exceptions);\n    }\n\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_msgpack(ptr, ptr + len))\n    static basic_json from_msgpack(detail::span_input_adapter&& i,\n                                   const bool strict = true,\n                                   const bool allow_exceptions = true)\n    {\n        basic_json result;\n        detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions);\n        auto ia = i.get();\n        // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg)\n        const bool res = binary_reader<decltype(ia)>(std::move(ia), input_format_t::msgpack).sax_parse(input_format_t::msgpack, &sdp, strict);\n        return res ? result : basic_json(value_t::discarded);\n    }\n\n    /// @brief create a JSON value from an input in UBJSON format\n    /// @sa https://json.nlohmann.me/api/basic_json/from_ubjson/\n    template<typename InputType>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json from_ubjson(InputType&& i,\n                                  const bool strict = true,\n                                  const bool allow_exceptions = true)\n    {\n        basic_json result;\n        detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions);\n        auto ia = detail::input_adapter(std::forward<InputType>(i));\n        const bool res = binary_reader<decltype(ia)>(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict);\n        return res ? result : basic_json(value_t::discarded);\n    }\n\n    /// @brief create a JSON value from an input in UBJSON format\n    /// @sa https://json.nlohmann.me/api/basic_json/from_ubjson/\n    template<typename IteratorType>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json from_ubjson(IteratorType first, IteratorType last,\n                                  const bool strict = true,\n                                  const bool allow_exceptions = true)\n    {\n        basic_json result;\n        detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions);\n        auto ia = detail::input_adapter(std::move(first), std::move(last));\n        const bool res = binary_reader<decltype(ia)>(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict);\n        return res ? result : basic_json(value_t::discarded);\n    }\n\n    template<typename T>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_ubjson(ptr, ptr + len))\n    static basic_json from_ubjson(const T* ptr, std::size_t len,\n                                  const bool strict = true,\n                                  const bool allow_exceptions = true)\n    {\n        return from_ubjson(ptr, ptr + len, strict, allow_exceptions);\n    }\n\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_ubjson(ptr, ptr + len))\n    static basic_json from_ubjson(detail::span_input_adapter&& i,\n                                  const bool strict = true,\n                                  const bool allow_exceptions = true)\n    {\n        basic_json result;\n        detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions);\n        auto ia = i.get();\n        // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg)\n        const bool res = binary_reader<decltype(ia)>(std::move(ia), input_format_t::ubjson).sax_parse(input_format_t::ubjson, &sdp, strict);\n        return res ? result : basic_json(value_t::discarded);\n    }\n\n\n    /// @brief create a JSON value from an input in BJData format\n    /// @sa https://json.nlohmann.me/api/basic_json/from_bjdata/\n    template<typename InputType>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json from_bjdata(InputType&& i,\n                                  const bool strict = true,\n                                  const bool allow_exceptions = true)\n    {\n        basic_json result;\n        detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions);\n        auto ia = detail::input_adapter(std::forward<InputType>(i));\n        const bool res = binary_reader<decltype(ia)>(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict);\n        return res ? result : basic_json(value_t::discarded);\n    }\n\n    /// @brief create a JSON value from an input in BJData format\n    /// @sa https://json.nlohmann.me/api/basic_json/from_bjdata/\n    template<typename IteratorType>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json from_bjdata(IteratorType first, IteratorType last,\n                                  const bool strict = true,\n                                  const bool allow_exceptions = true)\n    {\n        basic_json result;\n        detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions);\n        auto ia = detail::input_adapter(std::move(first), std::move(last));\n        const bool res = binary_reader<decltype(ia)>(std::move(ia), input_format_t::bjdata).sax_parse(input_format_t::bjdata, &sdp, strict);\n        return res ? result : basic_json(value_t::discarded);\n    }\n\n    /// @brief create a JSON value from an input in BSON format\n    /// @sa https://json.nlohmann.me/api/basic_json/from_bson/\n    template<typename InputType>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json from_bson(InputType&& i,\n                                const bool strict = true,\n                                const bool allow_exceptions = true)\n    {\n        basic_json result;\n        detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions);\n        auto ia = detail::input_adapter(std::forward<InputType>(i));\n        const bool res = binary_reader<decltype(ia)>(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict);\n        return res ? result : basic_json(value_t::discarded);\n    }\n\n    /// @brief create a JSON value from an input in BSON format\n    /// @sa https://json.nlohmann.me/api/basic_json/from_bson/\n    template<typename IteratorType>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json from_bson(IteratorType first, IteratorType last,\n                                const bool strict = true,\n                                const bool allow_exceptions = true)\n    {\n        basic_json result;\n        detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions);\n        auto ia = detail::input_adapter(std::move(first), std::move(last));\n        const bool res = binary_reader<decltype(ia)>(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict);\n        return res ? result : basic_json(value_t::discarded);\n    }\n\n    template<typename T>\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_bson(ptr, ptr + len))\n    static basic_json from_bson(const T* ptr, std::size_t len,\n                                const bool strict = true,\n                                const bool allow_exceptions = true)\n    {\n        return from_bson(ptr, ptr + len, strict, allow_exceptions);\n    }\n\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    JSON_HEDLEY_DEPRECATED_FOR(3.8.0, from_bson(ptr, ptr + len))\n    static basic_json from_bson(detail::span_input_adapter&& i,\n                                const bool strict = true,\n                                const bool allow_exceptions = true)\n    {\n        basic_json result;\n        detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions);\n        auto ia = i.get();\n        // NOLINTNEXTLINE(hicpp-move-const-arg,performance-move-const-arg)\n        const bool res = binary_reader<decltype(ia)>(std::move(ia), input_format_t::bson).sax_parse(input_format_t::bson, &sdp, strict);\n        return res ? result : basic_json(value_t::discarded);\n    }\n    /// @}\n\n    //////////////////////////\n    // JSON Pointer support //\n    //////////////////////////\n\n    /// @name JSON Pointer functions\n    /// @{\n\n    /// @brief access specified element via JSON Pointer\n    /// @sa https://json.nlohmann.me/api/basic_json/operator%5B%5D/\n    reference operator[](const json_pointer& ptr)\n    {\n        return ptr.get_unchecked(this);\n    }\n\n    template<typename BasicJsonType, detail::enable_if_t<detail::is_basic_json<BasicJsonType>::value, int> = 0>\n    JSON_HEDLEY_DEPRECATED_FOR(3.11.0, basic_json::json_pointer or nlohmann::json_pointer<basic_json::string_t>) // NOLINT(readability/alt_tokens)\n    reference operator[](const ::nlohmann::json_pointer<BasicJsonType>& ptr)\n    {\n        return ptr.get_unchecked(this);\n    }\n\n    /// @brief access specified element via JSON Pointer\n    /// @sa https://json.nlohmann.me/api/basic_json/operator%5B%5D/\n    const_reference operator[](const json_pointer& ptr) const\n    {\n        return ptr.get_unchecked(this);\n    }\n\n    template<typename BasicJsonType, detail::enable_if_t<detail::is_basic_json<BasicJsonType>::value, int> = 0>\n    JSON_HEDLEY_DEPRECATED_FOR(3.11.0, basic_json::json_pointer or nlohmann::json_pointer<basic_json::string_t>) // NOLINT(readability/alt_tokens)\n    const_reference operator[](const ::nlohmann::json_pointer<BasicJsonType>& ptr) const\n    {\n        return ptr.get_unchecked(this);\n    }\n\n    /// @brief access specified element via JSON Pointer\n    /// @sa https://json.nlohmann.me/api/basic_json/at/\n    reference at(const json_pointer& ptr)\n    {\n        return ptr.get_checked(this);\n    }\n\n    template<typename BasicJsonType, detail::enable_if_t<detail::is_basic_json<BasicJsonType>::value, int> = 0>\n    JSON_HEDLEY_DEPRECATED_FOR(3.11.0, basic_json::json_pointer or nlohmann::json_pointer<basic_json::string_t>) // NOLINT(readability/alt_tokens)\n    reference at(const ::nlohmann::json_pointer<BasicJsonType>& ptr)\n    {\n        return ptr.get_checked(this);\n    }\n\n    /// @brief access specified element via JSON Pointer\n    /// @sa https://json.nlohmann.me/api/basic_json/at/\n    const_reference at(const json_pointer& ptr) const\n    {\n        return ptr.get_checked(this);\n    }\n\n    template<typename BasicJsonType, detail::enable_if_t<detail::is_basic_json<BasicJsonType>::value, int> = 0>\n    JSON_HEDLEY_DEPRECATED_FOR(3.11.0, basic_json::json_pointer or nlohmann::json_pointer<basic_json::string_t>) // NOLINT(readability/alt_tokens)\n    const_reference at(const ::nlohmann::json_pointer<BasicJsonType>& ptr) const\n    {\n        return ptr.get_checked(this);\n    }\n\n    /// @brief return flattened JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/flatten/\n    basic_json flatten() const\n    {\n        basic_json result(value_t::object);\n        json_pointer::flatten(\"\", *this, result);\n        return result;\n    }\n\n    /// @brief unflatten a previously flattened JSON value\n    /// @sa https://json.nlohmann.me/api/basic_json/unflatten/\n    basic_json unflatten() const\n    {\n        return json_pointer::unflatten(*this);\n    }\n\n    /// @}\n\n    //////////////////////////\n    // JSON Patch functions //\n    //////////////////////////\n\n    /// @name JSON Patch functions\n    /// @{\n\n    /// @brief applies a JSON patch in-place without copying the object\n    /// @sa https://json.nlohmann.me/api/basic_json/patch/\n    void patch_inplace(const basic_json& json_patch)\n    {\n        basic_json& result = *this;\n        // the valid JSON Patch operations\n        enum class patch_operations {add, remove, replace, move, copy, test, invalid};\n\n        const auto get_op = [](const std::string & op)\n        {\n            if (op == \"add\")\n            {\n                return patch_operations::add;\n            }\n            if (op == \"remove\")\n            {\n                return patch_operations::remove;\n            }\n            if (op == \"replace\")\n            {\n                return patch_operations::replace;\n            }\n            if (op == \"move\")\n            {\n                return patch_operations::move;\n            }\n            if (op == \"copy\")\n            {\n                return patch_operations::copy;\n            }\n            if (op == \"test\")\n            {\n                return patch_operations::test;\n            }\n\n            return patch_operations::invalid;\n        };\n\n        // wrapper for \"add\" operation; add value at ptr\n        const auto operation_add = [&result](json_pointer & ptr, basic_json val)\n        {\n            // adding to the root of the target document means replacing it\n            if (ptr.empty())\n            {\n                result = val;\n                return;\n            }\n\n            // make sure the top element of the pointer exists\n            json_pointer const top_pointer = ptr.top();\n            if (top_pointer != ptr)\n            {\n                result.at(top_pointer);\n            }\n\n            // get reference to parent of JSON pointer ptr\n            const auto last_path = ptr.back();\n            ptr.pop_back();\n            // parent must exist when performing patch add per RFC6902 specs\n            basic_json& parent = result.at(ptr);\n\n            switch (parent.m_data.m_type)\n            {\n                case value_t::null:\n                case value_t::object:\n                {\n                    // use operator[] to add value\n                    parent[last_path] = val;\n                    break;\n                }\n\n                case value_t::array:\n                {\n                    if (last_path == \"-\")\n                    {\n                        // special case: append to back\n                        parent.push_back(val);\n                    }\n                    else\n                    {\n                        const auto idx = json_pointer::template array_index<basic_json_t>(last_path);\n                        if (JSON_HEDLEY_UNLIKELY(idx > parent.size()))\n                        {\n                            // avoid undefined behavior\n                            JSON_THROW(out_of_range::create(401, detail::concat(\"array index \", std::to_string(idx), \" is out of range\"), &parent));\n                        }\n\n                        // default case: insert add offset\n                        parent.insert(parent.begin() + static_cast<difference_type>(idx), val);\n                    }\n                    break;\n                }\n\n                // if there exists a parent it cannot be primitive\n                case value_t::string: // LCOV_EXCL_LINE\n                case value_t::boolean: // LCOV_EXCL_LINE\n                case value_t::number_integer: // LCOV_EXCL_LINE\n                case value_t::number_unsigned: // LCOV_EXCL_LINE\n                case value_t::number_float: // LCOV_EXCL_LINE\n                case value_t::binary: // LCOV_EXCL_LINE\n                case value_t::discarded: // LCOV_EXCL_LINE\n                default:            // LCOV_EXCL_LINE\n                    JSON_ASSERT(false); // NOLINT(cert-dcl03-c,hicpp-static-assert,misc-static-assert) LCOV_EXCL_LINE\n            }\n        };\n\n        // wrapper for \"remove\" operation; remove value at ptr\n        const auto operation_remove = [this, &result](json_pointer & ptr)\n        {\n            // get reference to parent of JSON pointer ptr\n            const auto last_path = ptr.back();\n            ptr.pop_back();\n            basic_json& parent = result.at(ptr);\n\n            // remove child\n            if (parent.is_object())\n            {\n                // perform range check\n                auto it = parent.find(last_path);\n                if (JSON_HEDLEY_LIKELY(it != parent.end()))\n                {\n                    parent.erase(it);\n                }\n                else\n                {\n                    JSON_THROW(out_of_range::create(403, detail::concat(\"key '\", last_path, \"' not found\"), this));\n                }\n            }\n            else if (parent.is_array())\n            {\n                // note erase performs range check\n                parent.erase(json_pointer::template array_index<basic_json_t>(last_path));\n            }\n        };\n\n        // type check: top level value must be an array\n        if (JSON_HEDLEY_UNLIKELY(!json_patch.is_array()))\n        {\n            JSON_THROW(parse_error::create(104, 0, \"JSON patch must be an array of objects\", &json_patch));\n        }\n\n        // iterate and apply the operations\n        for (const auto& val : json_patch)\n        {\n            // wrapper to get a value for an operation\n            const auto get_value = [&val](const std::string & op,\n                                          const std::string & member,\n                                          bool string_type) -> basic_json &\n            {\n                // find value\n                auto it = val.m_data.m_value.object->find(member);\n\n                // context-sensitive error message\n                const auto error_msg = (op == \"op\") ? \"operation\" : detail::concat(\"operation '\", op, '\\'');\n\n                // check if desired value is present\n                if (JSON_HEDLEY_UNLIKELY(it == val.m_data.m_value.object->end()))\n                {\n                    // NOLINTNEXTLINE(performance-inefficient-string-concatenation)\n                    JSON_THROW(parse_error::create(105, 0, detail::concat(error_msg, \" must have member '\", member, \"'\"), &val));\n                }\n\n                // check if result is of type string\n                if (JSON_HEDLEY_UNLIKELY(string_type && !it->second.is_string()))\n                {\n                    // NOLINTNEXTLINE(performance-inefficient-string-concatenation)\n                    JSON_THROW(parse_error::create(105, 0, detail::concat(error_msg, \" must have string member '\", member, \"'\"), &val));\n                }\n\n                // no error: return value\n                return it->second;\n            };\n\n            // type check: every element of the array must be an object\n            if (JSON_HEDLEY_UNLIKELY(!val.is_object()))\n            {\n                JSON_THROW(parse_error::create(104, 0, \"JSON patch must be an array of objects\", &val));\n            }\n\n            // collect mandatory members\n            const auto op = get_value(\"op\", \"op\", true).template get<std::string>();\n            const auto path = get_value(op, \"path\", true).template get<std::string>();\n            json_pointer ptr(path);\n\n            switch (get_op(op))\n            {\n                case patch_operations::add:\n                {\n                    operation_add(ptr, get_value(\"add\", \"value\", false));\n                    break;\n                }\n\n                case patch_operations::remove:\n                {\n                    operation_remove(ptr);\n                    break;\n                }\n\n                case patch_operations::replace:\n                {\n                    // the \"path\" location must exist - use at()\n                    result.at(ptr) = get_value(\"replace\", \"value\", false);\n                    break;\n                }\n\n                case patch_operations::move:\n                {\n                    const auto from_path = get_value(\"move\", \"from\", true).template get<std::string>();\n                    json_pointer from_ptr(from_path);\n\n                    // the \"from\" location must exist - use at()\n                    basic_json const v = result.at(from_ptr);\n\n                    // The move operation is functionally identical to a\n                    // \"remove\" operation on the \"from\" location, followed\n                    // immediately by an \"add\" operation at the target\n                    // location with the value that was just removed.\n                    operation_remove(from_ptr);\n                    operation_add(ptr, v);\n                    break;\n                }\n\n                case patch_operations::copy:\n                {\n                    const auto from_path = get_value(\"copy\", \"from\", true).template get<std::string>();\n                    const json_pointer from_ptr(from_path);\n\n                    // the \"from\" location must exist - use at()\n                    basic_json const v = result.at(from_ptr);\n\n                    // The copy is functionally identical to an \"add\"\n                    // operation at the target location using the value\n                    // specified in the \"from\" member.\n                    operation_add(ptr, v);\n                    break;\n                }\n\n                case patch_operations::test:\n                {\n                    bool success = false;\n                    JSON_TRY\n                    {\n                        // check if \"value\" matches the one at \"path\"\n                        // the \"path\" location must exist - use at()\n                        success = (result.at(ptr) == get_value(\"test\", \"value\", false));\n                    }\n                    JSON_INTERNAL_CATCH (out_of_range&)\n                    {\n                        // ignore out of range errors: success remains false\n                    }\n\n                    // throw an exception if test fails\n                    if (JSON_HEDLEY_UNLIKELY(!success))\n                    {\n                        JSON_THROW(other_error::create(501, detail::concat(\"unsuccessful: \", val.dump()), &val));\n                    }\n\n                    break;\n                }\n\n                case patch_operations::invalid:\n                default:\n                {\n                    // op must be \"add\", \"remove\", \"replace\", \"move\", \"copy\", or\n                    // \"test\"\n                    JSON_THROW(parse_error::create(105, 0, detail::concat(\"operation value '\", op, \"' is invalid\"), &val));\n                }\n            }\n        }\n    }\n\n    /// @brief applies a JSON patch to a copy of the current object\n    /// @sa https://json.nlohmann.me/api/basic_json/patch/\n    basic_json patch(const basic_json& json_patch) const\n    {\n        basic_json result = *this;\n        result.patch_inplace(json_patch);\n        return result;\n    }\n\n    /// @brief creates a diff as a JSON patch\n    /// @sa https://json.nlohmann.me/api/basic_json/diff/\n    JSON_HEDLEY_WARN_UNUSED_RESULT\n    static basic_json diff(const basic_json& source, const basic_json& target,\n                           const std::string& path = \"\")\n    {\n        // the patch\n        basic_json result(value_t::array);\n\n        // if the values are the same, return empty patch\n        if (source == target)\n        {\n            return result;\n        }\n\n        if (source.type() != target.type())\n        {\n            // different types: replace value\n            result.push_back(\n            {\n                {\"op\", \"replace\"}, {\"path\", path}, {\"value\", target}\n            });\n            return result;\n        }\n\n        switch (source.type())\n        {\n            case value_t::array:\n            {\n                // first pass: traverse common elements\n                std::size_t i = 0;\n                while (i < source.size() && i < target.size())\n                {\n                    // recursive call to compare array values at index i\n                    auto temp_diff = diff(source[i], target[i], detail::concat(path, '/', std::to_string(i)));\n                    result.insert(result.end(), temp_diff.begin(), temp_diff.end());\n                    ++i;\n                }\n\n                // We now reached the end of at least one array\n                // in a second pass, traverse the remaining elements\n\n                // remove my remaining elements\n                const auto end_index = static_cast<difference_type>(result.size());\n                while (i < source.size())\n                {\n                    // add operations in reverse order to avoid invalid\n                    // indices\n                    result.insert(result.begin() + end_index, object(\n                    {\n                        {\"op\", \"remove\"},\n                        {\"path\", detail::concat(path, '/', std::to_string(i))}\n                    }));\n                    ++i;\n                }\n\n                // add other remaining elements\n                while (i < target.size())\n                {\n                    result.push_back(\n                    {\n                        {\"op\", \"add\"},\n                        {\"path\", detail::concat(path, \"/-\")},\n                        {\"value\", target[i]}\n                    });\n                    ++i;\n                }\n\n                break;\n            }\n\n            case value_t::object:\n            {\n                // first pass: traverse this object's elements\n                for (auto it = source.cbegin(); it != source.cend(); ++it)\n                {\n                    // escape the key name to be used in a JSON patch\n                    const auto path_key = detail::concat(path, '/', detail::escape(it.key()));\n\n                    if (target.find(it.key()) != target.end())\n                    {\n                        // recursive call to compare object values at key it\n                        auto temp_diff = diff(it.value(), target[it.key()], path_key);\n                        result.insert(result.end(), temp_diff.begin(), temp_diff.end());\n                    }\n                    else\n                    {\n                        // found a key that is not in o -> remove it\n                        result.push_back(object(\n                        {\n                            {\"op\", \"remove\"}, {\"path\", path_key}\n                        }));\n                    }\n                }\n\n                // second pass: traverse other object's elements\n                for (auto it = target.cbegin(); it != target.cend(); ++it)\n                {\n                    if (source.find(it.key()) == source.end())\n                    {\n                        // found a key that is not in this -> add it\n                        const auto path_key = detail::concat(path, '/', detail::escape(it.key()));\n                        result.push_back(\n                        {\n                            {\"op\", \"add\"}, {\"path\", path_key},\n                            {\"value\", it.value()}\n                        });\n                    }\n                }\n\n                break;\n            }\n\n            case value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n            case value_t::number_integer:\n            case value_t::number_unsigned:\n            case value_t::number_float:\n            case value_t::binary:\n            case value_t::discarded:\n            default:\n            {\n                // both primitive type: replace value\n                result.push_back(\n                {\n                    {\"op\", \"replace\"}, {\"path\", path}, {\"value\", target}\n                });\n                break;\n            }\n        }\n\n        return result;\n    }\n    /// @}\n\n    ////////////////////////////////\n    // JSON Merge Patch functions //\n    ////////////////////////////////\n\n    /// @name JSON Merge Patch functions\n    /// @{\n\n    /// @brief applies a JSON Merge Patch\n    /// @sa https://json.nlohmann.me/api/basic_json/merge_patch/\n    void merge_patch(const basic_json& apply_patch)\n    {\n        if (apply_patch.is_object())\n        {\n            if (!is_object())\n            {\n                *this = object();\n            }\n            for (auto it = apply_patch.begin(); it != apply_patch.end(); ++it)\n            {\n                if (it.value().is_null())\n                {\n                    erase(it.key());\n                }\n                else\n                {\n                    operator[](it.key()).merge_patch(it.value());\n                }\n            }\n        }\n        else\n        {\n            *this = apply_patch;\n        }\n    }\n\n    /// @}\n};\n\n/// @brief user-defined to_string function for JSON values\n/// @sa https://json.nlohmann.me/api/basic_json/to_string/\nNLOHMANN_BASIC_JSON_TPL_DECLARATION\nstd::string to_string(const NLOHMANN_BASIC_JSON_TPL& j)\n{\n    return j.dump();\n}\n\ninline namespace literals\n{\ninline namespace json_literals\n{\n\n/// @brief user-defined string literal for JSON values\n/// @sa https://json.nlohmann.me/api/basic_json/operator_literal_json/\nJSON_HEDLEY_NON_NULL(1)\ninline nlohmann::json operator \"\" _json(const char* s, std::size_t n)\n{\n    return nlohmann::json::parse(s, s + n);\n}\n\n/// @brief user-defined string literal for JSON pointer\n/// @sa https://json.nlohmann.me/api/basic_json/operator_literal_json_pointer/\nJSON_HEDLEY_NON_NULL(1)\ninline nlohmann::json::json_pointer operator \"\" _json_pointer(const char* s, std::size_t n)\n{\n    return nlohmann::json::json_pointer(std::string(s, n));\n}\n\n}  // namespace json_literals\n}  // namespace literals\nNLOHMANN_JSON_NAMESPACE_END\n\n///////////////////////\n// nonmember support //\n///////////////////////\n\nnamespace std // NOLINT(cert-dcl58-cpp)\n{\n\n/// @brief hash value for JSON objects\n/// @sa https://json.nlohmann.me/api/basic_json/std_hash/\nNLOHMANN_BASIC_JSON_TPL_DECLARATION\nstruct hash<nlohmann::NLOHMANN_BASIC_JSON_TPL> // NOLINT(cert-dcl58-cpp)\n{\n    std::size_t operator()(const nlohmann::NLOHMANN_BASIC_JSON_TPL& j) const\n    {\n        return nlohmann::detail::hash(j);\n    }\n};\n\n// specialization for std::less<value_t>\ntemplate<>\nstruct less< ::nlohmann::detail::value_t> // do not remove the space after '<', see https://github.com/nlohmann/json/pull/679\n{\n    /*!\n    @brief compare two value_t enum values\n    @since version 3.0.0\n    */\n    bool operator()(::nlohmann::detail::value_t lhs,\n                    ::nlohmann::detail::value_t rhs) const noexcept\n    {\n#if JSON_HAS_THREE_WAY_COMPARISON\n        return std::is_lt(lhs <=> rhs); // *NOPAD*\n#else\n        return ::nlohmann::detail::operator<(lhs, rhs);\n#endif\n    }\n};\n\n// C++20 prohibit function specialization in the std namespace.\n#ifndef JSON_HAS_CPP_20\n\n/// @brief exchanges the values of two JSON objects\n/// @sa https://json.nlohmann.me/api/basic_json/std_swap/\nNLOHMANN_BASIC_JSON_TPL_DECLARATION\ninline void swap(nlohmann::NLOHMANN_BASIC_JSON_TPL& j1, nlohmann::NLOHMANN_BASIC_JSON_TPL& j2) noexcept(  // NOLINT(readability-inconsistent-declaration-parameter-name, cert-dcl58-cpp)\n    is_nothrow_move_constructible<nlohmann::NLOHMANN_BASIC_JSON_TPL>::value&&                          // NOLINT(misc-redundant-expression)\n    is_nothrow_move_assignable<nlohmann::NLOHMANN_BASIC_JSON_TPL>::value)\n{\n    j1.swap(j2);\n}\n\n#endif\n\n}  // namespace std\n\n#if JSON_USE_GLOBAL_UDLS\n    using nlohmann::literals::json_literals::operator \"\" _json; // NOLINT(misc-unused-using-decls,google-global-names-in-headers)\n    using nlohmann::literals::json_literals::operator \"\" _json_pointer; //NOLINT(misc-unused-using-decls,google-global-names-in-headers)\n#endif\n\n// #include <nlohmann/detail/macro_unscope.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n// restore clang diagnostic settings\n#if defined(__clang__)\n    #pragma clang diagnostic pop\n#endif\n\n// clean up\n#undef JSON_ASSERT\n#undef JSON_INTERNAL_CATCH\n#undef JSON_THROW\n#undef JSON_PRIVATE_UNLESS_TESTED\n#undef NLOHMANN_BASIC_JSON_TPL_DECLARATION\n#undef NLOHMANN_BASIC_JSON_TPL\n#undef JSON_EXPLICIT\n#undef NLOHMANN_CAN_CALL_STD_FUNC_IMPL\n#undef JSON_INLINE_VARIABLE\n#undef JSON_NO_UNIQUE_ADDRESS\n#undef JSON_DISABLE_ENUM_SERIALIZATION\n#undef JSON_USE_GLOBAL_UDLS\n\n#ifndef JSON_TEST_KEEP_MACROS\n    #undef JSON_CATCH\n    #undef JSON_TRY\n    #undef JSON_HAS_CPP_11\n    #undef JSON_HAS_CPP_14\n    #undef JSON_HAS_CPP_17\n    #undef JSON_HAS_CPP_20\n    #undef JSON_HAS_FILESYSTEM\n    #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM\n    #undef JSON_HAS_THREE_WAY_COMPARISON\n    #undef JSON_HAS_RANGES\n    #undef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON\n#endif\n\n// #include <nlohmann/thirdparty/hedley/hedley_undef.hpp>\n//     __ _____ _____ _____\n//  __|  |   __|     |   | |  JSON for Modern C++\n// |  |  |__   |  |  | | | |  version 3.11.2\n// |_____|_____|_____|_|___|  https://github.com/nlohmann/json\n//\n// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann <https://nlohmann.me>\n// SPDX-License-Identifier: MIT\n\n\n\n#undef JSON_HEDLEY_ALWAYS_INLINE\n#undef JSON_HEDLEY_ARM_VERSION\n#undef JSON_HEDLEY_ARM_VERSION_CHECK\n#undef JSON_HEDLEY_ARRAY_PARAM\n#undef JSON_HEDLEY_ASSUME\n#undef JSON_HEDLEY_BEGIN_C_DECLS\n#undef JSON_HEDLEY_CLANG_HAS_ATTRIBUTE\n#undef JSON_HEDLEY_CLANG_HAS_BUILTIN\n#undef JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE\n#undef JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE\n#undef JSON_HEDLEY_CLANG_HAS_EXTENSION\n#undef JSON_HEDLEY_CLANG_HAS_FEATURE\n#undef JSON_HEDLEY_CLANG_HAS_WARNING\n#undef JSON_HEDLEY_COMPCERT_VERSION\n#undef JSON_HEDLEY_COMPCERT_VERSION_CHECK\n#undef JSON_HEDLEY_CONCAT\n#undef JSON_HEDLEY_CONCAT3\n#undef JSON_HEDLEY_CONCAT3_EX\n#undef JSON_HEDLEY_CONCAT_EX\n#undef JSON_HEDLEY_CONST\n#undef JSON_HEDLEY_CONSTEXPR\n#undef JSON_HEDLEY_CONST_CAST\n#undef JSON_HEDLEY_CPP_CAST\n#undef JSON_HEDLEY_CRAY_VERSION\n#undef JSON_HEDLEY_CRAY_VERSION_CHECK\n#undef JSON_HEDLEY_C_DECL\n#undef JSON_HEDLEY_DEPRECATED\n#undef JSON_HEDLEY_DEPRECATED_FOR\n#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL\n#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_\n#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED\n#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES\n#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS\n#undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION\n#undef JSON_HEDLEY_DIAGNOSTIC_POP\n#undef JSON_HEDLEY_DIAGNOSTIC_PUSH\n#undef JSON_HEDLEY_DMC_VERSION\n#undef JSON_HEDLEY_DMC_VERSION_CHECK\n#undef JSON_HEDLEY_EMPTY_BASES\n#undef JSON_HEDLEY_EMSCRIPTEN_VERSION\n#undef JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK\n#undef JSON_HEDLEY_END_C_DECLS\n#undef JSON_HEDLEY_FLAGS\n#undef JSON_HEDLEY_FLAGS_CAST\n#undef JSON_HEDLEY_GCC_HAS_ATTRIBUTE\n#undef JSON_HEDLEY_GCC_HAS_BUILTIN\n#undef JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE\n#undef JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE\n#undef JSON_HEDLEY_GCC_HAS_EXTENSION\n#undef JSON_HEDLEY_GCC_HAS_FEATURE\n#undef JSON_HEDLEY_GCC_HAS_WARNING\n#undef JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK\n#undef JSON_HEDLEY_GCC_VERSION\n#undef JSON_HEDLEY_GCC_VERSION_CHECK\n#undef JSON_HEDLEY_GNUC_HAS_ATTRIBUTE\n#undef JSON_HEDLEY_GNUC_HAS_BUILTIN\n#undef JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE\n#undef JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE\n#undef JSON_HEDLEY_GNUC_HAS_EXTENSION\n#undef JSON_HEDLEY_GNUC_HAS_FEATURE\n#undef JSON_HEDLEY_GNUC_HAS_WARNING\n#undef JSON_HEDLEY_GNUC_VERSION\n#undef JSON_HEDLEY_GNUC_VERSION_CHECK\n#undef JSON_HEDLEY_HAS_ATTRIBUTE\n#undef JSON_HEDLEY_HAS_BUILTIN\n#undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE\n#undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS\n#undef JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE\n#undef JSON_HEDLEY_HAS_EXTENSION\n#undef JSON_HEDLEY_HAS_FEATURE\n#undef JSON_HEDLEY_HAS_WARNING\n#undef JSON_HEDLEY_IAR_VERSION\n#undef JSON_HEDLEY_IAR_VERSION_CHECK\n#undef JSON_HEDLEY_IBM_VERSION\n#undef JSON_HEDLEY_IBM_VERSION_CHECK\n#undef JSON_HEDLEY_IMPORT\n#undef JSON_HEDLEY_INLINE\n#undef JSON_HEDLEY_INTEL_CL_VERSION\n#undef JSON_HEDLEY_INTEL_CL_VERSION_CHECK\n#undef JSON_HEDLEY_INTEL_VERSION\n#undef JSON_HEDLEY_INTEL_VERSION_CHECK\n#undef JSON_HEDLEY_IS_CONSTANT\n#undef JSON_HEDLEY_IS_CONSTEXPR_\n#undef JSON_HEDLEY_LIKELY\n#undef JSON_HEDLEY_MALLOC\n#undef JSON_HEDLEY_MCST_LCC_VERSION\n#undef JSON_HEDLEY_MCST_LCC_VERSION_CHECK\n#undef JSON_HEDLEY_MESSAGE\n#undef JSON_HEDLEY_MSVC_VERSION\n#undef JSON_HEDLEY_MSVC_VERSION_CHECK\n#undef JSON_HEDLEY_NEVER_INLINE\n#undef JSON_HEDLEY_NON_NULL\n#undef JSON_HEDLEY_NO_ESCAPE\n#undef JSON_HEDLEY_NO_RETURN\n#undef JSON_HEDLEY_NO_THROW\n#undef JSON_HEDLEY_NULL\n#undef JSON_HEDLEY_PELLES_VERSION\n#undef JSON_HEDLEY_PELLES_VERSION_CHECK\n#undef JSON_HEDLEY_PGI_VERSION\n#undef JSON_HEDLEY_PGI_VERSION_CHECK\n#undef JSON_HEDLEY_PREDICT\n#undef JSON_HEDLEY_PRINTF_FORMAT\n#undef JSON_HEDLEY_PRIVATE\n#undef JSON_HEDLEY_PUBLIC\n#undef JSON_HEDLEY_PURE\n#undef JSON_HEDLEY_REINTERPRET_CAST\n#undef JSON_HEDLEY_REQUIRE\n#undef JSON_HEDLEY_REQUIRE_CONSTEXPR\n#undef JSON_HEDLEY_REQUIRE_MSG\n#undef JSON_HEDLEY_RESTRICT\n#undef JSON_HEDLEY_RETURNS_NON_NULL\n#undef JSON_HEDLEY_SENTINEL\n#undef JSON_HEDLEY_STATIC_ASSERT\n#undef JSON_HEDLEY_STATIC_CAST\n#undef JSON_HEDLEY_STRINGIFY\n#undef JSON_HEDLEY_STRINGIFY_EX\n#undef JSON_HEDLEY_SUNPRO_VERSION\n#undef JSON_HEDLEY_SUNPRO_VERSION_CHECK\n#undef JSON_HEDLEY_TINYC_VERSION\n#undef JSON_HEDLEY_TINYC_VERSION_CHECK\n#undef JSON_HEDLEY_TI_ARMCL_VERSION\n#undef JSON_HEDLEY_TI_ARMCL_VERSION_CHECK\n#undef JSON_HEDLEY_TI_CL2000_VERSION\n#undef JSON_HEDLEY_TI_CL2000_VERSION_CHECK\n#undef JSON_HEDLEY_TI_CL430_VERSION\n#undef JSON_HEDLEY_TI_CL430_VERSION_CHECK\n#undef JSON_HEDLEY_TI_CL6X_VERSION\n#undef JSON_HEDLEY_TI_CL6X_VERSION_CHECK\n#undef JSON_HEDLEY_TI_CL7X_VERSION\n#undef JSON_HEDLEY_TI_CL7X_VERSION_CHECK\n#undef JSON_HEDLEY_TI_CLPRU_VERSION\n#undef JSON_HEDLEY_TI_CLPRU_VERSION_CHECK\n#undef JSON_HEDLEY_TI_VERSION\n#undef JSON_HEDLEY_TI_VERSION_CHECK\n#undef JSON_HEDLEY_UNAVAILABLE\n#undef JSON_HEDLEY_UNLIKELY\n#undef JSON_HEDLEY_UNPREDICTABLE\n#undef JSON_HEDLEY_UNREACHABLE\n#undef JSON_HEDLEY_UNREACHABLE_RETURN\n#undef JSON_HEDLEY_VERSION\n#undef JSON_HEDLEY_VERSION_DECODE_MAJOR\n#undef JSON_HEDLEY_VERSION_DECODE_MINOR\n#undef JSON_HEDLEY_VERSION_DECODE_REVISION\n#undef JSON_HEDLEY_VERSION_ENCODE\n#undef JSON_HEDLEY_WARNING\n#undef JSON_HEDLEY_WARN_UNUSED_RESULT\n#undef JSON_HEDLEY_WARN_UNUSED_RESULT_MSG\n#undef JSON_HEDLEY_FALL_THROUGH\n\n\n\n#endif  // INCLUDE_NLOHMANN_JSON_HPP_"
  },
  {
    "path": "src/utils/windows.h",
    "content": "//\n// Created by nonun on 25. 1. 4.\n//\n\n#ifndef WINDOWS_H\n#define WINDOWS_H\n\n#ifdef _MSC_VER // Visual Studio\n#define PACKED_STRUCT(name) \\\n\t__pragma(pack(push, 1)) struct name __pragma(pack(pop))\n#else // GCC, Clang\n#define PACKED_STRUCT(name) struct __attribute__((packed)) name\n#endif\n\n#ifdef _WIN32\n#include <windows.h>\n#define sleep(seconds) Sleep((seconds) * 1000)\n#endif\n\n#endif //WINDOWS_H\n"
  },
  {
    "path": "test/fixture/download-test-fixtures.sh",
    "content": "#!/usr/bin/env bash\n\ncd \"$(dirname \"$0\")\" || exit\n\ncurl -o sample/1/model.onnx \"http://server.11math.com/static/onnxruntime-server/sample/model1.onnx\"\ncurl -o sample/2/model.onnx \"http://server.11math.com/static/onnxruntime-server/sample/model2.onnx\"\ncp sample/1/model.onnx sample/3.onnx\n"
  },
  {
    "path": "test/fixture/sample/1/README.md",
    "content": "# Sample model 1\n\n- test/sample-onnx-generator/sample-model1.py\n- http://server.11math.com/static/onnxruntime-server/sample/model1.onnx"
  },
  {
    "path": "test/fixture/sample/2/README.md",
    "content": "# Sample model 2\n\n- https://huggingface.co/alimazhar-110/website_classification\n- test/sample-onnx-generator/website_classification.py\n- http://server.11math.com/static/onnxruntime-server/sample/model2.onnx"
  },
  {
    "path": "test/http/http-client.env.json",
    "content": "{\n  \"http-dev\": {\n    \"host\": \"http://localhost:8080\"\n  }\n}"
  },
  {
    "path": "test/http/http_test.http",
    "content": "### Health check\nGET {{host}}/health\n\n### List sessions\nGET {{host}}/api/sessions\n\n### Create session 1\nPOST {{host}}/api/sessions\nContent-Type: application/json\n\n{\n  \"model\": \"sample\",\n  \"version\": \"1\"\n}\n\n### Get session 1\nGET {{host}}/api/sessions/sample/1\n\n\n### Create session 2\nPOST {{host}}/api/sessions\nContent-Type: application/json\n\n{\n  \"model\": \"sample\",\n  \"version\": \"2\"\n}\n\n### Create session 2 using CUDA\nPOST {{host}}/api/sessions\nContent-Type: application/json\n\n{\n  \"model\": \"sample\",\n  \"version\": \"2\",\n  \"option\": {\n    \"cuda\": true\n  }\n}\n\n### Execute session 1\nPOST {{host}}/api/sessions/sample/1\nContent-Type: application/json\n\n{\n  \"x\": [[1]],\n  \"y\": [[2]],\n  \"z\": [[3]]\n}\n\n\n### Execute session 1 with batch\nPOST {{host}}/api/sessions/sample/1\nContent-Type: application/json\n\n{\n  \"x\": [[1], [2], [3]],\n  \"y\": [[2], [3], [4]],\n  \"z\": [[3], [4], [5]]\n}\n\n### Execute session 2\nPOST {{host}}/api/sessions/sample/2\nContent-Type: application/json\n\n{\n  \"input_ids\": [\n    [\n      101, 11834, 21600, 2102, 9005, 12098, 8566, 5740, 6853, 1999, 1996, 2806, 1997, 15262, 19699, 14663, 1005, 1055,\n      3203, 8447, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0\n    ],\n    [\n      101, 3795, 3361, 3422, 16168, 19428, 1997, 1520, 2582, 7860, 1998, 28215, 1521, 3805, 102, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n    ],\n    [\n      101, 2054, 4511, 2323, 1045, 3288, 2000, 1037, 8179, 2283, 1029, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n    ]\n  ],\n  \"onnx::Equal_1\": [\n    [\n      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n    ],\n    [\n      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n    ],\n    [\n      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n    ]\n  ]\n}\n\n### Destroy session 2\nDELETE {{host}}/api/sessions/sample/2\n\n"
  },
  {
    "path": "test/sample-onnx-generator/requirements.txt",
    "content": "scikit-learn\npandas\ntorch\nonnx\nonnxruntime\nonnxruntime-gpu\ntransformers\n"
  },
  {
    "path": "test/sample-onnx-generator/sample-model1.py",
    "content": "import numpy as np\nimport torch\nfrom torch import nn\n\n\nclass SimpleModel(nn.Module):\n    def __init__(self):\n        super().__init__()\n\n        self.linear1 = torch.nn.Linear(3, 3)\n        self.linear2 = torch.nn.Linear(3, 1)\n\n    def forward(self, x, y, z):\n        return self.linear2(self.linear1(torch.cat((x, y, z), dim=1)))\n\n\ndef main():\n    x = np.random.randint(10, size=(10000, 1))\n    y = np.random.randint(10, size=(10000, 1))\n    z = np.random.randint(10, size=(10000, 1))\n    labels = np.random.randint(3, size=(10000, 1))\n\n    model = SimpleModel()\n\n    epochs = 20\n    batch_size = 100\n    lr = 0.0001\n\n    loss_fn = torch.nn.MSELoss(reduction='mean')\n    optimizer = torch.optim.Adam(model.parameters(), lr=lr)\n\n    max_accuracy = 0.0\n    state_dict = None\n    for epoch in range(epochs):\n        count = 0\n        match = 0\n\n        for i in range(0, len(x), batch_size):\n            batch_x = torch.tensor(x[i:i + batch_size], dtype=torch.float32)\n            batch_y = torch.tensor(y[i:i + batch_size], dtype=torch.float32)\n            batch_z = torch.tensor(z[i:i + batch_size], dtype=torch.float32)\n            batch_labels = torch.tensor(labels[i:i + batch_size], dtype=torch.float32)\n\n            model.zero_grad()\n            predict = model(batch_x, batch_y, batch_z)\n            loss = loss_fn(predict, batch_labels)\n            loss.backward()\n            optimizer.step()\n\n            count += len(batch_labels)\n            match += (torch.round(predict) == batch_labels).sum().item()\n\n        accuracy = (torch.round(predict) == batch_labels).sum().item() / len(batch_labels)\n        if accuracy > max_accuracy:\n            max_accuracy = accuracy\n            state_dict = model.state_dict()\n\n        print(f\"epoch: {epoch}, loss: {loss.item()}, accuracy: {accuracy}\")\n\n    print(f\"max_accuracy: {max_accuracy}\")\n    print(f\"state_dict: {state_dict}\")\n\n    model_to_save = SimpleModel()\n    model_to_save.load_state_dict(state_dict)\n\n    print(\"Test code expect\")\n    print(model_to_save(\n        torch.tensor([[1], [2], [3]], dtype=torch.float32),\n        torch.tensor([[2], [3], [4]], dtype=torch.float32),\n        torch.tensor([[3], [4], [5]], dtype=torch.float32)\n    ))\n\n    torch.onnx.export(\n        model_to_save,\n        (torch.tensor(x[:1], dtype=torch.float32), torch.tensor(y[:1], dtype=torch.float32),\n         torch.tensor(z[:1], dtype=torch.float32)),\n        \"../fixture/sample/1/model.onnx\",\n        export_params=True,\n        input_names=['x', 'y', 'z'],\n        output_names=['output'],\n        dynamic_axes={'x': {0: 'batch_size'}, 'y': {0: 'batch_size'}, 'z': {0: 'batch_size'},\n                      'output': {0: 'batch_size'}},\n        verbose=True,\n    )\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "test/sample-onnx-generator/website_classification.py",
    "content": "import torch\nfrom transformers import AutoTokenizer, AutoModelForSequenceClassification, AutoConfig\n\n\ndef hook_fn(module, input, output):\n    return torch.argmax(output.logits, dim=-1)\n\n\ndef main():\n    # Load model directly\n\n    model_name = \"alimazhar-110/website_classification\"\n    tokenizer = AutoTokenizer.from_pretrained(model_name)\n    model = AutoModelForSequenceClassification.from_pretrained(model_name)\n    model.register_forward_hook(hook_fn)\n    model.eval()\n\n    inputs = tokenizer([\n        \"ChatGPT Creates Arduino Drivers in the Style of Adafruit's Ladyada\",\n        \"Global financial watchdog warns of ‘further challenges and shocks’ ahead\",\n        \"What wine should I bring to a divorce party?\"\n    ],\n        truncation=True,\n        return_tensors='pt', padding='max_length', max_length=512)\n\n    outputs = model(**inputs)\n\n    print(inputs.input_ids.tolist())\n    print(inputs.attention_mask.tolist())\n    print(inputs, outputs)\n    # print([model.labels[pred.item()] for pred in outputs])\n    # exit(0)\n\n    input_ids = torch.ones(1, 512, dtype=torch.int64)\n    attention_mask = torch.ones(1, 512, dtype=torch.int64)\n\n    torch.onnx.export(\n        model,\n        (input_ids, attention_mask),\n        \"../fixture/sample/2/model.onnx\",\n        input_names=['input_ids', 'onnx::Equal_1'],\n        output_names=['output'],\n        dynamic_axes={'input_ids': {0: 'batch_size'}, 'onnx::Equal_1': {0: 'batch_size'}, 'output': {0: 'batch_size'}},\n    )\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "test/ssl/server-cert.pem",
    "content": "-----BEGIN CERTIFICATE-----\nMIIDETCCAfkCFCsU2NMdcKfugPErlKIwFEC969Z1MA0GCSqGSIb3DQEBCwUAMEUx\nCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl\ncm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjMwOTAzMTgyOTE5WhcNMzMwODMxMTgy\nOTE5WjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UE\nCgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOC\nAQ8AMIIBCgKCAQEAnE90TNdAYom/eE8QSWHwYbanZAaUXJdValMsT6Z5R/iYV/uk\nBB4P+LXV51xn7Ub4w9rSM8UlQSa3zpEVn9SfgU8pUInf07F18SPn1XgGhh7q0bnv\nYJRlEmeP5NHgFUvaDwth89O0JbZlEFJf1N7ITqGPpQ6iCfjdVpI+yYquyIPo3wBQ\n4nbv12uzL0i7wQb2oaWNzgJ9SClwCF/x24XIx1jTVa0WPHyp0H/UFyfhqVTjmN0C\nSB02NX8xNyW/OPco2smYi7oXtfQQMSubjYJnl3AQRz7bTE+P9Gc8F315IAXp8/ct\nlfZRAgUauvwFPKs7157M0eaNGQZ2jw6awewQEwIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQAtYl3ud2Ma6+Kodl+7FLfPN/MIezhNdB71JllMiuM815fNeffe/HmSG0JM\n5jrTKXVPE5jPeCLmDYV3iuNksmuWWRL+oX2Mn+XHmvyCpEXpliTGHXwORtb26jZm\nNCUXAJG2IURTUQpZa284XJGjp3DaEiKRVRAXBvpGyd4cPjJZxqj0MNYHYrI4tqRg\n9B2W7OxQf5MMpedzRU6uBj7+RJJv4ClnYBl5/zZIzn7DONxVfvLPXzEzTvdC6hq2\ndhB90NZBrZF5l9I6+6pW1HdV8rIJxqmfnOEPMz0QpvvHw+nKbqvbVhScjAyMIjgY\nFcuh/roKxvh1dAOJEBwGuTcXdtDM\n-----END CERTIFICATE-----\n"
  },
  {
    "path": "test/ssl/server-csr.pem",
    "content": "-----BEGIN CERTIFICATE REQUEST-----\nMIICijCCAXICAQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx\nITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQoCggEBAJxPdEzXQGKJv3hPEElh8GG2p2QGlFyXVWpTLE+m\neUf4mFf7pAQeD/i11edcZ+1G+MPa0jPFJUEmt86RFZ/Un4FPKVCJ39OxdfEj59V4\nBoYe6tG572CUZRJnj+TR4BVL2g8LYfPTtCW2ZRBSX9TeyE6hj6UOogn43VaSPsmK\nrsiD6N8AUOJ279drsy9Iu8EG9qGljc4CfUgpcAhf8duFyMdY01WtFjx8qdB/1Bcn\n4alU45jdAkgdNjV/MTclvzj3KNrJmIu6F7X0EDErm42CZ5dwEEc+20xPj/RnPBd9\neSAF6fP3LZX2UQIFGrr8BTyrO9eezNHmjRkGdo8OmsHsEBMCAwEAAaAAMA0GCSqG\nSIb3DQEBCwUAA4IBAQA6CSkts10mQHbH6s+blQyvXzX6tpHZ0r28GP6q5uJCYcTh\n6RK34ycojYnDNpo0zPjUmRDuTzwJqEolL2l42ZZqBXmIxopGDKrUn6pZ2NdsnU9N\nyfJWR80S8LjBPMbM31intcKtF/cLO7STvdtwcecNmTTAvTwQgHq8JttYxxKTAMqL\nRFZcFqOMNvMy8P5OV9mLnmL9Ybh+er5f7DHDTPrionQd8szrB2gACSA2CdGt4iwM\nAdJ2hJCxq98TvYo2pv4zu8MI2IOgtSjhby8kfdF3sVWz3ExT0PvDEj8iHwQRtLm+\n+kHBIHIbFkhhCXy6kj8X+3oIjJ/03HKlm5i4v9q8\n-----END CERTIFICATE REQUEST-----\n"
  },
  {
    "path": "test/ssl/server-key.pem",
    "content": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcT3RM10Biib94\nTxBJYfBhtqdkBpRcl1VqUyxPpnlH+JhX+6QEHg/4tdXnXGftRvjD2tIzxSVBJrfO\nkRWf1J+BTylQid/TsXXxI+fVeAaGHurRue9glGUSZ4/k0eAVS9oPC2Hz07QltmUQ\nUl/U3shOoY+lDqIJ+N1Wkj7Jiq7Ig+jfAFDidu/Xa7MvSLvBBvahpY3OAn1IKXAI\nX/HbhcjHWNNVrRY8fKnQf9QXJ+GpVOOY3QJIHTY1fzE3Jb849yjayZiLuhe19BAx\nK5uNgmeXcBBHPttMT4/0ZzwXfXkgBenz9y2V9lECBRq6/AU8qzvXnszR5o0ZBnaP\nDprB7BATAgMBAAECggEAPPuQq6P1Bhyou0bZW0/fCThKMS+R9VfDZsKBUKfpvEcE\nJJtT/5k88PL8O5HlKADe8AZwqOr64GK7JlebQKqi+j+IplfMH9ql4Yj5G2MC5JOu\nWFl6x0rN7fLChGrPSm+36NOviQGo0GfLISWKJtIuAuNsV+CQHmTd8bcH0PiOvUKB\nV8l5AGn/mM9knceqSQjCnj8zwVjlx7EridQXgJMXZAo12n03Zu/tHDUShx1J39IG\nwBLdlYnoLWaFoklcoMtLuzOKus8zdKv/IMPexkgWJtgHWGZK6zGTvTRKMGwxr0do\nIPHiBZgIgBk+9TEHIuYiCt4EsZa3e8uFPcVzrQ4UxQKBgQDM0uLHhkciWKOcsFor\nQftPJ4dLtCrApZN5A6i6ZnEGfSxegKE2IV8572GVcbsAUHAoQZmGrgXoERhrcr1u\nY48pbsDV8jIMMrek4epmm/Z0TtMM/mVxLx5OPuRTYKXgaPVlffWVJzCxXk7Ayo03\neVY5cAZD/zYjxdqYuYN2l98p3QKBgQDDXYMrMgPMZ+N2WNebBGi/So+84awNRLc+\nWejCYGorXNsK0dydBE8DNt3of5IQ7gDBbWeZxmaQy8953FjT2nAtdCQ28cK8Coco\nfBhLy45rRaC7AugmQrvQFh608YKyLTvoIAUzQOFERAg4tDQwOEsVMBJoqEhnGNbr\n8Y+h37YarwKBgCPc7O5ImZ3u7T7bNf6LAAi9ABiGRFIU67xtopZ4p2OeeS1W0mNa\n9oR7YJe9ISQN8YVq7wnA4LHghGkT3w08C24SwVr0nES8gKEzGUq8FiwJPTTyOirW\nODU1F99tdb3UQttxcZWbFhCIVbu1+4HyEeHetoojXoRm+T5yhQ03zFBVAoGBAIYT\nej69z2+L6MZCyI1BpGWL1UOqmPpuK1gmOiCULKjfzBAL4Nz9pQAuunKigmsN/ATD\ngbM+PwumZBhcybVzF0OKjoQKvTtx+jolmEMESxSBr4JIx2vipqRzWdWSXcDMXG28\n8/St1SuViRLpUVu6doTu/eNHgpEGshExMgLE1mRPAoGAAavukgU/z9VHsdk+/6Qb\nWALAcupOH9VlKd7Wv0DcVVkB50+zH0KqPn6I/GaA1GVmYwzwS5NLXqgvZZyfdjp8\nR45SzA5Nn4iPoUFmaxZv71H9e+9Cw3w7tMXQ6l83/qSGHYqaDCmRfbi8BmBa6PfK\npoi4sbcvs4/egaV5fKcXfRM=\n-----END PRIVATE KEY-----\n"
  }
]