tnp-helpers 18.0.19 → 18.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/shared/shared_folder_info.txt +1 -1
- package/browser/README.md +24 -24
- package/browser/esm2022/lib/base/classes/base-bower-json.mjs +14 -0
- package/browser/esm2022/lib/base/classes/base-cli-worker-config.mjs +1 -4
- package/browser/esm2022/lib/base/classes/base-cli-worker-controller.mjs +1 -1
- package/browser/esm2022/lib/base/classes/base-cli-worker.mjs +14 -4
- package/browser/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +5 -5
- package/browser/esm2022/lib/base/classes/base-feature-for-project.mjs +4 -1
- package/browser/esm2022/lib/base/classes/base-git.mjs +244 -4
- package/browser/esm2022/lib/base/classes/base-json-file-reader.mjs +114 -0
- package/browser/esm2022/lib/base/classes/base-library-build.mjs +35 -10
- package/browser/esm2022/lib/base/classes/base-linked-projects.mjs +8 -5
- package/browser/esm2022/lib/base/classes/base-node-modules.mjs +495 -0
- package/browser/esm2022/lib/base/classes/base-npm-helpers.mjs +32 -430
- package/browser/esm2022/lib/base/classes/base-package-json.mjs +340 -0
- package/browser/esm2022/lib/base/classes/base-process-manager.mjs +285 -0
- package/browser/esm2022/lib/base/classes/base-project-resolver.mjs +2 -11
- package/browser/esm2022/lib/base/classes/base-project.mjs +83 -87
- package/browser/esm2022/lib/base/classes/base-quick-fixes.mjs +44 -1
- package/browser/esm2022/lib/base/classes/base-release-process.mjs +34 -36
- package/browser/esm2022/lib/base/classes/{base-github-pages.mjs → base-static-pages.mjs} +6 -6
- package/browser/esm2022/lib/base/classes/base-vscode.mjs +31 -1
- package/browser/esm2022/lib/base/classes/index.mjs +5 -1
- package/browser/esm2022/lib/base/commit-data.mjs +21 -4
- package/browser/esm2022/lib/base/core-project.mjs +3 -3
- package/browser/esm2022/lib/base/linked-project.mjs +4 -4
- package/browser/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +2 -4
- package/browser/esm2022/lib/base/translate.mjs +566 -0
- package/browser/esm2022/lib/helpers/helpers-array-obj.mjs +5 -10
- package/browser/esm2022/lib/helpers/helpers.mjs +12 -6
- package/browser/esm2022/lib/index.mjs +2 -4
- package/browser/esm2022/lib/models.mjs +173 -3
- package/browser/esm2022/lib/utils.mjs +402 -41
- package/browser/fesm2022/tnp-helpers.mjs +4616 -2904
- package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
- package/browser/lib/base/classes/base-bower-json.d.ts +35 -0
- package/browser/lib/base/classes/base-cli-worker.d.ts +2 -2
- package/browser/lib/base/classes/base-debounce-compiler-for-project.d.ts +5 -5
- package/browser/lib/base/classes/base-feature-for-project.d.ts +2 -1
- package/browser/lib/base/classes/base-git.d.ts +42 -5
- package/browser/lib/base/classes/base-json-file-reader.d.ts +72 -0
- package/browser/lib/base/classes/base-library-build.d.ts +8 -11
- package/browser/lib/base/classes/base-linked-projects.d.ts +1 -2
- package/browser/lib/base/classes/base-node-modules.d.ts +56 -0
- package/browser/lib/base/classes/base-npm-helpers.d.ts +29 -108
- package/browser/lib/base/classes/base-package-json.d.ts +107 -0
- package/browser/lib/base/classes/base-process-manager.d.ts +31 -0
- package/browser/lib/base/classes/base-project-resolver.d.ts +2 -2
- package/browser/lib/base/classes/base-project.d.ts +17 -18
- package/browser/lib/base/classes/base-quick-fixes.d.ts +3 -1
- package/browser/lib/base/classes/base-release-process.d.ts +15 -13
- package/browser/lib/base/classes/{base-github-pages.d.ts → base-static-pages.d.ts} +3 -3
- package/browser/lib/base/classes/base-vscode.d.ts +4 -0
- package/browser/lib/base/classes/index.d.ts +5 -1
- package/browser/lib/base/commit-data.d.ts +14 -1
- package/browser/lib/base/core-project.d.ts +1 -1
- package/browser/lib/base/linked-project.d.ts +1 -1
- package/browser/lib/base/tcp-udp-ports/ports.entity.d.ts +1 -1
- package/browser/lib/base/translate.d.ts +228 -0
- package/browser/lib/helpers/helpers-array-obj.d.ts +3 -0
- package/browser/lib/helpers/helpers.d.ts +12 -8
- package/browser/lib/index.d.ts +1 -3
- package/browser/lib/models.d.ts +68 -8
- package/browser/lib/utils.d.ts +72 -13
- package/client/README.md +24 -24
- package/client/esm2022/lib/base/classes/base-bower-json.mjs +14 -0
- package/client/esm2022/lib/base/classes/base-cli-worker-config.mjs +1 -4
- package/client/esm2022/lib/base/classes/base-cli-worker-controller.mjs +1 -1
- package/client/esm2022/lib/base/classes/base-cli-worker.mjs +14 -4
- package/client/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +5 -5
- package/client/esm2022/lib/base/classes/base-feature-for-project.mjs +4 -1
- package/client/esm2022/lib/base/classes/base-git.mjs +244 -4
- package/client/esm2022/lib/base/classes/base-json-file-reader.mjs +114 -0
- package/client/esm2022/lib/base/classes/base-library-build.mjs +35 -10
- package/client/esm2022/lib/base/classes/base-linked-projects.mjs +8 -5
- package/client/esm2022/lib/base/classes/base-node-modules.mjs +495 -0
- package/client/esm2022/lib/base/classes/base-npm-helpers.mjs +32 -430
- package/client/esm2022/lib/base/classes/base-package-json.mjs +340 -0
- package/client/esm2022/lib/base/classes/base-process-manager.mjs +285 -0
- package/client/esm2022/lib/base/classes/base-project-resolver.mjs +2 -11
- package/client/esm2022/lib/base/classes/base-project.mjs +83 -87
- package/client/esm2022/lib/base/classes/base-quick-fixes.mjs +44 -1
- package/client/esm2022/lib/base/classes/base-release-process.mjs +34 -36
- package/client/esm2022/lib/base/classes/{base-github-pages.mjs → base-static-pages.mjs} +6 -6
- package/client/esm2022/lib/base/classes/base-vscode.mjs +31 -1
- package/client/esm2022/lib/base/classes/index.mjs +5 -1
- package/client/esm2022/lib/base/commit-data.mjs +21 -4
- package/client/esm2022/lib/base/core-project.mjs +3 -3
- package/client/esm2022/lib/base/linked-project.mjs +4 -4
- package/client/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +2 -4
- package/client/esm2022/lib/base/translate.mjs +566 -0
- package/client/esm2022/lib/helpers/helpers-array-obj.mjs +5 -10
- package/client/esm2022/lib/helpers/helpers.mjs +12 -6
- package/client/esm2022/lib/index.mjs +2 -4
- package/client/esm2022/lib/models.mjs +173 -3
- package/client/esm2022/lib/utils.mjs +402 -41
- package/client/fesm2022/tnp-helpers.mjs +4616 -2904
- package/client/fesm2022/tnp-helpers.mjs.map +1 -1
- package/client/lib/base/classes/base-bower-json.d.ts +35 -0
- package/client/lib/base/classes/base-cli-worker.d.ts +2 -2
- package/client/lib/base/classes/base-debounce-compiler-for-project.d.ts +5 -5
- package/client/lib/base/classes/base-feature-for-project.d.ts +2 -1
- package/client/lib/base/classes/base-git.d.ts +42 -5
- package/client/lib/base/classes/base-json-file-reader.d.ts +72 -0
- package/client/lib/base/classes/base-library-build.d.ts +8 -11
- package/client/lib/base/classes/base-linked-projects.d.ts +1 -2
- package/client/lib/base/classes/base-node-modules.d.ts +56 -0
- package/client/lib/base/classes/base-npm-helpers.d.ts +29 -108
- package/client/lib/base/classes/base-package-json.d.ts +107 -0
- package/client/lib/base/classes/base-process-manager.d.ts +31 -0
- package/client/lib/base/classes/base-project-resolver.d.ts +2 -2
- package/client/lib/base/classes/base-project.d.ts +17 -18
- package/client/lib/base/classes/base-quick-fixes.d.ts +3 -1
- package/client/lib/base/classes/base-release-process.d.ts +15 -13
- package/{websql/lib/base/classes/base-github-pages.d.ts → client/lib/base/classes/base-static-pages.d.ts} +3 -3
- package/client/lib/base/classes/base-vscode.d.ts +4 -0
- package/client/lib/base/classes/index.d.ts +5 -1
- package/client/lib/base/commit-data.d.ts +14 -1
- package/client/lib/base/core-project.d.ts +1 -1
- package/client/lib/base/linked-project.d.ts +1 -1
- package/client/lib/base/tcp-udp-ports/ports.entity.d.ts +1 -1
- package/client/lib/base/translate.d.ts +228 -0
- package/client/lib/helpers/helpers-array-obj.d.ts +3 -0
- package/client/lib/helpers/helpers.d.ts +12 -8
- package/client/lib/index.d.ts +1 -3
- package/client/lib/models.d.ts +68 -8
- package/client/lib/utils.d.ts +72 -13
- package/index.js +15 -2
- package/index.js.map +1 -1
- package/lib/base/base-cli-worker-config.d.ts +27 -0
- package/lib/base/base-cli-worker-config.js +53 -0
- package/lib/base/base-cli-worker-config.js.map +1 -0
- package/lib/base/base-cli-worker-controller.d.ts +15 -0
- package/lib/base/base-cli-worker-controller.js +154 -0
- package/lib/base/base-cli-worker-controller.js.map +1 -0
- package/lib/base/base-cli-worker.d.ts +82 -0
- package/lib/base/base-cli-worker.js +654 -0
- package/lib/base/base-cli-worker.js.map +1 -0
- package/lib/base/base-command-line.backend.d.ts +174 -0
- package/lib/base/base-command-line.backend.js +2221 -0
- package/lib/base/base-command-line.backend.js.map +1 -0
- package/lib/base/base-compiler-for-project.d.ts +7 -0
- package/lib/base/base-compiler-for-project.js +62 -0
- package/lib/base/base-compiler-for-project.js.map +1 -0
- package/lib/base/base-db.d.ts +12 -0
- package/lib/base/base-db.js +74 -0
- package/lib/base/base-db.js.map +1 -0
- package/lib/base/base-debounce-compiler-for-project.d.ts +28 -0
- package/lib/base/base-debounce-compiler-for-project.js +82 -0
- package/lib/base/base-debounce-compiler-for-project.js.map +1 -0
- package/lib/base/base-detached-service.d.ts +6 -0
- package/lib/base/base-detached-service.js +16 -0
- package/lib/base/base-detached-service.js.map +1 -0
- package/lib/base/base-feature-for-project.d.ts +5 -0
- package/lib/base/base-feature-for-project.js +11 -0
- package/lib/base/base-feature-for-project.js.map +1 -0
- package/lib/base/base-git.d.ts +148 -0
- package/lib/base/base-git.js +1202 -0
- package/lib/base/base-git.js.map +1 -0
- package/{client/lib/base/classes → lib/base}/base-github-pages.d.ts +4 -5
- package/lib/base/base-github-pages.js +173 -0
- package/lib/base/base-github-pages.js.map +1 -0
- package/lib/base/base-ignore-hide.d.ts +14 -0
- package/lib/base/base-ignore-hide.js +55 -0
- package/lib/base/base-ignore-hide.js.map +1 -0
- package/lib/base/base-library-build.d.ts +65 -0
- package/lib/base/base-library-build.js +717 -0
- package/lib/base/base-library-build.js.map +1 -0
- package/lib/base/base-linked-projects.d.ts +24 -0
- package/lib/base/base-linked-projects.js +408 -0
- package/lib/base/base-linked-projects.js.map +1 -0
- package/lib/base/base-npm-helpers.d.ts +128 -0
- package/lib/base/base-npm-helpers.js +774 -0
- package/lib/base/base-npm-helpers.js.map +1 -0
- package/lib/base/base-project-resolver.d.ts +41 -0
- package/lib/base/base-project-resolver.js +308 -0
- package/lib/base/base-project-resolver.js.map +1 -0
- package/lib/base/base-project.d.ts +244 -0
- package/lib/base/base-project.js +1223 -0
- package/lib/base/base-project.js.map +1 -0
- package/lib/base/base-quick-fixes.d.ts +6 -0
- package/lib/base/base-quick-fixes.js +31 -0
- package/lib/base/base-quick-fixes.js.map +1 -0
- package/lib/base/base-release-process.d.ts +69 -0
- package/lib/base/base-release-process.js +913 -0
- package/lib/base/base-release-process.js.map +1 -0
- package/lib/base/base-start-config.backend.d.ts +36 -0
- package/lib/base/base-start-config.backend.js +167 -0
- package/lib/base/base-start-config.backend.js.map +1 -0
- package/lib/base/base-vscode.d.ts +12 -0
- package/lib/base/base-vscode.js +139 -0
- package/lib/base/base-vscode.js.map +1 -0
- package/lib/base/classes/base-bower-json.d.ts +34 -0
- package/lib/base/classes/base-bower-json.js +19 -0
- package/lib/base/classes/base-bower-json.js.map +1 -0
- package/lib/base/classes/base-cli-worker-config.js +35 -24
- package/lib/base/classes/base-cli-worker-config.js.map +1 -1
- package/lib/base/classes/base-cli-worker-controller.js +98 -128
- package/lib/base/classes/base-cli-worker-controller.js.map +1 -1
- package/lib/base/classes/base-cli-worker.d.ts +2 -2
- package/lib/base/classes/base-cli-worker.js +402 -606
- package/lib/base/classes/base-cli-worker.js.map +1 -1
- package/lib/base/classes/base-command-line-feature.backend.d.ts +5 -9
- package/lib/base/classes/base-command-line-feature.backend.js +73 -132
- package/lib/base/classes/base-command-line-feature.backend.js.map +1 -1
- package/lib/base/classes/base-command-line.backend.d.ts +175 -0
- package/lib/base/classes/base-command-line.backend.js +2235 -0
- package/lib/base/classes/base-command-line.backend.js.map +1 -0
- package/lib/base/classes/base-compiler-for-project.js +27 -32
- package/lib/base/classes/base-compiler-for-project.js.map +1 -1
- package/lib/base/classes/base-db.js +43 -60
- package/lib/base/classes/base-db.js.map +1 -1
- package/lib/base/classes/base-debounce-compiler-for-project.d.ts +5 -5
- package/lib/base/classes/base-debounce-compiler-for-project.js +44 -70
- package/lib/base/classes/base-debounce-compiler-for-project.js.map +1 -1
- package/lib/base/classes/base-detached-service.js.map +1 -1
- package/lib/base/classes/base-feature-for-project.d.ts +2 -1
- package/lib/base/classes/base-feature-for-project.js +7 -4
- package/lib/base/classes/base-feature-for-project.js.map +1 -1
- package/lib/base/classes/base-git.d.ts +40 -3
- package/lib/base/classes/base-git.js +885 -943
- package/lib/base/classes/base-git.js.map +1 -1
- package/lib/base/classes/base-github-pages.js.map +1 -1
- package/lib/base/classes/base-global-command-line.backend.d.ts +10 -2
- package/lib/base/classes/base-global-command-line.backend.js +1058 -2011
- package/lib/base/classes/base-global-command-line.backend.js.map +1 -1
- package/lib/base/classes/base-ignore-hide.d.ts +2 -2
- package/lib/base/classes/base-ignore-hide.js +24 -28
- package/lib/base/classes/base-ignore-hide.js.map +1 -1
- package/lib/base/classes/base-json-file-reader.d.ts +71 -0
- package/lib/base/classes/base-json-file-reader.js +141 -0
- package/lib/base/classes/base-json-file-reader.js.map +1 -0
- package/lib/base/classes/base-library-build.d.ts +8 -12
- package/lib/base/classes/base-library-build.js +433 -638
- package/lib/base/classes/base-library-build.js.map +1 -1
- package/lib/base/classes/base-linked-projects.d.ts +1 -3
- package/lib/base/classes/base-linked-projects.js +200 -314
- package/lib/base/classes/base-linked-projects.js.map +1 -1
- package/lib/base/classes/base-node-modules.d.ts +55 -0
- package/lib/base/classes/base-node-modules.js +415 -0
- package/lib/base/classes/base-node-modules.js.map +1 -0
- package/lib/base/classes/base-npm-helpers.d.ts +29 -97
- package/lib/base/classes/base-npm-helpers.js +178 -729
- package/lib/base/classes/base-npm-helpers.js.map +1 -1
- package/lib/base/classes/base-package-json.d.ts +106 -0
- package/lib/base/classes/base-package-json.js +381 -0
- package/lib/base/classes/base-package-json.js.map +1 -0
- package/lib/base/classes/base-process-manager.d.ts +30 -0
- package/lib/base/classes/base-process-manager.js +269 -0
- package/lib/base/classes/base-process-manager.js.map +1 -0
- package/lib/base/classes/base-project-resolver.d.ts +2 -3
- package/lib/base/classes/base-project-resolver.js +102 -119
- package/lib/base/classes/base-project-resolver.js.map +1 -1
- package/lib/base/classes/base-project.d.ts +20 -17
- package/lib/base/classes/base-project.js +553 -760
- package/lib/base/classes/base-project.js.map +1 -1
- package/lib/base/classes/base-quick-fixes.d.ts +3 -1
- package/lib/base/classes/base-quick-fixes.js +45 -17
- package/lib/base/classes/base-quick-fixes.js.map +1 -1
- package/lib/base/classes/base-release-process.d.ts +15 -13
- package/lib/base/classes/base-release-process.js +487 -835
- package/lib/base/classes/base-release-process.js.map +1 -1
- package/lib/base/classes/base-start-config.backend.js +116 -100
- package/lib/base/classes/base-start-config.backend.js.map +1 -1
- package/lib/base/classes/base-static-pages.d.ts +14 -0
- package/lib/base/classes/base-static-pages.js +105 -0
- package/lib/base/classes/base-static-pages.js.map +1 -0
- package/lib/base/classes/base-vscode.d.ts +4 -0
- package/lib/base/classes/base-vscode.js +446 -424
- package/lib/base/classes/base-vscode.js.map +1 -1
- package/lib/base/classes/index copy.d.ts +22 -0
- package/lib/base/classes/index copy.js +28 -0
- package/lib/base/classes/index copy.js.map +1 -0
- package/lib/base/classes/index.d.ts +4 -0
- package/lib/base/classes/index.js +36 -19
- package/lib/base/classes/index.js.map +1 -1
- package/lib/base/command-line-feature.backend.d.ts +51 -0
- package/lib/base/command-line-feature.backend.js +206 -0
- package/lib/base/command-line-feature.backend.js.map +1 -0
- package/lib/base/commit-data.d.ts +14 -1
- package/lib/base/commit-data.js +411 -464
- package/lib/base/commit-data.js.map +1 -1
- package/lib/base/config-database.js +33 -61
- package/lib/base/config-database.js.map +1 -1
- package/lib/base/core-project.d.ts +1 -1
- package/lib/base/core-project.js +110 -146
- package/lib/base/core-project.js.map +1 -1
- package/lib/base/gh-temp-code.d.ts +1 -0
- package/lib/base/gh-temp-code.js +62 -104
- package/lib/base/gh-temp-code.js.map +1 -1
- package/lib/base/index-rebuilder.backend.d.ts +1 -0
- package/lib/base/index-rebuilder.backend.js.map +1 -1
- package/lib/base/index.js +20 -7
- package/lib/base/index.js.map +1 -1
- package/lib/base/linked-project.d.ts +1 -1
- package/lib/base/linked-project.js +59 -38
- package/lib/base/linked-project.js.map +1 -1
- package/lib/base/ports-worker.d.ts +32 -0
- package/lib/base/ports-worker.js +244 -0
- package/lib/base/ports-worker.js.map +1 -0
- package/lib/base/project-database.js +12 -22
- package/lib/base/project-database.js.map +1 -1
- package/lib/base/tcp-udp-ports/index.js +17 -4
- package/lib/base/tcp-udp-ports/index.js.map +1 -1
- package/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +1 -0
- package/lib/base/tcp-udp-ports/not-assignable-port.entity.js +2 -2
- package/lib/base/tcp-udp-ports/not-assignable-port.entity.js.map +1 -1
- package/lib/base/tcp-udp-ports/port.entity.d.ts +0 -0
- package/lib/base/tcp-udp-ports/port.entity.js +5 -0
- package/lib/base/tcp-udp-ports/port.entity.js.map +1 -0
- package/lib/base/tcp-udp-ports/ports.controller.js +195 -283
- package/lib/base/tcp-udp-ports/ports.controller.js.map +1 -1
- package/lib/base/tcp-udp-ports/ports.entity.d.ts +2 -2
- package/lib/base/tcp-udp-ports/ports.entity.js +74 -62
- package/lib/base/tcp-udp-ports/ports.entity.js.map +1 -1
- package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js +11 -14
- package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js.map +1 -1
- package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js +244 -427
- package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js.map +1 -1
- package/lib/base/tcp-upd-ports.worker.d.ts +13 -0
- package/lib/base/tcp-upd-ports.worker.js +99 -0
- package/lib/base/tcp-upd-ports.worker.js.map +1 -0
- package/lib/base/translate.d.ts +1 -1
- package/lib/base/translate.js +90 -119
- package/lib/base/translate.js.map +1 -1
- package/lib/build-info._auto-generated_.js.map +1 -1
- package/lib/helpers/for-backend/helpers-cli-tool.backend.js +109 -115
- package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-console-gui.js +55 -102
- package/lib/helpers/for-backend/helpers-console-gui.js.map +1 -1
- package/lib/helpers/for-backend/helpers-dependencies.backend.js +28 -45
- package/lib/helpers/for-backend/helpers-dependencies.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-file-folders.backend.d.ts +2 -2
- package/lib/helpers/for-backend/helpers-file-folders.backend.js +277 -266
- package/lib/helpers/for-backend/helpers-file-folders.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-git.backend.d.ts +38 -3
- package/lib/helpers/for-backend/helpers-git.backend.js +806 -807
- package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-network.backend.js +15 -18
- package/lib/helpers/for-backend/helpers-network.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-npm.backend.js +5 -8
- package/lib/helpers/for-backend/helpers-npm.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-path.backend.js +18 -26
- package/lib/helpers/for-backend/helpers-path.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-process.backend.d.ts +2 -2
- package/lib/helpers/for-backend/helpers-process.backend.js +285 -363
- package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-system-terminal.backend.js +25 -42
- package/lib/helpers/for-backend/helpers-system-terminal.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-vscode.backend.js +9 -12
- package/lib/helpers/for-backend/helpers-vscode.backend.js.map +1 -1
- package/lib/helpers/for-backend/ts-code/index.js +0 -2
- package/lib/helpers/for-backend/ts-code/index.js.map +1 -1
- package/lib/helpers/for-backend/ts-code/ts-code-extractor.d.ts +26 -0
- package/lib/helpers/for-backend/ts-code/ts-code-extractor.js +62 -0
- package/lib/helpers/for-backend/ts-code/ts-code-extractor.js.map +1 -0
- package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.d.ts +19 -0
- package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.js +81 -0
- package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.js.map +1 -0
- package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.js +2 -2
- package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.js.map +1 -1
- package/lib/helpers/for-browser/angular.helper.js +2 -2
- package/lib/helpers/for-browser/angular.helper.js.map +1 -1
- package/lib/helpers/for-browser/helpers-browser.js +27 -40
- package/lib/helpers/for-browser/helpers-browser.js.map +1 -1
- package/lib/helpers/helpers-array-obj.d.ts +3 -0
- package/lib/helpers/helpers-array-obj.js +49 -61
- package/lib/helpers/helpers-array-obj.js.map +1 -1
- package/lib/helpers/helpers-json5.backend.js +44 -55
- package/lib/helpers/helpers-json5.backend.js.map +1 -1
- package/lib/helpers/helpers-numbers.js +7 -10
- package/lib/helpers/helpers-numbers.js.map +1 -1
- package/lib/helpers/helpers-strings-regexes.js +40 -47
- package/lib/helpers/helpers-strings-regexes.js.map +1 -1
- package/lib/helpers/helpers-strings.js +38 -41
- package/lib/helpers/helpers-strings.js.map +1 -1
- package/lib/helpers/helpers.d.ts +12 -8
- package/lib/helpers/helpers.js +313 -393
- package/lib/helpers/helpers.js.map +1 -1
- package/lib/index._auto-generated_.d.ts +1 -0
- package/lib/index._auto-generated_.js.map +1 -1
- package/lib/index.d.ts +3 -4
- package/lib/index.js +21 -10
- package/lib/index.js.map +1 -1
- package/lib/lowdb/adapters/Memory.js +14 -20
- package/lib/lowdb/adapters/Memory.js.map +1 -1
- package/lib/lowdb/adapters/browser/LocalStorage.js +5 -8
- package/lib/lowdb/adapters/browser/LocalStorage.js.map +1 -1
- package/lib/lowdb/adapters/browser/SessionStorage.js +5 -8
- package/lib/lowdb/adapters/browser/SessionStorage.js.map +1 -1
- package/lib/lowdb/adapters/browser/WebStorage.js +10 -9
- package/lib/lowdb/adapters/browser/WebStorage.js.map +1 -1
- package/lib/lowdb/adapters/node/DataFile.js +29 -38
- package/lib/lowdb/adapters/node/DataFile.js.map +1 -1
- package/lib/lowdb/adapters/node/JSONFile.js +13 -18
- package/lib/lowdb/adapters/node/JSONFile.js.map +1 -1
- package/lib/lowdb/adapters/node/TextFile.js +36 -44
- package/lib/lowdb/adapters/node/TextFile.js.map +1 -1
- package/lib/lowdb/adapters/node/steno.js +72 -122
- package/lib/lowdb/adapters/node/steno.js.map +1 -1
- package/lib/lowdb/browser.js +17 -4
- package/lib/lowdb/browser.js.map +1 -1
- package/lib/lowdb/core/Low.js +30 -60
- package/lib/lowdb/core/Low.js.map +1 -1
- package/lib/lowdb/examples/browser.js.map +1 -1
- package/lib/lowdb/examples/cli.d.ts +1 -0
- package/lib/lowdb/examples/cli.js.map +1 -1
- package/lib/lowdb/examples/in-memory.d.ts +1 -0
- package/lib/lowdb/examples/in-memory.js.map +1 -1
- package/lib/lowdb/examples/server.d.ts +1 -0
- package/lib/lowdb/examples/server.js.map +1 -1
- package/lib/lowdb/index.js +16 -3
- package/lib/lowdb/index.js.map +1 -1
- package/lib/lowdb/node.js +18 -5
- package/lib/lowdb/node.js.map +1 -1
- package/lib/lowdb/presets/browser.js +7 -7
- package/lib/lowdb/presets/browser.js.map +1 -1
- package/lib/lowdb/presets/node.js +12 -23
- package/lib/lowdb/presets/node.js.map +1 -1
- package/lib/models.d.ts +68 -8
- package/lib/models.js +197 -3
- package/lib/models.js.map +1 -1
- package/lib/old/base-component.d.ts +1 -0
- package/lib/old/base-component.js +2 -2
- package/lib/old/base-component.js.map +1 -1
- package/lib/old/base-formly-component.d.ts +1 -0
- package/lib/old/base-formly-component.js +2 -2
- package/lib/old/base-formly-component.js.map +1 -1
- package/lib/old/condition-wait.d.ts +1 -0
- package/lib/old/condition-wait.js.map +1 -1
- package/lib/old/dual-component-ctrl.d.ts +1 -0
- package/lib/old/dual-component-ctrl.js +2 -2
- package/lib/old/dual-component-ctrl.js.map +1 -1
- package/lib/old/execute-command.d.ts +11 -0
- package/lib/old/execute-command.js +564 -0
- package/lib/old/execute-command.js.map +1 -0
- package/lib/old/helpers.d.ts +62 -0
- package/lib/old/helpers.js +279 -0
- package/lib/old/helpers.js.map +1 -0
- package/lib/old/models.d.ts +80 -0
- package/lib/old/models.js +57 -0
- package/lib/old/models.js.map +1 -0
- package/lib/utils.d.ts +72 -13
- package/lib/utils.js +502 -179
- package/lib/utils.js.map +1 -1
- package/lib/validators/validators-firedev.js +5 -5
- package/lib/validators/validators-firedev.js.map +1 -1
- package/lib/validators/validators-git.js +2 -2
- package/lib/validators/validators-git.js.map +1 -1
- package/lib/validators/validators-network.js +1 -1
- package/lib/validators/validators-network.js.map +1 -1
- package/lib/validators/validators.js +2 -2
- package/lib/validators/validators.js.map +1 -1
- package/migrations/1736198527297_init.js +39 -58
- package/migrations/1736198527297_init.js.map +1 -1
- package/migrations/1736199486472_addingNotAssignablePorts.js +42 -93
- package/migrations/1736199486472_addingNotAssignablePorts.js.map +1 -1
- package/migrations/1736454437350_addFreePorts.js +48 -100
- package/migrations/1736454437350_addFreePorts.js.map +1 -1
- package/migrations/index.js +15 -2
- package/migrations/index.js.map +1 -1
- package/migrations/migrations_index._auto-generated_.js +3 -3
- package/migrations/migrations_index._auto-generated_.js.map +1 -1
- package/package.json +14 -61
- package/src.d.ts +1 -1
- package/taon.jsonc +34 -49
- package/tmp-environment.json +8 -389
- package/websql/README.md +24 -24
- package/websql/esm2022/lib/base/classes/base-bower-json.mjs +14 -0
- package/websql/esm2022/lib/base/classes/base-cli-worker-config.mjs +1 -4
- package/websql/esm2022/lib/base/classes/base-cli-worker-controller.mjs +1 -1
- package/websql/esm2022/lib/base/classes/base-cli-worker.mjs +14 -4
- package/websql/esm2022/lib/base/classes/base-debounce-compiler-for-project.mjs +5 -5
- package/websql/esm2022/lib/base/classes/base-feature-for-project.mjs +4 -1
- package/websql/esm2022/lib/base/classes/base-git.mjs +244 -4
- package/websql/esm2022/lib/base/classes/base-json-file-reader.mjs +114 -0
- package/websql/esm2022/lib/base/classes/base-library-build.mjs +35 -10
- package/websql/esm2022/lib/base/classes/base-linked-projects.mjs +8 -5
- package/websql/esm2022/lib/base/classes/base-node-modules.mjs +495 -0
- package/websql/esm2022/lib/base/classes/base-npm-helpers.mjs +32 -430
- package/websql/esm2022/lib/base/classes/base-package-json.mjs +340 -0
- package/websql/esm2022/lib/base/classes/base-process-manager.mjs +285 -0
- package/websql/esm2022/lib/base/classes/base-project-resolver.mjs +2 -10
- package/websql/esm2022/lib/base/classes/base-project.mjs +82 -87
- package/websql/esm2022/lib/base/classes/base-quick-fixes.mjs +44 -1
- package/websql/esm2022/lib/base/classes/base-release-process.mjs +34 -36
- package/websql/esm2022/lib/base/classes/{base-github-pages.mjs → base-static-pages.mjs} +6 -6
- package/websql/esm2022/lib/base/classes/base-vscode.mjs +31 -1
- package/websql/esm2022/lib/base/classes/index.mjs +5 -1
- package/websql/esm2022/lib/base/commit-data.mjs +21 -4
- package/websql/esm2022/lib/base/core-project.mjs +3 -3
- package/websql/esm2022/lib/base/linked-project.mjs +4 -4
- package/websql/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +2 -4
- package/websql/esm2022/lib/base/translate.mjs +566 -0
- package/websql/esm2022/lib/helpers/helpers-array-obj.mjs +5 -10
- package/websql/esm2022/lib/helpers/helpers.mjs +12 -6
- package/websql/esm2022/lib/index.mjs +2 -4
- package/websql/esm2022/lib/models.mjs +173 -3
- package/websql/esm2022/lib/utils.mjs +402 -41
- package/websql/fesm2022/tnp-helpers.mjs +4744 -3032
- package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
- package/websql/lib/base/classes/base-bower-json.d.ts +35 -0
- package/websql/lib/base/classes/base-cli-worker.d.ts +2 -2
- package/websql/lib/base/classes/base-debounce-compiler-for-project.d.ts +5 -5
- package/websql/lib/base/classes/base-feature-for-project.d.ts +2 -1
- package/websql/lib/base/classes/base-git.d.ts +42 -5
- package/websql/lib/base/classes/base-json-file-reader.d.ts +72 -0
- package/websql/lib/base/classes/base-library-build.d.ts +8 -11
- package/websql/lib/base/classes/base-linked-projects.d.ts +1 -2
- package/websql/lib/base/classes/base-node-modules.d.ts +56 -0
- package/websql/lib/base/classes/base-npm-helpers.d.ts +29 -108
- package/websql/lib/base/classes/base-package-json.d.ts +107 -0
- package/websql/lib/base/classes/base-process-manager.d.ts +31 -0
- package/websql/lib/base/classes/base-project-resolver.d.ts +2 -2
- package/websql/lib/base/classes/base-project.d.ts +17 -18
- package/websql/lib/base/classes/base-quick-fixes.d.ts +3 -1
- package/websql/lib/base/classes/base-release-process.d.ts +15 -13
- package/websql/lib/base/classes/base-static-pages.d.ts +15 -0
- package/websql/lib/base/classes/base-vscode.d.ts +4 -0
- package/websql/lib/base/classes/index.d.ts +5 -1
- package/websql/lib/base/commit-data.d.ts +14 -1
- package/websql/lib/base/core-project.d.ts +1 -1
- package/websql/lib/base/linked-project.d.ts +1 -1
- package/websql/lib/base/tcp-udp-ports/ports.entity.d.ts +1 -1
- package/websql/lib/base/translate.d.ts +228 -0
- package/websql/lib/helpers/helpers-array-obj.d.ts +3 -0
- package/websql/lib/helpers/helpers.d.ts +12 -8
- package/websql/lib/index.d.ts +1 -3
- package/websql/lib/models.d.ts +68 -8
- package/websql/lib/utils.d.ts +72 -13
- package/browser/package.json +0 -25
- package/websql/package.json +0 -25
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
const iso = {
|
|
2
|
+
aar: 'aa',
|
|
3
|
+
abk: 'ab',
|
|
4
|
+
afr: 'af',
|
|
5
|
+
aka: 'ak',
|
|
6
|
+
alb: 'sq',
|
|
7
|
+
amh: 'am',
|
|
8
|
+
ara: 'ar',
|
|
9
|
+
arg: 'an',
|
|
10
|
+
arm: 'hy',
|
|
11
|
+
asm: 'as',
|
|
12
|
+
ava: 'av',
|
|
13
|
+
ave: 'ae',
|
|
14
|
+
aym: 'ay',
|
|
15
|
+
aze: 'az',
|
|
16
|
+
bak: 'ba',
|
|
17
|
+
bam: 'bm',
|
|
18
|
+
baq: 'eu',
|
|
19
|
+
bel: 'be',
|
|
20
|
+
ben: 'bn',
|
|
21
|
+
bih: 'bh',
|
|
22
|
+
bis: 'bi',
|
|
23
|
+
bos: 'bs',
|
|
24
|
+
bre: 'br',
|
|
25
|
+
bul: 'bg',
|
|
26
|
+
bur: 'my',
|
|
27
|
+
cat: 'ca',
|
|
28
|
+
cha: 'ch',
|
|
29
|
+
che: 'ce',
|
|
30
|
+
chi: 'zh',
|
|
31
|
+
chu: 'cu',
|
|
32
|
+
chv: 'cv',
|
|
33
|
+
cor: 'kw',
|
|
34
|
+
cos: 'co',
|
|
35
|
+
cre: 'cr',
|
|
36
|
+
cze: 'cs',
|
|
37
|
+
dan: 'da',
|
|
38
|
+
div: 'dv',
|
|
39
|
+
dut: 'nl',
|
|
40
|
+
dzo: 'dz',
|
|
41
|
+
eng: 'en',
|
|
42
|
+
epo: 'eo',
|
|
43
|
+
est: 'et',
|
|
44
|
+
ewe: 'ee',
|
|
45
|
+
fao: 'fo',
|
|
46
|
+
fij: 'fj',
|
|
47
|
+
fin: 'fi',
|
|
48
|
+
fre: 'fr',
|
|
49
|
+
fry: 'fy',
|
|
50
|
+
ful: 'ff',
|
|
51
|
+
geo: 'ka',
|
|
52
|
+
ger: 'de',
|
|
53
|
+
gla: 'gd',
|
|
54
|
+
gle: 'ga',
|
|
55
|
+
glg: 'gl',
|
|
56
|
+
glv: 'gv',
|
|
57
|
+
gre: 'el',
|
|
58
|
+
grn: 'gn',
|
|
59
|
+
guj: 'gu',
|
|
60
|
+
hat: 'ht',
|
|
61
|
+
hau: 'ha',
|
|
62
|
+
heb: 'he',
|
|
63
|
+
her: 'hz',
|
|
64
|
+
hin: 'hi',
|
|
65
|
+
hmo: 'ho',
|
|
66
|
+
hrv: 'hr',
|
|
67
|
+
hun: 'hu',
|
|
68
|
+
ibo: 'ig',
|
|
69
|
+
ice: 'is',
|
|
70
|
+
ido: 'io',
|
|
71
|
+
iii: 'ii',
|
|
72
|
+
iku: 'iu',
|
|
73
|
+
ile: 'ie',
|
|
74
|
+
ina: 'ia',
|
|
75
|
+
ind: 'id',
|
|
76
|
+
ipk: 'ik',
|
|
77
|
+
ita: 'it',
|
|
78
|
+
jav: 'jv',
|
|
79
|
+
jpn: 'ja',
|
|
80
|
+
kal: 'kl',
|
|
81
|
+
kan: 'kn',
|
|
82
|
+
kas: 'ks',
|
|
83
|
+
kau: 'kr',
|
|
84
|
+
kaz: 'kk',
|
|
85
|
+
khm: 'km',
|
|
86
|
+
kik: 'ki',
|
|
87
|
+
kin: 'rw',
|
|
88
|
+
kir: 'ky',
|
|
89
|
+
kom: 'kv',
|
|
90
|
+
kon: 'kg',
|
|
91
|
+
kor: 'ko',
|
|
92
|
+
kua: 'kj',
|
|
93
|
+
kur: 'ku',
|
|
94
|
+
lao: 'lo',
|
|
95
|
+
lat: 'la',
|
|
96
|
+
lav: 'lv',
|
|
97
|
+
lim: 'li',
|
|
98
|
+
lin: 'ln',
|
|
99
|
+
lit: 'lt',
|
|
100
|
+
ltz: 'lb',
|
|
101
|
+
lub: 'lu',
|
|
102
|
+
lug: 'lg',
|
|
103
|
+
mac: 'mk',
|
|
104
|
+
mah: 'mh',
|
|
105
|
+
mal: 'ml',
|
|
106
|
+
mao: 'mi',
|
|
107
|
+
mar: 'mr',
|
|
108
|
+
may: 'ms',
|
|
109
|
+
mlg: 'mg',
|
|
110
|
+
mlt: 'mt',
|
|
111
|
+
mon: 'mn',
|
|
112
|
+
nau: 'na',
|
|
113
|
+
nav: 'nv',
|
|
114
|
+
nbl: 'nr',
|
|
115
|
+
nde: 'nd',
|
|
116
|
+
ndo: 'ng',
|
|
117
|
+
nep: 'ne',
|
|
118
|
+
nno: 'nn',
|
|
119
|
+
nob: 'nb',
|
|
120
|
+
nor: 'no',
|
|
121
|
+
nya: 'ny',
|
|
122
|
+
oci: 'oc',
|
|
123
|
+
oji: 'oj',
|
|
124
|
+
ori: 'or',
|
|
125
|
+
orm: 'om',
|
|
126
|
+
oss: 'os',
|
|
127
|
+
pan: 'pa',
|
|
128
|
+
per: 'fa',
|
|
129
|
+
pli: 'pi',
|
|
130
|
+
pol: 'pl',
|
|
131
|
+
por: 'pt',
|
|
132
|
+
pus: 'ps',
|
|
133
|
+
que: 'qu',
|
|
134
|
+
roh: 'rm',
|
|
135
|
+
rum: 'ro',
|
|
136
|
+
run: 'rn',
|
|
137
|
+
rus: 'ru',
|
|
138
|
+
sag: 'sg',
|
|
139
|
+
san: 'sa',
|
|
140
|
+
sin: 'si',
|
|
141
|
+
slo: 'sk',
|
|
142
|
+
slv: 'sl',
|
|
143
|
+
sme: 'se',
|
|
144
|
+
smo: 'sm',
|
|
145
|
+
sna: 'sn',
|
|
146
|
+
snd: 'sd',
|
|
147
|
+
som: 'so',
|
|
148
|
+
sot: 'st',
|
|
149
|
+
spa: 'es',
|
|
150
|
+
srd: 'sc',
|
|
151
|
+
srp: 'sr',
|
|
152
|
+
ssw: 'ss',
|
|
153
|
+
sun: 'su',
|
|
154
|
+
swa: 'sw',
|
|
155
|
+
swe: 'sv',
|
|
156
|
+
tah: 'ty',
|
|
157
|
+
tam: 'ta',
|
|
158
|
+
tat: 'tt',
|
|
159
|
+
tel: 'te',
|
|
160
|
+
tgk: 'tg',
|
|
161
|
+
tgl: 'tl',
|
|
162
|
+
tha: 'th',
|
|
163
|
+
tib: 'bo',
|
|
164
|
+
tir: 'ti',
|
|
165
|
+
ton: 'to',
|
|
166
|
+
tsn: 'tn',
|
|
167
|
+
tso: 'ts',
|
|
168
|
+
tuk: 'tk',
|
|
169
|
+
tur: 'tr',
|
|
170
|
+
twi: 'tw',
|
|
171
|
+
uig: 'ug',
|
|
172
|
+
ukr: 'uk',
|
|
173
|
+
urd: 'ur',
|
|
174
|
+
uzb: 'uz',
|
|
175
|
+
ven: 've',
|
|
176
|
+
vie: 'vi',
|
|
177
|
+
vol: 'vo',
|
|
178
|
+
wel: 'cy',
|
|
179
|
+
wln: 'wa',
|
|
180
|
+
wol: 'wo',
|
|
181
|
+
xho: 'xh',
|
|
182
|
+
yid: 'yi',
|
|
183
|
+
yor: 'yo',
|
|
184
|
+
zha: 'za',
|
|
185
|
+
zul: 'zu',
|
|
186
|
+
}, names = {
|
|
187
|
+
afar: 'aa',
|
|
188
|
+
abkhazian: 'ab',
|
|
189
|
+
afrikaans: 'af',
|
|
190
|
+
akan: 'ak',
|
|
191
|
+
albanian: 'sq',
|
|
192
|
+
amharic: 'am',
|
|
193
|
+
arabic: 'ar',
|
|
194
|
+
aragonese: 'an',
|
|
195
|
+
armenian: 'hy',
|
|
196
|
+
assamese: 'as',
|
|
197
|
+
avaric: 'av',
|
|
198
|
+
avestan: 'ae',
|
|
199
|
+
aymara: 'ay',
|
|
200
|
+
azerbaijani: 'az',
|
|
201
|
+
bashkir: 'ba',
|
|
202
|
+
bambara: 'bm',
|
|
203
|
+
basque: 'eu',
|
|
204
|
+
belarusian: 'be',
|
|
205
|
+
bengali: 'bn',
|
|
206
|
+
'bihari languages': 'bh',
|
|
207
|
+
bislama: 'bi',
|
|
208
|
+
tibetan: 'bo',
|
|
209
|
+
bosnian: 'bs',
|
|
210
|
+
breton: 'br',
|
|
211
|
+
bulgarian: 'bg',
|
|
212
|
+
burmese: 'my',
|
|
213
|
+
catalan: 'ca',
|
|
214
|
+
valencian: 'ca',
|
|
215
|
+
czech: 'cs',
|
|
216
|
+
chamorro: 'ch',
|
|
217
|
+
chechen: 'ce',
|
|
218
|
+
chinese: 'zh',
|
|
219
|
+
'church slavic': 'cu',
|
|
220
|
+
'old slavonic': 'cu',
|
|
221
|
+
'church slavonic': 'cu',
|
|
222
|
+
'old bulgarian': 'cu',
|
|
223
|
+
'old church slavonic': 'cu',
|
|
224
|
+
chuvash: 'cv',
|
|
225
|
+
cornish: 'kw',
|
|
226
|
+
corsican: 'co',
|
|
227
|
+
cree: 'cr',
|
|
228
|
+
welsh: 'cy',
|
|
229
|
+
danish: 'da',
|
|
230
|
+
german: 'de',
|
|
231
|
+
divehi: 'dv',
|
|
232
|
+
dhivehi: 'dv',
|
|
233
|
+
maldivian: 'dv',
|
|
234
|
+
dutch: 'nl',
|
|
235
|
+
flemish: 'nl',
|
|
236
|
+
dzongkha: 'dz',
|
|
237
|
+
greek: 'el',
|
|
238
|
+
english: 'en',
|
|
239
|
+
esperanto: 'eo',
|
|
240
|
+
estonian: 'et',
|
|
241
|
+
ewe: 'ee',
|
|
242
|
+
faroese: 'fo',
|
|
243
|
+
persian: 'fa',
|
|
244
|
+
fijian: 'fj',
|
|
245
|
+
finnish: 'fi',
|
|
246
|
+
french: 'fr',
|
|
247
|
+
'western frisian': 'fy',
|
|
248
|
+
fulah: 'ff',
|
|
249
|
+
georgian: 'ka',
|
|
250
|
+
gaelic: 'gd',
|
|
251
|
+
'scottish gaelic': 'gd',
|
|
252
|
+
irish: 'ga',
|
|
253
|
+
galician: 'gl',
|
|
254
|
+
manx: 'gv',
|
|
255
|
+
guarani: 'gn',
|
|
256
|
+
gujarati: 'gu',
|
|
257
|
+
haitian: 'ht',
|
|
258
|
+
'haitian creole': 'ht',
|
|
259
|
+
hausa: 'ha',
|
|
260
|
+
hebrew: 'he',
|
|
261
|
+
herero: 'hz',
|
|
262
|
+
hindi: 'hi',
|
|
263
|
+
'hiri motu': 'ho',
|
|
264
|
+
croatian: 'hr',
|
|
265
|
+
hungarian: 'hu',
|
|
266
|
+
igbo: 'ig',
|
|
267
|
+
icelandic: 'is',
|
|
268
|
+
ido: 'io',
|
|
269
|
+
'sichuan yi': 'ii',
|
|
270
|
+
nuosu: 'ii',
|
|
271
|
+
inuktitut: 'iu',
|
|
272
|
+
interlingue: 'ie',
|
|
273
|
+
occidental: 'ie',
|
|
274
|
+
interlingua: 'ia',
|
|
275
|
+
indonesian: 'id',
|
|
276
|
+
inupiaq: 'ik',
|
|
277
|
+
italian: 'it',
|
|
278
|
+
javanese: 'jv',
|
|
279
|
+
japanese: 'ja',
|
|
280
|
+
kalaallisut: 'kl',
|
|
281
|
+
greenlandic: 'kl',
|
|
282
|
+
kannada: 'kn',
|
|
283
|
+
kashmiri: 'ks',
|
|
284
|
+
kanuri: 'kr',
|
|
285
|
+
kazakh: 'kk',
|
|
286
|
+
'central khmer': 'km',
|
|
287
|
+
kikuyu: 'ki',
|
|
288
|
+
gikuyu: 'ki',
|
|
289
|
+
kinyarwanda: 'rw',
|
|
290
|
+
kirghiz: 'ky',
|
|
291
|
+
kyrgyz: 'ky',
|
|
292
|
+
komi: 'kv',
|
|
293
|
+
kongo: 'kg',
|
|
294
|
+
korean: 'ko',
|
|
295
|
+
kuanyama: 'kj',
|
|
296
|
+
kwanyama: 'kj',
|
|
297
|
+
kurdish: 'ku',
|
|
298
|
+
lao: 'lo',
|
|
299
|
+
latin: 'la',
|
|
300
|
+
latvian: 'lv',
|
|
301
|
+
limburgan: 'li',
|
|
302
|
+
limburger: 'li',
|
|
303
|
+
limburgish: 'li',
|
|
304
|
+
lingala: 'ln',
|
|
305
|
+
lithuanian: 'lt',
|
|
306
|
+
luxembourgish: 'lb',
|
|
307
|
+
letzeburgesch: 'lb',
|
|
308
|
+
'luba-katanga': 'lu',
|
|
309
|
+
ganda: 'lg',
|
|
310
|
+
macedonian: 'mk',
|
|
311
|
+
marshallese: 'mh',
|
|
312
|
+
malayalam: 'ml',
|
|
313
|
+
maori: 'mi',
|
|
314
|
+
marathi: 'mr',
|
|
315
|
+
malay: 'ms',
|
|
316
|
+
malagasy: 'mg',
|
|
317
|
+
maltese: 'mt',
|
|
318
|
+
mongolian: 'mn',
|
|
319
|
+
nauru: 'na',
|
|
320
|
+
navajo: 'nv',
|
|
321
|
+
navaho: 'nv',
|
|
322
|
+
'ndebele, south': 'nr',
|
|
323
|
+
'south ndebele': 'nr',
|
|
324
|
+
'ndebele, north': 'nd',
|
|
325
|
+
'north ndebele': 'nd',
|
|
326
|
+
ndonga: 'ng',
|
|
327
|
+
nepali: 'ne',
|
|
328
|
+
'norwegian nynorsk': 'nn',
|
|
329
|
+
'nynorsk, norwegian': 'nn',
|
|
330
|
+
'norwegian bokmål': 'nb',
|
|
331
|
+
'bokmål, norwegian': 'nb',
|
|
332
|
+
norwegian: 'no',
|
|
333
|
+
chichewa: 'ny',
|
|
334
|
+
chewa: 'ny',
|
|
335
|
+
nyanja: 'ny',
|
|
336
|
+
occitan: 'oc',
|
|
337
|
+
ojibwa: 'oj',
|
|
338
|
+
oriya: 'or',
|
|
339
|
+
oromo: 'om',
|
|
340
|
+
ossetian: 'os',
|
|
341
|
+
ossetic: 'os',
|
|
342
|
+
panjabi: 'pa',
|
|
343
|
+
punjabi: 'pa',
|
|
344
|
+
pali: 'pi',
|
|
345
|
+
polish: 'pl',
|
|
346
|
+
portuguese: 'pt',
|
|
347
|
+
pushto: 'ps',
|
|
348
|
+
pashto: 'ps',
|
|
349
|
+
quechua: 'qu',
|
|
350
|
+
romansh: 'rm',
|
|
351
|
+
romanian: 'ro',
|
|
352
|
+
moldavian: 'ro',
|
|
353
|
+
moldovan: 'ro',
|
|
354
|
+
rundi: 'rn',
|
|
355
|
+
russian: 'ru',
|
|
356
|
+
sango: 'sg',
|
|
357
|
+
sanskrit: 'sa',
|
|
358
|
+
sinhala: 'si',
|
|
359
|
+
sinhalese: 'si',
|
|
360
|
+
slovak: 'sk',
|
|
361
|
+
slovenian: 'sl',
|
|
362
|
+
'northern sami': 'se',
|
|
363
|
+
samoan: 'sm',
|
|
364
|
+
shona: 'sn',
|
|
365
|
+
sindhi: 'sd',
|
|
366
|
+
somali: 'so',
|
|
367
|
+
'sotho, southern': 'st',
|
|
368
|
+
spanish: 'es',
|
|
369
|
+
castilian: 'es',
|
|
370
|
+
sardinian: 'sc',
|
|
371
|
+
serbian: 'sr',
|
|
372
|
+
swati: 'ss',
|
|
373
|
+
sundanese: 'su',
|
|
374
|
+
swahili: 'sw',
|
|
375
|
+
swedish: 'sv',
|
|
376
|
+
tahitian: 'ty',
|
|
377
|
+
tamil: 'ta',
|
|
378
|
+
tatar: 'tt',
|
|
379
|
+
telugu: 'te',
|
|
380
|
+
tajik: 'tg',
|
|
381
|
+
tagalog: 'tl',
|
|
382
|
+
thai: 'th',
|
|
383
|
+
tigrinya: 'ti',
|
|
384
|
+
tonga: 'to',
|
|
385
|
+
tswana: 'tn',
|
|
386
|
+
tsonga: 'ts',
|
|
387
|
+
turkmen: 'tk',
|
|
388
|
+
turkish: 'tr',
|
|
389
|
+
twi: 'tw',
|
|
390
|
+
uighur: 'ug',
|
|
391
|
+
uyghur: 'ug',
|
|
392
|
+
ukrainian: 'uk',
|
|
393
|
+
urdu: 'ur',
|
|
394
|
+
uzbek: 'uz',
|
|
395
|
+
venda: 've',
|
|
396
|
+
vietnamese: 'vi',
|
|
397
|
+
volapük: 'vo',
|
|
398
|
+
walloon: 'wa',
|
|
399
|
+
wolof: 'wo',
|
|
400
|
+
xhosa: 'xh',
|
|
401
|
+
yiddish: 'yi',
|
|
402
|
+
yoruba: 'yo',
|
|
403
|
+
zhuang: 'za',
|
|
404
|
+
chuang: 'za',
|
|
405
|
+
zulu: 'zu',
|
|
406
|
+
};
|
|
407
|
+
// @ts-ignore
|
|
408
|
+
const isoKeys = Object.values(iso).sort();
|
|
409
|
+
var languages = e => {
|
|
410
|
+
if ('string' != typeof e)
|
|
411
|
+
throw new Error('The "language" must be a string, received ' + typeof e);
|
|
412
|
+
if (e.length > 100)
|
|
413
|
+
throw new Error(`The "language" is too long at ${e.length} characters`);
|
|
414
|
+
if (((e = e.toLowerCase()), (e = names[e] || iso[e] || e), !isoKeys.includes(e)))
|
|
415
|
+
throw new Error(`The language "${e}" is not part of the ISO 639-1`);
|
|
416
|
+
return e;
|
|
417
|
+
};
|
|
418
|
+
function Cache() {
|
|
419
|
+
var e = Object.create(null);
|
|
420
|
+
function a(a) {
|
|
421
|
+
delete e[a];
|
|
422
|
+
}
|
|
423
|
+
(this.set = function (n, i, r) {
|
|
424
|
+
if (void 0 !== r && ('number' != typeof r || isNaN(r) || r <= 0))
|
|
425
|
+
throw new Error('Cache timeout must be a positive number');
|
|
426
|
+
var t = e[n];
|
|
427
|
+
t && clearTimeout(t.timeout);
|
|
428
|
+
var o = { value: i, expire: r + Date.now() };
|
|
429
|
+
return (
|
|
430
|
+
// @ts-ignore
|
|
431
|
+
isNaN(o.expire) || (o.timeout = setTimeout(() => a(n), r)), (e[n] = o), i);
|
|
432
|
+
}),
|
|
433
|
+
(this.del = function (n) {
|
|
434
|
+
var i = !0, r = e[n];
|
|
435
|
+
return (r
|
|
436
|
+
? (clearTimeout(r.timeout),
|
|
437
|
+
!isNaN(r.expire) && r.expire < Date.now() && (i = !1))
|
|
438
|
+
: (i = !1),
|
|
439
|
+
i && a(n),
|
|
440
|
+
i);
|
|
441
|
+
}),
|
|
442
|
+
(this.clear = function () {
|
|
443
|
+
for (var a in e)
|
|
444
|
+
clearTimeout(e[a].timeout);
|
|
445
|
+
e = Object.create(null);
|
|
446
|
+
}),
|
|
447
|
+
(this.get = function (a) {
|
|
448
|
+
var n = e[a];
|
|
449
|
+
if (void 0 !== n) {
|
|
450
|
+
if (isNaN(n.expire) || n.expire >= Date.now())
|
|
451
|
+
return n.value;
|
|
452
|
+
delete e[a];
|
|
453
|
+
}
|
|
454
|
+
return null;
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
const exp$1 = new Cache();
|
|
458
|
+
exp$1.Cache = Cache;
|
|
459
|
+
const base = 'https://translate.googleapis.com/translate_a/single';
|
|
460
|
+
var google = {
|
|
461
|
+
fetch: ({ key: e, from: a, to: n, text: i }) => [
|
|
462
|
+
`${base}?client=gtx&sl=${a}&tl=${n}&dt=t&q=${encodeURI(i)}`,
|
|
463
|
+
],
|
|
464
|
+
parse: e => e.json().then(e => {
|
|
465
|
+
if (!(e = e && e[0] && e[0][0] && e[0].map(e => e[0]).join('')))
|
|
466
|
+
throw new Error('Translation not found');
|
|
467
|
+
return e;
|
|
468
|
+
}),
|
|
469
|
+
}, yandex = {
|
|
470
|
+
needkey: !0,
|
|
471
|
+
fetch: ({ key: e, from: a, to: n, text: i }) => [
|
|
472
|
+
`https://translate.yandex.net/api/v1.5/tr.json/translate?key=${e}&lang=${a}-${n}&text=${encodeURIComponent(i)}`,
|
|
473
|
+
{ method: 'POST', body: '' },
|
|
474
|
+
],
|
|
475
|
+
parse: e => e.json().then(e => {
|
|
476
|
+
if (200 !== e.code)
|
|
477
|
+
throw new Error(e.message);
|
|
478
|
+
return e.text[0];
|
|
479
|
+
}),
|
|
480
|
+
};
|
|
481
|
+
const libreUrl = 'https://libretranslate.com/translate';
|
|
482
|
+
var libre = {
|
|
483
|
+
needkey: !1,
|
|
484
|
+
fetch: ({ url: e = libreUrl, key: a, from: n, to: i, text: r }) => [
|
|
485
|
+
e,
|
|
486
|
+
{
|
|
487
|
+
method: 'POST',
|
|
488
|
+
body: JSON.stringify({ q: r, source: n, target: i, api_key: a }),
|
|
489
|
+
headers: { 'Content-Type': 'application/json' },
|
|
490
|
+
},
|
|
491
|
+
],
|
|
492
|
+
parse: e => e.json().then(e => {
|
|
493
|
+
if (!e)
|
|
494
|
+
throw new Error('No response found');
|
|
495
|
+
if (e.error)
|
|
496
|
+
throw new Error(e.error);
|
|
497
|
+
if (!e.translatedText)
|
|
498
|
+
throw new Error('No response found');
|
|
499
|
+
return e.translatedText;
|
|
500
|
+
}),
|
|
501
|
+
}, deepl = {
|
|
502
|
+
needkey: !0,
|
|
503
|
+
fetch: ({ key: e, from: a, to: n, text: i }) => [
|
|
504
|
+
`https://api${/:fx$/.test(e) ? '-free' : ''}.deepl.com/v2/translate?auth_key=${e}&source_lang=${a}&target_lang=${n}&text=${(i = encodeURIComponent(i))}`,
|
|
505
|
+
{ method: 'POST', body: '' },
|
|
506
|
+
],
|
|
507
|
+
parse: async (e) => {
|
|
508
|
+
if (!e.ok) {
|
|
509
|
+
if (403 === e.status)
|
|
510
|
+
throw new Error('Auth Error, please review the key for DeepL');
|
|
511
|
+
throw new Error(`Error ${e.status}`);
|
|
512
|
+
}
|
|
513
|
+
return e.json().then(e => e.translations[0].text);
|
|
514
|
+
},
|
|
515
|
+
}, engines = { google: google, yandex: yandex, libre: libre, deepl: deepl };
|
|
516
|
+
const Translate = function (e = {}) {
|
|
517
|
+
// @ts-ignore
|
|
518
|
+
if (!(this instanceof Translate))
|
|
519
|
+
return new Translate(e);
|
|
520
|
+
const a = {
|
|
521
|
+
from: 'en',
|
|
522
|
+
to: 'en',
|
|
523
|
+
cache: void 0,
|
|
524
|
+
languages: languages,
|
|
525
|
+
engines: engines,
|
|
526
|
+
engine: 'google',
|
|
527
|
+
keys: {},
|
|
528
|
+
}, n = async (e, a = {}) => {
|
|
529
|
+
'string' == typeof a && (a = { to: a }), // @ts-ignore
|
|
530
|
+
(a.text = e), // @ts-ignore
|
|
531
|
+
(a.from = languages(a.from || n.from)), // @ts-ignore
|
|
532
|
+
(a.to = languages(a.to || n.to)), // @ts-ignore
|
|
533
|
+
(a.cache = a.cache || n.cache), // @ts-ignore
|
|
534
|
+
(a.engines = a.engines || {}), // @ts-ignore
|
|
535
|
+
(a.engine = a.engine || n.engine), // @ts-ignore
|
|
536
|
+
(a.url = a.url || n.url), // @ts-ignore
|
|
537
|
+
(a.id = a.id || `${a.url}:${a.from}:${a.to}:${a.engine}:${a.text}`), // @ts-ignore
|
|
538
|
+
(a.keys = a.keys || n.keys || {}); // @ts-ignore
|
|
539
|
+
for (let e in n.keys)
|
|
540
|
+
a.keys[e] = a.keys[e] || n.keys[e]; // @ts-ignore
|
|
541
|
+
a.key = a.key || n.key || a.keys[a.engine]; // @ts-ignore
|
|
542
|
+
const i = a.engines[a.engine] || n.engines[a.engine], // @ts-ignore
|
|
543
|
+
r = exp$1.get(a.id);
|
|
544
|
+
if (r)
|
|
545
|
+
return Promise.resolve(r); // @ts-ignore
|
|
546
|
+
if (a.to === a.from)
|
|
547
|
+
return Promise.resolve(a.text); // @ts-ignore
|
|
548
|
+
if (i.needkey && !a.key)
|
|
549
|
+
// @ts-ignore
|
|
550
|
+
throw new Error(// @ts-ignore
|
|
551
|
+
`The engine "${a.engine}" needs a key, please provide it`);
|
|
552
|
+
const t = i.fetch(a); // @ts-ignore
|
|
553
|
+
return fetch(...t)
|
|
554
|
+
.then(i.parse) // @ts-ignore
|
|
555
|
+
.then(e => exp$1.set(a.id, e, a.cache));
|
|
556
|
+
};
|
|
557
|
+
for (let i in a)
|
|
558
|
+
n[i] = void 0 === e[i] ? a[i] : e[i];
|
|
559
|
+
return n;
|
|
560
|
+
}, // @ts-ignore
|
|
561
|
+
exp = new Translate();
|
|
562
|
+
exp.Translate = Translate;
|
|
563
|
+
export const translate = exp;
|
|
564
|
+
;
|
|
565
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/base/translate.ts
|
|
566
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL3RyYW5zbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLEdBQUcsR0FBRztJQUNSLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7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RSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUMzRSxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO0lBQzlCLGFBQWE7SUFDYixJQUFJLENBQUMsQ0FBQyxJQUFJLFlBQVksU0FBUyxDQUFDO1FBQUUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRCxNQUFNLENBQUMsR0FBRztRQUNOLElBQUksRUFBRSxJQUFJO1FBQ1YsRUFBRSxFQUFFLElBQUk7UUFDUixLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ2IsU0FBUyxFQUFFLFNBQVM7UUFDcEIsT0FBTyxFQUFFLE9BQU87UUFDaEIsTUFBTSxFQUFFLFFBQVE7UUFDaEIsSUFBSSxFQUFFLEVBQUU7S0FDVCxFQUNELENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRTtRQUN0QixRQUFRLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxhQUFhO1lBQ3BELENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxhQUFhO1lBQzNCLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxhQUFhO1lBQ3JELENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxhQUFhO1lBQy9DLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxhQUFhO1lBQzdDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUFFLGFBQWE7WUFDNUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLGFBQWE7WUFDaEQsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLGFBQWE7WUFDdkMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLGFBQWE7WUFDbEYsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWE7UUFDbEQsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSTtZQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYTtRQUN2RSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWE7UUFDekQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsYUFBYTtRQUNqRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDO1lBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYTtRQUMvQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUk7WUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYTtRQUNsRSxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRztZQUNyQixhQUFhO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBRSxhQUFhO1lBQzVCLGVBQWUsQ0FBQyxDQUFDLE1BQU0sa0NBQWtDLENBQzFELENBQUM7UUFDSixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYTtRQUNuQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNmLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYTthQUMzQixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQztJQUNKLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQztRQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQyxFQUFFLGFBQWE7QUFDaEIsR0FBRyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7QUFDeEIsR0FBRyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7QUFFMUIsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBR2QsQ0FBQztBQUVYLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOERBQThEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmNvbnN0IGlzbyA9IHtcbiAgICBhYXI6ICdhYScsXG4gICAgYWJrOiAnYWInLFxuICAgIGFmcjogJ2FmJyxcbiAgICBha2E6ICdhaycsXG4gICAgYWxiOiAnc3EnLFxuICAgIGFtaDogJ2FtJyxcbiAgICBhcmE6ICdhcicsXG4gICAgYXJnOiAnYW4nLFxuICAgIGFybTogJ2h5JyxcbiAgICBhc206ICdhcycsXG4gICAgYXZhOiAnYXYnLFxuICAgIGF2ZTogJ2FlJyxcbiAgICBheW06ICdheScsXG4gICAgYXplOiAnYXonLFxuICAgIGJhazogJ2JhJyxcbiAgICBiYW06ICdibScsXG4gICAgYmFxOiAnZXUnLFxuICAgIGJlbDogJ2JlJyxcbiAgICBiZW46ICdibicsXG4gICAgYmloOiAnYmgnLFxuICAgIGJpczogJ2JpJyxcbiAgICBib3M6ICdicycsXG4gICAgYnJlOiAnYnInLFxuICAgIGJ1bDogJ2JnJyxcbiAgICBidXI6ICdteScsXG4gICAgY2F0OiAnY2EnLFxuICAgIGNoYTogJ2NoJyxcbiAgICBjaGU6ICdjZScsXG4gICAgY2hpOiAnemgnLFxuICAgIGNodTogJ2N1JyxcbiAgICBjaHY6ICdjdicsXG4gICAgY29yOiAna3cnLFxuICAgIGNvczogJ2NvJyxcbiAgICBjcmU6ICdjcicsXG4gICAgY3plOiAnY3MnLFxuICAgIGRhbjogJ2RhJyxcbiAgICBkaXY6ICdkdicsXG4gICAgZHV0OiAnbmwnLFxuICAgIGR6bzogJ2R6JyxcbiAgICBlbmc6ICdlbicsXG4gICAgZXBvOiAnZW8nLFxuICAgIGVzdDogJ2V0JyxcbiAgICBld2U6ICdlZScsXG4gICAgZmFvOiAnZm8nLFxuICAgIGZpajogJ2ZqJyxcbiAgICBmaW46ICdmaScsXG4gICAgZnJlOiAnZnInLFxuICAgIGZyeTogJ2Z5JyxcbiAgICBmdWw6ICdmZicsXG4gICAgZ2VvOiAna2EnLFxuICAgIGdlcjogJ2RlJyxcbiAgICBnbGE6ICdnZCcsXG4gICAgZ2xlOiAnZ2EnLFxuICAgIGdsZzogJ2dsJyxcbiAgICBnbHY6ICdndicsXG4gICAgZ3JlOiAnZWwnLFxuICAgIGdybjogJ2duJyxcbiAgICBndWo6ICdndScsXG4gICAgaGF0OiAnaHQnLFxuICAgIGhhdTogJ2hhJyxcbiAgICBoZWI6ICdoZScsXG4gICAgaGVyOiAnaHonLFxuICAgIGhpbjogJ2hpJyxcbiAgICBobW86ICdobycsXG4gICAgaHJ2OiAnaHInLFxuICAgIGh1bjogJ2h1JyxcbiAgICBpYm86ICdpZycsXG4gICAgaWNlOiAnaXMnLFxuICAgIGlkbzogJ2lvJyxcbiAgICBpaWk6ICdpaScsXG4gICAgaWt1OiAnaXUnLFxuICAgIGlsZTogJ2llJyxcbiAgICBpbmE6ICdpYScsXG4gICAgaW5kOiAnaWQnLFxuICAgIGlwazogJ2lrJyxcbiAgICBpdGE6ICdpdCcsXG4gICAgamF2OiAnanYnLFxuICAgIGpwbjogJ2phJyxcbiAgICBrYWw6ICdrbCcsXG4gICAga2FuOiAna24nLFxuICAgIGthczogJ2tzJyxcbiAgICBrYXU6ICdrcicsXG4gICAga2F6OiAna2snLFxuICAgIGtobTogJ2ttJyxcbiAgICBraWs6ICdraScsXG4gICAga2luOiAncncnLFxuICAgIGtpcjogJ2t5JyxcbiAgICBrb206ICdrdicsXG4gICAga29uOiAna2cnLFxuICAgIGtvcjogJ2tvJyxcbiAgICBrdWE6ICdraicsXG4gICAga3VyOiAna3UnLFxuICAgIGxhbzogJ2xvJyxcbiAgICBsYXQ6ICdsYScsXG4gICAgbGF2OiAnbHYnLFxuICAgIGxpbTogJ2xpJyxcbiAgICBsaW46ICdsbicsXG4gICAgbGl0OiAnbHQnLFxuICAgIGx0ejogJ2xiJyxcbiAgICBsdWI6ICdsdScsXG4gICAgbHVnOiAnbGcnLFxuICAgIG1hYzogJ21rJyxcbiAgICBtYWg6ICdtaCcsXG4gICAgbWFsOiAnbWwnLFxuICAgIG1hbzogJ21pJyxcbiAgICBtYXI6ICdtcicsXG4gICAgbWF5OiAnbXMnLFxuICAgIG1sZzogJ21nJyxcbiAgICBtbHQ6ICdtdCcsXG4gICAgbW9uOiAnbW4nLFxuICAgIG5hdTogJ25hJyxcbiAgICBuYXY6ICdudicsXG4gICAgbmJsOiAnbnInLFxuICAgIG5kZTogJ25kJyxcbiAgICBuZG86ICduZycsXG4gICAgbmVwOiAnbmUnLFxuICAgIG5ubzogJ25uJyxcbiAgICBub2I6ICduYicsXG4gICAgbm9yOiAnbm8nLFxuICAgIG55YTogJ255JyxcbiAgICBvY2k6ICdvYycsXG4gICAgb2ppOiAnb2onLFxuICAgIG9yaTogJ29yJyxcbiAgICBvcm06ICdvbScsXG4gICAgb3NzOiAnb3MnLFxuICAgIHBhbjogJ3BhJyxcbiAgICBwZXI6ICdmYScsXG4gICAgcGxpOiAncGknLFxuICAgIHBvbDogJ3BsJyxcbiAgICBwb3I6ICdwdCcsXG4gICAgcHVzOiAncHMnLFxuICAgIHF1ZTogJ3F1JyxcbiAgICByb2g6ICdybScsXG4gICAgcnVtOiAncm8nLFxuICAgIHJ1bjogJ3JuJyxcbiAgICBydXM6ICdydScsXG4gICAgc2FnOiAnc2cnLFxuICAgIHNhbjogJ3NhJyxcbiAgICBzaW46ICdzaScsXG4gICAgc2xvOiAnc2snLFxuICAgIHNsdjogJ3NsJyxcbiAgICBzbWU6ICdzZScsXG4gICAgc21vOiAnc20nLFxuICAgIHNuYTogJ3NuJyxcbiAgICBzbmQ6ICdzZCcsXG4gICAgc29tOiAnc28nLFxuICAgIHNvdDogJ3N0JyxcbiAgICBzcGE6ICdlcycsXG4gICAgc3JkOiAnc2MnLFxuICAgIHNycDogJ3NyJyxcbiAgICBzc3c6ICdzcycsXG4gICAgc3VuOiAnc3UnLFxuICAgIHN3YTogJ3N3JyxcbiAgICBzd2U6ICdzdicsXG4gICAgdGFoOiAndHknLFxuICAgIHRhbTogJ3RhJyxcbiAgICB0YXQ6ICd0dCcsXG4gICAgdGVsOiAndGUnLFxuICAgIHRnazogJ3RnJyxcbiAgICB0Z2w6ICd0bCcsXG4gICAgdGhhOiAndGgnLFxuICAgIHRpYjogJ2JvJyxcbiAgICB0aXI6ICd0aScsXG4gICAgdG9uOiAndG8nLFxuICAgIHRzbjogJ3RuJyxcbiAgICB0c286ICd0cycsXG4gICAgdHVrOiAndGsnLFxuICAgIHR1cjogJ3RyJyxcbiAgICB0d2k6ICd0dycsXG4gICAgdWlnOiAndWcnLFxuICAgIHVrcjogJ3VrJyxcbiAgICB1cmQ6ICd1cicsXG4gICAgdXpiOiAndXonLFxuICAgIHZlbjogJ3ZlJyxcbiAgICB2aWU6ICd2aScsXG4gICAgdm9sOiAndm8nLFxuICAgIHdlbDogJ2N5JyxcbiAgICB3bG46ICd3YScsXG4gICAgd29sOiAnd28nLFxuICAgIHhobzogJ3hoJyxcbiAgICB5aWQ6ICd5aScsXG4gICAgeW9yOiAneW8nLFxuICAgIHpoYTogJ3phJyxcbiAgICB6dWw6ICd6dScsXG4gIH0sXG4gIG5hbWVzID0ge1xuICAgIGFmYXI6ICdhYScsXG4gICAgYWJraGF6aWFuOiAnYWInLFxuICAgIGFmcmlrYWFuczogJ2FmJyxcbiAgICBha2FuOiAnYWsnLFxuICAgIGFsYmFuaWFuOiAnc3EnLFxuICAgIGFtaGFyaWM6ICdhbScsXG4gICAgYXJhYmljOiAnYXInLFxuICAgIGFyYWdvbmVzZTogJ2FuJyxcbiAgICBhcm1lbmlhbjogJ2h5JyxcbiAgICBhc3NhbWVzZTogJ2FzJyxcbiAgICBhdmFyaWM6ICdhdicsXG4gICAgYXZlc3RhbjogJ2FlJyxcbiAgICBheW1hcmE6ICdheScsXG4gICAgYXplcmJhaWphbmk6ICdheicsXG4gICAgYmFzaGtpcjogJ2JhJyxcbiAgICBiYW1iYXJhOiAnYm0nLFxuICAgIGJhc3F1ZTogJ2V1JyxcbiAgICBiZWxhcnVzaWFuOiAnYmUnLFxuICAgIGJlbmdhbGk6ICdibicsXG4gICAgJ2JpaGFyaSBsYW5ndWFnZXMnOiAnYmgnLFxuICAgIGJpc2xhbWE6ICdiaScsXG4gICAgdGliZXRhbjogJ2JvJyxcbiAgICBib3NuaWFuOiAnYnMnLFxuICAgIGJyZXRvbjogJ2JyJyxcbiAgICBidWxnYXJpYW46ICdiZycsXG4gICAgYnVybWVzZTogJ215JyxcbiAgICBjYXRhbGFuOiAnY2EnLFxuICAgIHZhbGVuY2lhbjogJ2NhJyxcbiAgICBjemVjaDogJ2NzJyxcbiAgICBjaGFtb3JybzogJ2NoJyxcbiAgICBjaGVjaGVuOiAnY2UnLFxuICAgIGNoaW5lc2U6ICd6aCcsXG4gICAgJ2NodXJjaCBzbGF2aWMnOiAnY3UnLFxuICAgICdvbGQgc2xhdm9uaWMnOiAnY3UnLFxuICAgICdjaHVyY2ggc2xhdm9uaWMnOiAnY3UnLFxuICAgICdvbGQgYnVsZ2FyaWFuJzogJ2N1JyxcbiAgICAnb2xkIGNodXJjaCBzbGF2b25pYyc6ICdjdScsXG4gICAgY2h1dmFzaDogJ2N2JyxcbiAgICBjb3JuaXNoOiAna3cnLFxuICAgIGNvcnNpY2FuOiAnY28nLFxuICAgIGNyZWU6ICdjcicsXG4gICAgd2Vsc2g6ICdjeScsXG4gICAgZGFuaXNoOiAnZGEnLFxuICAgIGdlcm1hbjogJ2RlJyxcbiAgICBkaXZlaGk6ICdkdicsXG4gICAgZGhpdmVoaTogJ2R2JyxcbiAgICBtYWxkaXZpYW46ICdkdicsXG4gICAgZHV0Y2g6ICdubCcsXG4gICAgZmxlbWlzaDogJ25sJyxcbiAgICBkem9uZ2toYTogJ2R6JyxcbiAgICBncmVlazogJ2VsJyxcbiAgICBlbmdsaXNoOiAnZW4nLFxuICAgIGVzcGVyYW50bzogJ2VvJyxcbiAgICBlc3RvbmlhbjogJ2V0JyxcbiAgICBld2U6ICdlZScsXG4gICAgZmFyb2VzZTogJ2ZvJyxcbiAgICBwZXJzaWFuOiAnZmEnLFxuICAgIGZpamlhbjogJ2ZqJyxcbiAgICBmaW5uaXNoOiAnZmknLFxuICAgIGZyZW5jaDogJ2ZyJyxcbiAgICAnd2VzdGVybiBmcmlzaWFuJzogJ2Z5JyxcbiAgICBmdWxhaDogJ2ZmJyxcbiAgICBnZW9yZ2lhbjogJ2thJyxcbiAgICBnYWVsaWM6ICdnZCcsXG4gICAgJ3Njb3R0aXNoIGdhZWxpYyc6ICdnZCcsXG4gICAgaXJpc2g6ICdnYScsXG4gICAgZ2FsaWNpYW46ICdnbCcsXG4gICAgbWFueDogJ2d2JyxcbiAgICBndWFyYW5pOiAnZ24nLFxuICAgIGd1amFyYXRpOiAnZ3UnLFxuICAgIGhhaXRpYW46ICdodCcsXG4gICAgJ2hhaXRpYW4gY3Jlb2xlJzogJ2h0JyxcbiAgICBoYXVzYTogJ2hhJyxcbiAgICBoZWJyZXc6ICdoZScsXG4gICAgaGVyZXJvOiAnaHonLFxuICAgIGhpbmRpOiAnaGknLFxuICAgICdoaXJpIG1vdHUnOiAnaG8nLFxuICAgIGNyb2F0aWFuOiAnaHInLFxuICAgIGh1bmdhcmlhbjogJ2h1JyxcbiAgICBpZ2JvOiAnaWcnLFxuICAgIGljZWxhbmRpYzogJ2lzJyxcbiAgICBpZG86ICdpbycsXG4gICAgJ3NpY2h1YW4geWknOiAnaWknLFxuICAgIG51b3N1OiAnaWknLFxuICAgIGludWt0aXR1dDogJ2l1JyxcbiAgICBpbnRlcmxpbmd1ZTogJ2llJyxcbiAgICBvY2NpZGVudGFsOiAnaWUnLFxuICAgIGludGVybGluZ3VhOiAnaWEnLFxuICAgIGluZG9uZXNpYW46ICdpZCcsXG4gICAgaW51cGlhcTogJ2lrJyxcbiAgICBpdGFsaWFuOiAnaXQnLFxuICAgIGphdmFuZXNlOiAnanYnLFxuICAgIGphcGFuZXNlOiAnamEnLFxuICAgIGthbGFhbGxpc3V0OiAna2wnLFxuICAgIGdyZWVubGFuZGljOiAna2wnLFxuICAgIGthbm5hZGE6ICdrbicsXG4gICAga2FzaG1pcmk6ICdrcycsXG4gICAga2FudXJpOiAna3InLFxuICAgIGthemFraDogJ2trJyxcbiAgICAnY2VudHJhbCBraG1lcic6ICdrbScsXG4gICAga2lrdXl1OiAna2knLFxuICAgIGdpa3V5dTogJ2tpJyxcbiAgICBraW55YXJ3YW5kYTogJ3J3JyxcbiAgICBraXJnaGl6OiAna3knLFxuICAgIGt5cmd5ejogJ2t5JyxcbiAgICBrb21pOiAna3YnLFxuICAgIGtvbmdvOiAna2cnLFxuICAgIGtvcmVhbjogJ2tvJyxcbiAgICBrdWFueWFtYTogJ2tqJyxcbiAgICBrd2FueWFtYTogJ2tqJyxcbiAgICBrdXJkaXNoOiAna3UnLFxuICAgIGxhbzogJ2xvJyxcbiAgICBsYXRpbjogJ2xhJyxcbiAgICBsYXR2aWFuOiAnbHYnLFxuICAgIGxpbWJ1cmdhbjogJ2xpJyxcbiAgICBsaW1idXJnZXI6ICdsaScsXG4gICAgbGltYnVyZ2lzaDogJ2xpJyxcbiAgICBsaW5nYWxhOiAnbG4nLFxuICAgIGxpdGh1YW5pYW46ICdsdCcsXG4gICAgbHV4ZW1ib3VyZ2lzaDogJ2xiJyxcbiAgICBsZXR6ZWJ1cmdlc2NoOiAnbGInLFxuICAgICdsdWJhLWthdGFuZ2EnOiAnbHUnLFxuICAgIGdhbmRhOiAnbGcnLFxuICAgIG1hY2Vkb25pYW46ICdtaycsXG4gICAgbWFyc2hhbGxlc2U6ICdtaCcsXG4gICAgbWFsYXlhbGFtOiAnbWwnLFxuICAgIG1hb3JpOiAnbWknLFxuICAgIG1hcmF0aGk6ICdtcicsXG4gICAgbWFsYXk6ICdtcycsXG4gICAgbWFsYWdhc3k6ICdtZycsXG4gICAgbWFsdGVzZTogJ210JyxcbiAgICBtb25nb2xpYW46ICdtbicsXG4gICAgbmF1cnU6ICduYScsXG4gICAgbmF2YWpvOiAnbnYnLFxuICAgIG5hdmFobzogJ252JyxcbiAgICAnbmRlYmVsZSwgc291dGgnOiAnbnInLFxuICAgICdzb3V0aCBuZGViZWxlJzogJ25yJyxcbiAgICAnbmRlYmVsZSwgbm9ydGgnOiAnbmQnLFxuICAgICdub3J0aCBuZGViZWxlJzogJ25kJyxcbiAgICBuZG9uZ2E6ICduZycsXG4gICAgbmVwYWxpOiAnbmUnLFxuICAgICdub3J3ZWdpYW4gbnlub3Jzayc6ICdubicsXG4gICAgJ255bm9yc2ssIG5vcndlZ2lhbic6ICdubicsXG4gICAgJ25vcndlZ2lhbiBib2ttw6VsJzogJ25iJyxcbiAgICAnYm9rbcOlbCwgbm9yd2VnaWFuJzogJ25iJyxcbiAgICBub3J3ZWdpYW46ICdubycsXG4gICAgY2hpY2hld2E6ICdueScsXG4gICAgY2hld2E6ICdueScsXG4gICAgbnlhbmphOiAnbnknLFxuICAgIG9jY2l0YW46ICdvYycsXG4gICAgb2ppYndhOiAnb2onLFxuICAgIG9yaXlhOiAnb3InLFxuICAgIG9yb21vOiAnb20nLFxuICAgIG9zc2V0aWFuOiAnb3MnLFxuICAgIG9zc2V0aWM6ICdvcycsXG4gICAgcGFuamFiaTogJ3BhJyxcbiAgICBwdW5qYWJpOiAncGEnLFxuICAgIHBhbGk6ICdwaScsXG4gICAgcG9saXNoOiAncGwnLFxuICAgIHBvcnR1Z3Vlc2U6ICdwdCcsXG4gICAgcHVzaHRvOiAncHMnLFxuICAgIHBhc2h0bzogJ3BzJyxcbiAgICBxdWVjaHVhOiAncXUnLFxuICAgIHJvbWFuc2g6ICdybScsXG4gICAgcm9tYW5pYW46ICdybycsXG4gICAgbW9sZGF2aWFuOiAncm8nLFxuICAgIG1vbGRvdmFuOiAncm8nLFxuICAgIHJ1bmRpOiAncm4nLFxuICAgIHJ1c3NpYW46ICdydScsXG4gICAgc2FuZ286ICdzZycsXG4gICAgc2Fuc2tyaXQ6ICdzYScsXG4gICAgc2luaGFsYTogJ3NpJyxcbiAgICBzaW5oYWxlc2U6ICdzaScsXG4gICAgc2xvdmFrOiAnc2snLFxuICAgIHNsb3ZlbmlhbjogJ3NsJyxcbiAgICAnbm9ydGhlcm4gc2FtaSc6ICdzZScsXG4gICAgc2Ftb2FuOiAnc20nLFxuICAgIHNob25hOiAnc24nLFxuICAgIHNpbmRoaTogJ3NkJyxcbiAgICBzb21hbGk6ICdzbycsXG4gICAgJ3NvdGhvLCBzb3V0aGVybic6ICdzdCcsXG4gICAgc3BhbmlzaDogJ2VzJyxcbiAgICBjYXN0aWxpYW46ICdlcycsXG4gICAgc2FyZGluaWFuOiAnc2MnLFxuICAgIHNlcmJpYW46ICdzcicsXG4gICAgc3dhdGk6ICdzcycsXG4gICAgc3VuZGFuZXNlOiAnc3UnLFxuICAgIHN3YWhpbGk6ICdzdycsXG4gICAgc3dlZGlzaDogJ3N2JyxcbiAgICB0YWhpdGlhbjogJ3R5JyxcbiAgICB0YW1pbDogJ3RhJyxcbiAgICB0YXRhcjogJ3R0JyxcbiAgICB0ZWx1Z3U6ICd0ZScsXG4gICAgdGFqaWs6ICd0ZycsXG4gICAgdGFnYWxvZzogJ3RsJyxcbiAgICB0aGFpOiAndGgnLFxuICAgIHRpZ3JpbnlhOiAndGknLFxuICAgIHRvbmdhOiAndG8nLFxuICAgIHRzd2FuYTogJ3RuJyxcbiAgICB0c29uZ2E6ICd0cycsXG4gICAgdHVya21lbjogJ3RrJyxcbiAgICB0dXJraXNoOiAndHInLFxuICAgIHR3aTogJ3R3JyxcbiAgICB1aWdodXI6ICd1ZycsXG4gICAgdXlnaHVyOiAndWcnLFxuICAgIHVrcmFpbmlhbjogJ3VrJyxcbiAgICB1cmR1OiAndXInLFxuICAgIHV6YmVrOiAndXonLFxuICAgIHZlbmRhOiAndmUnLFxuICAgIHZpZXRuYW1lc2U6ICd2aScsXG4gICAgdm9sYXDDvGs6ICd2bycsXG4gICAgd2FsbG9vbjogJ3dhJyxcbiAgICB3b2xvZjogJ3dvJyxcbiAgICB4aG9zYTogJ3hoJyxcbiAgICB5aWRkaXNoOiAneWknLFxuICAgIHlvcnViYTogJ3lvJyxcbiAgICB6aHVhbmc6ICd6YScsXG4gICAgY2h1YW5nOiAnemEnLFxuICAgIHp1bHU6ICd6dScsXG4gIH0gYXMgY29uc3Q7XG4vLyBAdHMtaWdub3JlXG5jb25zdCBpc29LZXlzID0gT2JqZWN0LnZhbHVlcyhpc28pLnNvcnQoKTtcbnZhciBsYW5ndWFnZXMgPSBlID0+IHtcbiAgaWYgKCdzdHJpbmcnICE9IHR5cGVvZiBlKVxuICAgIHRocm93IG5ldyBFcnJvcignVGhlIFwibGFuZ3VhZ2VcIiBtdXN0IGJlIGEgc3RyaW5nLCByZWNlaXZlZCAnICsgdHlwZW9mIGUpO1xuICBpZiAoZS5sZW5ndGggPiAxMDApXG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgXCJsYW5ndWFnZVwiIGlzIHRvbyBsb25nIGF0ICR7ZS5sZW5ndGh9IGNoYXJhY3RlcnNgKTtcbiAgaWYgKFxuICAgICgoZSA9IGUudG9Mb3dlckNhc2UoKSksIChlID0gbmFtZXNbZV0gfHwgaXNvW2VdIHx8IGUpLCAhaXNvS2V5cy5pbmNsdWRlcyhlKSlcbiAgKVxuICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGxhbmd1YWdlIFwiJHtlfVwiIGlzIG5vdCBwYXJ0IG9mIHRoZSBJU08gNjM5LTFgKTtcbiAgcmV0dXJuIGU7XG59O1xuXG5mdW5jdGlvbiBDYWNoZSgpIHtcbiAgdmFyIGUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBmdW5jdGlvbiBhKGEpIHtcbiAgICBkZWxldGUgZVthXTtcbiAgfVxuICAodGhpcy5zZXQgPSBmdW5jdGlvbiAobiwgaSwgcikge1xuICAgIGlmICh2b2lkIDAgIT09IHIgJiYgKCdudW1iZXInICE9IHR5cGVvZiByIHx8IGlzTmFOKHIpIHx8IHIgPD0gMCkpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhY2hlIHRpbWVvdXQgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlcicpO1xuICAgIHZhciB0ID0gZVtuXTtcbiAgICB0ICYmIGNsZWFyVGltZW91dCh0LnRpbWVvdXQpO1xuICAgIHZhciBvID0geyB2YWx1ZTogaSwgZXhwaXJlOiByICsgRGF0ZS5ub3coKSB9O1xuICAgIHJldHVybiAoXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpc05hTihvLmV4cGlyZSkgfHwgKG8udGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gYShuKSwgcikpLCAoZVtuXSA9IG8pLCBpXG4gICAgKTtcbiAgfSksXG4gICAgKHRoaXMuZGVsID0gZnVuY3Rpb24gKG4pIHtcbiAgICAgIHZhciBpID0gITAsXG4gICAgICAgIHIgPSBlW25dO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgclxuICAgICAgICAgID8gKGNsZWFyVGltZW91dChyLnRpbWVvdXQpLFxuICAgICAgICAgICAgIWlzTmFOKHIuZXhwaXJlKSAmJiByLmV4cGlyZSA8IERhdGUubm93KCkgJiYgKGkgPSAhMSkpXG4gICAgICAgICAgOiAoaSA9ICExKSxcbiAgICAgICAgaSAmJiBhKG4pLFxuICAgICAgICBpXG4gICAgICApO1xuICAgIH0pLFxuICAgICh0aGlzLmNsZWFyID0gZnVuY3Rpb24gKCkge1xuICAgICAgZm9yICh2YXIgYSBpbiBlKSBjbGVhclRpbWVvdXQoZVthXS50aW1lb3V0KTtcbiAgICAgIGUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIH0pLFxuICAgICh0aGlzLmdldCA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICB2YXIgbiA9IGVbYV07XG4gICAgICBpZiAodm9pZCAwICE9PSBuKSB7XG4gICAgICAgIGlmIChpc05hTihuLmV4cGlyZSkgfHwgbi5leHBpcmUgPj0gRGF0ZS5ub3coKSkgcmV0dXJuIG4udmFsdWU7XG4gICAgICAgIGRlbGV0ZSBlW2FdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG59XG5jb25zdCBleHAkMSA9IG5ldyBDYWNoZSgpO1xuZXhwJDEuQ2FjaGUgPSBDYWNoZTtcbmNvbnN0IGJhc2UgPSAnaHR0cHM6Ly90cmFuc2xhdGUuZ29vZ2xlYXBpcy5jb20vdHJhbnNsYXRlX2Evc2luZ2xlJztcbnZhciBnb29nbGUgPSB7XG4gICAgZmV0Y2g6ICh7IGtleTogZSwgZnJvbTogYSwgdG86IG4sIHRleHQ6IGkgfSkgPT4gW1xuICAgICAgYCR7YmFzZX0/Y2xpZW50PWd0eCZzbD0ke2F9JnRsPSR7bn0mZHQ9dCZxPSR7ZW5jb2RlVVJJKGkpfWAsXG4gICAgXSxcbiAgICBwYXJzZTogZSA9PlxuICAgICAgZS5qc29uKCkudGhlbihlID0+IHtcbiAgICAgICAgaWYgKCEoZSA9IGUgJiYgZVswXSAmJiBlWzBdWzBdICYmIGVbMF0ubWFwKGUgPT4gZVswXSkuam9pbignJykpKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVHJhbnNsYXRpb24gbm90IGZvdW5kJyk7XG4gICAgICAgIHJldHVybiBlO1xuICAgICAgfSksXG4gIH0sXG4gIHlhbmRleCA9IHtcbiAgICBuZWVka2V5OiAhMCxcbiAgICBmZXRjaDogKHsga2V5OiBlLCBmcm9tOiBhLCB0bzogbiwgdGV4dDogaSB9KSA9PiBbXG4gICAgICBgaHR0cHM6Ly90cmFuc2xhdGUueWFuZGV4Lm5ldC9hcGkvdjEuNS90ci5qc29uL3RyYW5zbGF0ZT9rZXk9JHtlfSZsYW5nPSR7YX0tJHtufSZ0ZXh0PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGkpfWAsXG4gICAgICB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiAnJyB9LFxuICAgIF0sXG4gICAgcGFyc2U6IGUgPT5cbiAgICAgIGUuanNvbigpLnRoZW4oZSA9PiB7XG4gICAgICAgIGlmICgyMDAgIT09IGUuY29kZSkgdGhyb3cgbmV3IEVycm9yKGUubWVzc2FnZSk7XG4gICAgICAgIHJldHVybiBlLnRleHRbMF07XG4gICAgICB9KSxcbiAgfTtcbmNvbnN0IGxpYnJlVXJsID0gJ2h0dHBzOi8vbGlicmV0cmFuc2xhdGUuY29tL3RyYW5zbGF0ZSc7XG52YXIgbGlicmUgPSB7XG4gICAgbmVlZGtleTogITEsXG4gICAgZmV0Y2g6ICh7IHVybDogZSA9IGxpYnJlVXJsLCBrZXk6IGEsIGZyb206IG4sIHRvOiBpLCB0ZXh0OiByIH0pID0+IFtcbiAgICAgIGUsXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHE6IHIsIHNvdXJjZTogbiwgdGFyZ2V0OiBpLCBhcGlfa2V5OiBhIH0pLFxuICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBwYXJzZTogZSA9PlxuICAgICAgZS5qc29uKCkudGhlbihlID0+IHtcbiAgICAgICAgaWYgKCFlKSB0aHJvdyBuZXcgRXJyb3IoJ05vIHJlc3BvbnNlIGZvdW5kJyk7XG4gICAgICAgIGlmIChlLmVycm9yKSB0aHJvdyBuZXcgRXJyb3IoZS5lcnJvcik7XG4gICAgICAgIGlmICghZS50cmFuc2xhdGVkVGV4dCkgdGhyb3cgbmV3IEVycm9yKCdObyByZXNwb25zZSBmb3VuZCcpO1xuICAgICAgICByZXR1cm4gZS50cmFuc2xhdGVkVGV4dDtcbiAgICAgIH0pLFxuICB9LFxuICBkZWVwbCA9IHtcbiAgICBuZWVka2V5OiAhMCxcbiAgICBmZXRjaDogKHsga2V5OiBlLCBmcm9tOiBhLCB0bzogbiwgdGV4dDogaSB9KSA9PiBbXG4gICAgICBgaHR0cHM6Ly9hcGkkey86ZngkLy50ZXN0KGUpID8gJy1mcmVlJyA6ICcnfS5kZWVwbC5jb20vdjIvdHJhbnNsYXRlP2F1dGhfa2V5PSR7ZX0mc291cmNlX2xhbmc9JHthfSZ0YXJnZXRfbGFuZz0ke259JnRleHQ9JHsoaSA9IGVuY29kZVVSSUNvbXBvbmVudChpKSl9YCxcbiAgICAgIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6ICcnIH0sXG4gICAgXSxcbiAgICBwYXJzZTogYXN5bmMgZSA9PiB7XG4gICAgICBpZiAoIWUub2spIHtcbiAgICAgICAgaWYgKDQwMyA9PT0gZS5zdGF0dXMpXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdXRoIEVycm9yLCBwbGVhc2UgcmV2aWV3IHRoZSBrZXkgZm9yIERlZXBMJyk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgJHtlLnN0YXR1c31gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlLmpzb24oKS50aGVuKGUgPT4gZS50cmFuc2xhdGlvbnNbMF0udGV4dCk7XG4gICAgfSxcbiAgfSxcbiAgZW5naW5lcyA9IHsgZ29vZ2xlOiBnb29nbGUsIHlhbmRleDogeWFuZGV4LCBsaWJyZTogbGlicmUsIGRlZXBsOiBkZWVwbCB9O1xuY29uc3QgVHJhbnNsYXRlID0gZnVuY3Rpb24gKGUgPSB7fSkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpZiAoISh0aGlzIGluc3RhbmNlb2YgVHJhbnNsYXRlKSkgcmV0dXJuIG5ldyBUcmFuc2xhdGUoZSk7XG4gICAgY29uc3QgYSA9IHtcbiAgICAgICAgZnJvbTogJ2VuJyxcbiAgICAgICAgdG86ICdlbicsXG4gICAgICAgIGNhY2hlOiB2b2lkIDAsXG4gICAgICAgIGxhbmd1YWdlczogbGFuZ3VhZ2VzLFxuICAgICAgICBlbmdpbmVzOiBlbmdpbmVzLFxuICAgICAgICBlbmdpbmU6ICdnb29nbGUnLFxuICAgICAgICBrZXlzOiB7fSxcbiAgICAgIH0sXG4gICAgICBuID0gYXN5bmMgKGUsIGEgPSB7fSkgPT4ge1xuICAgICAgICAnc3RyaW5nJyA9PSB0eXBlb2YgYSAmJiAoYSA9IHsgdG86IGEgfSksIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAoYS50ZXh0ID0gZSksIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAoYS5mcm9tID0gbGFuZ3VhZ2VzKGEuZnJvbSB8fCBuLmZyb20pKSwgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIChhLnRvID0gbGFuZ3VhZ2VzKGEudG8gfHwgbi50bykpLCAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgKGEuY2FjaGUgPSBhLmNhY2hlIHx8IG4uY2FjaGUpLCAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgKGEuZW5naW5lcyA9IGEuZW5naW5lcyB8fCB7fSksIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAoYS5lbmdpbmUgPSBhLmVuZ2luZSB8fCBuLmVuZ2luZSksIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAoYS51cmwgPSBhLnVybCB8fCBuLnVybCksIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAoYS5pZCA9IGEuaWQgfHwgYCR7YS51cmx9OiR7YS5mcm9tfToke2EudG99OiR7YS5lbmdpbmV9OiR7YS50ZXh0fWApLCAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgKGEua2V5cyA9IGEua2V5cyB8fCBuLmtleXMgfHwge30pOyAvLyBAdHMtaWdub3JlXG4gICAgICAgIGZvciAobGV0IGUgaW4gbi5rZXlzKSBhLmtleXNbZV0gPSBhLmtleXNbZV0gfHwgbi5rZXlzW2VdOyAvLyBAdHMtaWdub3JlXG4gICAgICAgIGEua2V5ID0gYS5rZXkgfHwgbi5rZXkgfHwgYS5rZXlzW2EuZW5naW5lXTsgLy8gQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBpID0gYS5lbmdpbmVzW2EuZW5naW5lXSB8fCBuLmVuZ2luZXNbYS5lbmdpbmVdLCAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgciA9IGV4cCQxLmdldChhLmlkKTtcbiAgICAgICAgaWYgKHIpIHJldHVybiBQcm9taXNlLnJlc29sdmUocik7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKGEudG8gPT09IGEuZnJvbSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZShhLnRleHQpOyAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmIChpLm5lZWRrZXkgJiYgIWEua2V5KVxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGBUaGUgZW5naW5lIFwiJHthLmVuZ2luZX1cIiBuZWVkcyBhIGtleSwgcGxlYXNlIHByb3ZpZGUgaXRgLFxuICAgICAgICAgICk7XG4gICAgICAgIGNvbnN0IHQgPSBpLmZldGNoKGEpOyAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJldHVybiBmZXRjaCguLi50KVxuICAgICAgICAgIC50aGVuKGkucGFyc2UpIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAudGhlbihlID0+IGV4cCQxLnNldChhLmlkLCBlLCBhLmNhY2hlKSk7XG4gICAgICB9O1xuICAgIGZvciAobGV0IGkgaW4gYSkgbltpXSA9IHZvaWQgMCA9PT0gZVtpXSA/IGFbaV0gOiBlW2ldO1xuICAgIHJldHVybiBuO1xuICB9LCAvLyBAdHMtaWdub3JlXG4gIGV4cCA9IG5ldyBUcmFuc2xhdGUoKTtcbmV4cC5UcmFuc2xhdGUgPSBUcmFuc2xhdGU7XG5leHBvcnQgdHlwZSBMYW5nVHlwZSA9ICh0eXBlb2YgbmFtZXMpW2tleW9mIHR5cGVvZiBuYW1lc107XG5leHBvcnQgY29uc3QgdHJhbnNsYXRlID0gZXhwIGFzIChcbiAgdGV4dFRvVHJhbnNsYXRlOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHsgdG86IExhbmdUeXBlOyBmcm9tOiBMYW5nVHlwZSB9LFxuKSA9PiBzdHJpbmc7XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS90cmFuc2xhdGUudHMiXX0=
|